Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp

2020-01-21 Thread Segey Yelantsev
Hi Neale, Thank you - adding interface to a specific table worked! 15.01.2020, 21:26, "Neale Ranns via Lists.Fd.Io" : Hi Sergey, It would work if your gre interface were also in the non-default table, i.e.  set int ip table 10 gre0 /neale From: Segey Yelantsev <elantse...@yandex.ru>Date: Thursday 16 January 2020 at 02:16To: "Neale Ranns (nranns)" <nra...@cisco.com>, "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>Subject: Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp Hi! 2Neale: my scenario is taking MPLS traffic, routing it to a specific ip table based on MPLS label. Then IP packets should be routed within that specific table with some routes pointing to virtual devices, including a default. The backtrace and reason for firing assert is the same as in this gre scenario. And it works for table 0, but I wonder why it doesn't work for a non-zero ip table. Unfotunately, Aleksander's patch did not help:```DBGvpp# ip table add 10DBGvpp# create gre tunnel src 1.1.1.1 dst 2.2.2.2gre0DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0DBGvpp# sh ip fib table 10 0.0.0.0/0ipv4-VRF:10, fib_index:1, flow hash:[src dst sport dport proto ] epoch:0 flags:none locks:[CLI:1, ]0.0.0.0/0 fib:1 index:7 locks:3CLI refs:1 entry-flags:attached,import, src-flags:added,contributing,active,path-list:[16] locks:2 flags:shared, uPRF-list:12 len:1 itfs:[1, ]path:[16] pl-index:16 ip4 weight=1 pref=0 attached:gre0 default-route refs:1 entry-flags:drop, src-flags:added,path-list:[11] locks:1 flags:drop, uPRF-list:7 len:0 itfs:[]path:[11] pl-index:11 ip4 weight=1 pref=0 special: cfg-flags:drop,[@0]: dpo-drop ip4 forwarding: unicast-ip4-chain[@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:12 to:[0:0]][0] [@0]: dpo-drop ip4DBGvpp# ip route del 0.0.0.0/0 table 10 via gre0/home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367 (fib_attached_export_purge) assertion `NULL != fed' fails Thread 1 "vpp_main" received signal SIGABRT, Aborted.__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:5151 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.(gdb) bt#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51#1 0x75ac9801 in __GI_abort () at abort.c:79#2 0xbe0b in os_panic () at /home/elantsev/vpp/src/vpp/vnet/main.c:355#3 0x75eacde9 in debugger () at /home/elantsev/vpp/src/vppinfra/error.c:84#4 0x75ead1b8 in _clib_error (how_to_die=2, function_name=0x0, line_number=0, fmt=0x77743bb8 "%s:%d (%s) assertion `%s' fails") at /home/elantsev/vpp/src/vppinfra/error.c:143#5 0x774cbbe9 in fib_attached_export_purge (fib_entry=0x7fffb83886b0) at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367#6 0x774919de in fib_entry_post_flag_update_actions (fib_entry=0x7fffb83886b0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674#7 0x77491a3c in fib_entry_post_install_actions (fib_entry=0x7fffb83886b0, source=FIB_SOURCE_DEFAULT_ROUTE, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709#8 0x77491d78 in fib_entry_post_update_actions (fib_entry=0x7fffb83886b0, source=FIB_SOURCE_DEFAULT_ROUTE, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804#9 0x774923f9 in fib_entry_source_removed (fib_entry=0x7fffb83886b0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:992#10 0x774925e7 in fib_entry_path_remove (fib_entry_index=7, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a34b0) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072#11 0x7747980b in fib_table_entry_path_remove2 (fib_index=1, prefix=0x7fffb8382b00, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a34b0) at /home/elantsev/vpp/src/vnet/fib/fib_table.c:680#12 0x76fb870c in vnet_ip_route_cmd (vm=0x766b6680 , main_input=0x7fffb8382f00, cmd=0x7fffb50373b8) at /home/elantsev/vpp/src/vnet/ip/lookup.c:449#13 0x763d402f in vlib_cli_dispatch_sub_commands (vm=0x766b6680 , cm=0x766b68b0 , input=0x7fffb8382f00, parent_command_index=431)at /home/elantsev/vpp/src/vlib/cli.c:568#14 0x763d3ead in vlib_cli_dispatch_sub_commands (vm=0x766b6680 , cm=0x766b68b0 , input=0x7fffb8382f00, parent_command_index=0)at /home/elantsev/vpp/src/vlib/cli.c:528#15 0x763d4434 in vlib_cli_input (vm=0x766b6680 , input=0x7fffb8382f00, function=0x7646dc89 , function_arg=0) at /home/elantsev/vpp/src/vlib/cli.c:667#16 0x7647476d in unix_cli_process_input (cm=0x766b7020 , cli_file_index=0) at /home/elantsev/vpp/src/vlib/unix/cli.c:2572#17 0x7647540e in unix_cli_process (vm=0x766b6680 , rt=0x7fffb8342000, f=0x0) at /home/elantsev/vpp/src/vlib/unix/cli.c:2688#18 0x764161d4 in vlib_process_bootstra

Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp

2020-01-15 Thread Neale Ranns via Lists.Fd.Io

Hi Sergey,

It would work if your gre interface were also in the non-default table, i.e.
  set int ip table 10 gre0

/neale

From: Segey Yelantsev 
Date: Thursday 16 January 2020 at 02:16
To: "Neale Ranns (nranns)" , "vpp-dev@lists.fd.io" 

Subject: Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface 
#vpp

Hi!

2Neale: my scenario is taking MPLS traffic, routing it to a specific ip table 
based on MPLS label. Then IP packets should be routed within that specific 
table with some routes pointing to virtual devices, including a default. The 
backtrace and reason for firing assert is the same as in this gre scenario. And 
it works for table 0, but I wonder why it doesn't work for a non-zero ip table.

Unfotunately, Aleksander's patch did not help:
```
DBGvpp# ip table add 10
DBGvpp# create gre tunnel src 1.1.1.1 dst 2.2.2.2
gre0
DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0
DBGvpp# sh ip fib table 10 0.0.0.0/0
ipv4-VRF:10, fib_index:1, flow hash:[src dst sport dport proto ] epoch:0 
flags:none locks:[CLI:1, ]
0.0.0.0/0 fib:1 index:7 locks:3
CLI refs:1 entry-flags:attached,import, src-flags:added,contributing,active,
path-list:[16] locks:2 flags:shared, uPRF-list:12 len:1 itfs:[1, ]
path:[16] pl-index:16 ip4 weight=1 pref=0 attached:
gre0

