#375 vlan stripping problem in ixgbe on intel 82599EB dual port

closed
nobody
None
standalone_driver
1
2013-11-21
2013-05-15
No

Vlan tagged traffic is not handled correctly when the interface is in promiscuous mode in CentOS/redHat 6.x. In Fedora 18 works fine.

Another problem is that ethtool fail trying to disable rx and tx vlan offloading (a workarround to bypass the problem) in CentOS/redHat 6.x, in Fedora 18 works fine.

I have tried with latest ethtool and latest ixgbe driver (3.14.5). The kernel version is 2.6.32 (2.6.32-358.6.1.el6.x86_64 rpm version).

Discussion

  • Emil Tantilov

    Emil Tantilov - 2013-05-15

    Could you be more specific about the issue you are seeing? I am guessing you expect to see the tags in promisc mode, but you don't?

    Also, if you could download ethregs and provide a dump of the registers in the case where your interface is in promisc mode that would help.

    The 2.6.32-358 kernel in RHEL6.x does not have the ETH_FLAG_T/RXVLAN flags set, which is why setting the rxvlan flag via ethtool does not work.

     
  • Juan Jesus Prieto

    Hi emil,

    In my lab I have a dual port 10G intel 82599EB SFP+ (eth1 and eth2) with a cross loop wire (dual patch cord LC-LC multimode). If I inject traffic from a pcap file with vlan tagged packet (like the attached file) with a tool like tcpreplay I can see what I am sending from eth1 and what I am receiving from eth2:

    # tcpreplay --intf1=eth1 vlan.pcap

    # tcpdump -ni eth1 -e
    tcpdump: WARNING: eth1: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
    12:54:48.847954 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.4 tell 192.168.100.21, length 42
    12:54:48.933597 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 94: vlan 100, p 0, ethertype IPv4, 192.168.100.21.45728 > 192.168.100.1.3401: UDP, length 48
    12:54:49.113664 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 100, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 8064.00:11:21:a0:63:80.8001, length 42
    12:54:49.114643 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 201, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 80c9.00:11:21:a0:63:80.8001, length 42
    12:54:50.046887 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.3 tell 192.168.100.21, length 42
    12:54:50.137898 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.1 tell 192.168.100.21, length 42
    12:54:50.138988 6c:62:6d:42:46:c3 > 00:22:19:7b:39:c7, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Reply 192.168.100.1 is-at 6c:62:6d:42:46:c3, length 42
    12:54:50.264656 b4:39:d6:91:a4:7a > 01:80:c2:00:00:00, 802.3, length 119: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1s, Rapid STP, CIST Flags [Proposal, Learn, Forward, Agreement]
    12:54:51.035910 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.4 tell 192.168.100.21, length 42
    12:54:51.046891 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.3 tell 192.168.100.21, length 42
    12:54:51.115009 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 100, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 8064.00:11:21:a0:63:80.8001, length 42
    12:54:51.116012 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 201, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 80c9.00:11:21:a0:63:80.8001, length 42
    12:54:51.487850 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 125: vlan 100, p 0, ethertype IPv4, 192.168.122.237.443 > 10.12.24.28.54603: Flags [P.], seq 1284951453:1284951508, ack 1708487173, win 1220, options [nop,nop,TS val 1702693372 ecr 203104015], length 55
    12:54:51.502840 6c:62:6d:42:46:c3 > 00:22:19:7b:39:c7, ethertype 802.1Q (0x8100), length 70: vlan 100, p 0, ethertype IPv4, 10.12.24.28.54603 > 192.168.122.237.443: Flags [.], ack 55, win 3456, options [nop,nop,TS val 203104323 ecr 1702693372], length 0
    12:54:52.035895 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.4 tell 192.168.100.21, length 42
    12:54:52.046887 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.3 tell 192.168.100.21, length 42
    12:54:52.264530 b4:39:d6:91:a4:7a > 01:80:c2:00:00:00, 802.3, length 119: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1s, Rapid STP, CIST Flags [Proposal, Learn, Forward, Agreement]
    12:54:52.697036 6c:62:6d:42:46:c3 > 00:22:19:7b:39:c7, ethertype 802.1Q (0x8100), length 125: vlan 100, p 0, ethertype IPv4, 10.12.24.28.54603 > 192.168.122.237.443: Flags [P.], seq 1:56, ack 55, win 3456, options [nop,nop,TS val 203104443 ecr 1702693372], length 55
    12:54:52.697456 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 70: vlan 100, p 0, ethertype IPv4, 192.168.122.237.443 > 10.12.24.28.54603: Flags [.], ack 56, win 1220, options [nop,nop,TS val 1702693674 ecr 203104443], length 0
    12:54:52.906479 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 96: vlan 100, p 0, ethertype IPv4, 192.168.100.21.37010 > 192.168.100.1.3401: UDP, length 50

    # tcpdump -ni eth2 -e
    tcpdump: WARNING: eth2: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
    12:55:20.008016 b4:39:d6:91:a4:7a > 01:80:c2:00:00:00, 802.3, length 119: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1s, Rapid STP, CIST Flags [Proposal, Learn, Forward, Agreement]
    12:55:22.007873 b4:39:d6:91:a4:7a > 01:80:c2:00:00:00, 802.3, length 119: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1s, Rapid STP, CIST Flags [Proposal, Learn, Forward, Agreement]

    I am preparing the ethregs to provide you the needed info.

     
    Last edit: Juan Jesus Prieto 2013-05-16
  • Juan Jesus Prieto

    Executed ethregs:

    # ethregs eth2 > eth2.dmp

     
  • Juan Jesus Prieto

    and in promisc mode (witch tcpdump executed):

    # ethregs eth2 > eth2-promisc.dmp

     
  • Juan Jesus Prieto

    If I modify the sources to disable all VLAN offloading forced from module with patch bellow, then I can receive all vlan tagged packets in eth2:

    # tcpreplay --intf1=eth1 vlan.pcap

    # tcpdump -ni eth1 -c 10 -e
    tcpdump: WARNING: eth1: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
    13:44:02.043261 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.4 tell 192.168.100.21, length 42
    13:44:02.128907 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 94: vlan 100, p 0, ethertype IPv4, 192.168.100.21.45728 > 192.168.100.1.3401: UDP, length 48
    13:44:02.308969 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 100, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 8064.00:11:21:a0:63:80.8001, length 42
    13:44:02.309957 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 201, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 80c9.00:11:21:a0:63:80.8001, length 42
    13:44:03.242192 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.3 tell 192.168.100.21, length 42
    13:44:03.333228 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.1 tell 192.168.100.21, length 42
    13:44:03.334309 6c:62:6d:42:46:c3 > 00:22:19:7b:39:c7, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Reply 192.168.100.1 is-at 6c:62:6d:42:46:c3, length 42
    13:44:03.459977 b4:39:d6:91:a4:7a > 01:80:c2:00:00:00, 802.3, length 119: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1s, Rapid STP, CIST Flags [Proposal, Learn, Forward, Agreement]
    13:44:04.231225 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.4 tell 192.168.100.21, length 42
    13:44:04.242196 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.3 tell 192.168.100.21, length 42

    # tcpdump -ni eth2 -c 10 -e
    tcpdump: WARNING: eth2: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
    13:43:48.619039 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.4 tell 192.168.100.21, length 42
    13:43:48.704676 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 94: vlan 100, p 0, ethertype IPv4, 192.168.100.21.45728 > 192.168.100.1.3401: UDP, length 48
    13:43:48.884752 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 100, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 8064.00:11:21:a0:63:80.8001, length 42
    13:43:48.885728 00:11:21:a0:63:81 > 01:00:0c:cc:cc:cd, ethertype 802.1Q (0x8100), length 68: vlan 201, p 7, LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Cisco (0x00000c), pid PVST (0x010b): STP 802.1d, Config, Flags [none], bridge-id 80c9.00:11:21:a0:63:80.8001, length 42
    13:43:49.817962 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.3 tell 192.168.100.21, length 42
    13:43:49.908980 00:22:19:7b:39:c7 > 6c:62:6d:42:46:c3, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.1 tell 192.168.100.21, length 42
    13:43:49.910089 6c:62:6d:42:46:c3 > 00:22:19:7b:39:c7, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Reply 192.168.100.1 is-at 6c:62:6d:42:46:c3, length 42
    13:43:50.035756 b4:39:d6:91:a4:7a > 01:80:c2:00:00:00, 802.3, length 119: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1s, Rapid STP, CIST Flags [Proposal, Learn, Forward, Agreement]
    13:43:50.807002 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.4 tell 192.168.100.21, length 42
    13:43:50.817953 00:22:19:7b:39:c7 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 100, p 0, ethertype ARP, Request who-has 192.168.100.3 tell 192.168.100.21, length 42

     
  • Emil Tantilov

    Emil Tantilov - 2013-07-02

    The driver strips vlan tags by default on kernels < 2.6.36 in order to be able to process 802.1p packets (vlan tag 0). Luckily the 802.1p support seems to be backported to RHEL6.1 and above kernels. So you can try and define HAVE_8021P_SUPPORT in kcompat.h which should disable vlan tag stripping.

     
  • Juan Jesus Prieto

    Great, thanks!, I will try it.

     
  • Todd Fujinaka

    Todd Fujinaka - 2013-08-09

    Any further updates? Can we close this?

     
  • Todd Fujinaka

    Todd Fujinaka - 2013-11-21
    • status: open --> closed
     
  • Todd Fujinaka

    Todd Fujinaka - 2013-11-21

    Closing.

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks