mbox series

[v1,00/12] fix rx packets dropped issue

Message ID 20201209031628.29572-1-stevex.yang@intel.com (mailing list archive)
Headers
Series fix rx packets dropped issue |

Message

Steve Yang Dec. 9, 2020, 3:16 a.m. UTC
  The jumbo frame used the 'RTE_ETHER_MAX_LEN' as boundary condition, this
fix will change the boundary condition with 'RTE_ETHER_MTU'.

When the MTU(1500) set, the frame type of rx packet will be different
if used different overhead, it will cause the consistency issue, and the
normal packet will be dropped. Hence, using fixed value 'RTE_ETHER_MTU'
can avoid this issue.

Following scopes will be changed:
- 'rte_ethdev'
- 'app', e.g.: 'test-pmd';
- net PMDs which support VLAN tag(s) within overhead, e.g.: i40e;

Steve Yang (12):
  net/dpaa2: fix the jumbo frame flag condition for mtu set
  net/e1000: fix the jumbo frame flag condition for mtu set
  net/hns3: fix the jumbo frame flag condition for mtu set
  net/i40e: fix the jumbo frame flag condition
  net/iavf: fix the jumbo frame flag condition
  net/ice: fix the jumbo frame flag condition
  net/ipn3ke: fix the jumbo frame flag condition for mtu set
  net/octeontx: fix the jumbo frame flag condition for mtu set
  net/octeontx2: fix the jumbo frame flag condition for mtu
  net/qede: fix the jumbo frame flag condition for mtu set
  net/sfc: fix the jumbo frame flag condition for mtu set
  net/thunderx: fix the jumbo frame flag condition for mtu set

 drivers/net/dpaa2/dpaa2_ethdev.c        |  2 +-
 drivers/net/e1000/em_ethdev.c           |  2 +-
 drivers/net/e1000/igb_ethdev.c          |  2 +-
 drivers/net/hns3/hns3_ethdev.c          |  2 +-
 drivers/net/hns3/hns3_ethdev_vf.c       |  2 +-
 drivers/net/i40e/i40e_ethdev.c          |  2 +-
 drivers/net/i40e/i40e_ethdev.h          |  1 +
 drivers/net/i40e/i40e_ethdev_vf.c       | 10 +++++-----
 drivers/net/i40e/i40e_fdir.c            |  2 +-
 drivers/net/i40e/i40e_rxtx.c            |  8 ++++----
 drivers/net/iavf/iavf.h                 |  1 +
 drivers/net/iavf/iavf_ethdev.c          | 10 +++++-----
 drivers/net/ice/ice_dcf_ethdev.c        |  8 ++++----
 drivers/net/ice/ice_ethdev.c            |  2 +-
 drivers/net/ice/ice_ethdev.h            |  1 +
 drivers/net/ice/ice_rxtx.c              | 10 +++++-----
 drivers/net/ipn3ke/ipn3ke_representor.c |  2 +-
 drivers/net/octeontx/octeontx_ethdev.c  |  2 +-
 drivers/net/octeontx2/otx2_ethdev_ops.c |  2 +-
 drivers/net/qede/qede_ethdev.c          |  2 +-
 drivers/net/sfc/sfc_ethdev.c            |  2 +-
 drivers/net/thunderx/nicvf_ethdev.c     |  2 +-
 22 files changed, 40 insertions(+), 37 deletions(-)
  

Comments

Guo, Jia Dec. 11, 2020, 4:31 a.m. UTC | #1
Hi, steve

What I saw is that you replace of frame size checking to mtu checking, but you still use
"18" as overhead number to configure max_rx_pkt_len?
 
uint32_t frame_size = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;

dev->data->dev_conf.rxmode.max_rx_pkt_len = frame_size;