default-route refs:1 entry-flags:drop, src-flags:added,
path-list:[11] locks:1 flags:drop, uPRF-list:7 len:0 itfs:[]
path:[11] pl-index:11 ip4 weight=1 pref=0 special: cfg-flags:drop,
[@0]: dpo-drop ip4

forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:12 to:[0:0]]
[0] [@0]: dpo-drop ip4
DBGvpp# ip route del 0.0.0.0/0 table 10 via gre0
/home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367 
(fib_attached_export_purge) assertion `NULL != fed' fails

Thread 1 "vpp_main" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x75ac9801 in __GI_abort () at abort.c:79
#2 0xbe0b in os_panic () at 
/home/elantsev/vpp/src/vpp/vnet/main.c:355
#3 0x75eacde9 in debugger () at 
/home/elantsev/vpp/src/vppinfra/error.c:84
#4 0x75ead1b8 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x77743bb8 "%s:%d (%s) assertion `%s' fails") at 
/home/elantsev/vpp/src/vppinfra/error.c:143
#5 0x774cbbe9 in fib_attached_export_purge (fib_entry=0x7fffb83886b0) 
at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367
#6 0x774919de in fib_entry_post_flag_update_actions 
(fib_entry=0x7fffb83886b0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | 
FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674
#7 0x77491a3c in fib_entry_post_install_actions 
(fib_entry=0x7fffb83886b0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))
at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709
#8 0x77491d78 in fib_entry_post_update_actions 
(fib_entry=0x7fffb83886b0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))
at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804
#9 0x774923f9 in fib_entry_source_removed (fib_entry=0x7fffb83886b0, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:992
#10 0x774925e7 in fib_entry_path_remove (fib_entry_index=7, 
source=FIB_SOURCE_CLI, rpaths=0x7fffb83a34b0) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072
#11 0x7747980b in fib_table_entry_path_remove2 (fib_index=1, 
prefix=0x7fffb8382b00, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a34b0) at 
/home/elantsev/vpp/src/vnet/fib/fib_table.c:680
#12 0x76fb870c in vnet_ip_route_cmd (vm=0x766b6680 
, main_input=0x7fffb8382f00, cmd=0x7fffb50373b8) at 
/home/elantsev/vpp/src/vnet/ip/lookup.c:449
#13 0x763d402f in vlib_cli_dispatch_sub_commands (vm=0x766b6680 
, cm=0x766b68b0 , 
input=0x7fffb8382f00, parent_command_index=431)
at /home/elantsev/vpp/src/vlib/cli.c:568
#14 0x763d3ead in vlib_cli_dispatch_sub_commands (vm=0x766b6680 
, cm=0x766b68b0 , 
input=0x7fffb8382f00, parent_command_index=0)
at /home/elantsev/vpp/src/vlib/cli.c:528
#15 0x763d4434 in vlib_cli_input (vm=0x766b6680 , 
input=0x7fffb8382f00, function=0x7646dc89 , 
function_arg=0) at /home/elantsev/vpp/src/vlib/cli.c:667
#16 0x7647476d in unix_cli_process_input (cm=0x766b7020 
, cli_file_index=0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2572
#17 0x7647540e in unix_cli_process (vm=0x766b6680 
, rt=0x7fffb8342000, f=0x0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2688
#18 0x764161d4 in vlib_process_bootstrap (_a=140736272894320) at 
/home/elantsev/vpp/src/vlib/main.c:1475
#19 0x75eccfbc in clib_calljmp () at 
/home/ela

Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp

