From 3556f251833bd273b2ebd55380324298f672c00c Mon Sep 17 00:00:00 2001 From: Yi Zhang Date: Thu, 15 Dec 2016 02:50:19 +0800 Subject: [PATCH] net/ixgbevf: fix max packet length Current ixgbevf driver get max_rx_pktlen = 15872, but in fact PF supports 15872-byte jumbo frame and VF only supports 9728-byte jumbo frame. If VF is running DPDK driver and set frame_size > 9728 ,PF running kernel ixgbe driver will report an error and set VF failed. This patch fixs DPDK ixgbevf driver to get correct jumbo frame size of VF. More datasheet references from Wei Dai: In 82599 datasheet, there is an annotation in the chapter 1.3 Features Summary (page 29) The 82599 supports full-size 15.5 KB (15872-byte) jumbo packets while in a basic mode of operation. When DCB mode is enabled, or security engines enabled or virtualization is enabled, the 82599 supports 9.5 KB (9728-byte) jumbo packets. In x540 datasheet, there is also an annotation in the chapter 1.3 Features Summary (page 13) The X540 and 82599 support full-size 15.5 KB jumbo packets while in a basic mode of operation. When DCB mode is enabled, or security engines enabled, or virtualization is enabled, or OS2BMC is enabled, then the X540 supports 9.5 KB jumbo packets. Packets to/from MC longer than 2KB are filtered out. In x550 datasheet, there is still also an annotation in the chapter 1.4 Feature Summary (page 23) All the products support full-size 15.5 KB jumbo packets while in a basic mode of operation. When DCB mode is enabled, or security engines enabled, or virtualization is enabled, or OS2BMC is enabled, then only 9.5 KB jumbo packets are supported. Packets to/ from the MC longer than 2 KB are filtered out. Fixes: 2144f6630fca ("ixgbe: add redirection table size in device info") Cc: stable@dpdk.org Signed-off-by: Yi Zhang Acked-by: Wei Dai --- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 64ce55ab2d..edbf75bc4e 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -3461,7 +3461,7 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev, dev_info->max_rx_queues = (uint16_t)hw->mac.max_rx_queues; dev_info->max_tx_queues = (uint16_t)hw->mac.max_tx_queues; dev_info->min_rx_bufsize = 1024; /* cf BSIZEPACKET in SRRCTL reg */ - dev_info->max_rx_pktlen = 15872; /* includes CRC, cf MAXFRS reg */ + dev_info->max_rx_pktlen = 9728; /* includes CRC, cf MAXFRS reg */ dev_info->max_mac_addrs = hw->mac.num_rar_entries; dev_info->max_hash_mac_addrs = IXGBE_VMDQ_NUM_UC_MAC; dev_info->max_vfs = pci_dev->max_vfs; -- 2.20.1