Packets on TUN interfaces do not have MAC headers. You can clearly spot the ip header 0x4500004e in both cases, and the mac header ip4 ethertype 0x0800 (ip4) in the ethernet header case.
Thanks… Dave From: Prerit Jain [mailto:prerit.j...@gmail.com] Sent: Friday, November 18, 2016 9:13 AM To: Dave Barach (dbarach) <dbar...@cisco.com> Cc: vpp-dev@lists.fd.io Subject: Re: [vpp-dev] Fwd: Punting UDP packets to Kernel Yes I saw the packet in tcpdump, however the packets are not getting received on UDP server application. In the tcpdump , the packet does not have the Ethernet header as shown below- Packet sent by external node - 19:42:26.007332 IP 70.1.1.58.commplex-main > 70.1.1.51.ipsec-nat-t: UDP-encap: ESP(spi=0x00001481,seq=0xc5666768), length 50 0x0000: 0004 0001 0006 ecf4 bbd5 68a6 0000 0800 ..........h..... 0x0010: 4500 004e 177b 0000 4011 d4b5 4601 013a E..N.{..@...F<mailto:E..N.%7b..@...F>..: 0x0020: 4601 0133 1388 1194 003a 8eba 0000 1481 F..3.....:...... 0x0030: c566 6768 696a 6b6c 6d6e 6f70 7172 7374 .fghijklmnopqrst 0x0040: 7576 7778 797a 6162 6364 6566 6768 696a uvwxyzabcdefghij 0x0050: 6b6c 6d6e 6f70 7172 7374 7576 77d8 klmnopqrstuvw. Packet received in kernel through tap interface - 01:07:43.343210 IP 70.1.1.58.commplex-main > Dell-Server-51.ipsec-nat-t: UDP-encap: ESP(spi=0x00001301,seq=0x5666768), length 50 0x0000: 4500 004e 1781 0000 4011 d4af 4601 013a 0x0010: 4601 0133 1388 1194 003a ba58 0000 1301 0x0020: 0566 6768 696a 6b6c 6d6e 6f70 7172 7374 0x0030: 7576 7778 797a 6162 6364 6566 6768 696a 0x0040: 6b6c 6d6e 6f70 7172 7374 7576 7718 On Fri, Nov 18, 2016 at 6:52 PM, Dave Barach (dbarach) <dbar...@cisco.com<mailto:dbar...@cisco.com>> wrote: You saw the packets w/ tcpdump, right? Thanks… Dave From: Prerit Jain [mailto:prerit.j...@gmail.com<mailto:prerit.j...@gmail.com>] Sent: Friday, November 18, 2016 8:15 AM To: Dave Barach (dbarach) <dbar...@cisco.com<mailto:dbar...@cisco.com>> Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> Subject: Re: [vpp-dev] Fwd: Punting UDP packets to Kernel You mean that ip4-udp-punt node will directly write to tuntap interface for sending the packet to Kernel. On Fri, Nov 18, 2016 at 5:54 PM, Dave Barach (dbarach) <dbar...@cisco.com<mailto:dbar...@cisco.com>> wrote: Expected behavior. From: vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io> [mailto:vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io>] On Behalf Of Prerit Jain Sent: Friday, November 18, 2016 5:33 AM To: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> Subject: [vpp-dev] Fwd: Punting UDP packets to Kernel Thanks Dave. After adding below code in /etc/vpp/startup.conf tuntap { enable } I am able to capture the packets in kernel using tcpdump. However still the packet flow is terminating in error-punt in trace ... 00:06:52:855592: ip4-local UDP: 70.1.1.58 -> 70.1.1.51 tos 0x00, ttl 64, length 1028, checksum 0xcf79 fragment id 0x1901 UDP: 5000 -> 4500 length 1008, checksum 0x8d26 00:06:52:855592: ip4-udp-lookup UDP: src-port 5000 dst-port 4500 00:06:52:855593: error-punt ip4-udp-punt: udp port punt I do not see the node "tuntap-tx" in trace. While punting packet to kernel, the packet will not pass through "tuntap-tx" ?? On Thu, Nov 17, 2016 at 11:30 PM, Dave Barach (dbarach) <dbar...@cisco.com<mailto:dbar...@cisco.com>> wrote: See .../vnet/vnet/unix/tuntap.c vs. .../vnet/vnet/unix/tapcli.c. Only the tuntap device is capable of punting packets to the linux stack through a tun interface. You picked the wrong one. Note that tuntap must be enabled explicitly from the vpp command line. Thanks… Dave From: vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io> [mailto:vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io>] On Behalf Of Prerit Jain Sent: Thursday, November 17, 2016 7:08 AM To: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> Subject: [vpp-dev] Punting UDP packets to Kernel I want to send UDP packets with port 4500 to Kernel. For that I send UDP packets from external interface (70.1.1.58:port 5000) to VPP host (70.1.1.51<http://70.1.1.51>: 4500) and did below configuration. Set up the punt environment- set punt udp 4500 Created the tap interface - tap connect tap-0 In the below capture VPP trace, the packet are not going beyond the node (ip4-udp-punt) to kernel. 00:06:52:855590: dpdk-input GigabitEthernet1/0/2 rx queue 0 buffer 0x174fcf: current data 14, length 1028, free-list 0, totlen-nifb 0, trace 0x9 PKT MBUF: port 0, nb_segs 1, pkt_len 1042 buf_len 2176, data_len 1042, ol_flags 0x0, data_off 128, phys_addr 0xd753b2c0 packet_type 0x211 Packet Types RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers RTE_PTYPE_L4_UDP (0x0200) UDP packet IP4: ec:f4:bb:d5:68:a6 -> ec:f4:bb:c4:4d:46 UDP: 70.1.1.58 -> 70.1.1.51 tos 0x00, ttl 64, length 1028, checksum 0xcf79 fragment id 0x1901 UDP: 5000 -> 4500 length 1008, checksum 0x8d26 00:06:52:855591: ip4-input-no-checksum UDP: 70.1.1.58 -> 70.1.1.51 tos 0x00, ttl 64, length 1028, checksum 0xcf79 fragment id 0x1901 UDP: 5000 -> 4500 length 1008, checksum 0x8d26 00:06:52:855592: ip4-lookup fib 0 dpo-idx 5 flow hash: 0x00000000 UDP: 70.1.1.58 -> 70.1.1.51 tos 0x00, ttl 64, length 1028, checksum 0xcf79 fragment id 0x1901 UDP: 5000 -> 4500 length 1008, checksum 0x8d26 00:06:52:855592: ip4-local UDP: 70.1.1.58 -> 70.1.1.51 tos 0x00, ttl 64, length 1028, checksum 0xcf79 fragment id 0x1901 UDP: 5000 -> 4500 length 1008, checksum 0x8d26 00:06:52:855592: ip4-udp-lookup UDP: src-port 5000 dst-port 4500 00:06:52:855593: error-punt ip4-udp-punt: udp port punt
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev