[dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX
Hi, Nikita dev_conf.rxmode.max_rx_pkt_len is different with MTU concept. The max_rx_pkt_len indicates the maximum packet length it can receive, it should be larger than MTU. There is another patch which is enabling set_mtu ops. http://dpdk.org/dev/patchwork/patch/12218/ You can definitely help to review and comment it. Thanks Jingjing > -Original Message- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Nikita Kozlov > Sent: Friday, May 06, 2016 11:51 PM > To: Zhang, Helin > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX > > Hello, > > On 09/ 1/15 07:34 AM, Zhang, Helin wrote: > >> -Original Message- > >> From: Vlad Zolotarov [mailto:vladz at cloudius-systems.com] > >> Sent: Monday, August 31, 2015 2:42 PM > >> To: dev at dpdk.org > >> Cc: Zhang, Helin; Ananyev, Konstantin; avi at cloudius-systems.com; Vlad > >> Zolotarov > >> Subject: [dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX > >> > >> HW requires it regardless the presence of the VLAN tag in the received > frame. > >> Otherwise Rx frames are being filtered out on the MTU-4 boundary. > > Maximum packet length could have different meanings from MTU. I agree > > with you to have it be regardless of vlan tag length. > > > >> Signed-off-by: Vlad Zolotarov > >> --- > >> drivers/net/i40e/i40e_rxtx.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/drivers/net/i40e/i40e_rxtx.c > >> b/drivers/net/i40e/i40e_rxtx.c index > >> eae4ab0..22aaeb1 100644 > >> --- a/drivers/net/i40e/i40e_rxtx.c > >> +++ b/drivers/net/i40e/i40e_rxtx.c > >> @@ -3156,7 +3156,7 @@ i40e_rx_queue_init(struct i40e_rx_queue *rxq) > >>rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_ALL; > >>else > >>rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_NONE; > >> - rx_ctx.rxmax = rxq->max_pkt_len; > >> + rx_ctx.rxmax = rxq->max_pkt_len + I40E_VLAN_TAG_SIZE; > > It needs to take into account the double vlan case, and also VF case. > > It seems it needs more code changes. Thank you for the contribution! > I was wondering if this "bug" haven't been forgotten ? Even if it his not > patched yet maybe it is worth an entry in the documentation ? > > > > Regards, > > Helin > > > >>rx_ctx.tphrdesc_ena = 1; > >>rx_ctx.tphwdesc_ena = 1; > >>rx_ctx.tphdata_ena = 1; > >> -- > >> 2.1.0
[dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX
Hello, On 09/ 1/15 07:34 AM, Zhang, Helin wrote: >> -Original Message- >> From: Vlad Zolotarov [mailto:vladz at cloudius-systems.com] >> Sent: Monday, August 31, 2015 2:42 PM >> To: dev at dpdk.org >> Cc: Zhang, Helin; Ananyev, Konstantin; avi at cloudius-systems.com; Vlad >> Zolotarov >> Subject: [dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX >> >> HW requires it regardless the presence of the VLAN tag in the received frame. >> Otherwise Rx frames are being filtered out on the MTU-4 boundary. > Maximum packet length could have different meanings from MTU. I agree with > you to have it be regardless of vlan tag length. > >> Signed-off-by: Vlad Zolotarov >> --- >> drivers/net/i40e/i40e_rxtx.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c >> index >> eae4ab0..22aaeb1 100644 >> --- a/drivers/net/i40e/i40e_rxtx.c >> +++ b/drivers/net/i40e/i40e_rxtx.c >> @@ -3156,7 +3156,7 @@ i40e_rx_queue_init(struct i40e_rx_queue *rxq) >> rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_ALL; >> else >> rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_NONE; >> -rx_ctx.rxmax = rxq->max_pkt_len; >> +rx_ctx.rxmax = rxq->max_pkt_len + I40E_VLAN_TAG_SIZE; > It needs to take into account the double vlan case, and also VF case. > It seems it needs more code changes. Thank you for the contribution! I was wondering if this "bug" haven't been forgotten ? Even if it his not patched yet maybe it is worth an entry in the documentation ? > > Regards, > Helin > >> rx_ctx.tphrdesc_ena = 1; >> rx_ctx.tphwdesc_ena = 1; >> rx_ctx.tphdata_ena = 1; >> -- >> 2.1.0
[dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX
> -Original Message- > From: Vlad Zolotarov [mailto:vladz at cloudius-systems.com] > Sent: Monday, August 31, 2015 2:42 PM > To: dev at dpdk.org > Cc: Zhang, Helin; Ananyev, Konstantin; avi at cloudius-systems.com; Vlad > Zolotarov > Subject: [dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX > > HW requires it regardless the presence of the VLAN tag in the received frame. > Otherwise Rx frames are being filtered out on the MTU-4 boundary. Maximum packet length could have different meanings from MTU. I agree with you to have it be regardless of vlan tag length. > > Signed-off-by: Vlad Zolotarov > --- > drivers/net/i40e/i40e_rxtx.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index > eae4ab0..22aaeb1 100644 > --- a/drivers/net/i40e/i40e_rxtx.c > +++ b/drivers/net/i40e/i40e_rxtx.c > @@ -3156,7 +3156,7 @@ i40e_rx_queue_init(struct i40e_rx_queue *rxq) > rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_ALL; > else > rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_NONE; > - rx_ctx.rxmax = rxq->max_pkt_len; > + rx_ctx.rxmax = rxq->max_pkt_len + I40E_VLAN_TAG_SIZE; It needs to take into account the double vlan case, and also VF case. It seems it needs more code changes. Thank you for the contribution! Regards, Helin > rx_ctx.tphrdesc_ena = 1; > rx_ctx.tphwdesc_ena = 1; > rx_ctx.tphdata_ena = 1; > -- > 2.1.0
[dpdk-dev] [PATCH v1] net: i40e: add VLAN tag size to RXMAX
HW requires it regardless the presence of the VLAN tag in the received frame. Otherwise Rx frames are being filtered out on the MTU-4 boundary. Signed-off-by: Vlad Zolotarov --- drivers/net/i40e/i40e_rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index eae4ab0..22aaeb1 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -3156,7 +3156,7 @@ i40e_rx_queue_init(struct i40e_rx_queue *rxq) rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_ALL; else rx_ctx.hsplit_0 = I40E_HEADER_SPLIT_NONE; - rx_ctx.rxmax = rxq->max_pkt_len; + rx_ctx.rxmax = rxq->max_pkt_len + I40E_VLAN_TAG_SIZE; rx_ctx.tphrdesc_ena = 1; rx_ctx.tphwdesc_ena = 1; rx_ctx.tphdata_ena = 1; -- 2.1.0