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

Ping works and SSH does in DPDK 16.04 using enic

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • None
    • None
    • None

      I have a slightly complex set up and this exact setup works fine, meaning, I can ping and SSH, with DPDK 2.2. However, it fails on DPDK 16.04. Are any patches missing ?

      There are two hosts (h1 and h2) connected via a VIC interface. VPP is running on both hosts and each host have one VM. VMs are assigned a vhost interface and this vhost interface and the vic interface are assigned to the same bridge ID in VPP.

      With this set up, I can ping VM2 from VM1 and vice-versa. However, SSH fails. I enabled packet tracing on both VPPs. On the VPP that hosts destination VM, I say L4 checksum error. This happens on all L4 traffic. Additionally, if two VM are instantiated on the same host, eliminated any inter-host communication, SSH works fine.

      I have provided the trace snippet for the following

      1. Unsuccessful L4 packet using 16.04
      2. Successful L3 packet using 16.04
      3. Successful L4 packet using 2.2

      -----------------------------------------------------------
      Unsuccessful L4 packet using DPDK 16.04
      ----------------------------------------------------------
      Packet 1

      00:03:25:642633: dpdk-input
      TenGigabitEthernet9/0/0 rx queue 0
      buffer 0xf78e1d: current data 0, length 74, free-list 0, totlen-nifb 0, trace 0x0
      PKT MBUF: port 0, nb_segs 1, pkt_len 74
      buf_len 2176, data_len 74, ol_flags 0x9,
      packet_type 0x111
      Packet Offload Flags
      PKT_RX_VLAN_PKT (0x0001) RX packet is a 802.1q VLAN packet
      PKT_RX_L4_CKSUM_BAD (0x0008) L4 cksum of RX pkt. is not OK
      Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
      RTE_PTYPE_L4_TCP (0x0100) TCP packet
      IP4: 56:70:59:7a:98:91 -> 56:70:59:7a:98:90
      TCP: 2.2.2.11 -> 2.2.2.10
      tos 0x00, ttl 64, length 60, checksum 0xd144
      fragment id 0x615f, flags DONT_FRAGMENT
      00:03:25:642645: error-drop
      dpdk-input: Rx L4 checksum errors

      Packet 2

      00:03:26:640446: dpdk-input
      TenGigabitEthernet9/0/0 rx queue 0
      buffer 0xf78df6: current data 0, length 74, free-list 0, totlen-nifb 0, trace 0x1
      PKT MBUF: port 0, nb_segs 1, pkt_len 74
      buf_len 2176, data_len 74, ol_flags 0x9,
      packet_type 0x111
      Packet Offload Flags
      PKT_RX_VLAN_PKT (0x0001) RX packet is a 802.1q VLAN packet
      PKT_RX_L4_CKSUM_BAD (0x0008) L4 cksum of RX pkt. is not OK
      Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
      RTE_PTYPE_L4_TCP (0x0100) TCP packet
      IP4: 56:70:59:7a:98:91 -> 56:70:59:7a:98:90
      TCP: 2.2.2.11 -> 2.2.2.10
      tos 0x00, ttl 64, length 60, checksum 0xd143
      fragment id 0x6160, flags DONT_FRAGMENT
      00:03:26:640448: error-drop
      dpdk-input: Rx L4 checksum errors

      Packet 3

      00:03:28:644431: dpdk-input
      TenGigabitEthernet9/0/0 rx queue 0
      buffer 0xf78dcf: current data 0, length 74, free-list 0, totlen-nifb 0, trace 0x2
      PKT MBUF: port 0, nb_segs 1, pkt_len 74
      buf_len 2176, data_len 74, ol_flags 0x9,
      packet_type 0x111
      Packet Offload Flags
      PKT_RX_VLAN_PKT (0x0001) RX packet is a 802.1q VLAN packet
      PKT_RX_L4_CKSUM_BAD (0x0008) L4 cksum of RX pkt. is not OK
      Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
      RTE_PTYPE_L4_TCP (0x0100) TCP packet
      IP4: 56:70:59:7a:98:91 -> 56:70:59:7a:98:90
      TCP: 2.2.2.11 -> 2.2.2.10
      tos 0x00, ttl 64, length 60, checksum 0xd142
      fragment id 0x6161, flags DONT_FRAGMENT
      00:03:28:644436: error-drop
      dpdk-input: Rx L4 checksum errors

      -------------------------------------------------------------------------------
      Successful ARP request and response using DPDK 16.04:
      -------------------------------------------------------------------------------
      Packet 1

      00:01:15:288699: dpdk-input
      TenGigabitEthernet9/0/0 rx queue 0
      buffer 0xf78e44: current data 0, length 60, free-list 0, totlen-nifb 0, trace 0x0
      PKT MBUF: port 0, nb_segs 1, pkt_len 60
      buf_len 2176, data_len 60, ol_flags 0x1,
      packet_type 0x0
      Packet Offload Flags
      PKT_RX_VLAN_PKT (0x0001) RX packet is a 802.1q VLAN packet
      ARP: 56:70:59:7a:98:91 -> ff:ff:ff:ff:ff:ff
      request, type ethernet/IP4, address size 6/4
      56:70:59:7a:98:91/2.2.2.11 -> ff:ff:ff:ff:ff:ff/2.2.2.10
      00:01:15:288722: ethernet-input
      ARP: 56:70:59:7a:98:91 -> ff:ff:ff:ff:ff:ff
      00:01:15:288728: l2-input
      l2-input: sw_if_index 5 dst ff:ff:ff:ff:ff:ff src 56:70:59:7a:98:91
      00:01:15:288733: l2-learn
      l2-learn: sw_if_index 5 dst ff:ff:ff:ff:ff:ff src 56:70:59:7a:98:91 bd_index 1
      00:01:15:288736: l2-flood
      l2-flood: sw_if_index 5 dst ff:ff:ff:ff:ff:ff src 56:70:59:7a:98:91 bd_index 1
      00:01:15:288740: l2-output
      l2-output: sw_if_index 7 dst ff:ff:ff:ff:ff:ff src 56:70:59:7a:98:91
      00:01:15:288743: VirtualEthernet0/0/1-output
      VirtualEthernet0/0/1
      ARP: 56:70:59:7a:98:91 -> ff:ff:ff:ff:ff:ff
      request, type ethernet/IP4, address size 6/4
      56:70:59:7a:98:91/2.2.2.11 -> ff:ff:ff:ff:ff:ff/2.2.2.10
      00:01:15:288745: error-drop
      VirtualEthernet0/0/1-output: interface is down
      00:01:15:288747: l2-flood
      l2-flood: sw_if_index 5 dst ff:ff:ff:ff:ff:ff src 56:70:59:7a:98:91 bd_index 1
      00:01:15:288748: l2-output
      l2-output: sw_if_index 6 dst ff:ff:ff:ff:ff:ff src 56:70:59:7a:98:91
      00:01:15:288748: VirtualEthernet0/0/0-output
      VirtualEthernet0/0/0
      ARP: 56:70:59:7a:98:91 -> ff:ff:ff:ff:ff:ff
      request, type ethernet/IP4, address size 6/4
      56:70:59:7a:98:91/2.2.2.11 -> ff:ff:ff:ff:ff:ff/2.2.2.10
      00:01:15:288749: VirtualEthernet0/0/0-tx
      VirtualEthernet0/0/0 tx queue 1
      buffer 0xf78e44: current data 0, length 60, free-list 0, totlen-nifb 0, trace 0x0
      ARP: 56:70:59:7a:98:91 -> ff:ff:ff:ff:ff:ff
      request, type ethernet/IP4, address size 6/4
      56:70:59:7a:98:91/2.2.2.11 -> ff:ff:ff:ff:ff:ff/2.2.2.10

      Packet 2

      00:01:15:288882: dpdk-input
      VirtualEthernet0/0/0 rx queue 0
      buffer 0xf78e44: current data 0, length 42, free-list 0, totlen-nifb 0, trace 0x1
      PKT MBUF: port 255, nb_segs 1, pkt_len 42
      buf_len 2176, data_len 42, ol_flags 0x0,
      packet_type 0x0
      ARP: 56:70:59:7a:98:90 -> 56:70:59:7a:98:91
      reply, type ethernet/IP4, address size 6/4
      56:70:59:7a:98:90/2.2.2.10 -> 56:70:59:7a:98:91/2.2.2.11
      00:01:15:288889: ethernet-input
      ARP: 56:70:59:7a:98:90 -> 56:70:59:7a:98:91
      00:01:15:288890: l2-input
      l2-input: sw_if_index 6 dst 56:70:59:7a:98:91 src 56:70:59:7a:98:90
      00:01:15:288890: l2-learn
      l2-learn: sw_if_index 6 dst 56:70:59:7a:98:91 src 56:70:59:7a:98:90 bd_index 1
      00:01:15:288890: l2-fwd
      l2-fwd: sw_if_index 6 dst 56:70:59:7a:98:91 src 56:70:59:7a:98:90 bd_index 1
      00:01:15:288891: l2-output
      l2-output: sw_if_index 5 dst 56:70:59:7a:98:91 src 56:70:59:7a:98:90
      00:01:15:288891: TenGigabitEthernet9/0/0-output
      TenGigabitEthernet9/0/0
      ARP: 56:70:59:7a:98:90 -> 56:70:59:7a:98:91
      reply, type ethernet/IP4, address size 6/4
      56:70:59:7a:98:90/2.2.2.10 -> 56:70:59:7a:98:91/2.2.2.11
      00:01:15:288893: TenGigabitEthernet9/0/0-tx
      TenGigabitEthernet9/0/0 tx queue 1
      buffer 0xf78e44: current data 0, length 42, free-list 0, totlen-nifb 0, trace 0x1
      ARP: 56:70:59:7a:98:90 -> 56:70:59:7a:98:91
      reply, type ethernet/IP4, address size 6/4
      56:70:59:7a:98:90/2.2.2.10 -> 56:70:59:7a:98:91/2.2.2.11

      -----------------------------------------------------------
      HEALTHY L4 (SSH) packet using DPDK 2.2
      -----------------------------------------------------------
      Packet 1

      00:01:54:970597: dpdk-input
      VirtualEthernet0/0/1 rx queue 0
      buffer 0x3f1aac6: current data 0, length 74, free-list 0, totlen-nifb 0, trace 0x0
      PKT MBUF: port 255, nb_segs 1, pkt_len 74
      buf_len 2176, data_len 74, ol_flags 0x0,
      packet_type 0x0
      IP4: 56:70:59:7a:98:91 -> 56:70:59:7a:98:90
      TCP: 2.2.2.11 -> 2.2.2.10
      tos 0x00, ttl 64, length 60, checksum 0x826b
      fragment id 0xb038, flags DONT_FRAGMENT
      00:01:54:970613: ethernet-input
      IP4: 56:70:59:7a:98:91 -> 56:70:59:7a:98:90
      00:01:54:970616: l2-input
      l2-input: sw_if_index 7 dst 56:70:59:7a:98:90 src 56:70:59:7a:98:91
      00:01:54:970616: l2-learn
      l2-learn: sw_if_index 7 dst 56:70:59:7a:98:90 src 56:70:59:7a:98:91 bd_index 1
      00:01:54:970617: l2-fwd
      l2-fwd: sw_if_index 7 dst 56:70:59:7a:98:90 src 56:70:59:7a:98:91 bd_index 1
      00:01:54:970618: l2-output
      l2-output: sw_if_index 5 dst 56:70:59:7a:98:90 src 56:70:59:7a:98:91
      00:01:54:970619: TenGigabitEthernet9/0/0-output
      TenGigabitEthernet9/0/0
      IP4: 56:70:59:7a:98:91 -> 56:70:59:7a:98:90
      TCP: 2.2.2.11 -> 2.2.2.10
      tos 0x00, ttl 64, length 60, checksum 0x826b
      fragment id 0xb038, flags DONT_FRAGMENT
      00:01:54:970620: TenGigabitEthernet9/0/0-tx
      TenGigabitEthernet9/0/0 tx queue 1
      buffer 0x3f1aac6: current data 0, length 74, free-list 0, totlen-nifb 0, trace 0x0
      IP4: 56:70:59:7a:98:91 -> 56:70:59:7a:98:90
      TCP: 2.2.2.11 -> 2.2.2.10
      tos 0x00, ttl 64, length 60, checksum 0x826b
      fragment id 0xb038, flags DONT_FRAGMENT

            shesha Shesha Sreenivasamurthy
            shesha Shesha Sreenivasamurthy
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: