mirror_frr/zebra
Stephen Worley 475852b263 zebra: only track NHEs from the dataplane for ID usage
Let's just track the NHEs we get from the kernel(dplane) for
ID usage with internal routes. I tried to be smart originally
and allow them to be re-used internal to zebra but its proving
to cause more bugs than it's worth.

This doesn't break any functionality. It just means we won't
use NHEs we get from the kernel with our routes, we will create
new ones.

Decided this based on various bugs seen ith the lastest one
being on startup with this kernel state:

```
[root@alfred frr-2]# ip next ls
id 15 via 192.168.161.1 dev doof scope link proto zebra
id 17 group 15 proto zebra
[root@alfred frr-2]# ip ro show 3.3.3.1
3.3.3.1 nhid 17 via 192.168.161.1 dev doof
```

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-10-13 11:23:57 -04:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
connected.c zebra: When shutting down an interface immediately notify about rnh 2020-08-28 14:45:59 -04:00
connected.h zebra: Do not use connection dest for bcast 2019-08-18 18:54:46 +02:00
debug.c *: move "show debugging ..." commands to enable node 2020-10-02 15:06:05 +03:00
debug.h zebra: debug flags for MAC-IP sync 2020-08-05 06:46:13 -07:00
dplane_fpm_nl.c zebra: extract evpn mac functions from zebra_vxlan.c 2020-08-12 12:39:33 +01:00
if_ioctl.c Revert "Ospf missing interface handling 2" 2019-06-23 19:46:39 -04:00
if_netlink.c zebra: bridge layer2 information records ns_id where bridge is 2020-08-18 09:25:06 -07:00
if_netlink.h zebra: netlink message batching 2020-08-10 21:42:43 +02:00
if_sysctl.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
interface.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
interface.h *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ioctl.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ioctl.h *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ipforward_proc.c zebra: Cleanup set but unused variables 2020-02-27 09:41:58 -05:00
ipforward_sysctl.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ipforward.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
irdp_interface.c *: un-split strings across lines 2020-07-14 10:37:25 +02:00
irdp_main.c *: replace all random() calls 2020-04-17 20:57:43 -03:00
irdp_packet.c *: Replace sizeof something to sizeof(something) 2020-03-08 21:44:53 +02:00
irdp.h *: strip trailing whitespace 2019-09-30 16:44:43 +00:00
kernel_netlink.c zebra: Don't ignore setsockopt return 2020-09-24 07:42:51 -04:00
kernel_netlink.h zebra: remove fuzzing stuff 2020-08-25 17:31:07 +02:00
kernel_socket.c BSD: Add whitespace between declaration and code 2020-10-05 08:10:42 +01:00
kernel_socket.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
label_manager.c zebra: Fix selection of label chunks in label manager 2020-08-07 11:08:49 +02:00
label_manager.h zebra,ldpd: use zapi client session id in LM apis 2020-04-16 12:07:54 -04:00
main.c Merge pull request #7089 from pguibert6WIND/netns-refactor 2020-09-18 11:02:30 -04:00
Makefile
redistribute.c zebra: When shutting down an interface immediately notify about rnh 2020-08-28 14:45:59 -04:00
redistribute.h zebra: revise redistribution delete to improve update case 2019-09-12 08:51:05 -04:00
rib.h zebra: Make connected routes their own entry on the meta_q 2020-10-01 15:17:06 -04:00
router-id.c zebra: add IPv6 router-id 2020-07-17 17:39:05 +02:00
router-id.h zebra: add IPv6 router-id 2020-07-17 17:39:05 +02:00
rt_netlink.c lib,zebra,sharpd: clang format 2020-09-28 12:41:00 -04:00
rt_netlink.h zebra: netlink message batching 2020-08-10 21:42:43 +02:00
rt_socket.c zebra: prepare dplane for batching 2020-08-10 21:32:59 +02:00
rt.h zebra: remove old kernel one-update-at-a-time api 2020-08-10 21:57:04 +02:00
rtadv.c *: un-split strings across lines 2020-07-14 10:37:25 +02:00
rtadv.h zebra: Remove enum around ipv6_nd_suppress_ra_status 2020-05-08 08:08:04 -04:00
rtread_netlink.c zebra: evpn remote delete fetch local entry 2018-12-31 14:40:31 -08:00
rtread_sysctl.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
rule_netlink.c bgpd, lib, pbrd, zebra: Pass by ifname 2020-09-11 20:04:45 -04:00
rule_netlink.h zebra: netlink message batching 2020-08-10 21:42:43 +02:00
rule_socket.c zebra: convert ip rule installation to use dplane thread 2020-06-10 16:18:45 +02:00
sample_plugin.c zebra: Add a sample dataplane plugin module 2019-10-31 16:24:16 -04:00
subdir.am vtysh: dynamically generate the list of daemons for commands 2020-10-02 15:06:27 +03:00
table_manager.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
table_manager.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
testrib.conf
zapi_msg.c zebra: set NHG/backup NHG pointers on success zapi read 2020-09-28 12:41:00 -04:00
zapi_msg.h zebra: Convert zserv_nexthop_num_warn to return bool 2020-09-28 12:40:59 -04:00
zebra_dplane.c zebra: free ctx if we skip replace for NHG PROTO routes 2020-09-28 12:41:00 -04:00
zebra_dplane.h zebra: Prevent duplicate re-install 2020-09-28 12:40:59 -04:00
zebra_errors.c zebra: Prevent awful misconfiguration in vrf's 2020-04-22 10:57:29 -04:00
zebra_errors.h zebra: Ethernet segment management and support for MAC-ECMP 2020-08-05 06:46:12 -07:00
zebra_evpn_mac.c Merge pull request #7089 from pguibert6WIND/netns-refactor 2020-09-18 11:02:30 -04:00
zebra_evpn_mac.h zebra: add ns_id attribute to mac structure 2020-08-18 09:25:06 -07:00
zebra_evpn_mh.c zebra: zevpn cannot be null passed into zebra_evpn_es_evi_show_one_evpn 2020-10-11 10:47:37 -04:00
zebra_evpn_mh.h zebra: re-name some mh functions to make the code more readable 2020-09-15 16:24:59 -07:00
zebra_evpn_neigh.c zebra: n->mac is derefed in all paths 2020-10-11 10:47:37 -04:00
zebra_evpn_neigh.h zebra: extract neighbor processing from kernel_neigh_del 2020-08-12 12:39:34 +01:00
zebra_evpn_vxlan.h zebra: extract core EVPN functions from zebra_vxlan.c 2020-08-12 12:39:34 +01:00
zebra_evpn.c Merge pull request #7089 from pguibert6WIND/netns-refactor 2020-09-18 11:02:30 -04:00
zebra_evpn.h zebra: support for macvlan interfaces 2020-09-11 18:26:23 +02:00
zebra_fpm_dt.c zebra: fix nexthop_group conversion in fpm code 2020-02-28 08:45:56 -05:00
zebra_fpm_netlink.c zebra: fix FPM abort for unreach/prohibit routes 2020-09-29 12:59:30 +01:00
zebra_fpm_private.h Zebra: Build nelink message for RMAC updates 2019-06-17 12:05:38 -07:00
zebra_fpm_protobuf.c *: Do not cast to the same type 2020-04-08 17:15:06 +03:00
zebra_fpm.c *: un-split strings across lines 2020-07-14 10:37:25 +02:00
zebra_gr.c zebra: avoid using c++ keywords in headers 2020-05-14 16:42:47 +02:00
zebra_l2.c zebra: bridge layer2 information records ns_id where bridge is 2020-08-18 09:25:06 -07:00
zebra_l2.h zebra: bridge layer2 information records ns_id where bridge is 2020-08-18 09:25:06 -07:00
zebra_memory.c zebra: Ethernet segment management and support for MAC-ECMP 2020-08-05 06:46:12 -07:00
zebra_memory.h zebra: use MTYPE_STATIC 2019-06-21 08:54:25 +02:00
zebra_mlag_private.c Merge pull request #7215 from mjstapp/fix_z_mlag_read 2020-09-30 16:27:01 -04:00
zebra_mlag_vty.c zebra: Do not build mlag protobuf support if version 3 is not avail 2019-12-15 09:37:51 -05:00
zebra_mlag_vty.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_mlag.c zebra: the mlag_rd_buf_offset variable was write only 2020-09-23 20:36:51 -04:00
zebra_mlag.h zebra: the mlag_rd_buf_offset variable was write only 2020-09-23 20:36:51 -04:00
zebra_mpls_netlink.c zebra: remove old kernel one-update-at-a-time api 2020-08-10 21:57:04 +02:00
zebra_mpls_null.c zebra: convert PW updates to async dataplane 2019-01-25 10:45:57 -05:00
zebra_mpls_openbsd.c *: un-split strings across lines 2020-07-14 10:37:25 +02:00
zebra_mpls_vty.c *: move CLI node names to cmd_node->name 2020-04-16 12:53:59 +02:00
zebra_mpls.c zebra: remove "PENDING" dplane request state 2020-08-10 21:33:00 +02:00
zebra_mpls.h lib, zebra: Add SR-TE policy infrastructure to zebra 2020-08-07 11:08:49 +02:00
zebra_mroute.c zebra: Add some additional vrf debug for retrieving mroute info 2018-09-17 09:22:31 -04:00
zebra_mroute.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_nb_config.c zebra: fix crash in vrf-vni mapping 2020-08-07 15:23:27 -07:00
zebra_nb_rpcs.c zebra: display rpc error msg to vtysh 2020-10-05 13:57:54 -07:00
zebra_nb_state.c staticd: add support for SR Policies 2020-08-12 13:28:48 +02:00
zebra_nb.c staticd: add support for SR Policies 2020-08-12 13:28:48 +02:00
zebra_nb.h staticd: add support for SR Policies 2020-08-12 13:28:48 +02:00
zebra_netns_id.c Merge pull request #7148 from pguibert6WIND/fix_fd_not_closed 2020-09-23 07:40:14 -04:00
zebra_netns_id.h zebra: dynamically detect vxlan link interfaces in other netns 2020-09-11 18:26:23 +02:00
zebra_netns_notify.c zebra: dynamically detect vxlan link interfaces in other netns 2020-09-11 18:26:23 +02:00
zebra_netns_notify.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_nhg_private.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_nhg.c zebra: only track NHEs from the dataplane for ID usage 2020-10-13 11:23:57 -04:00
zebra_nhg.h zebra: add type to nhg_prot_del API for sanity check 2020-09-28 12:41:00 -04:00
zebra_ns.c vrf: VRF_DEFAULT must be 0, remove useless code 2020-09-21 10:17:35 +02:00
zebra_ns.h lib, zebra: reuse and adapt ns_list walk functionality 2020-09-11 18:26:23 +02:00
zebra_opaque.c sharpd,zebra: unicast support for zapi messages 2020-06-10 15:05:25 -04:00
zebra_opaque.h zebra: add zebra opaque module 2020-06-02 08:20:54 -04:00
zebra_pbr.c bgpd, lib, pbrd, zebra: Pass by ifname 2020-09-11 20:04:45 -04:00
zebra_pbr.h zebra: add icmpv6 table of type / code 2020-08-21 13:37:08 +02:00
zebra_ptm_redistribute.c zebra: Add missing c-bit uint8_t 2020-03-17 16:01:59 -04:00
zebra_ptm_redistribute.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_ptm.c *: un-split strings across lines 2020-07-14 10:37:25 +02:00
zebra_ptm.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_pw.c Merge pull request #6765 from mjstapp/backup_nhg_netlink 2020-07-27 12:49:36 -03:00
zebra_pw.h ldpd: Relay data plane pseudowire status in LDP notification 2020-06-01 13:21:37 -04:00
zebra_rib.c zebra: Make connected routes their own entry on the meta_q 2020-10-01 15:17:06 -04:00
zebra_rnh.c zebra: cleanup zebra_rnh.c debugs 2020-10-02 12:15:03 -04:00
zebra_rnh.h zebra: cleanup zebra_rnh.c debugs 2020-10-02 12:15:03 -04:00
zebra_routemap.c *: introduce DEFPY_YANG & friends 2020-08-03 15:17:03 -03:00
zebra_routemap.h zebra: Disable rmap update thread before routemap_finish while shutting down zebra 2020-03-16 23:57:45 -07:00
zebra_router.c zebra: Add basic knowledge of asic offload available 2020-09-22 15:57:43 -04:00
zebra_router.h zebra: Add basic knowledge of asic offload available 2020-09-22 15:57:43 -04:00
zebra_snmp.c zebra: in_addr_cmp and struct prefix are not happy 2020-04-16 20:14:55 -04:00
zebra_srte.c lib, zebra: Add SR-TE policy infrastructure to zebra 2020-08-07 11:08:49 +02:00
zebra_srte.h lib, zebra: Add SR-TE policy infrastructure to zebra 2020-08-07 11:08:49 +02:00
zebra_vrf.c zebra: Allow router-id to be part of the vrf sub node 2020-07-09 11:57:22 -04:00
zebra_vrf.h zebra: rename vni to evpn where appropriate 2020-08-12 12:39:33 +01:00
zebra_vty.c *: add errmsg to nb rpc 2020-10-05 13:15:59 -07:00
zebra_vxlan_private.h zebra: extract evpn mac functions from zebra_vxlan.c 2020-08-12 12:39:33 +01:00
zebra_vxlan.c zebra: display rpc error msg to vtysh 2020-10-05 13:57:54 -07:00
zebra_vxlan.h zebra: display rpc error msg to vtysh 2020-10-05 13:57:54 -07:00
zebra.conf.sample
zserv.c zebra: handle proto NHG uninstall client disconnect 2020-09-28 12:40:59 -04:00
zserv.h zebra: remove fuzzing stuff 2020-08-25 17:31:07 +02:00