-
Bug
-
Resolution: Done
-
Medium
-
None
-
None
-
None
I've created topology (using docker) with two nodes. On both there is configured bridge domain (loopback and memif). Ping from one node shutdown vpp (and docker also).
IMPORTANT NOTE:
Created loopbacks and memifs (from example below) have to be set up before adding to bridge domain !
BTW, using ip4 addresses work
BACKTRACE:
Core was generated by `/opt/vpp-agent/dev/vpp/build-root/install-vpp-native/vpp/bin/vpp -c /etc/vpp/vp'.
Program terminated with signal SIGABRT, Aborted.
#0 0x00007f2ff7e1b428 in raise () from /lib/x86_64-linux-gnu/libc.so.6
[Current thread is 1 (Thread 0x7f2ff9b29740 (LWP 11))]
(gdb) bt
#0 0x00007f2ff7e1b428 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f2ff7e1d02a in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x0000563b3d4b9943 in os_panic () at /opt/vpp-agent/dev/vpp/build-data/../src/vpp/vnet/main.c:310
#3 0x00007f2ff863176a in clib_mem_alloc_aligned_at_offset (os_out_of_memory_on_failure=1, align_offset=<optimized out>, align=4, size=853040880)
at /opt/vpp-agent/dev/vpp/build-data/../src/vppinfra/mem.h:105
#4 vec_resize_allocate_memory (v=<optimized out>, length_increment=length_increment@entry=1, data_bytes=<optimized out>, header_bytes=<optimized out>, header_bytes@entry=0,
data_align=data_align@entry=4) at /opt/vpp-agent/dev/vpp/build-data/../src/vppinfra/vec.c:84
#5 0x00007f2ff9491174 in _vec_resize_inline (data_align=<optimized out>, header_bytes=<optimized out>, data_bytes=<optimized out>, length_increment=<optimized out>, v=<optimized out>)
at /opt/vpp-agent/dev/vpp/build-data/../src/vppinfra/vec.h:145
#6 vlib_put_next_frame (vm=vm@entry=0x7f2ff96e7f80 <vlib_global_main>, r=r@entry=0x7f2fb79edc80, next_index=next_index@entry=3, n_vectors_left=n_vectors_left@entry=255)
at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/main.c:501
#7 0x00007f2ff8b9005e in ethernet_input_inline (variant=ETHERNET_INPUT_VARIANT_ETHERNET, from_frame=0x7f2fb7601280, node=0x7f2fb79edc80, vm=<optimized out>)
at /opt/vpp-agent/dev/vpp/build-data/../src/vnet/ethernet/node.c:754
#8 ethernet_input (from_frame=0x7f2fb7601280, node=0x7f2fb79edc80, vm=<optimized out>) at /opt/vpp-agent/dev/vpp/build-data/../src/vnet/ethernet/node.c:774
#9 ethernet_input_avx2 (vm=0x7f2ff96e7f80 <vlib_global_main>, node=0x7f2fb79edc80, frame=0x7f2fb7601280) at /opt/vpp-agent/dev/vpp/build-data/../src/vnet/ethernet/node.c:1168
#10 0x00007f2ff9491334 in dispatch_node (last_time_stamp=295603116948830, frame=0x7f2fb7601280, dispatch_state=VLIB_NODE_STATE_POLLING, type=VLIB_NODE_TYPE_INTERNAL,
node=0x7f2fb79edc80, vm=0x7f2ff96e7f80 <vlib_global_main>) at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/main.c:988
#11 dispatch_pending_node (vm=vm@entry=0x7f2ff96e7f80 <vlib_global_main>, pending_frame_index=pending_frame_index@entry=47391158, last_time_stamp=last_time_stamp@entry=295603116948830)
at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/main.c:1138
#12 0x00007f2ff9492dbe in vlib_main_or_worker_loop (is_main=1, vm=0x7f2ff96e7f80 <vlib_global_main>) at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/main.c:1616
#13 vlib_main_loop (vm=0x7f2ff96e7f80 <vlib_global_main>) at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/main.c:1635
#14 vlib_main (vm=vm@entry=0x7f2ff96e7f80 <vlib_global_main>, input=input@entry=0x7f2fb8091fa0) at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/main.c:1826
#15 0x00007f2ff94caac3 in thread0 (arg=139844024958848) at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/unix/main.c:568
#16 0x00007f2ff85fb5d8 in clib_calljmp () at /opt/vpp-agent/dev/vpp/build-data/../src/vppinfra/longjmp.S:110
#17 0x00007ffd0d1fb3a0 in ?? ()
#18 0x00007f2ff94cb81a in vlib_unix_main (argc=<optimized out>, argv=<optimized out>) at /opt/vpp-agent/dev/vpp/build-data/../src/vlib/unix/main.c:632
#19 0x0000001100000000 in ?? ()
#20 0x0000004000000018 in ?? ()
STEPS to reproduce:
1) create two nodes with running vpp with config
unix
plugins {
plugin dpdk_plugin.so
}
2) Setup loopback & memif on node1:
binary-api create_loopback mac 8a:f1:be:90:00:00
binary-api memif_socket_filename_add_del add id 1 filename /tmp/memif_1_2.sock
binary-api memif_create id 1 socket-id 1 master
set int ip address loop0 fd30::1:b:0:0:1/64
set interface state loop0 up
set interface state memif1/1 up
3) Setup loopback & memif on node2:
binary-api create_loopback mac 8a:f1:be:90:00:01
binary-api memif_socket_filename_add_del add id 1 filename /tmp/memif_1_2.sock
binary-api memif_create id 1 socket-id 1 slave
set int ip address loop0 fd30::1:b:0:0:2/64
set interface state loop0 up
set interface state memif1/1 up
4) Setup bridge domain on both nodes:
create bridge-domain 1 arp-term 1
set interface l2 bridge loop0 1 bvi
set interface l2 bridge memif1/1 1
5) Ping from node1 to node2:
ping fd30::1:b:0:0:2 repeat 2