DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches
@ 2016-03-04 18:07 Stephen Hemminger
  2016-03-04 18:08 ` [dpdk-dev] [PATCH 1/3] vmxnet3: support jumbo frames Stephen Hemminger
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Stephen Hemminger @ 2016-03-04 18:07 UTC (permalink / raw)
  To: dev

This is update/rebase of vmxnet3 driver patches.
It incorporates minor feedback from Yong Wang and merges two related
vlan offload patches.

I know the mac address set conflicts the recently posted patch
(not yet merged). But this version has been used for quite a while
internally.

Charles (Chas) Williams (1):
  vmxnet3: Fix VLAN filtering

Stephen Hemminger (2):
  vmxnet3: support jumbo frames
  vmxnet3: support setting mac address

 drivers/net/vmxnet3/vmxnet3_ethdev.c | 109 +++++++++++++++++------------------
 drivers/net/vmxnet3/vmxnet3_ring.h   |   2 +
 drivers/net/vmxnet3/vmxnet3_rxtx.c   |  80 +++++++++++++------------
 3 files changed, 98 insertions(+), 93 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dpdk-dev] [PATCH 1/3] vmxnet3: support jumbo frames
  2016-03-04 18:07 [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Stephen Hemminger
@ 2016-03-04 18:08 ` Stephen Hemminger
  2016-03-04 18:08 ` [dpdk-dev] [PATCH 2/3] vmxnet3: Fix VLAN filtering Stephen Hemminger
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2016-03-04 18:08 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Add support for linking multi-segment buffers together to
handle Jumbo packets. The vmxnet3 API supports having header
and body buffer types. What this patch does is fill the primary
ring completely with header buffers and the secondary ring
with body buffers. This allows for non-jumbo frames to only
use one mbuf (from primary ring); and jumbo frames will have
first mbuf from primary ring and following mbufs from other
ring.

This could be optimized in future if the DPDK had API
to supply different sized mbufs (two pools) into driver.

Signed-off-by: Stephen Hemminger <shemming@brocade.com>
---
 drivers/net/vmxnet3/vmxnet3_ethdev.c |  3 +-
 drivers/net/vmxnet3/vmxnet3_ring.h   |  2 +
 drivers/net/vmxnet3/vmxnet3_rxtx.c   | 80 +++++++++++++++++++-----------------
 3 files changed, 46 insertions(+), 39 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index c363bf6..585ee60 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -425,6 +425,7 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
 {
 	struct rte_eth_conf port_conf = dev->data->dev_conf;
 	struct vmxnet3_hw *hw = dev->data->dev_private;
+	uint32_t mtu = dev->data->mtu;
 	Vmxnet3_DriverShared *shared = hw->shared;
 	Vmxnet3_DSDevRead *devRead = &shared->devRead;
 	uint32_t *mac_ptr;
@@ -442,7 +443,7 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
 	devRead->misc.driverInfo.vmxnet3RevSpt = 1;
 	devRead->misc.driverInfo.uptVerSpt     = 1;
 
-	devRead->misc.mtu = rte_le_to_cpu_32(dev->data->mtu);
+	devRead->misc.mtu = rte_le_to_cpu_32(mtu);
 	devRead->misc.queueDescPA  = hw->queueDescPA;
 	devRead->misc.queueDescLen = hw->queue_desc_len;
 	devRead->misc.numTxQueues  = hw->num_tx_queues;
diff --git a/drivers/net/vmxnet3/vmxnet3_ring.h b/drivers/net/vmxnet3/vmxnet3_ring.h
index da4c595..1d1879a 100644
--- a/drivers/net/vmxnet3/vmxnet3_ring.h
+++ b/drivers/net/vmxnet3/vmxnet3_ring.h
@@ -171,6 +171,8 @@ typedef struct vmxnet3_rx_queue {
 	uint32_t                    qid1;
 	uint32_t                    qid2;
 	Vmxnet3_RxQueueDesc         *shared;
+	struct rte_mbuf		    *start_seg;
+	struct rte_mbuf		    *last_seg;
 	struct vmxnet3_rxq_stats    stats;
 	bool                        stopped;
 	uint16_t                    queue_id;      /**< Device RX queue index. */
diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c
index 8385478..4ed1646 100644
--- a/drivers/net/vmxnet3/vmxnet3_rxtx.c
+++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c
@@ -570,35 +570,11 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 		rxd = (Vmxnet3_RxDesc *)rxq->cmd_ring[ring_idx].base + idx;
 		rbi = rxq->cmd_ring[ring_idx].buf_info + idx;
 
-		if (unlikely(rcd->sop != 1 || rcd->eop != 1)) {
-			rte_pktmbuf_free_seg(rbi->m);
-			PMD_RX_LOG(DEBUG, "Packet spread across multiple buffers\n)");
-			goto rcd_done;
-		}
-
 		PMD_RX_LOG(DEBUG, "rxd idx: %d ring idx: %d.", idx, ring_idx);
 
 		VMXNET3_ASSERT(rcd->len <= rxd->len);
 		VMXNET3_ASSERT(rbi->m);
 
-		if (unlikely(rcd->len == 0)) {
-			PMD_RX_LOG(DEBUG, "Rx buf was skipped. rxring[%d][%d]\n)",
-				   ring_idx, idx);
-			VMXNET3_ASSERT(rcd->sop && rcd->eop);
-			rte_pktmbuf_free_seg(rbi->m);
-			goto rcd_done;
-		}
-
-		/* Assuming a packet is coming in a single packet buffer */
-		if (unlikely(rxd->btype != VMXNET3_RXD_BTYPE_HEAD)) {
-			PMD_RX_LOG(DEBUG,
-				   "Alert : Misbehaving device, incorrect "
-				   " buffer type used. iPacket dropped.");
-			rte_pktmbuf_free_seg(rbi->m);
-			goto rcd_done;
-		}
-		VMXNET3_ASSERT(rxd->btype == VMXNET3_RXD_BTYPE_HEAD);
-
 		/* Get the packet buffer pointer from buf_info */
 		rxm = rbi->m;
 
@@ -610,7 +586,7 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 		rxq->cmd_ring[ring_idx].next2comp = idx;
 
 		/* For RCD with EOP set, check if there is frame error */
-		if (unlikely(rcd->err)) {
+		if (unlikely(rcd->eop && rcd->err)) {
 			rxq->stats.drop_total++;
 			rxq->stats.drop_err++;
 
@@ -636,9 +612,47 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 		rxm->ol_flags = 0;
 		rxm->vlan_tci = 0;
 
-		vmxnet3_rx_offload(rcd, rxm);
+		/*
+		 * If this is the first buffer of the received packet,
+		 * set the pointer to the first mbuf of the packet
+		 * Otherwise, update the total length and the number of segments
+		 * of the current scattered packet, and update the pointer to
+		 * the last mbuf of the current packet.
+		 */
+		if (rcd->sop) {
+			VMXNET3_ASSERT(rxq->start_seg != NULL);
+			VMXNET3_ASSERT(rxd->btype == VMXNET3_RXD_BTYPE_HEAD);
+
+			if (unlikely(rcd->len == 0)) {
+				VMXNET3_ASSERT(rcd->eop);
+				
+				PMD_RX_LOG(DEBUG,
+					   "Rx buf was skipped. rxring[%d][%d])",
+					   ring_idx, idx);
+				rte_pktmbuf_free_seg(rxm);
+				goto rcd_done;
+			}
+
+			rxq->start_seg = rxm;
+			vmxnet3_rx_offload(rcd, rxm);
+		} else {
+			struct rte_mbuf *start = rxq->start_seg;
+
+			VMXNET3_ASSERT(rxd->btype == VMXNET3_RXD_BTYPE_BODY);
+			VMXNET3_ASSERT(start != NULL);
+
+			start->pkt_len += rxm->data_len;
+			start->nb_segs++;
+
+			rxq->last_seg->next = rxm;
+		}
+		rxq->last_seg = rxm;
+
+		if (rcd->eop) {
+			rx_pkts[nb_rx++] = rxq->start_seg;
+			rxq->start_seg = NULL;
+		}
 
-		rx_pkts[nb_rx++] = rxm;
 rcd_done:
 		rxq->cmd_ring[ring_idx].next2comp = idx;
 		VMXNET3_INC_RING_IDX_ONLY(rxq->cmd_ring[ring_idx].next2comp, rxq->cmd_ring[ring_idx].size);
@@ -807,20 +821,9 @@ vmxnet3_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	int size;
 	uint8_t i;
 	char mem_name[32];
-	uint16_t buf_size;
 
 	PMD_INIT_FUNC_TRACE();
 
-	buf_size = rte_pktmbuf_data_room_size(mp) -
-		RTE_PKTMBUF_HEADROOM;
-
-	if (dev->data->dev_conf.rxmode.max_rx_pkt_len > buf_size) {
-		PMD_INIT_LOG(ERR, "buf_size = %u, max_pkt_len = %u, "
-			     "VMXNET3 don't support scatter packets yet",
-			     buf_size, dev->data->dev_conf.rxmode.max_rx_pkt_len);
-		return -EINVAL;
-	}
-
 	rxq = rte_zmalloc("ethdev_rx_queue", sizeof(struct vmxnet3_rx_queue), RTE_CACHE_LINE_SIZE);
 	if (rxq == NULL) {
 		PMD_INIT_LOG(ERR, "Can not allocate rx queue structure");
@@ -939,6 +942,7 @@ vmxnet3_dev_rxtx_init(struct rte_eth_dev *dev)
 			}
 		}
 		rxq->stopped = FALSE;
+		rxq->start_seg = NULL;
 	}
 
 	for (i = 0; i < dev->data->nb_tx_queues; i++) {
-- 
2.1.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dpdk-dev] [PATCH 2/3] vmxnet3: Fix VLAN filtering
  2016-03-04 18:07 [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Stephen Hemminger
  2016-03-04 18:08 ` [dpdk-dev] [PATCH 1/3] vmxnet3: support jumbo frames Stephen Hemminger
