Anything new on this?
I am only curios if we can count with this in 17.04 release.

Peter Mikus
Engineer – Software
Cisco Systems Limited

From: Damjan Marion (damarion)
Sent: Thursday, March 23, 2017 1:52 PM
To: Peter Mikus -X (pmikus - PANTHEON TECHNOLOGIES at Cisco) <pmi...@cisco.com>
Cc: vpp-dev <vpp-dev@lists.fd.io>; csit-...@lists.fd.io
Subject: Re: VXLAN multithreading issue


I think I know where it might be a problem.
let me come back to you….

On 23 Mar 2017, at 13:08, Peter Mikus -X (pmikus - PANTHEON TECHNOLOGIES at 
Cisco) <pmi...@cisco.com<mailto:pmi...@cisco.com>> wrote:

Hello vpp-dev,

With latest VPP build packages I am observing the issue with VXLAN and LISPGPE 
tunnels during my testing (CSIT and internal Cisco lab - manual testing). I am 
getting the following errors:

vpp# sh err
   Count                    Node                  Reason
        10             ip4-udp-lookup             no listener for dst port
        10             ip4-icmp-error             destination unreachable 
response sent
        10              vxlan4-encap              good packets encapsulated
        10                l2-output               L2 output packets
        10                l2-learn                L2 learn packets
        10                l2-learn                L2 learn hits
        10                l2-input                L2 input packets
        10                l2-flood                L2 flood packets


Encapsulation of traffic into VXLAN is working properly but decapsulation is 
throwing "no listener for dst port"

vpp# sh trace

------------------- Start of thread 0 vpp_main -------------------
No packets in trace buffer
------------------- Start of thread 1 vpp_wk_0 -------------------
Packet 1

00:04:49:119217: dpdk-input
  FortyGigabitEtherneta/0/0 rx queue 0
  buffer 0x1d288a28: current data 14, length 94, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
  PKT MBUF: port 0, nb_segs 1, pkt_len 108
    buf_len 2176, data_len 108, ol_flags 0x180, data_off 128, phys_addr 
