[dpdk-dev] [PATCH v2 0/7] add mtu and flow control handlers

Ananyev, Konstantin konstantin.ananyev at intel.com
Mon Jun 16 19:07:12 CEST 2014


Hi David,

> This patchset introduces 3 new ethdev operations: flow control parameters
> retrieval and mtu get/set operations.

> Changes since v1:
> - compute min rx buffer size at ethdev level (to simplify pmd mtu checks)
> - introduce enable_scatter rx mode so that we can advise pmd to configure
>  scatter mode
> - rework mtu get/set operations (based on Konstantin comments)
> - pass checkpatch.pl checks

1)  [PATCH v2 3/7] ethdev: store min rx buffer size
@@ -879,6 +879,8 @@ rte_eth_rx_queue_setup(uint8_t port_id, uint16_t rx_queue_id,
 		       const struct rte_eth_rxconf *rx_conf,
 		       struct rte_mempool *mp)
 {
...
+	if (!ret) {
+		if (dev->data->min_rx_buf_size > mbp_buf_size)
+			dev->data->min_rx_buf_size = mbp_buf_size;
+	}
+
+	return ret;
 
Where do you set the initial value of min_rx_buf_size?
Can't find it by some reason.

2)  [PATCH v2 5/7] ethdev: add mtu accessors
+static int
+ixgbe_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
+{
...
+	if (!dev->data->scattered_rx &&
+	    frame_size > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM)
+		return -EINVAL;

Reading 82599 spec, 8.2.3.22.13 Max Frame Size - MAXFRS (0x04268; RW):
" The MFS does not include the 4 bytes of the VLAN header. Packets with VLAN header
can be as large as MFS + 4. When double VLAN is enabled, the device adds 8 to the
MFS for any packets."

So, I suppose it should be:
if (!dev->data->scattered_rx &&
frame_size + 2 * IXGBE_VLAN_TAG_SIZE > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM)

Like in ixgbe_dev_rx_init().


3)  if ((mtu < 68) || (frame_size > dev_info.max_rx_pktlen))
Can we add a new define for min allowable MTU (68) as it used in few places.

Thanks
Konstantin


More information about the dev mailing list