@ 2016-03-04 18:08 ` Stephen Hemminger
  2016-03-04 18:08 ` [dpdk-dev] [PATCH 3/3] vmxnet3: support setting mac address Stephen Hemminger
  2016-03-07 17:06 ` [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Remy Horton
  3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2016-03-04 18:08 UTC (permalink / raw)
  To: dev; +Cc: Charles (Chas) Williams, Nachiketa Prachanda

From: "Charles (Chas) Williams" <ciwillia@brocade.com>

During an MTU change, the adapter is restarted.  If hardware VLAN offload
is in use, this existing filter table would also be cleared.  Instead,
setup the shadow table once during device initialization and just update
during restart.

vmxnet3_dev_vlan_offload_set(dev, mask) was incorrectly treating the
mask parameter as the bitmask for vlan_strip and vlan_filter, whereas
the mask indicates only what has changed - the values for
vlan_stripping and vlan_filter needs to be taken from dev_conf.rxmode.

Signed-off-by: "Charles (Chas) Williams" <ciwillia@brocade.com>
Signed-off-by: Nachiketa Prachanda <nprachan@brocade.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/vmxnet3/vmxnet3_ethdev.c | 62 +++++++++++++-----------------------
 1 file changed, 22 insertions(+), 40 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index 585ee60..111ec8e 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -89,8 +89,6 @@ static void vmxnet3_dev_info_get(struct rte_eth_dev *dev,
 static int vmxnet3_dev_vlan_filter_set(struct rte_eth_dev *dev,
 				       uint16_t vid, int on);
 static void vmxnet3_dev_vlan_offload_set(struct rte_eth_dev *dev, int mask);
-static void vmxnet3_dev_vlan_offload_set_clear(struct rte_eth_dev *dev,
-						int mask, int clear);
 
 #if PROCESS_SYS_EVENTS == 1
 static void vmxnet3_process_events(struct vmxnet3_hw *);
@@ -294,6 +292,9 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
 	/* Put device in Quiesce Mode */
 	VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD, VMXNET3_CMD_QUIESCE_DEV);
 
+	/* allow untagged pkts */
+	VMXNET3_SET_VFTABLE_ENTRY(hw->shadow_vfta, 0);
+
 	return 0;
 }
 
@@ -430,7 +431,7 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
 	Vmxnet3_DSDevRead *devRead = &shared->devRead;
 	uint32_t *mac_ptr;
 	uint32_t val, i;
-	int ret, mask;
+	int ret;
 
 	shared->magic = VMXNET3_REV1_MAGIC;
 	devRead->misc.driverInfo.version = VMXNET3_DRIVER_VERSION_NUM;
@@ -512,14 +513,8 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
 		devRead->rssConfDesc.confPA  = hw->rss_confPA;
 	}
 
-	mask = 0;
-	if (dev->data->dev_conf.rxmode.hw_vlan_strip)
-		mask |= ETH_VLAN_STRIP_MASK;
-
-	if (dev->data->dev_conf.rxmode.hw_vlan_filter)
-		mask |= ETH_VLAN_FILTER_MASK;
-
-	vmxnet3_dev_vlan_offload_set_clear(dev, mask, 1);
+	vmxnet3_dev_vlan_offload_set(dev,
+			     ETH_VLAN_STRIP_MASK | ETH_VLAN_FILTER_MASK);
 
 	PMD_INIT_LOG(DEBUG,
 		     "Writing MAC Address : %02x:%02x:%02x:%02x:%02x:%02x",
@@ -836,44 +831,31 @@ vmxnet3_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vid, int on)
 }
 
 static void
-vmxnet3_dev_vlan_offload_set_clear(struct rte_eth_dev *dev,
-				   int mask, int clear)
+vmxnet3_dev_vlan_offload_set(struct rte_eth_dev *dev, int mask)
 {
 	struct vmxnet3_hw *hw = dev->data->dev_private;
 	Vmxnet3_DSDevRead *devRead = &hw->shared->devRead;
 	uint32_t *vf_table = devRead->rxFilterConf.vfTable;
 
-	if (mask & ETH_VLAN_STRIP_MASK)
-		devRead->misc.uptFeatures |= UPT1_F_RXVLAN;
-	else
-		devRead->misc.uptFeatures &= ~UPT1_F_RXVLAN;
+	if (mask & ETH_VLAN_STRIP_MASK) {
+		if (dev->data->dev_conf.rxmode.hw_vlan_strip)
+			devRead->misc.uptFeatures |= UPT1_F_RXVLAN;
+		else
+			devRead->misc.uptFeatures &= ~UPT1_F_RXVLAN;
 
-	VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD,
-			       VMXNET3_CMD_UPDATE_FEATURE);
-
-	if (mask & ETH_VLAN_FILTER_MASK) {
-		if (clear) {
-			memset(hw->shadow_vfta, 0,
-			       VMXNET3_VFT_TABLE_SIZE);
-			/* allow untagged pkts */
-			VMXNET3_SET_VFTABLE_ENTRY(hw->shadow_vfta, 0);
-		}
-		memcpy(vf_table, hw->shadow_vfta, VMXNET3_VFT_TABLE_SIZE);
-	} else {
-		/* allow any pkts -- no filtering */
-		if (clear)
-			memset(hw->shadow_vfta, 0xff, VMXNET3_VFT_TABLE_SIZE);
-		memset(vf_table, 0xff, VMXNET3_VFT_TABLE_SIZE);
+		VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD,
+				       VMXNET3_CMD_UPDATE_FEATURE);
 	}
 
-	VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD,
-			       VMXNET3_CMD_UPDATE_VLAN_FILTERS);
-}
+	if (mask & ETH_VLAN_FILTER_MASK) {
+		if (dev->data->dev_conf.rxmode.hw_vlan_filter)
+			memcpy(vf_table, hw->shadow_vfta, VMXNET3_VFT_TABLE_SIZE);
+		else
+			memset(vf_table, 0xff, VMXNET3_VFT_TABLE_SIZE);
 
-static void
-vmxnet3_dev_vlan_offload_set(struct rte_eth_dev *dev, int mask)
-{
-	vmxnet3_dev_vlan_offload_set_clear(dev, mask, 0);
+		VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD,
+				       VMXNET3_CMD_UPDATE_VLAN_FILTERS);
+	}
 }
 
 #if PROCESS_SYS_EVENTS == 1
-- 
2.1.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dpdk-dev] [PATCH 3/3] vmxnet3: support setting mac address
  2016-03-04 18:07 [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Stephen Hemminger
  2016-03-04 18:08 ` [dpdk-dev] [PATCH 1/3] vmxnet3: support jumbo frames Stephen Hemminger
  2016-03-04 18:08 ` [dpdk-dev] [PATCH 2/3] vmxnet3: Fix VLAN filtering Stephen Hemminger
@ 2016-03-04 18:08 ` Stephen Hemminger
  2016-03-07 17:06 ` [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Remy Horton
  3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2016-03-04 18:08 UTC (permalink / raw)
  To: dev

Allow overriding the base mac address of the device.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/vmxnet3/vmxnet3_ethdev.c | 44 ++++++++++++++++++++++++------------
 1 file changed, 30 insertions(+), 14 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index 111ec8e..d863a30 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -89,6 +89,8 @@ static void vmxnet3_dev_info_get(struct rte_eth_dev *dev,
 static int vmxnet3_dev_vlan_filter_set(struct rte_eth_dev *dev,
 				       uint16_t vid, int on);
 static void vmxnet3_dev_vlan_offload_set(struct rte_eth_dev *dev, int mask);
+static void vmxnet3_mac_addr_set(struct rte_eth_dev *dev,
+				 struct ether_addr *mac_addr);
 
 #if PROCESS_SYS_EVENTS == 1
 static void vmxnet3_process_events(struct vmxnet3_hw *);
@@ -115,6 +117,7 @@ static const struct eth_dev_ops vmxnet3_eth_dev_ops = {
 	.allmulticast_disable = vmxnet3_dev_allmulticast_disable,
 	.link_update          = vmxnet3_dev_link_update,
 	.stats_get            = vmxnet3_dev_stats_get,
+	.mac_addr_set	      = vmxnet3_mac_addr_set,
 	.dev_infos_get        = vmxnet3_dev_info_get,
 	.vlan_filter_set      = vmxnet3_dev_vlan_filter_set,
 	.vlan_offload_set     = vmxnet3_dev_vlan_offload_set,
@@ -421,6 +424,23 @@ vmxnet3_dev_configure(struct rte_eth_dev *dev)
 	return 0;
 }
 
+static void
+vmxnet3_write_mac(struct vmxnet3_hw *hw, const uint8_t *addr)
+{
+	uint32_t val;
+
+	PMD_INIT_LOG(DEBUG,
+		     "Writing MAC Address : %02x:%02x:%02x:%02x:%02x:%02x",
+		     addr[0], addr[1], addr[2],
+		     addr[3], addr[4], addr[5]);
+
+	val = *(const uint32_t *)addr;
+	VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_MACL, val);
+
+	val = (addr[5] << 8) | addr[4];
+	VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_MACH, val);
+}
+
 static int
 vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
 {
@@ -429,8 +449,7 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
 	uint32_t mtu = dev->data->mtu;
 	Vmxnet3_DriverShared *shared = hw->shared;
 	Vmxnet3_DSDevRead *devRead = &shared->devRead;
-	uint32_t *mac_ptr;
-	uint32_t val, i;
+	uint32_t i;
 	int ret;
 
 	shared->magic = VMXNET3_REV1_MAGIC;
@@ -516,18 +535,7 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
 	vmxnet3_dev_vlan_offload_set(dev,
 			     ETH_VLAN_STRIP_MASK | ETH_VLAN_FILTER_MASK);
 
-	PMD_INIT_LOG(DEBUG,
-		     "Writing MAC Address : %02x:%02x:%02x:%02x:%02x:%02x",
-		     hw->perm_addr[0], hw->perm_addr[1], hw->perm_addr[2],
-		     hw->perm_addr[3], hw->perm_addr[4], hw->perm_addr[5]);
-
-	/* Write MAC Address back to device */
-	mac_ptr = (uint32_t *)hw->perm_addr;
-	val = *mac_ptr;
-	VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_MACL, val);
-
-	val = (hw->perm_addr[5] << 8) | hw->perm_addr[4];
-	VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_MACH, val);
+	vmxnet3_write_mac(hw, hw->perm_addr);
 
 	return VMXNET3_SUCCESS;
 }
@@ -714,6 +722,14 @@ vmxnet3_dev_info_get(__attribute__((unused))struct rte_eth_dev *dev, struct rte_
 	};
 }
 
+static void
+vmxnet3_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *mac_addr)
+{
+	struct vmxnet3_hw *hw = dev->data->dev_private;
+
+	vmxnet3_write_mac(hw, mac_addr->addr_bytes);
+}
+
 /* return 0 means link status changed, -1 means not changed */
 static int
 vmxnet3_dev_link_update(struct rte_eth_dev *dev, __attribute__((unused)) int wait_to_complete)
-- 
2.1.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches
  2016-03-04 18:07 [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Stephen Hemminger
                   ` (2 preceding siblings ...)
  2016-03-04 18:08 ` [dpdk-dev] [PATCH 3/3] vmxnet3: support setting mac address Stephen Hemminger
@ 2016-03-07 17:06 ` Remy Horton
  2016-03-11 16:25   ` Bruce Richardson
  3 siblings, 1 reply; 6+ messages in thread
From: Remy Horton @ 2016-03-07 17:06 UTC (permalink / raw)
  To: dev



On 04/03/2016 18:07, Stephen Hemminger wrote:
> This is update/rebase of vmxnet3 driver patches.
> It incorporates minor feedback from Yong Wang and merges two related
> vlan offload patches.
>
> I know the mac address set conflicts the recently posted patch
> (not yet merged). But this version has been used for quite a while
> internally.
>
> Charles (Chas) Williams (1):
>    vmxnet3: Fix VLAN filtering
>
> Stephen Hemminger (2):
>    vmxnet3: support jumbo frames
>    vmxnet3: support setting mac address
>
>   drivers/net/vmxnet3/vmxnet3_ethdev.c | 109 +++++++++++++++++------------------
>   drivers/net/vmxnet3/vmxnet3_ring.h   |   2 +
>   drivers/net/vmxnet3/vmxnet3_rxtx.c   |  80 +++++++++++++------------
>   3 files changed, 98 insertions(+), 93 deletions(-)
>

Acked-by: Remy Horton <remy.horton@intel.com>

Release notes not needing updating?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches
  2016-03-07 17:06 ` [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Remy Horton
@ 2016-03-11 16:25   ` Bruce Richardson
  0 siblings, 0 replies; 6+ messages in thread
From: Bruce Richardson @ 2016-03-11 16:25 UTC (permalink / raw)
  To: Remy Horton; +Cc: dev

On Mon, Mar 07, 2016 at 05:06:35PM +0000, Remy Horton wrote:
> 
> 
> On 04/03/2016 18:07, Stephen Hemminger wrote:
> >This is update/rebase of vmxnet3 driver patches.
> >It incorporates minor feedback from Yong Wang and merges two related
> >vlan offload patches.
> >
> >I know the mac address set conflicts the recently posted patch
> >(not yet merged). But this version has been used for quite a while
> >internally.
> >
> >Charles (Chas) Williams (1):
> >   vmxnet3: Fix VLAN filtering
> >
> >Stephen Hemminger (2):
> >   vmxnet3: support jumbo frames
> >   vmxnet3: support setting mac address
> >
> >  drivers/net/vmxnet3/vmxnet3_ethdev.c | 109 +++++++++++++++++------------------
> >  drivers/net/vmxnet3/vmxnet3_ring.h   |   2 +
> >  drivers/net/vmxnet3/vmxnet3_rxtx.c   |  80 +++++++++++++------------
> >  3 files changed, 98 insertions(+), 93 deletions(-)
> >
> 
> Acked-by: Remy Horton <remy.horton@intel.com>
> 
> Release notes not needing updating?

Applied to dpdk-next-net/rel_16_04 with a small release note addition

/Bruce

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-11 16:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-04 18:07 [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Stephen Hemminger
2016-03-04 18:08 ` [dpdk-dev] [PATCH 1/3] vmxnet3: support jumbo frames Stephen Hemminger
2016-03-04 18:08 ` [dpdk-dev] [PATCH 2/3] vmxnet3: Fix VLAN filtering Stephen Hemminger
2016-03-04 18:08 ` [dpdk-dev] [PATCH 3/3] vmxnet3: support setting mac address Stephen Hemminger
2016-03-07 17:06 ` [dpdk-dev] [PATCH 0/3 v3] vmxnet3 driver patches Remy Horton
2016-03-11 16:25   ` Bruce Richardson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).