Hi Prerit, vnet_get_config_data() finds the next node based on the input features configured on the interface. Depending on what version of code you are running, you can see the input features using something like; sh [ip] int features <INTERFACE>
If your tap interface shows only ip4-drop as an input feature then it is not enabled to RX IP traffic. To enable it, either give the interface an IP address, or make it unnumbered. Regards, Neale From: <vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io>> on behalf of Prerit Jain <prerit.j...@gmail.com<mailto:prerit.j...@gmail.com>> Date: Tuesday, 22 November 2016 at 12:47 To: "vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>" <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>> Subject: Re: [vpp-dev] Fwd: Punting UDP packets to Kernel Hi, Thanks for the help. Now I am receiving the UDP punt packets in the UDP application running on Linux. However I am not able to send back the packets from UDP applications, the packets are getting dropped on VPP. Below is the trace - vpp> trace add tuntap-rx 10 00:02:49:998097: ip4-input-no-checksum UDP: 70.1.1.51 -> 70.1.1.58 tos 0x00, ttl 64, length 128, checksum 0x7596 fragment id 0x7668 UDP: 50000 -> 5000 length 108, checksum 0xec09 00:02:49:998098: ip4-drop UDP: 70.1.1.51 -> 70.1.1.58 tos 0x00, ttl 64, length 128, checksum 0x7596 fragment id 0x7668 UDP: 50000 -> 5000 length 108, checksum 0xec09 00:02:49:998099: error-drop ip4-input: ip4 adjacency drop I browsed the code of ip4_input_inline and found that next0 value is always filled as 5 in below function. #define vlib_validate_buffer_enqueue_x1(vm,node,next_index,to_next,n_left_to_next,bi0,next0) next0(5) means ip4_drop :- ip4-input-no-checksum error-drop [0] tuntap-rx error-punt [1] tapcli-rx ip4-lookup [2] dpdk-input ip4-lookup-multicast [3] handoff-dispatch ip4-icmp-error [4] ip4-drop [5] next0 variable is filled as 5 by the function vnet_get_config_data. Please let me know what is the purpose of net_get_config_data and how it determines the next node?? Regards Prerit On Fri, Nov 18, 2016 at 8:21 PM, John Lo (loj) <l...@cisco.com<mailto:l...@cisco.com>> wrote: The tuntap-tx node in VPP does not save any data to support packet trace. That’s why you do see any packet trace after error-punt. -John 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 Dave Barach (dbarach) Sent: Friday, November 18, 2016 8:23 AM To: Prerit Jain <prerit.j...@gmail.com<mailto:prerit.j...@gmail.com>> Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> Subject: Re: [vpp-dev] Fwd: Punting UDP packets to Kernel You saw the packets w/ tcpdump, right? Thanks… Dave From: Prerit Jain [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