Did you notice how many nodes set .n_next_nodes = IP_LOCAL_N_NEXT? Go do something about ip6_local_node, or better yet: use vlib_node_add_next(..) to add an arc from ip4_local_node to ethernet-input...
D. From: xulang <xlang...@163.com> Sent: Friday, May 25, 2018 11:15 PM To: Dave Barach (dbarach) <dbar...@cisco.com> Cc: vpp-dev@lists.fd.io Subject: Re:RE: [vpp-dev] new next_node caused Segmentation fault yeah, ~0 is not right, but I only changed "ip_local_next_t" and "VLIB_REGISTER_NODE (ip4_local_node)" This is backtrace. (gdb) bt #0 0x00007ffff776e73d in vlib_get_node (i=4294967295, vm=0x7ffff79aa2a0 <vlib_global_main>) at /home/wangzy/VBRASV100R001_new_trunk/vpp1704/build-data/../src/vlib/node_funcs.h:60 #1 vlib_node_main_init (vm=0x7ffff79aa2a0 <vlib_global_main>) at /home/wangzy/VBRASV100R001_new_trunk/vpp1704/build-data/../src/vlib/node.c:607 #2 0x00007ffff7757a1a in vlib_main ( vm=vm@entry=0x7ffff79aa2a0 <vlib_global_main>, input=input@entry=0x7fffaec1efa0) at /home/wangzy/VBRASV100R001_new_trunk/vpp1704/build-data/../src/vlib/main.c:1694 #3 0x00007ffff7790f23 in thread0 (arg=140737347494560) at /home/wangzy/VBRASV100R001_new_trunk/vpp1704/build-data/../src/vlib/unix/main.c:507 #4 0x00007fffefe1def0 in clib_calljmp () at /home/wangzy/VBRASV100R001_new_trunk/vpp1704/build-data/../src/vppinfra/longjmp.S:110 #5 0x00007fffffffcc70 in ?? () #6 0x00007ffff779193d in vlib_unix_main (argc=<optimized out>, argv=<optimized out>) at /home/wangzy/VBRASV100R001_new_trunk/vpp1704/build-data/../src/vlib/unix/main.c:606 ---Type <return> to continue, or q <return> to quit--- #7 0x8d48b63c8d48f263 in ?? () #8 0x894cb1348d497e34 in ?? () #9 0x894c08408b4c1c46 in ?? () #10 0x8b4418408b4c2446 in ?? () #11 0x89442c46894c2050 in ?? () #12 0x50893446894c3c56 in ?? () #13 0x1030054801c18328 in ?? () #14 0x76744c244c3b0000 in ?? () #15 0xeff0b08ba874c985 in ?? () Regards At 2018-05-25 20:14:17, "Dave Barach (dbarach)" <dbar...@cisco.com<mailto:dbar...@cisco.com>> wrote: You're either passing ~0 to vlib_get_node - or causing the infra to do so - which can't possibly work: vlib_get_node (i=4294967295, vm=0x7ffff79aa2a0 <vlib_global_main>) You didn't send a full backtrace so there's nothing more I can do to help. D> From: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>> On Behalf Of xulang Sent: Friday, May 25, 2018 5:27 AM To: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> Subject: [vpp-dev] new next_node caused Segmentation fault Hi all, I tried to add a new next node to the node "ip4_local_node", but which caused a segmentation fault, is there something I have missed? typedef enum { IP_LOCAL_NEXT_DROP, IP_LOCAL_NEXT_PUNT, IP_LOCAL_NEXT_UDP_LOOKUP, IP_LOCAL_NEXT_ICMP, IP_LOCAL_NEXT_CAPWAP, IP_LOCAL_N_NEXT, } ip_local_next_t; VLIB_REGISTER_NODE (ip4_local_node) = { .function = ip4_local, .name = "ip4-local", .vector_size = sizeof (u32), .format_trace = format_ip4_forward_next_trace, .n_next_nodes = IP_LOCAL_N_NEXT, .next_nodes = { [IP_LOCAL_NEXT_DROP] = "error-drop", [IP_LOCAL_NEXT_PUNT] = "error-punt", [IP_LOCAL_NEXT_UDP_LOOKUP] = "ip4-udp-lookup", [IP_LOCAL_NEXT_ICMP] = "ip4-icmp-input", [IP_LOCAL_NEXT_CAPWAP] = "ethernet-input", }, (gdb) run -c /etc/vpp/startup.conf Starting program: /usr/bin/vpp -c /etc/vpp/startup.conf [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffae81d700 (LWP 118617)] vlib_plugin_early_init:360: plugin path /usr/lib/vpp_plugins load_one_plugin:188: Loaded plugin: acl_plugin.so (Access Control Lists) load_one_plugin:188: Loaded plugin: dpdk_plugin.so (Data Plane Development Kit (DPDK)) load_one_plugin:188: Loaded plugin: flowperpkt_plugin.so (Flow per Packet) load_one_plugin:188: Loaded plugin: ila_plugin.so (Identifier-locator addressing for IPv6) load_one_plugin:188: Loaded plugin: ioam_plugin.so (Inbound OAM) load_one_plugin:114: Plugin disabled (default): ixge_plugin.so load_one_plugin:188: Loaded plugin: lb_plugin.so (Load Balancer) load_one_plugin:188: Loaded plugin: libsixrd_plugin.so (IPv6 Rapid Deployment on IPv4 Infrastructure (RFC5969)) load_one_plugin:188: Loaded plugin: memif_plugin.so (Packet Memory Interface (experimetal)) load_one_plugin:188: Loaded plugin: snat_plugin.so (Network Address Translation) Thread 1 "vpp" received signal SIGSEGV, Segmentation fault. 0x00007ffff776e73d in vlib_get_node (i=4294967295, vm=0x7ffff79aa2a0 <vlib_global_main>) at /home/wangzy/VBRASV100R001_new_trunk/vpp1704/build-data/../src/vlib/node_funcs.h:60 60 return vec_elt (vm->node_main.nodes, i); (gdb) Regards