X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fsoftnic%2Frte_eth_softnic.c;h=8c098cad5b6eb9646c0d06f632bc15ae1411af28;hb=3c3ea76cffe0fc614555459d9741d2472cc3ac9a;hp=f64023256db11dbdf114e32f3a90f6887b262747;hpb=eeded2044af5bbe88220120b14933536cbb3edb6;p=dpdk.git diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c index f64023256d..8c098cad5b 100644 --- a/drivers/net/softnic/rte_eth_softnic.c +++ b/drivers/net/softnic/rte_eth_softnic.c @@ -93,6 +93,7 @@ pmd_dev_infos_get(struct rte_eth_dev *dev __rte_unused, dev_info->max_rx_pktlen = UINT32_MAX; dev_info->max_rx_queues = UINT16_MAX; dev_info->max_tx_queues = UINT16_MAX; + dev_info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; return 0; } @@ -173,7 +174,7 @@ pmd_dev_start(struct rte_eth_dev *dev) return status; /* Link UP */ - dev->data->dev_link.link_status = ETH_LINK_UP; + dev->data->dev_link.link_status = RTE_ETH_LINK_UP; return 0; } @@ -184,7 +185,7 @@ pmd_dev_stop(struct rte_eth_dev *dev) struct pmd_internals *p = dev->data->dev_private; /* Link DOWN */ - dev->data->dev_link.link_status = ETH_LINK_DOWN; + dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN; /* Firmware */ softnic_pipeline_disable_all(p); @@ -386,10 +387,10 @@ pmd_ethdev_register(struct rte_vdev_device *vdev, /* dev->data */ dev->data->dev_private = dev_private; - dev->data->dev_link.link_speed = ETH_SPEED_NUM_100G; - dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX; - dev->data->dev_link.link_autoneg = ETH_LINK_FIXED; - dev->data->dev_link.link_status = ETH_LINK_DOWN; + dev->data->dev_link.link_speed = RTE_ETH_SPEED_NUM_100G; + dev->data->dev_link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX; + dev->data->dev_link.link_autoneg = RTE_ETH_LINK_FIXED; + dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN; dev->data->mac_addrs = ð_addr; dev->data->promiscuous = 1; dev->data->numa_node = params->cpu_id; @@ -440,6 +441,7 @@ pmd_parse_args(struct pmd_params *p, const char *params) { struct rte_kvargs *kvlist; int ret = 0; + char *firmware = NULL; kvlist = rte_kvargs_parse(params, pmd_valid_args); if (kvlist == NULL) @@ -447,7 +449,14 @@ pmd_parse_args(struct pmd_params *p, const char *params) /* Set default values */ memset(p, 0, sizeof(*p)); - p->firmware = SOFTNIC_FIRMWARE; + if (rte_strscpy(p->firmware, SOFTNIC_FIRMWARE, + sizeof(p->firmware)) < 0) { + PMD_LOG(WARNING, + "\"%s\": firmware path should be shorter than %zu", + SOFTNIC_FIRMWARE, sizeof(p->firmware)); + ret = -EINVAL; + goto out_free; + } p->cpu_id = SOFTNIC_CPU_ID; p->sc = SOFTNIC_SC; p->tm.n_queues = SOFTNIC_TM_N_QUEUES; @@ -468,11 +477,22 @@ pmd_parse_args(struct pmd_params *p, const char *params) /* Firmware script (optional) */ if (rte_kvargs_count(kvlist, PMD_PARAM_FIRMWARE) == 1) { ret = rte_kvargs_process(kvlist, PMD_PARAM_FIRMWARE, - &get_string, &p->firmware); + &get_string, &firmware); if (ret < 0) goto out_free; - } + if (rte_strscpy(p->firmware, firmware, + sizeof(p->firmware)) < 0) { + PMD_LOG(WARNING, + "\"%s\": " + "firmware path should be shorter than %zu", + firmware, sizeof(p->firmware)); + free(firmware); + ret = -EINVAL; + goto out_free; + } + free(firmware); + } /* Connection listening port (optional) */ if (rte_kvargs_count(kvlist, PMD_PARAM_CONN_PORT) == 1) { ret = rte_kvargs_process(kvlist, PMD_PARAM_CONN_PORT, @@ -621,7 +641,12 @@ pmd_probe(struct rte_vdev_device *vdev) if (status) return status; - p.name = name; + if (rte_strscpy(p.name, name, sizeof(p.name)) < 0) { + PMD_LOG(WARNING, + "\"%s\": device name should be shorter than %zu", + name, sizeof(p.name)); + return -EINVAL; + } /* Allocate and initialize soft ethdev private data */ dev_private = pmd_init(&p);