[v4] net/ice: fix setting max frame size
Checks
Commit Message
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(+)
Comments
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
> >
@@ -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 */