0x55264900
    packet_type 0x291
    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 (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without 
extension headers
      RTE_PTYPE_L4_UDP (0x0200) UDP packet
  IP4: 00:00:71:51:52:d7 -> 3c:fd:fe:9d:1a:a0
  UDP: 11.0.0.2 -> 11.0.0.1
    tos 0x00, ttl 64, length 94, checksum 0x648d
    fragment id 0x0000
  UDP: 4789 -> 4789
    length 74, checksum 0x9c98
00:04:49:119239: ip4-input-no-checksum
  UDP: 11.0.0.2 -> 11.0.0.1
    tos 0x00, ttl 64, length 94, checksum 0x648d
    fragment id 0x0000
  UDP: 4789 -> 4789
    length 74, checksum 0x9c98
00:04:49:119249: ip4-lookup
  fib 0 dpo-idx 5 flow hash: 0x00000000
  UDP: 11.0.0.2 -> 11.0.0.1
    tos 0x00, ttl 64, length 94, checksum 0x648d
    fragment id 0x0000
  UDP: 4789 -> 4789
    length 74, checksum 0x9c98
00:04:49:119253: ip4-local
    UDP: 11.0.0.2 -> 11.0.0.1
      tos 0x00, ttl 64, length 94, checksum 0x648d
      fragment id 0x0000
    UDP: 4789 -> 4789
      length 74, checksum 0x9c98
00:04:49:119256: ip4-udp-lookup
  UDP: src-port 4789 dst-port 4789 (no listener)
00:04:49:119261: ip4-icmp-error
  UDP: 11.0.0.2 -> 11.0.0.1
    tos 0x00, ttl 64, length 94, checksum 0x648d
    fragment id 0x0000
  UDP: 4789 -> 4789
    length 74, checksum 0x9c98
00:04:49:119265: ip4-lookup
  fib 0 dpo-idx 2 flow hash: 0x00000000
  ICMP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 255, length 122, checksum 0xa580
    fragment id 0x0000
  ICMP destination_unreachable port_unreachable checksum 0x135b
00:04:49:119265: ip4-rewrite
  tx_sw_if_index 1 dpo-idx 2 : ipv4 via 11.0.0.2 FortyGigabitEtherneta/0/0: 
IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7 flow hash: 0x00000000
  IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7
  ICMP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 254, length 122, checksum 0xa680
    fragment id 0x0000
  ICMP destination_unreachable port_unreachable checksum 0x135b
00:04:49:119266: FortyGigabitEtherneta/0/0-output
  FortyGigabitEtherneta/0/0
  IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7
  ICMP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 254, length 122, checksum 0xa680
    fragment id 0x0000
  ICMP destination_unreachable port_unreachable checksum 0x135b
00:04:49:119268: FortyGigabitEtherneta/0/0-tx
  FortyGigabitEtherneta/0/0 tx queue 1
  buffer 0x1d288a28: current data -28, length 136, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
  IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7
  ICMP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 254, length 122, checksum 0xa680
    fragment id 0x0000
  ICMP destination_unreachable port_unreachable checksum 0x135b

------------------- Start of thread 2 vpp_wk_1 -------------------
Packet 1

00:04:49:119215: dpdk-input
  FortyGigabitEtherneta/0/1 rx queue 0
  buffer 0x1d292712: current data 0, length 60, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
  PKT MBUF: port 1, nb_segs 1, pkt_len 60
    buf_len 2176, data_len 60, ol_flags 0x180, data_off 128, phys_addr 
0x554d8380
    packet_type 0x691
    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 (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without 
extension headers
      RTE_PTYPE_L4_NONFRAG (0x0600) Non-fragmented IP packet
  IP4: 00:00:22:22:00:00 -> 00:00:11:11:00:00
  unknown 61: 32.0.0.0 -> 16.0.0.0
    tos 0x00, ttl 64, length 46, checksum 0x4a94
    fragment id 0x0000
00:04:49:119239: ethernet-input
  IP4: 00:00:22:22:00:00 -> 00:00:11:11:00:00
00:04:49:119247: l2-input
  l2-input: sw_if_index 2 dst 00:00:11:11:00:00 src 00:00:22:22:00:00
00:04:49:119252: l2-learn
  l2-learn: sw_if_index 2 dst 00:00:11:11:00:00 src 00:00:22:22:00:00 bd_index 0
00:04:49:119255: l2-fwd
  l2-fwd:   sw_if_index 2 dst 00:00:11:11:00:00 src 00:00:22:22:00:00 bd_index 0
00:04:49:119257: l2-flood
  l2-flood: sw_if_index 2 dst 00:00:11:11:00:00 src 00:00:22:22:00:00 bd_index 0
00:04:49:119258: l2-output
  l2-output: sw_if_index 3 dst 00:00:11:11:00:00 src 00:00:22:22:00:00 data 08 
00 45 00 00 2e 00 00 00 00 40 3d
00:04:49:119261: vxlan4-encap
  VXLAN encap to vxlan_tunnel0 vni 101
00:04:49:119264: ip4-load-balance
  fib 3 dpo-idx 10 flow hash: 0x00000000
  UDP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 254, length 96, checksum 0xa68a
    fragment id 0x0000
  UDP: 57494 -> 4789
    length 76, checksum 0x0000
00:04:49:119267: ip4-rewrite
  tx_sw_if_index 1 dpo-idx 2 : ipv4 via 11.0.0.2 FortyGigabitEtherneta/0/0: 
IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7 flow hash: 0x00000000
  IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7
  UDP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 253, length 96, checksum 0xa78a
    fragment id 0x0000
  UDP: 57494 -> 4789
    length 76, checksum 0x0000
00:04:49:119268: FortyGigabitEtherneta/0/0-output
  FortyGigabitEtherneta/0/0
  IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7
  UDP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 253, length 96, checksum 0xa78a
    fragment id 0x0000
  UDP: 57494 -> 4789
    length 76, checksum 0x0000
00:04:49:119268: FortyGigabitEtherneta/0/0-tx
  FortyGigabitEtherneta/0/0 tx queue 2
  buffer 0x1d292712: current data -50, length 110, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
  IP4: 3c:fd:fe:9d:1a:a0 -> 00:00:71:51:52:d7
  UDP: 11.0.0.1 -> 11.0.0.2
    tos 0x00, ttl 253, length 96, checksum 0xa78a
    fragment id 0x0000
  UDP: 57494 -> 4789
    length 76, checksum 0x0000


# Startup - Config:

unix {
  nodaemon
  cli-listen localhost:5002
  startup-config 
/home/cisco/vppcfg-init/vpp-2p1nic40ge-ethip4vxlan-l2bdbasemaclrn-asymmetric.conf
}
cpu {
  main-core 7
  corelist-workers 1,33
}
api-trace { on }
dpdk {
  dev default {
    num-rx-queues 1
  }
  dev 0000:0a:00.0 {
    workers 0
  }
  dev 0000:0a:00.1 {
    workers 1
  }
  socket-mem 8192,8192
  no-multi-seg
  num-mbufs 512000
}

# Init - Config:

set interface state FortyGigabitEtherneta/0/0 up
set interface state FortyGigabitEtherneta/0/1 up

set interface ip address FortyGigabitEtherneta/0/0 11.0.0.1/24

set ip arp FortyGigabitEtherneta/0/0 11.0.0.2 0000.7151.52d7

create vxlan tunnel src 11.0.0.1 dst 11.0.0.2 vni 101

set interface l2 bridge vxlan_tunnel0 0
set interface l2 bridge FortyGigabitEtherneta/0/1 0

set bridge-domain forward 0
set bridge-domain flood 0
set bridge-domain learn 0
set bridge-domain uu-flood 0


# Gerrit bisecting with testing:

#5666 https://gerrit.fd.io/r/#/c/5666/ - Python API: Change from cPython to 
CFFI. (Last version with VXLAN/LISPGPE working)
#5746 https://gerrit.fd.io/r/#/c/5746/ - vlib: make runtime_data thread-local 
(Unable to test - crashing)
#5700 https://gerrit.fd.io/r/#/c/5700/ - vhost: wrong value return for 
VHOST_USER_VRING_GET_BASE (Unable to test - crashing; unlilkely the root cause)
#5765 https://gerrit.fd.io/r/#/c/5765/ - API:replaced all REPLY_MACRO's with 
api_helper_macros.h (Unable to test - crashing)
#5770 https://gerrit.fd.io/r/#/c/5770/ - ping: Fix coverity error 163907 
(Unable to test - crashing; unlilkely the root cause)
#5778 https://gerrit.fd.io/r/#/c/5778/ - vlib: additional runtime_data checks 
(VXLAN/LISPGPE not working)



After investigation I found that configuring VPP without cpu section, it is 
working (looks like thread mapping issue). This is why the CSIT - VIRL was 
passing the tests.

unix {
  nodaemon
  cli-listen localhost:5002
  startup-config 
/home/cisco/vppcfg-init/vpp-2p1nic40ge-ethip4vxlan-l2bdbasemaclrn-asymmetric.conf
}
api-trace { on }
dpdk {
  dev default {
    num-rx-queues 1
  }
  dev 0000:0a:00.0
  dev 0000:0a:00.1
  socket-mem 8192,8192
  no-multi-seg
  num-mbufs 512000
}


Can you please take a look and help?

Thank you.

Peter Mikus
Engineer – Software
Cisco Systems Limited

_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev
  • [vpp-dev] VXLAN m... Peter Mikus -X (pmikus - PANTHEON TECHNOLOGIES at Cisco)
    • Re: [vpp-dev... Damjan Marion (damarion)
      • Re: [vpp... Peter Mikus -X (pmikus - PANTHEON TECHNOLOGIES at Cisco)

Reply via email to