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







Reply via email to