Uploaded image for project: 'vpp'
  1. vpp
  2. VPP-1942

Different kernel versiond exhibit different AVF dot1q stripping interface behavior

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • None
    • None

      The topology is one TG and one VPP, both using one VF of XL710-QDA2. Each VF is configured the same way (with different MACs):
      vf 0 MAC ba:dc:0f:fe:00:00, vlan 1100, spoof checking off, link-state auto, trust on

      We then create an AVF interface on that VF. TG sends a packet though the VF, it arrives at the corresponding VF in VPP (that is the AVF interface) and the VF vlan tag either gets stripper or doesn't depending on which kernel is used.

      Kernels tested: 4.15.0-55-generic, 4.15.0-72-generic, 4.15.0-118-generic

      Kernels 72 and 118 exhibit different behavior compared to 55.

      55 doesn't strip the tag, 72 and 118 strip the tag.

      This creates inconsistencies in how the AVF interface behaves.

      Packet trace from 72/118 (missing vlan tag):
      ------------------- Start of thread 0 vpp_main -------------------
      Packet 1

      00:00:24:364611: avf-input
      avf: avf-0/91/2/0 (1) qid 0 next-node ethernet-input
      desc 0: status 0x300b error 0x0 ptype 0x17 len 64
      00:00:24:364658: ethernet-input
      frame: flags 0x3, hw-if-index 1, sw-if-index 1
      IP4: ba:dc:0f:fe:00:00 -> ba:dc:0f:fe:00:01
      00:00:24:364674: ip4-input-no-checksum
      unknown 61: 192.168.0.1 -> 192.168.0.2
      tos 0x00, ttl 64, length 50, checksum 0xf93a dscp CS0 ecn NON_ECN
      fragment id 0x0001
      00:00:24:364689: ip4-not-enabled
      unknown 61: 192.168.0.1 -> 192.168.0.2
      tos 0x00, ttl 64, length 50, checksum 0xf93a dscp CS0 ecn NON_ECN
      fragment id 0x0001
      00:00:24:364693: error-drop
      rx:avf-0/91/2/0
      00:00:24:364695: drop
      null-node: blackholed packets

      Packet trace from 55 (with vlan tag):
      ------------------- Start of thread 0 vpp_main -------------------
      Packet 1

      00:00:24:669503: avf-input
      avf: avf-0/91/2/0 (1) qid 0 next-node ethernet-input
      desc 0: status 0x300b error 0x0 ptype 0x17 len 68
      00:00:24:669520: ethernet-input
      frame: flags 0x3, hw-if-index 1, sw-if-index 1
      IP4: ba:dc:0f:fe:00:00 -> ba:dc:0f:fe:00:01 802.1q vlan 1100
      00:00:24:669535: l2-input
      l2-input: sw_if_index 3 dst ba:dc:0f:fe:00:01 src ba:dc:0f:fe:00:00 [l2-input-vtr l2-learn l2-fwd l2-flood l2-flood ]
      00:00:24:669539: l2-input-vtr
      l2-input-vtr: sw_if_index 3 dst ba:dc:0f:fe:00:01 src ba:dc:0f:fe:00:00 data 08 00 45 00 00 32 00 01 00 00 40 3d
      00:00:24:669542: l2-learn
      l2-learn: sw_if_index 3 dst ba:dc:0f:fe:00:01 src ba:dc:0f:fe:00:00 bd_index 1
      00:00:24:669548: l2-fwd
      l2-fwd: sw_if_index 3 dst ba:dc:0f:fe:00:01 src ba:dc:0f:fe:00:00 bd_index 1 result [0xffffffffffffffff, -1] static age-not bvi filter learn-event learn-move
      00:00:24:669550: l2-flood
      l2-flood: sw_if_index 3 dst ba:dc:0f:fe:00:01 src ba:dc:0f:fe:00:00 bd_index 1
      00:00:24:669553: l2-output
      l2-output: sw_if_index 4 dst ba:dc:0f:fe:00:01 src ba:dc:0f:fe:00:00 data 81 00 04 4d 08 00 45 00 00 32 00 01
      00:00:24:669556: avf-0/91/2/1-output
      avf-0/91/2/1.1101
      IP4: ba:dc:0f:fe:00:00 -> ba:dc:0f:fe:00:01 802.1q vlan 1101
      unknown 61: 192.168.0.1 -> 192.168.0.2
      tos 0x00, ttl 64, length 50, checksum 0xf93a dscp CS0 ecn NON_ECN
      fragment id 0x0001

            Unassigned Unassigned
            juraj.linkes Juraj Linkeš
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: