[dpdk-dev] [PATCH v6 04/25] lib/librte_vhost: remove mac learning, VMDQ, mac/vlan and other switching related logic

Huawei Xie huawei.xie at intel.com
Wed Oct 8 20:54:38 CEST 2014


The following logics will be moved to vhost example.
 1. mac learning, which is used to learn the mac address from the first transmitted packet of guest and bind
the vhost device to a queue in a pool of VMDQ.
 2. VMDQ mac/vlan filter: Each pool the vhost device is bind to is assigned a mac/vlan filter.
 3. num_devices is used to specify the maximum vhost devices the nic supports.

Signed-off-by: Huawei Xie <huawei.xie at intel.com>
---
 lib/librte_vhost/rte_virtio_net.h |  6 ------
 lib/librte_vhost/vhost_rxtx.c     | 18 ------------------
 lib/librte_vhost/virtio-net.c     | 15 ---------------
 3 files changed, 39 deletions(-)

diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
index 1a2f0dc..4d43f2c 100644
--- a/lib/librte_vhost/rte_virtio_net.h
+++ b/lib/librte_vhost/rte_virtio_net.h
@@ -83,15 +83,9 @@ struct virtio_net
 {
 	struct vhost_virtqueue	*virtqueue[VIRTIO_QNUM];	/* Contains all virtqueue information. */
 	struct virtio_memory 	*mem;						/* QEMU memory and memory region information. */
-	struct ether_addr 		mac_address;				/* Device MAC address (Obtained on first TX packet). */
 	uint64_t 				features;					/* Negotiated feature set. */
 	uint64_t 				device_fh;					/* device identifier. */
-	uint32_t 				vmdq_rx_q;					/* RX VMDQ queue number. */
 	uint32_t 				flags;						/* Device flags. Only used to check if device is running on data core. */
-	uint32_t 				vlan_tag;					/* Vlan tag for device. Currently set to device_id (0-63). */
-	uint16_t 				coreid;						/* Data core that the device is added to. */
-	volatile uint8_t 		ready;						/* A device is set as ready if the MAC address has been set. */
-	volatile uint8_t		remove;						/* Device is marked for removal from the data core. */
 } __rte_cache_aligned;
 
 /*
diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
index 8b5abb9..d553e71 100644
--- a/lib/librte_vhost/vhost_rxtx.c
+++ b/lib/librte_vhost/vhost_rxtx.c
@@ -735,24 +735,6 @@ virtio_dev_merge_tx(struct virtio_net *dev, struct rte_mempool *mbuf_pool)
 
 		m->nb_segs = seg_num;
 
-		/*
-		 * If this is the first received packet we need to learn
-		 * the MAC and setup VMDQ
-		 */
-		if (dev->ready == DEVICE_MAC_LEARNING) {
-			if (dev->remove || (link_vmdq(dev, m) == -1)) {
-				/*
-				 * Discard frame if device is scheduled for
-				 * removal or a duplicate MAC address is found.
-				 */
-				entry_success = free_entries;
-				vq->last_used_idx += entry_success;
-				rte_pktmbuf_free(m);
-				break;
-			}
-		}
-
-		virtio_tx_route(dev, m, mbuf_pool, (uint16_t)dev->device_fh);
 		vq->last_used_idx++;
 		entry_success++;
 		rte_pktmbuf_free(m);
diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
index 5e659c7..4089584 100644
--- a/lib/librte_vhost/virtio-net.c
+++ b/lib/librte_vhost/virtio-net.c
@@ -55,9 +55,6 @@
 
 const char eventfd_cdev[] = "/dev/eventfd-link";
 
-extern uint32_t num_devices;
-static uint32_t num_cur_devices = 0;
-
 /* device ops to add/remove device to data core. */
 static struct virtio_net_device_ops const * notify_ops;
 /* Root address of the linked list in the configuration core. */
@@ -434,12 +431,6 @@ new_device(struct vhost_device_ctx ctx)
 	struct virtio_net_config_ll *new_ll_dev;
 	struct vhost_virtqueue *virtqueue_rx, *virtqueue_tx;
 
-	/*check the number of devices in the system*/
-	if (num_cur_devices == num_devices) {
-		RTE_LOG(ERR, VHOST_CONFIG, "() Max num devices (%u) exceeded\n", num_devices);
-		return -1;
-	}
-
 	/* Setup device and virtqueues. */
 	new_ll_dev = malloc(sizeof(struct virtio_net_config_ll));
 	if (new_ll_dev == NULL) {
@@ -473,9 +464,6 @@ new_device(struct vhost_device_ctx ctx)
 	/* Add entry to device configuration linked list. */
 	add_config_ll_entry(new_ll_dev);
 
-	/*increment the number of devices in the system*/
-	num_cur_devices++;
-
 	return new_ll_dev->dev.device_fh;
 }
 
@@ -506,9 +494,6 @@ destroy_device(struct vhost_device_ctx ctx)
 			ll_dev_cur = ll_dev_cur->next;
 		}
 	}
-
-	/*decrement the number of devices in the system*/
-	num_cur_devices--;
 }
 
 /*
-- 
1.8.1.4



More information about the dev mailing list