To some extent answering my own question, I have found the following
thread - http://mails.dpdk.org/archives/users/2018-June/003175.html -
"[...] if adding vlan filter, the packet will be received with vlan
stripped even if the vlan_strip is disabled. It’s i40e HW limitation,
different from ixgbe"
I wonder if this has changed, though...
Another thing, more on the VPP side, would be a question whether I could
explicitly disable offloading VLAN filter. Any ideas regarding this part?
Cheers,
Mateusz
On 03/08/2020 16:43, Mateusz Kowalski wrote:
Hello everyone,
I have a problem with VLANs being stripped off when using DPDK i40e
driver with Intel X710 10GbE even though I'm not enabling stripping in
my setup. The stripping happens as soon as I create a sub-interface.
The summary of the observed behaviour is as follows
* no sub-interfaces, `vlan offload: strip off filter off qinq off`,
pcap and trace [1] show proper VLAN tag on the packet received
* sub-interface created with a VLAN 979, `vlan offload: strip off
filter on qinq off`, pcap and trace [2] shows the packet received
without any VLAN with PKT_RX_VLAN_STRIPPED flag present
* no configuration regarding VLAN stripping is in place [3] [6]
This problem resembles very much an issue from a few years ago -
http://mails.dpdk.org/archives/dev/2016-May/039694.html - but I did
not find anything back then what would help me resolve that one here.
VPP used is v20.05. What happens effectively is that I can't use this
interface with VLAN - as soon as I set an IP address on the
sub-interface [4] and try reaching it from the outside, it fails to
exchange ARPs [5] because the traffic enters the main interface
instead of sub-interface.
Thanks for any advice on how to proceed or whether I can debug
anything more to provide more info.
Best,
Mateusz
[1]
Packet 2
00:00:25:799112: dpdk-input
eno5vf0chocobomb rx queue 0
buffer 0x9bd41: current data 0, length 60, buffer-pool 0, ref-count
1, totlen-nifb 0, trace handle 0x1000001
ext-hdr-valid
l4-cksum-computed l4-cksum-correct
PKT MBUF: port 0, nb_segs 1, pkt_len 60
buf_len 2176, data_len 60, ol_flags 0x180, data_off 128, phys_addr
0x26f50c0
packet_type 0x3 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
Packet Offload Flags
PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
Packet Types
RTE_PTYPE_L2_ETHER_ARP (0x0003) ARP packet
ARP: 48:df:37:b9:5d:90 -> ff:ff:ff:ff:ff:ff 802.1q vlan 979
request, type ethernet/IP4, address size 6/4
48:df:37:b9:5d:90/152.88.1.8 -> 00:00:00:00:00:00/152.88.1.3
00:00:25:799114: ethernet-input
frame: flags 0x3, hw-if-index 1, sw-if-index 1
ARP: 48:df:37:b9:5d:90 -> ff:ff:ff:ff:ff:ff 802.1q vlan 979
00:00:25:799114: error-drop
rx:eno5vf0chocobomb
00:00:25:799115: drop
ethernet-input: unknown vlan
[2]
Packet 34
20:34:17:437905: dpdk-input
eno5vf0chocobomb rx queue 0
buffer 0x9ee4f: current data 0, length 60, buffer-pool 0, ref-count
1, totlen-nifb 0, trace handle 0x1000021
ext-hdr-valid
l4-cksum-computed l4-cksum-correct
PKT MBUF: port 0, nb_segs 1, pkt_len 60
buf_len 2176, data_len 60, ol_flags 0x1c1, data_off 128, phys_addr
0x27b9440
packet_type 0x3 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
Packet Offload Flags
PKT_RX_VLAN (0x0001) RX packet is a 802.1q VLAN packet
PKT_RX_VLAN_STRIPPED (0x0040) RX packet VLAN tag stripped
PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
Packet Types
RTE_PTYPE_L2_ETHER_ARP (0x0003) ARP packet
...
[3]
> dpdk {
> dev 0000:b2:02.0 {
> name eno5vf0chocobomb
> }
> uio-driver vfio-pci
> }
[4]
# show interface address
eno5vf0chocobomb (up):
eno5vf0chocobomb.979 (up):
L3 152.88.1.3/28
[5]
20:34:17:437905: dpdk-input
eno5vf0chocobomb rx queue 0
buffer 0x9ee4f: current data 0, length 60, buffer-pool 0, ref-count
1, totlen-nifb 0, trace handle 0x1000021
ext-hdr-valid
l4-cksum-computed l4-cksum-correct
PKT MBUF: port 0, nb_segs 1, pkt_len 60
buf_len 2176, data_len 60, ol_flags 0x1c1, data_off 128, phys_addr
0x27b9440
packet_type 0x3 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
Packet Offload Flags
PKT_RX_VLAN (0x0001) RX packet is a 802.1q VLAN packet
PKT_RX_VLAN_STRIPPED (0x0040) RX packet VLAN tag stripped
PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
Packet Types
RTE_PTYPE_L2_ETHER_ARP (0x0003) ARP packet
ARP: 48:df:37:b8:fe:a0 -> ff:ff:ff:ff:ff:ff
request, type ethernet/IP4, address size 6/4
48:df:37:b8:fe:a0/152.88.1.7 -> 00:00:00:00:00:00/152.88.1.3
20:34:17:437906: ethernet-input
frame: flags 0x3, hw-if-index 1, sw-if-index 1
ARP: 48:df:37:b8:fe:a0 -> ff:ff:ff:ff:ff:ff
20:34:17:437906: arp-input
request, type ethernet/IP4, address size 6/4
48:df:37:b8:fe:a0/152.88.1.7 -> 00:00:00:00:00:00/152.88.1.3
20:34:17:437907: arp-disabled
request, type ethernet/IP4, address size 6/4
48:df:37:b8:fe:a0/152.88.1.7 -> 00:00:00:00:00:00/152.88.1.3
20:34:17:437907: error-drop
rx:eno5vf0chocobomb
20:34:17:437907: drop
arp-disabled: ARP Disabled on this interface
[6]
eno5vf0chocobomb 1 up eno5vf0chocobomb
Link speed: 1 Gbps
Ethernet address ce:5b:ea:e3:45:65
Intel X710/XL710 Family VF
carrier up full duplex mtu 1500
flags: admin-up pmd maybe-multiseg tx-offload intel-phdr-cksum
rx-ip4-cksum
Devargs:
rx: queues 1 (max 16), desc 1024 (min 64 max 4096 align 32)
tx: queues 2 (max 16), desc 1024 (min 64 max 4096 align 32)
pci: device 8086:154c subsystem 103c:0000 address 0000:b2:02.00 numa 0
max rx packet len: 9728
promiscuous: unicast off all-multicast on
vlan offload: strip off filter off qinq off
rx offload avail: vlan-strip ipv4-cksum udp-cksum tcp-cksum
qinq-strip
outer-ipv4-cksum vlan-filter jumbo-frame scatter
rx offload active: ipv4-cksum jumbo-frame scatter
tx offload avail: vlan-insert ipv4-cksum udp-cksum tcp-cksum
sctp-cksum
tcp-tso outer-ipv4-cksum qinq-insert vxlan-tnl-tso
gre-tnl-tso ipip-tnl-tso geneve-tnl-tso multi-segs
tx offload active: udp-cksum tcp-cksum multi-segs
rss avail: ipv4-frag ipv4-tcp ipv4-udp ipv4-sctp
ipv4-other ipv6-frag
ipv6-tcp ipv6-udp ipv6-sctp ipv6-other l2-payload
rss active: none
tx burst function: i40e_xmit_pkts
rx burst function: i40e_recv_scattered_pkts_vec_avx2
rx frames ok 3426
rx bytes ok 210688
extended stats:
rx good packets 3426
rx good bytes 210688
rx bytes 210688
rx multicast packets 521
rx broadcast packets 2905
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#17132): https://lists.fd.io/g/vpp-dev/message/17132
Mute This Topic: https://lists.fd.io/mt/75966985/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-