On 10/28, Min JiaqiX wrote: >Max frame size is not set to HW, so packets above the MTU >do not get dropped by HW. The patch fixed the issue. > >Fixes: ae2bdd0219cb ("net/ice: support MTU setting") We should set max frame size to HW in the beginning when the driver was introduced, so the fix commit should be 50370662b727 ("net/ice: support device and queue ops") Fix this while merging. >Cc: stable@dpdk.org > >Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> >--- >v2: >* Changed commit message. >--- > drivers/net/ice/ice_ethdev.c | 4 ++++ > 1 file changed, 4 insertions(+) > >diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c >index 022b58c01..403305cfb 100644 >--- a/drivers/net/ice/ice_ethdev.c >+++ b/drivers/net/ice/ice_ethdev.c >@@ -2506,6 +2506,10 @@ ice_dev_start(struct rte_eth_dev *dev) > > pf->adapter_stopped = false; > >+ /* Set the max frame size */ >+ ice_aq_set_mac_cfg(hw, >+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); >+ Why set the max frame size to HW in start ops, not in init stage like in i40e? and what if max_rx_pkt_len hasn't been set? Thanks, Xiaolong > return 0; > > /* stop the started queues if failed to start all queues */ >-- >2.17.1 > Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com> Applied to dpdk-next-net-intel. Thanks.
Max frame size is not set to HW, so packets above the MTU do not get dropped by HW. The patch fixed the issue. Fixes: ae2bdd0219cb ("net/ice: support MTU setting") Cc: stable@dpdk.org Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> --- v2: * Changed commit message. --- drivers/net/ice/ice_ethdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 022b58c01..403305cfb 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2506,6 +2506,10 @@ ice_dev_start(struct rte_eth_dev *dev) pf->adapter_stopped = false; + /* Set the max frame size */ + ice_aq_set_mac_cfg(hw, + pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); + return 0; /* stop the started queues if failed to start all queues */ -- 2.17.1
On 10/28, Ye Xiaolong wrote:
>Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
>
>Applied to dpdk-next-net-intel. Thanks.
Sorry for the above misleading message, this patch is still under discussion,
not merged yet.
Thanks,
Xiaolong
Max frame size is not set to HW, so packets above the MTU do not get dropped by HW. The patch fixed the issue. Fixes: 50370662b727 ("net/ice: support device and queue ops") Cc: stable@dpdk.org Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com> --- v3: * Changed Fixes line. v2: * Changed commit message. --- drivers/net/ice/ice_ethdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 022b58c01..403305cfb 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2506,6 +2506,10 @@ ice_dev_start(struct rte_eth_dev *dev) pf->adapter_stopped = false; + /* Set the max frame size */ + ice_aq_set_mac_cfg(hw, + pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); + return 0; /* stop the started queues if failed to start all queues */ -- 2.17.1
Hi, Jiaqi On 10/29, Min JiaqiX wrote: >Max frame size is not set to HW, so packets above the MTU >do not get dropped by HW. The patch fixed the issue. > >Fixes: 50370662b727 ("net/ice: support device and queue ops") >Cc: stable@dpdk.org > >Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> >Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com> Sorry, the Reviewed-by was given by accident in V1. >--- >v3: >* Changed Fixes line. >v2: >* Changed commit message. >--- > drivers/net/ice/ice_ethdev.c | 4 ++++ > 1 file changed, 4 insertions(+) > >diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c >index 022b58c01..403305cfb 100644 >--- a/drivers/net/ice/ice_ethdev.c >+++ b/drivers/net/ice/ice_ethdev.c >@@ -2506,6 +2506,10 @@ ice_dev_start(struct rte_eth_dev *dev) > > pf->adapter_stopped = false; > >+ /* Set the max frame size */ >+ ice_aq_set_mac_cfg(hw, >+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); >+ As I commented in V2, what if user doesn't set mtu, then the max_rx_pkt_len would be 0, do we need a default max frame value in this case? Thanks, Xiaolong > return 0; > > /* stop the started queues if failed to start all queues */ >-- >2.17.1 >
Hi, Xiaolong > -----Original Message----- > From: Ye, Xiaolong > Sent: Wednesday, October 30, 2019 1:22 PM > To: Min, JiaqiX <jiaqix.min@intel.com> > Cc: dev@dpdk.org; stable@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v3] net/ice: fix setting max frame size > > Hi, Jiaqi > > On 10/29, Min JiaqiX wrote: > >Max frame size is not set to HW, so packets above the MTU do not get > >dropped by HW. The patch fixed the issue. > > > >Fixes: 50370662b727 ("net/ice: support device and queue ops") > >Cc: stable@dpdk.org > > > >Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> > >Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com> > > Sorry, the Reviewed-by was given by accident in V1. Reviewed-by in next patch will be removed. > > >--- > >v3: > >* Changed Fixes line. > >v2: > >* Changed commit message. > >--- > > drivers/net/ice/ice_ethdev.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > >diff --git a/drivers/net/ice/ice_ethdev.c > >b/drivers/net/ice/ice_ethdev.c index 022b58c01..403305cfb 100644 > >--- a/drivers/net/ice/ice_ethdev.c > >+++ b/drivers/net/ice/ice_ethdev.c > >@@ -2506,6 +2506,10 @@ ice_dev_start(struct rte_eth_dev *dev) > > > > pf->adapter_stopped = false; > > > >+ /* Set the max frame size */ > >+ ice_aq_set_mac_cfg(hw, > >+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); > >+ > > As I commented in V2, what if user doesn't set mtu, then the > max_rx_pkt_len would be 0, do we need a default max frame value in this > case? Agree. Add check if 0 and default max frame value in this case to next patch. > > Thanks, > Xiaolong > > > return 0; > > > > /* stop the started queues if failed to start all queues */ > >-- > >2.17.1 > >
Max frame size is not set to HW, so packets above the MTU do not get dropped by HW. The patch fixed the issue. Fixes: 50370662b727 ("net/ice: support device and queue ops") Cc: stable@dpdk.org Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> --- v4: * Removed Reviewed-by * Checked and set defaut max frame size to HW in start ops. v3: * Changed Fixes line. v2: * Changed commit message. --- drivers/net/ice/ice_ethdev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index d74675842..d8aa68f07 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2724,6 +2724,16 @@ ice_dev_start(struct rte_eth_dev *dev) pf->adapter_stopped = false; + /* Set the max frame size to default value*/ + if (pf->dev_data->dev_conf.rxmode.max_rx_pkt_len == 0) { + pf->dev_data->dev_conf.rxmode.max_rx_pkt_len = + RTE_ETHER_MAX_LEN; + } + + /* Set the max frame size to HW*/ + ice_aq_set_mac_cfg(hw, + pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); + return 0; /* stop the started queues if failed to start all queues */ -- 2.17.1
On 10/30, Min JiaqiX wrote: >Max frame size is not set to HW, so packets above the MTU >do not get dropped by HW. The patch fixed the issue. > >Fixes: 50370662b727 ("net/ice: support device and queue ops") >Cc: stable@dpdk.org > >Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> > >--- >v4: >* Removed Reviewed-by >* Checked and set defaut max frame size to HW in start ops. >v3: >* Changed Fixes line. >v2: >* Changed commit message. >--- > drivers/net/ice/ice_ethdev.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > >diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c >index d74675842..d8aa68f07 100644 >--- a/drivers/net/ice/ice_ethdev.c >+++ b/drivers/net/ice/ice_ethdev.c >@@ -2724,6 +2724,16 @@ ice_dev_start(struct rte_eth_dev *dev) > > pf->adapter_stopped = false; > >+ /* Set the max frame size to default value*/ >+ if (pf->dev_data->dev_conf.rxmode.max_rx_pkt_len == 0) { >+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len = >+ RTE_ETHER_MAX_LEN; I think ICE_FRAME_SIZE_MAX is more suitable here. >+ } >+ >+ /* Set the max frame size to HW*/ >+ ice_aq_set_mac_cfg(hw, >+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); What about max_frame_size = pf->dev_data->dev_conf.rxmode.max_rx_pkt_len ? pf->dev_data->dev_conf.rxmode.max_rx_pkt_len : ICE_FRAME_SIZE_MAX; /* Set the max frame size to HW*/ ice_aq_set_mac_cfg(hw, max_frame_size, NULL); Thanks, Xiaolong >+ > return 0; > > /* stop the started queues if failed to start all queues */ >-- >2.17.1 >
Hi, Xiaolong > -----Original Message----- > From: Ye, Xiaolong > Sent: Monday, November 4, 2019 10:57 AM > To: Min, JiaqiX <jiaqix.min@intel.com> > Cc: dev@dpdk.org; stable@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v4] net/ice: fix setting max frame size > > On 10/30, Min JiaqiX wrote: > >Max frame size is not set to HW, so packets above the MTU do not get > >dropped by HW. The patch fixed the issue. > > > >Fixes: 50370662b727 ("net/ice: support device and queue ops") > >Cc: stable@dpdk.org > > > >Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> > > > >--- > >v4: > >* Removed Reviewed-by > >* Checked and set defaut max frame size to HW in start ops. > >v3: > >* Changed Fixes line. > >v2: > >* Changed commit message. > >--- > > drivers/net/ice/ice_ethdev.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > >diff --git a/drivers/net/ice/ice_ethdev.c > >b/drivers/net/ice/ice_ethdev.c index d74675842..d8aa68f07 100644 > >--- a/drivers/net/ice/ice_ethdev.c > >+++ b/drivers/net/ice/ice_ethdev.c > >@@ -2724,6 +2724,16 @@ ice_dev_start(struct rte_eth_dev *dev) > > > > pf->adapter_stopped = false; > > > >+ /* Set the max frame size to default value*/ > >+ if (pf->dev_data->dev_conf.rxmode.max_rx_pkt_len == 0) { > >+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len = > >+ RTE_ETHER_MAX_LEN; > > I think ICE_FRAME_SIZE_MAX is more suitable here. Agree. Will be modified in Patch v5. > > >+ } > >+ > >+ /* Set the max frame size to HW*/ > >+ ice_aq_set_mac_cfg(hw, > >+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len, NULL); > > What about > > max_frame_size = pf->dev_data- > >dev_conf.rxmode.max_rx_pkt_len ? > pf->dev_data->dev_conf.rxmode.max_rx_pkt_len : > ICE_FRAME_SIZE_MAX; Agree. Will be modified in Patch v5. > > /* Set the max frame size to HW*/ > ice_aq_set_mac_cfg(hw, max_frame_size, NULL); > > > Thanks, > Xiaolong > >+ > > return 0; > > > > /* stop the started queues if failed to start all queues */ > >-- > >2.17.1 > >
Max frame size is not set to HW, so packets above the MTU do not get dropped by HW. The patch fixed the issue. Fixes: 50370662b727 ("net/ice: support device and queue ops") Cc: stable@dpdk.org Signed-off-by: Min JiaqiX <jiaqix.min@intel.com> --- v5: * Set `ICE_FRAME_SIZE_MAX` to to default value. v4: * Removed Reviewed-by * Checked and set defaut max frame size to HW in start ops. v3: * Changed Fixes line. v2: * Changed commit message. --- drivers/net/ice/ice_ethdev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index d74675842..741a067f9 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2657,6 +2657,7 @@ ice_dev_start(struct rte_eth_dev *dev) struct ice_vsi *vsi = pf->main_vsi; uint16_t nb_rxq = 0; uint16_t nb_txq, i; + uint16_t max_frame_size; int mask, ret; /* program Tx queues' context in hardware */ @@ -2724,6 +2725,15 @@ ice_dev_start(struct rte_eth_dev *dev) pf->adapter_stopped = false; + /* Set the max frame size to default value*/ + max_frame_size = pf->dev_data->dev_conf.rxmode.max_rx_pkt_len ? + pf->dev_data->dev_conf.rxmode.max_rx_pkt_len : + ICE_FRAME_SIZE_MAX; + + /* Set the max frame size to HW*/ + ice_aq_set_mac_cfg(hw, + max_frame_size, NULL); + return 0; /* stop the started queues if failed to start all queues */ -- 2.17.1
On 11/04, Min JiaqiX wrote:
>Max frame size is not set to HW, so packets above the MTU
>do not get dropped by HW. The patch fixed the issue.
>
>Fixes: 50370662b727 ("net/ice: support device and queue ops")
>Cc: stable@dpdk.org
>
>Signed-off-by: Min JiaqiX <jiaqix.min@intel.com>
>
>---
>v5:
>* Set `ICE_FRAME_SIZE_MAX` to to default value.
>v4:
>* Removed Reviewed-by
>* Checked and set defaut max frame size to HW in start ops.
>v3:
>* Changed Fixes line.
>v2:
>* Changed commit message.
>---
> drivers/net/ice/ice_ethdev.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
>diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
>index d74675842..741a067f9 100644
>--- a/drivers/net/ice/ice_ethdev.c
>+++ b/drivers/net/ice/ice_ethdev.c
>@@ -2657,6 +2657,7 @@ ice_dev_start(struct rte_eth_dev *dev)
> struct ice_vsi *vsi = pf->main_vsi;
> uint16_t nb_rxq = 0;
> uint16_t nb_txq, i;
>+ uint16_t max_frame_size;
> int mask, ret;
>
> /* program Tx queues' context in hardware */
>@@ -2724,6 +2725,15 @@ ice_dev_start(struct rte_eth_dev *dev)
>
> pf->adapter_stopped = false;
>
>+ /* Set the max frame size to default value*/
>+ max_frame_size = pf->dev_data->dev_conf.rxmode.max_rx_pkt_len ?
>+ pf->dev_data->dev_conf.rxmode.max_rx_pkt_len :
>+ ICE_FRAME_SIZE_MAX;
>+
>+ /* Set the max frame size to HW*/
>+ ice_aq_set_mac_cfg(hw,
>+ max_frame_size, NULL);
>+
> return 0;
>
> /* stop the started queues if failed to start all queues */
>--
>2.17.1
>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Applied to dpdk-next-net-intel. Thanks.