[v2] net: adjust layer 2 length on soft VLAN insertion
Checks
Commit Message
From: Dilshod Urazov <Dilshod.Urazov@oktetlabs.ru>
Layer 2 length must be updated after the prepend to mbuf to keep
the length right to be used by other Tx offloads.
If the packet has tunnel encapsulation, outer_l2_len should be
updated. Otherwise l2_len should be updated.
Fixes: c974021a5949 ("ether: add soft vlan encap/decap")
Cc: stephen@networkplumber.org
Cc: stable@dpdk.org
Signed-off-by: Dilshod Urazov <Dilshod.Urazov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
The fix is required for net/virtio which supports both VLAN
insertion (using the function) and Tx checksum offloads.
lib/librte_net/rte_ether.h | 5 +++++
1 file changed, 5 insertions(+)
Comments
On Mon, Jun 24, 2019 at 02:46:02PM +0100, Andrew Rybchenko wrote:
> From: Dilshod Urazov <Dilshod.Urazov@oktetlabs.ru>
>
> Layer 2 length must be updated after the prepend to mbuf to keep
> the length right to be used by other Tx offloads.
>
> If the packet has tunnel encapsulation, outer_l2_len should be
> updated. Otherwise l2_len should be updated.
>
> Fixes: c974021a5949 ("ether: add soft vlan encap/decap")
> Cc: stephen@networkplumber.org
> Cc: stable@dpdk.org
>
> Signed-off-by: Dilshod Urazov <Dilshod.Urazov@oktetlabs.ru>
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
On 7/5/2019 3:51 PM, Olivier Matz wrote:
> On Mon, Jun 24, 2019 at 02:46:02PM +0100, Andrew Rybchenko wrote:
>> From: Dilshod Urazov <Dilshod.Urazov@oktetlabs.ru>
>>
>> Layer 2 length must be updated after the prepend to mbuf to keep
>> the length right to be used by other Tx offloads.
>>
>> If the packet has tunnel encapsulation, outer_l2_len should be
>> updated. Otherwise l2_len should be updated.
>>
>> Fixes: c974021a5949 ("ether: add soft vlan encap/decap")
>> Cc: stephen@networkplumber.org
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Dilshod Urazov <Dilshod.Urazov@oktetlabs.ru>
>> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
>
> Acked-by: Olivier Matz <olivier.matz@6wind.com>
>
Applied to dpdk-next-net/master, thanks.
@@ -417,6 +417,11 @@ static inline int rte_vlan_insert(struct rte_mbuf **m)
(*m)->ol_flags &= ~(PKT_RX_VLAN_STRIPPED | PKT_TX_VLAN);
+ if ((*m)->ol_flags & PKT_TX_TUNNEL_MASK)
+ (*m)->outer_l2_len += sizeof(struct rte_vlan_hdr);
+ else
+ (*m)->l2_len += sizeof(struct rte_vlan_hdr);
+
return 0;
}