2020-01-15 Thread Segey Yelantsev
/0 table 10 via gre0 Says “all destinations in table 10 are reachable via an interface in table 0”. It implies therefore that all addresses in table 10 refer to the same device in table 0, i.e. there is no difference, or separation, between table 10 and 0. In other words it’s not something one normally does  What’s your use case for this config? Thanks,Neale  From: <vpp-dev@lists.fd.io> on behalf of "elantse...@yandex.ru" <elantse...@yandex.ru>Date: Tuesday 14 January 2020 at 17:35To: "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>Subject: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp Hello Everyone!I've encountered an issue with deleting route to 0.0.0.0/0 via some virtual interface: vpp crashed with a SIGABRT. This issue can be reproduced with gre interface on the current master 1c6486f7b8a00a1358d5c8f4ea1d874073bbcd6c:DBGvpp# ip table add 10DBGvpp# create gre tunnel src 1.1.1.1 dst 2.2.2.2gre0 DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0DBGvpp# sh ip fib table 10ipv4-VRF:10, fib_index:1, flow hash:[src dst sport dport proto ] epoch:0 flags:none locks:[CLI:1, ]0.0.0.0/0  unicast-ip4-chain  [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:12 to:[0:0]]    [0] [@0]: dpo-drop ip40.0.0.0/32  unicast-ip4-chain  [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:8 to:[0:0]]    [0] [@0]: dpo-drop ip4224.0.0.0/4  unicast-ip4-chain  [@0]: dpo-load-balance: [proto:ip4 index:12 buckets:1 uRPF:10 to:[0:0]]    [0] [@0]: dpo-drop ip4240.0.0.0/4  unicast-ip4-chain  [@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:9 to:[0:0]]    [0] [@0]: dpo-drop ip4255.255.255.255/32  unicast-ip4-chain  [@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:11 to:[0:0]]    [0] [@0]: dpo-drop ip4 /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367 (fib_attached_export_purge) assertion `NULL != fed' fails Thread 1 "vpp_main" received signal SIGABRT, Aborted.__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:5151   ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51#1  0x75ac9801 in __GI_abort () at abort.c:79#2  0xbe0b in os_panic () at /home/elantsev/vpp/src/vpp/vnet/main.c:355#3  0x75eacde9 in debugger () at /home/elantsev/vpp/src/vppinfra/error.c:84#4  0x75ead1b8 in _clib_error (how_to_die=2, function_name=0x0, line_number=0, fmt=0x77743bb8 "%s:%d (%s) assertion `%s' fails") at /home/elantsev/vpp/src/vppinfra/error.c:143#5  0x774cbbe0 in fib_attached_export_purge (fib_entry=0x7fffb4bd2dd0) at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367#6  0x774919de in fib_entry_post_flag_update_actions (fib_entry=0x7fffb4bd2dd0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674#7  0x77491a3c in fib_entry_post_install_actions (fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))    at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709#8  0x77491d78 in fib_entry_post_update_actions (fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))    at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804#9  0x774923f9 in fib_entry_source_removed (fib_entry=0x7fffb4bd2dd0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:992#10 0x774925e7 in fib_entry_path_remove (fib_entry_index=7, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072#11 0x7747980b in fib_table_entry_path_remove2 (fib_index=1, prefix=0x7fffb8382b00, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at /home/elantsev/vpp/src/vnet/fib/fib_table.c:680#12 0x76fb870c in vnet_ip_route_cmd (vm=0x766b6680 , main_input=0x7fffb8382f00, cmd=0x7fffb50373b8) at /home/elantsev/vpp/src/vnet/ip/lookup.c:449#13 0x763d402f in vlib_cli_dispatch_sub_commands (vm=0x766b6680 , cm=0x766b68b0 , input=0x7fffb8382f00, parent_command_index=431)    at /home/elantsev/vpp/src/vlib/cli.c:568#14 0x763d3ead in vlib_cli_dispatch_sub_commands (vm=0x766b6680 , cm=0x766b68b0 , input=0x7fffb8382f00, parent_command_index=0)    at /home/elantsev/vpp/src/vlib/cli.c:528#15 0x763d4434 in vlib_cli_input (vm=0x766b6680 , input=0x7fffb8382f00, function=0x7646dc89 , function_arg=0) at /home/elantsev/vpp/src/vlib/cli.c:667#16 0x7647476d in unix_cli_process_input (cm=0x766b7020 , cli_file_index=0) at /home/elantsev/vpp/src/vlib/unix/cli.c:2572#17 0x7647540e in unix_cli_process (vm=0x766b6680 , rt=0x7fffb8342000, f=0x0) at /home/elantsev/vpp/src/vlib/unix/cli.c:2688#18 0x764161d4 in vlib_process_bootstrap (_a=140736272894320) at /home/elantsev/vpp

Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp

2020-01-15 Thread Aleksander Djuric
Hi!

Probably this patch can help:
https://gerrit.fd.io/r/c/vpp/+/24341

Regards
---
Aleksander
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#15180): https://lists.fd.io/g/vpp-dev/message/15180
Mute This Topic: https://lists.fd.io/mt/69689561/21656
Mute #vpp: https://lists.fd.io/mk?hashtag=vpp=1480452
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp

2020-01-14 Thread Neale Ranns via Lists.Fd.Io
Hi,

Thanks for the bug report, I’ll fix the crash.

A question for you.

DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0


Says “all destinations in table 10 are reachable via an interface in table 0”. 
It implies therefore that all addresses in table 10 refer to the same device in 
table 0, i.e. there is no difference, or separation, between table 10 and 0. In 
other words it’s not something one normally does 
What’s your use case for this config?

Thanks,
Neale


From:  on behalf of "elantse...@yandex.ru" 

Date: Tuesday 14 January 2020 at 17:35
To: "vpp-dev@lists.fd.io" 
Subject: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp


Hello Everyone!

I've encountered an issue with deleting route to 0.0.0.0/0 via some virtual 
interface: vpp crashed with a SIGABRT. This issue can be reproduced with gre 
interface on the current master 1c6486f7b8a00a1358d5c8f4ea1d874073bbcd6c:

DBGvpp# ip table add 10

DBGvpp# create gre tunnel src 1.1.1.1 dst 2.2.2.2

gre0



DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0

DBGvpp# sh ip fib table 10

ipv4-VRF:10, fib_index:1, flow hash:[src dst sport dport proto ] epoch:0 
flags:none locks:[CLI:1, ]

0.0.0.0/0

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:12 to:[0:0]]

[0] [@0]: dpo-drop ip4

0.0.0.0/32

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:8 to:[0:0]]

[0] [@0]: dpo-drop ip4

224.0.0.0/4

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:12 buckets:1 uRPF:10 to:[0:0]]

[0] [@0]: dpo-drop ip4

240.0.0.0/4

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:9 to:[0:0]]

[0] [@0]: dpo-drop ip4

255.255.255.255/32

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:11 to:[0:0]]

[0] [@0]: dpo-drop ip4



/home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367 
(fib_attached_export_purge) assertion `NULL != fed' fails



