Hi All,

We recently started using the VPP's mpls tunnel constructs for our L2 cross
connect application. In certain test scenarios we are seeing a crash in the
delete path of the mpls tunnel.
Any pointers to fix the issue would be really helpful.

Version: *20.09*
Call Stack:

Thread 1 (Thread 0x7f854cdd3400 (LWP 14261)):

#0  0x00007f854c41b492 in __GI___waitpid (pid=21116,
stat_loc=stat_loc@entry=0x7f84f79abc28, options=options@entry=0) at
../sysdeps/unix/sysv/linux/waitpid.c:30
#1  0x00007f854c386177 in do_system (line=<optimized out>) at
../sysdeps/posix/system.c:149
#2  0x00007f854c96918d in bd_signal_handler_cb () from
/usr/local/lib/libbd-infra.so
#3  0x00007f853db8953f in rtb_bd_signal_handler () from
/usr/local/lib/libvlib.so.1.0.1
#4  0x00007f853db899a2 in unix_signal_handler () from
/usr/local/lib/libvlib.so.1.0.1
#5  <signal handler called>
#6  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#7  0x00007f854c377921 in __GI_abort () at abort.c:79
#8  0x00007f853f58a9e3 in os_panic () from /usr/local/lib/librtbvpp.so
#9  0x00007f853d35aaa9 in ?? () from /usr/local/lib/libvppinfra.so.1.0.1
#10 0x00007f853d35a827 in _clib_error () from
/usr/local/lib/libvppinfra.so.1.0.1
#11 0x00007f853ecb2d75 in ?? () from /usr/local/lib/libvnet.so.1.0.1
#12 0x00007f853ecb302d in fib_path_list_get_n_paths () from
/usr/local/lib/libvnet.so.1.0.1
#13 0x00007f853e8f0b5c in ?? () from /usr/local/lib/libvnet.so.1.0.1
#14 0x00007f853e8ef942 in ?? () from /usr/local/lib/libvnet.so.1.0.1
#15 0x00007f853e8ed51a in ?? () from /usr/local/lib/libvnet.so.1.0.1
#16 0x00007f853e2e9e1a in ?? () from /usr/local/lib/libvnet.so.1.0.1
#17 0x00007f853e2ea0e8 in vnet_sw_interface_set_flags () from
/usr/local/lib/libvnet.so.1.0.1
#18 0x00007f853e2eb6e4 in vnet_delete_sw_interface () from
/usr/local/lib/libvnet.so.1.0.1
#19 0x00007f853e2eede9 in vnet_delete_hw_interface () from
/usr/local/lib/libvnet.so.1.0.1
#20 0x00007f853e8ee368 in vnet_mpls_tunnel_del () from
/usr/local/lib/libvnet.so.1.0.1
#21 0x00007f853f74535a in rtb_vpp_l2_xconnect_route_del_handle () from
/usr/local/lib/librtbvpp.so
#22 0x00007f853f7453fa in rtb_vpp_l2_xconnect_route_handle () from
/usr/local/lib/librtbvpp.so
#23 0x00007f853f69551b in rtb_vpp_route_mapping_process () from
/usr/local/lib/librtbvpp.so
#24 0x00007f853f696a67 in rtb_vpp_route_adjacency_handle () from
/usr/local/lib/librtbvpp.so
#25 0x00007f853f696d22 in rtb_vpp_route_api_out_process () from
/usr/local/lib/librtbvpp.so
#26 0x00007f85406b3975 in fib_route_api_out_del () from
/usr/local/lib/libfibd.so
#27 0x00007f85406b3a83 in fib_route_api_out_tbl_vpp_wlk () from
/usr/local/lib/libfibd.so
#28 0x00007f85406a550b in fib_job_tmr_cb () from /usr/local/lib/libfibd.so
#29 0x00007f854b27e6c2 in bds_qrunner_dispatch () from /usr/local/lib/libbds.so
#30 0x00007f854b27f77c in bds_qrunner_dispatch_type () from
/usr/local/lib/libbds.so
#31 0x00007f854b27f9aa in bds_qrunner_dispatch_prepare () from
/usr/local/lib/libbds.so
#32 0x00007f854b27faa8 in bds_qrunner_expire () from /usr/local/lib/libbds.so
#33 0x00007f854a67f616 in ?? () from /usr/local/lib/libqb.so
#34 0x00007f854a67cfa7 in ?? () from /usr/local/lib/libqb.so
#35 0x00007f854a67d797 in qb_loop_run_vpp_wrapper () from
/usr/local/lib/libqb.so
#36 0x00007f854a6890e8 in lib_qb_service_start_event_wrapper_loop ()
from /usr/local/lib/libqb.so
#37 0x00007f854c96b262 in bd_event_loop_run_once () from
/usr/local/lib/libbd-infra.so
#38 0x00007f85060444f8 in ?? () from
/usr/local/lib/vpp_plugins/rtbrick_plugin.so
#39 0x00007f853db058dd in ?? () from /usr/local/lib/libvlib.so.1.0.1
#40 0x00007f853d37ec34 in clib_calljmp () from
/usr/local/lib/libvppinfra.so.1.0.1
#41 0x00007f85255f7a10 in ?? ()
#42 0x00007f853db0531f in ?? () from /usr/local/lib/libvlib.so.1.0.1

Code Snippet for Creating Tunnel (rpath has the out-labels and  nexthop):


          vec_add1(rpaths, rpath);
          tunnel_sw_if_index = vnet_mpls_tunnel_create(1, 0, NULL);
          vnet_mpls_tunnel_path_add(tunnel_sw_if_index, rpaths);
          vnet_sw_interface_admin_up(vnm, tunnel_sw_if_index);


Code Snippet for Deleting Tunnel.

         vec_add1(rpaths, rpath);
         vnet_mpls_tunnel_path_remove(sw_if_index, rpaths);
         vec_free(rpaths);
         vnet_mpls_tunnel_del(sw_if_index);


Thanks,
Rajith

-- 
NOTICE TO
RECIPIENT This e-mail message and any attachments are 
confidential and may be
privileged. If you received this e-mail in error, 
any review, use,
dissemination, distribution, or copying of this e-mail is 
strictly
prohibited. Please notify us immediately of the error by return 
e-mail and
please delete this message from your system. For more 
information about Rtbrick, please visit us at www.rtbrick.com 
<http://www.rtbrick.com>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#20125): https://lists.fd.io/g/vpp-dev/message/20125
Mute This Topic: https://lists.fd.io/mt/85599060/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to