Hi Fedor,

This is one of those cases where you cannot/should not remove an object on 
which others depend.
In principle with VPP you should unconfigure in the reverse order to configure.

Regards,
neale

-----Message d'origine-----
De : <vpp-dev@lists.fd.io> au nom de Fedor Kazmin <kahzee...@yandex-team.ru>
Date : mercredi 13 février 2019 à 13:58
À : "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>
Objet : [vpp-dev] route via deleted interface freezes in unresolved state

    Hello, all
    
    I have got an issue with routes via deleted interfaces, need some help.
    Route freezes in unresolved state
    Both stable/1804 and master, Ubuntu Xenial, gcc 5.4.0
    
    Steps to reproduce:
    
    1. Create and configure veth pair
    
         ip link add name veth0 type veth peer name vpp0
         ip link set dev vpp0 up
         ip link set dev veth0 up
         ip addr add 172.16.0.1/24 dev veth0
         ip addr add 172.16.0.3/24 dev veth0
    
    
    
    2. Run VPP and configure tunnels
    
    DBGvpp# sh ver
    vpp v19.04-rc0~176-g72b3bce built by kahzeemin on kahzeemin-nix at Wed 
    Feb 13 11:29:06 MSK 2019
    
    DBGvpp# create host name vpp0
    host-vpp0
    
    DBGvpp# set int state host-vpp0 up
    DBGvpp# set int ip addr host-vpp0 172.16.0.2/24
    DBGvpp# create gre tun src 172.16.0.2 dst 172.16.0.1
    gre0
    
    DBGvpp# create gre tun src 172.16.0.2 dst 172.16.0.3
    gre1
    
    DBGvpp# set int state gre0 up
    DBGvpp# set int state gre1 up
    
    
    
    3.Add routes via interfaces
    
    DBGvpp# ip route add 10.0.0.1/32 via gre0
    DBGvpp# ip route add 10.0.0.2/32 via gre1
    DBGvpp# sh ip fib 10.0.0.1
    ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] 
    locks:[src:plugin-hi:2, src:adjacency:2, src:default-route:1, ]
    10.0.0.1/32 fib:0 index:13 locks:2
       src:CLI refs:1 entry-flags:attached, src-flags:added,contributing,active,
         path-list:[14] locks:2 flags:shared, uPRF-list:12 len:1 itfs:[2, ]
           path:[14] pl-index:14 ip4 weight=1 pref=0 attached-nexthop: 
    oper-flags:resolved, cfg-flags:attached,
             10.0.0.1 gre0 (p2p)
           [@0]: ipv4 via 0.0.0.0 gre0: mtu:9000 
    4500000000000000fe2f64abac100002ac10000100000800
                  stacked-on entry:11:
                    [@3]: ipv4 via 172.16.0.1 host-vpp0: mtu:9000 
    366ba086d7c402fe00c21f450800
    
      forwarding:   unicast-ip4-chain
       [@0]: dpo-load-balance: [proto:ip4 index:15 buckets:1 uRPF:12 to:[0:0]]
         [0] [@6]: ipv4 via 0.0.0.0 gre0: mtu:9000 
    4500000000000000fe2f64abac100002ac10000100000800
             stacked-on entry:11:
               [@3]: ipv4 via 172.16.0.1 host-vpp0: mtu:9000 
    366ba086d7c402fe00c21f450800
    
    DBGvpp# sh ip fib 10.0.0.2
    ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] 
    locks:[src:plugin-hi:2, src:adjacency:2, src:default-route:1, ]
    10.0.0.2/32 fib:0 index:14 locks:2
       src:CLI refs:1 entry-flags:attached, src-flags:added,contributing,active,
         path-list:[18] locks:2 flags:shared, uPRF-list:16 len:1 itfs:[3, ]
           path:[18] pl-index:18 ip4 weight=1 pref=0 attached-nexthop: 
    oper-flags:resolved, cfg-flags:attached,
             10.0.0.2 gre1 (p2p)
           [@0]: ipv4 via 0.0.0.0 gre1: mtu:9000 
    4500000000000000fe2f64a9ac100002ac10000300000800
                  stacked-on entry:12:
                    [@3]: ipv4 via 172.16.0.3 host-vpp0: mtu:9000 
    366ba086d7c402fe00c21f450800
    
      forwarding:   unicast-ip4-chain
       [@0]: dpo-load-balance: [proto:ip4 index:16 buckets:1 uRPF:16 to:[0:0]]
         [0] [@6]: ipv4 via 0.0.0.0 gre1: mtu:9000 
    4500000000000000fe2f64a9ac100002ac10000300000800
             stacked-on entry:12:
               [@3]: ipv4 via 172.16.0.3 host-vpp0: mtu:9000 
    366ba086d7c402fe00c21f450800
    
    
    3. Remove one of the interfaces
    
    DBGvpp# create gre tun src 172.16.0.2 dst 172.16.0.1 del
    DELETED
    
    DBGvpp# sh ip fib 10.0.0.1
    ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] 
    locks:[src:plugin-hi:2, src:adjacency:2, src:default-route:1, ]
    10.0.0.1/32 fib:0 index:13 locks:2
       src:CLI refs:1 entry-flags:attached, src-flags:added,contributing,active,
         path-list:[14] locks:2 flags:shared, uPRF-list:12 len:1 itfs:[2, ]
           path:[14] pl-index:14 ip4 weight=1 pref=0 attached-nexthop: 
    oper-flags:drop, cfg-flags:attached,
             10.0.0.1 if_index:2
             unresolved
    
      forwarding:   unicast-ip4-chain
       [@0]: dpo-load-balance: [proto:ip4 index:15 buckets:1 uRPF:12 to:[0:0]]
         [0] [@0]: dpo-drop ip4
    
    /*route becomes unresolved here*/
    
    
    
    4. Try to redefine unresolved route
    
    DBGvpp# ip route add 10.0.0.1/32 via gre1
    /home/kahzeemin/vpp/src/vnet/interface_funcs.h:60 
    (vnet_get_sw_interface) assertion `! pool_is_free 
    (vnm->interface_main.sw_interfaces, _e)' fails
    
    Thread 1 "vpp_main" received signal SIGABRT, Aborted.
    0x00007ffff5d03428 in __GI_raise (sig=sig@entry=6) at 
    ../sysdeps/unix/sysv/linux/raise.c:54
    54    ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
    (gdb) where
    #0  0x00007ffff5d03428 in __GI_raise (sig=sig@entry=6) at 
    ../sysdeps/unix/sysv/linux/raise.c:54
    #1  0x00007ffff5d0502a in __GI_abort () at abort.c:89
    #2  0x000000000040799d in os_panic () at 
    /home/kahzeemin/vpp/src/vpp/vnet/main.c:335
    #3  0x00007ffff60d63bc in debugger () at 
    /home/kahzeemin/vpp/src/vppinfra/error.c:84
    #4  0x00007ffff60d67f4 in _clib_error (how_to_die=2, function_name=0x0, 
    line_number=0,
         fmt=0x7ffff7720f58 "%s:%d (%s) assertion `%s' fails") at 
    /home/kahzeemin/vpp/src/vppinfra/error.c:143
    #5  0x00007ffff6bfad2b in vnet_get_sw_interface (vnm=0x7ffff7b79980 
    <vnet_main>, sw_if_index=2)
         at /home/kahzeemin/vpp/src/vnet/interface_funcs.h:60
    #6  0x00007ffff6c0106a in vnet_sw_interface_is_p2p (vnm=0x7ffff7b79980 
    <vnet_main>, sw_if_index=2)
         at /home/kahzeemin/vpp/src/vnet/interface.c:1212
    #7  0x00007ffff75fc43f in fib_path_attached_next_hop_get_adj 
    (path=0x7fffb5fbc60c, link=VNET_LINK_IP4)
         at /home/kahzeemin/vpp/src/vnet/fib/fib_path.c:644
    #8  0x00007ffff75fc50f in fib_path_attached_next_hop_set 
    (path=0x7fffb5fbc60c)
         at /home/kahzeemin/vpp/src/vnet/fib/fib_path.c:674
    #9  0x00007ffff75fee1c in fib_path_resolve (path_index=20) at 
    /home/kahzeemin/vpp/src/vnet/fib/fib_path.c:1883
    #10 0x00007ffff75f8696 in fib_path_list_resolve (path_list=0x7fffb5d713c4)
         at /home/kahzeemin/vpp/src/vnet/fib/fib_path_list.c:578
    #11 0x00007ffff75f94ad in fib_path_list_copy_and_path_add 
    (orig_path_list_index=14, flags=FIB_PATH_LIST_FLAG_SHARED,
         rpaths=0x7fffb5fcde9c) at 
    /home/kahzeemin/vpp/src/vnet/fib/fib_path_list.c:961
    #12 0x00007ffff75ecfa7 in fib_entry_src_api_path_add 
    (src=0x7fffb5dfbdac, entry=0x7fffb5dfab34,
         pl_flags=FIB_PATH_LIST_FLAG_NONE, rpaths=0x7fffb5fcde9c) at 
    /home/kahzeemin/vpp/src/vnet/fib/fib_entry_src_api.c:78
    #13 0x00007ffff75e97fa in fib_entry_src_action_path_add 
    (fib_entry=0x7fffb5dfab34, source=FIB_SOURCE_CLI,
         flags=FIB_ENTRY_FLAG_NONE, rpath=0x7fffb5fcde9c) at 
    /home/kahzeemin/vpp/src/vnet/fib/fib_entry_src.c:1579
    #14 0x00007ffff75de78a in fib_entry_path_add (fib_entry_index=13, 
    source=FIB_SOURCE_CLI, flags=FIB_ENTRY_FLAG_NONE,
         rpath=0x7fffb5fcde9c) at 
    /home/kahzeemin/vpp/src/vnet/fib/fib_entry.c:923
    #15 0x00007ffff75c870b in fib_table_entry_path_add2 (fib_index=0, 
    prefix=0x7fffb5fb9ab0, source=FIB_SOURCE_CLI,
         flags=FIB_ENTRY_FLAG_NONE, rpath=0x7fffb5fcde9c) at 
    /home/kahzeemin/vpp/src/vnet/fib/fib_table.c:588
    #16 0x00007ffff6f7c23d in vnet_ip_route_cmd (vm=0x7ffff68d0340 
    <vlib_global_main>, main_input=0x7fffb5fb9ee0,
         cmd=0x7fffb5f66a3c) at /home/kahzeemin/vpp/src/vnet/ip/lookup.c:467
    #17 0x00007ffff660405f in vlib_cli_dispatch_sub_commands 
    (vm=0x7ffff68d0340 <vlib_global_main>,
         cm=0x7ffff68d0528 <vlib_global_main+488>, input=0x7fffb5fb9ee0, 
    parent_command_index=344)
         at /home/kahzeemin/vpp/src/vlib/cli.c:607
    #18 0x00007ffff6603ef9 in vlib_cli_dispatch_sub_commands 
    (vm=0x7ffff68d0340 <vlib_global_main>,
         cm=0x7ffff68d0528 <vlib_global_main+488>, input=0x7fffb5fb9ee0, 
    parent_command_index=0)
         at /home/kahzeemin/vpp/src/vlib/cli.c:568
    #19 0x00007ffff660448c in vlib_cli_input (vm=0x7ffff68d0340 
    <vlib_global_main>, input=0x7fffb5fb9ee0,
         function=0x7ffff669222a <unix_vlib_cli_output>, function_arg=0) at 
    /home/kahzeemin/vpp/src/vlib/cli.c:707
    #20 0x00007ffff6697dad in unix_cli_process_input (cm=0x7ffff68d0140 
    <unix_cli_main>, cli_file_index=0)
         at /home/kahzeemin/vpp/src/vlib/unix/cli.c:2420
    #21 0x00007ffff669896e in unix_cli_process (vm=0x7ffff68d0340 
    <vlib_global_main>, rt=0x7fffb5fa9000, f=0x0)
         at /home/kahzeemin/vpp/src/vlib/unix/cli.c:2536
    #22 0x00007ffff6642f91 in vlib_process_bootstrap (_a=140736236353872) at 
    /home/kahzeemin/vpp/src/vlib/main.c:1461
    #23 0x00007ffff60f978c in clib_calljmp ()
        from 
    
/home/kahzeemin/vpp/build-root/install-vpp_debug-native/vpp/lib/libvppinfra.so.19.04
    #24 0x00007fffb55ff920 in ?? ()
    #25 0x00007ffff66430bc in vlib_process_startup (vm=0x8, p=0x7fffb55ff960,
         f=0x7ffff66901d8 <vlib_process_signal_event_data+506>) at 
    /home/kahzeemin/vpp/src/vlib/main.c:1483
    Backtrace stopped: previous frame inner to this frame (corrupt stack?)
    (gdb)
    
    Scripts to reproduce attached.
    
    Thank you in advance,
    Fedor
    
    

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

View/Reply Online (#12244): https://lists.fd.io/g/vpp-dev/message/12244
Mute This Topic: https://lists.fd.io/mt/29781552/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