Thread 1 "vpp_main" received signal SIGABRT, Aborted.

__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51

51   ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.



(gdb) bt

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51

#1  0x75ac9801 in __GI_abort () at abort.c:79

#2  0xbe0b in os_panic () at 
/home/elantsev/vpp/src/vpp/vnet/main.c:355

#3  0x75eacde9 in debugger () at 
/home/elantsev/vpp/src/vppinfra/error.c:84

#4  0x75ead1b8 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x77743bb8 "%s:%d (%s) assertion `%s' fails") at 
/home/elantsev/vpp/src/vppinfra/error.c:143

#5  0x774cbbe0 in fib_attached_export_purge (fib_entry=0x7fffb4bd2dd0) 
at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367

#6  0x774919de in fib_entry_post_flag_update_actions 
(fib_entry=0x7fffb4bd2dd0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | 
FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674

#7  0x77491a3c in fib_entry_post_install_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))

at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709

#8  0x77491d78 in fib_entry_post_update_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))

at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804

#9  0x774923f9 in fib_entry_source_removed (fib_entry=0x7fffb4bd2dd0, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:992

#10 0x774925e7 in fib_entry_path_remove (fib_entry_index=7, 
source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072

#11 0x7747980b in fib_table_entry_path_remove2 (fib_index=1, 
prefix=0x7fffb8382b00, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at 
/home/elantsev/vpp/src/vnet/fib/fib_table.c:680

#12 0x76fb870c in vnet_ip_route_cmd (vm=0x766b6680 
, main_input=0x7fffb8382f00, cmd=0x7fffb50373b8) at 
/home/elantsev/vpp/src/vnet/ip/lookup.c:449