> -----Original Message-----
> From: Steve Yang <stevex.yang@intel.com>
> Sent: Wednesday, December 9, 2020 11:16 AM
> To: dev@dpdk.org
> Cc: hemant.agrawal@nxp.com; sachin.saxena@oss.nxp.com; Guo, Jia
> <jia.guo@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>;
> xavier.huwei@huawei.com; humin29@huawei.com;
> yisen.zhuang@huawei.com; oulijun@huawei.com; Xing, Beilei
> <beilei.xing@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Yang, Qiming
> <qiming.yang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Xu, Rosen
> <rosen.xu@intel.com>; hkalra@marvell.com; jerinj@marvell.com;
> ndabilpuram@marvell.com; kirankumark@marvell.com;
> rmody@marvell.com; shshaikh@marvell.com;
> andrew.rybchenko@oktetlabs.ru; mczekaj@marvell.com; wei.dai@intel.com;
> fengchunsong@huawei.com; lihuisong@huawei.com; Yigit, Ferruh
> <ferruh.yigit@intel.com>; chenhao164@huawei.com; Zhang, Helin
> <helin.zhang@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; yanglong.wu@intel.com;
> xiaolong.ye@intel.com; Xu, Ting <ting.xu@intel.com>; Li, Xiaoyun
> <xiaoyun.li@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Pei, Andy
> <andy.pei@intel.com>; Wei, Dan <dan.wei@intel.com>; skori@marvell.com;
> vattunuru@marvell.com; sony.chacko@qlogic.com; Richardson, Bruce
> <bruce.richardson@intel.com>; ivan.malov@oktetlabs.ru;
> zyta.szpak@semihalf.com; slawomir.rosek@semihalf.com;
> rad@semihalf.com; Yang, SteveX <stevex.yang@intel.com>
> Subject: [PATCH v1 00/12] fix rx packets dropped issue
> 
> The jumbo frame used the 'RTE_ETHER_MAX_LEN' as boundary condition,
> this fix will change the boundary condition with 'RTE_ETHER_MTU'.
> 
> When the MTU(1500) set, the frame type of rx packet will be different if
> used different overhead, it will cause the consistency issue, and the normal
> packet will be dropped. Hence, using fixed value 'RTE_ETHER_MTU'
> can avoid this issue.
> 
> Following scopes will be changed:
> - 'rte_ethdev'
> - 'app', e.g.: 'test-pmd';
> - net PMDs which support VLAN tag(s) within overhead, e.g.: i40e;
> 
> Steve Yang (12):
>   net/dpaa2: fix the jumbo frame flag condition for mtu set
>   net/e1000: fix the jumbo frame flag condition for mtu set
>   net/hns3: fix the jumbo frame flag condition for mtu set
>   net/i40e: fix the jumbo frame flag condition
>   net/iavf: fix the jumbo frame flag condition
>   net/ice: fix the jumbo frame flag condition
>   net/ipn3ke: fix the jumbo frame flag condition for mtu set
>   net/octeontx: fix the jumbo frame flag condition for mtu set
>   net/octeontx2: fix the jumbo frame flag condition for mtu
>   net/qede: fix the jumbo frame flag condition for mtu set
>   net/sfc: fix the jumbo frame flag condition for mtu set
>   net/thunderx: fix the jumbo frame flag condition for mtu set
> 
>  drivers/net/dpaa2/dpaa2_ethdev.c        |  2 +-
>  drivers/net/e1000/em_ethdev.c           |  2 +-
>  drivers/net/e1000/igb_ethdev.c          |  2 +-
>  drivers/net/hns3/hns3_ethdev.c          |  2 +-
>  drivers/net/hns3/hns3_ethdev_vf.c       |  2 +-
>  drivers/net/i40e/i40e_ethdev.c          |  2 +-
>  drivers/net/i40e/i40e_ethdev.h          |  1 +
>  drivers/net/i40e/i40e_ethdev_vf.c       | 10 +++++-----
>  drivers/net/i40e/i40e_fdir.c            |  2 +-
>  drivers/net/i40e/i40e_rxtx.c            |  8 ++++----
>  drivers/net/iavf/iavf.h                 |  1 +
>  drivers/net/iavf/iavf_ethdev.c          | 10 +++++-----
>  drivers/net/ice/ice_dcf_ethdev.c        |  8 ++++----
>  drivers/net/ice/ice_ethdev.c            |  2 +-
>  drivers/net/ice/ice_ethdev.h            |  1 +
>  drivers/net/ice/ice_rxtx.c              | 10 +++++-----
>  drivers/net/ipn3ke/ipn3ke_representor.c |  2 +-
> drivers/net/octeontx/octeontx_ethdev.c  |  2 +-
> drivers/net/octeontx2/otx2_ethdev_ops.c |  2 +-
>  drivers/net/qede/qede_ethdev.c          |  2 +-
>  drivers/net/sfc/sfc_ethdev.c            |  2 +-
>  drivers/net/thunderx/nicvf_ethdev.c     |  2 +-
>  22 files changed, 40 insertions(+), 37 deletions(-)
> 
> --
> 2.17.1
  
Ferruh Yigit Dec. 14, 2020, 5:44 p.m. UTC | #2
On 12/9/2020 3:16 AM, Steve Yang wrote:
> The jumbo frame used the 'RTE_ETHER_MAX_LEN' as boundary condition, this
> fix will change the boundary condition with 'RTE_ETHER_MTU'.
> 
> When the MTU(1500) set, the frame type of rx packet will be different
> if used different overhead, it will cause the consistency issue, and the
> normal packet will be dropped. Hence, using fixed value 'RTE_ETHER_MTU'
> can avoid this issue.
> 
> Following scopes will be changed:
> - 'rte_ethdev'
> - 'app', e.g.: 'test-pmd';
> - net PMDs which support VLAN tag(s) within overhead, e.g.: i40e;
> 
> Steve Yang (12):
>    net/dpaa2: fix the jumbo frame flag condition for mtu set
>    net/e1000: fix the jumbo frame flag condition for mtu set
>    net/hns3: fix the jumbo frame flag condition for mtu set
>    net/i40e: fix the jumbo frame flag condition
>    net/iavf: fix the jumbo frame flag condition
>    net/ice: fix the jumbo frame flag condition
>    net/ipn3ke: fix the jumbo frame flag condition for mtu set
>    net/octeontx: fix the jumbo frame flag condition for mtu set
>    net/octeontx2: fix the jumbo frame flag condition for mtu
>    net/qede: fix the jumbo frame flag condition for mtu set
>    net/sfc: fix the jumbo frame flag condition for mtu set
>    net/thunderx: fix the jumbo frame flag condition for mtu set
> 

Overall looks good to me, there is no review from the individual drivers, but if 
there is no objection I am for merging it soon. A few things below:

1) I see following usage not updated, can you please include them in next version:
ixgbe_set_vf_lpe
ixgbe_dev_mtu_set
cxgbe_dev_mtu_set
cxgbe_dev_rx_queue_setup
axgb_mtu_set
enetc_mtu_set
hinic_dev_set_mtu
dpaa_mtu_set
nfp_net_dev_mtu_set
lio_dev_mtu_set


2) I guess 'eth_dev' update will come as separate patch, can you please send it 
without waiting this set to be merged, since both are related having them both 
can help discussions.

Thanks,
ferruh