X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fring%2Frte_eth_ring.c;h=733c898259a733376c086335747c6719c1213017;hb=afa8eeffec6998d3313c36ed10484407ae594730;hp=c6733ee2b170ee72921824a1c26fbb7010e3cda2;hpb=9970a9ad07db7745ca6bc441819b287940ae86ea;p=dpdk.git diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c index c6733ee2b1..733c898259 100644 --- a/drivers/net/ring/rte_eth_ring.c +++ b/drivers/net/ring/rte_eth_ring.c @@ -61,7 +61,7 @@ static struct rte_eth_link pmd_link = { .link_autoneg = ETH_LINK_FIXED, }; -static int eth_ring_logtype; +RTE_LOG_REGISTER(eth_ring_logtype, pmd.net.ring, NOTICE); #define PMD_LOG(level, fmt, args...) \ rte_log(RTE_LOG_ ## level, eth_ring_logtype, \ @@ -246,6 +246,7 @@ static const struct eth_dev_ops ops = { static int do_eth_dev_ring_create(const char *name, + struct rte_vdev_device *vdev, struct rte_ring * const rx_queues[], const unsigned int nb_rx_queues, struct rte_ring *const tx_queues[], @@ -291,12 +292,15 @@ do_eth_dev_ring_create(const char *name, } /* now put it all together + * - store EAL device in eth_dev, * - store queue data in internals, * - store numa_node info in eth_dev_data * - point eth_dev_data to internals * - and point eth_dev structure to new eth_dev_data structure */ + eth_dev->device = &vdev->device; + data = eth_dev->data; data->rx_queues = rx_queues_local; data->tx_queues = tx_queues_local; @@ -318,6 +322,8 @@ do_eth_dev_ring_create(const char *name, data->nb_tx_queues = (uint16_t)nb_tx_queues; data->dev_link = pmd_link; data->mac_addrs = &internals->address; + data->promiscuous = 1; + data->all_multicast = 1; eth_dev->dev_ops = &ops; data->kdrv = RTE_KDRV_NONE; @@ -406,7 +412,9 @@ rte_eth_from_ring(struct rte_ring *r) } static int -eth_dev_ring_create(const char *name, const unsigned int numa_node, +eth_dev_ring_create(const char *name, + struct rte_vdev_device *vdev, + const unsigned int numa_node, enum dev_action action, struct rte_eth_dev **eth_dev) { /* rx and tx are so-called from point of view of first port. @@ -436,7 +444,7 @@ eth_dev_ring_create(const char *name, const unsigned int numa_node, return -1; } - if (do_eth_dev_ring_create(name, rxtx, num_rings, rxtx, num_rings, + if (do_eth_dev_ring_create(name, vdev, rxtx, num_rings, rxtx, num_rings, numa_node, action, eth_dev) < 0) return -1; @@ -558,12 +566,12 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev) PMD_LOG(INFO, "Initializing pmd_ring for %s", name); if (params == NULL || params[0] == '\0') { - ret = eth_dev_ring_create(name, rte_socket_id(), DEV_CREATE, + ret = eth_dev_ring_create(name, dev, rte_socket_id(), DEV_CREATE, ð_dev); if (ret == -1) { PMD_LOG(INFO, "Attach to pmd_ring for %s", name); - ret = eth_dev_ring_create(name, rte_socket_id(), + ret = eth_dev_ring_create(name, dev, rte_socket_id(), DEV_ATTACH, ð_dev); } } else { @@ -572,19 +580,16 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev) if (!kvlist) { PMD_LOG(INFO, "Ignoring unsupported parameters when creatingrings-backed ethernet device"); - ret = eth_dev_ring_create(name, rte_socket_id(), + ret = eth_dev_ring_create(name, dev, rte_socket_id(), DEV_CREATE, ð_dev); if (ret == -1) { PMD_LOG(INFO, "Attach to pmd_ring for %s", name); - ret = eth_dev_ring_create(name, rte_socket_id(), + ret = eth_dev_ring_create(name, dev, rte_socket_id(), DEV_ATTACH, ð_dev); } - if (eth_dev) - eth_dev->device = &dev->device; - return ret; } @@ -595,7 +600,7 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev) if (ret < 0) goto out_free; - ret = do_eth_dev_ring_create(name, + ret = do_eth_dev_ring_create(name, dev, internal_args->rx_queues, internal_args->nb_rx_queues, internal_args->tx_queues, @@ -625,6 +630,7 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev) for (info->count = 0; info->count < info->total; info->count++) { ret = eth_dev_ring_create(info->list[info->count].name, + dev, info->list[info->count].node, info->list[info->count].action, ð_dev); @@ -633,7 +639,7 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev) PMD_LOG(INFO, "Attach to pmd_ring for %s", name); - ret = eth_dev_ring_create(name, + ret = eth_dev_ring_create(name, dev, info->list[info->count].node, DEV_ATTACH, ð_dev); @@ -642,9 +648,6 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev) } } - if (eth_dev) - eth_dev->device = &dev->device; - out_free: rte_kvargs_free(kvlist); rte_free(info); @@ -699,10 +702,3 @@ RTE_PMD_REGISTER_VDEV(net_ring, pmd_ring_drv); RTE_PMD_REGISTER_ALIAS(net_ring, eth_ring); RTE_PMD_REGISTER_PARAM_STRING(net_ring, ETH_RING_NUMA_NODE_ACTION_ARG "=name:node:action(ATTACH|CREATE)"); - -RTE_INIT(eth_ring_init_log) -{ - eth_ring_logtype = rte_log_register("pmd.net.ring"); - if (eth_ring_logtype >= 0) - rte_log_set_level(eth_ring_logtype, RTE_LOG_NOTICE); -}