net: add rte prefix to ether defines
[dpdk.git] / examples / ip_pipeline / kni.c
index ebc8c79..e9262e0 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <rte_ethdev.h>
 #include <rte_bus_pci.h>
+#include <rte_string_fns.h>
 
 #include "kni.h"
 #include "mempool.h"
@@ -67,7 +68,7 @@ kni_config_network_interface(uint16_t port_id, uint8_t if_up)
 {
        int ret = 0;
 
-       if (port_id >= rte_eth_dev_count())
+       if (!rte_eth_dev_is_valid_port(port_id))
                return -EINVAL;
 
        ret = (if_up) ?
@@ -82,10 +83,10 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
 {
        int ret;
 
-       if (port_id >= rte_eth_dev_count())
+       if (!rte_eth_dev_is_valid_port(port_id))
                return -EINVAL;
 
-       if (new_mtu > ETHER_MAX_LEN)
+       if (new_mtu > RTE_ETHER_MAX_LEN)
                return -EINVAL;
 
        /* Set new MTU */
@@ -106,6 +107,8 @@ kni_create(const char *name, struct kni_params *params)
        struct mempool *mempool;
        struct link *link;
        struct rte_kni *k;
+       const struct rte_pci_device *pci_dev;
+       const struct rte_bus *bus = NULL;
 
        /* Check input params */
        if ((name == NULL) ||
@@ -123,13 +126,18 @@ kni_create(const char *name, struct kni_params *params)
        rte_eth_dev_info_get(link->port_id, &dev_info);
 
        memset(&kni_conf, 0, sizeof(kni_conf));
-       snprintf(kni_conf.name, RTE_KNI_NAMESIZE, "%s", name);
+       strlcpy(kni_conf.name, name, RTE_KNI_NAMESIZE);
        kni_conf.force_bind = params->force_bind;
        kni_conf.core_id = params->thread_id;
        kni_conf.group_id = link->port_id;
        kni_conf.mbuf_size = mempool->buffer_size;
-       kni_conf.addr = dev_info.pci_dev->addr;
-       kni_conf.id = dev_info.pci_dev->id;
+       if (dev_info.device)
+               bus = rte_bus_find_by_device(dev_info.device);
+       if (bus && !strcmp(bus->name, "pci")) {
+               pci_dev = RTE_DEV_TO_PCI(dev_info.device);
+               kni_conf.addr = pci_dev->addr;
+               kni_conf.id = pci_dev->id;
+       }
 
        memset(&kni_ops, 0, sizeof(kni_ops));
        kni_ops.port_id = link->port_id;
@@ -146,7 +154,7 @@ kni_create(const char *name, struct kni_params *params)
                return NULL;
 
        /* Node fill in */
-       strncpy(kni->name, name, sizeof(kni->name));
+       strlcpy(kni->name, name, sizeof(kni->name));
        kni->k = k;
 
        /* Node add to list */