#13 0x763d402f in vlib_cli_dispatch_sub_commands (vm=0x766b6680 
, cm=0x766b68b0 , 
input=0x7fffb8382f00, parent_command_index=431)

at /home/elantsev/vpp/src/vlib/cli.c:568

#14 0x763d3ead in vlib_cli_dispatch_sub_commands (vm=0x766b6680 
, cm=0x766b68b0 , 
input=0x7fffb8382f00, parent_command_index=0)

at /home/elantsev/vpp/src/vlib/cli.c:528

#15 0x763d4434 in vlib_cli_input (vm=0x766b6680 , 
input=0x7fffb8382f00, function=0x7646dc89 , 
function_arg=0) at /home/elantsev/vpp/src/vlib/cli.c:667

#16 0x7647476d in unix_cli_process_input (cm=0x766b7020 
, cli_file_index=0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2572

#17 0x7647540e in u

[vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp

2020-01-13 Thread elantsev . s
Hello Everyone!

I've encountered an issue with deleting route to 0.0.0.0/0 via some virtual 
interface: vpp crashed with a SIGABRT. This issue can be reproduced with gre 
interface on the current master 1c6486f7b8a00a1358d5c8f4ea1d874073bbcd6c:

```
DBGvpp# ip table add 10
DBGvpp# create gre tunnel src 1.1.1.1 dst 2.2.2.2
gre0

DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0
DBGvpp# sh ip fib table 10
ipv4-VRF:10, fib_index:1, flow hash:[src dst sport dport proto ] epoch:0 
flags:none locks:[CLI:1, ]
0.0.0.0/0
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:12 to:[0:0]]
[0] [@0]: dpo-drop ip4
0.0.0.0/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:8 to:[0:0]]
[0] [@0]: dpo-drop ip4
224.0.0.0/4
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:12 buckets:1 uRPF:10 to:[0:0]]
[0] [@0]: dpo-drop ip4
240.0.0.0/4
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:9 to:[0:0]]
[0] [@0]: dpo-drop ip4
255.255.255.255/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:11 to:[0:0]]
[0] [@0]: dpo-drop ip4

/home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367 
(fib_attached_export_purge) assertion `NULL != fed' fails

Thread 1 "vpp_main" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51  ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x75ac9801 in __GI_abort () at abort.c:79
#2  0xbe0b in os_panic () at 
/home/elantsev/vpp/src/vpp/vnet/main.c:355
#3  0x75eacde9 in debugger () at 
/home/elantsev/vpp/src/vppinfra/error.c:84
#4  0x75ead1b8 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x77743bb8 "%s:%d (%s) assertion `%s' fails") at 
/home/elantsev/vpp/src/vppinfra/error.c:143
#5  0x774cbbe0 in fib_attached_export_purge (fib_entry=0x7fffb4bd2dd0) 
at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367
#6  0x774919de in fib_entry_post_flag_update_actions 
(fib_entry=0x7fffb4bd2dd0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | 
FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674
#7  0x77491a3c in fib_entry_post_install_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))
at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709
#8  0x77491d78 in fib_entry_post_update_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))
at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804
#9  0x774923f9 in fib_entry_source_removed (fib_entry=0x7fffb4bd2dd0, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:992
#10 0x774925e7 in fib_entry_path_remove (fib_entry_index=7, 
source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072
#11 0x7747980b in fib_table_entry_path_remove2 (fib_index=1, 
prefix=0x7fffb8382b00, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at 
/home/elantsev/vpp/src/vnet/fib/fib_table.c:680
#12 0x76fb870c in vnet_ip_route_cmd (vm=0x766b6680 
, main_input=0x7fffb8382f00, cmd=0x7fffb50373b8) at 
/home/elantsev/vpp/src/vnet/ip/lookup.c:449
#13 0x763d402f in vlib_cli_dispatch_sub_commands (vm=0x766b6680 
, cm=0x766b68b0 , 
input=0x7fffb8382f00, parent_command_index=431)
at /home/elantsev/vpp/src/vlib/cli.c:568
#14 0x763d3ead in vlib_cli_dispatch_sub_commands (vm=0x766b6680 
, cm=0x766b68b0 , 
input=0x7fffb8382f00, parent_command_index=0)
at /home/elantsev/vpp/src/vlib/cli.c:528
#15 0x763d4434 in vlib_cli_input (vm=0x766b6680 , 
input=0x7fffb8382f00, function=0x7646dc89 , 
function_arg=0) at /home/elantsev/vpp/src/vlib/cli.c:667
#16 0x7647476d in unix_cli_process_input (cm=0x766b7020 
, cli_file_index=0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2572
#17 0x7647540e in unix_cli_process (vm=0x766b6680 
, rt=0x7fffb8342000, f=0x0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2688
#18 0x764161d4 in vlib_process_bootstrap (_a=140736272894320) at 
/home/elantsev/vpp/src/vlib/main.c:1475
#19 0x75eccfbc in clib_calljmp () at 
/home/elantsev/vpp/src/vppinfra/longjmp.S:123
#20 0x7fffb78d8940 in ?? ()
#21 0x764162dc in vlib_process_startup (vm=0x0, p=0x8, f=0x766b6680 
) at /home/elantsev/vpp/src/vlib/main.c:1497
Backtrace stopped: previous frame inner to this frame (corrupt stack?)


#4  0x75ead1b8 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x77743bb8 "%s:%d (%s) assertion `%s' fails") at 
/home/elantsev/vpp/src/vppinfra/error.c:143
msg = 0x0
va =