mirror_frr/bgpd
Donald Sharp be785e356a bgpd, tests: Add code to handle failed installations
Currently the Wait for Install code ( bgp_suppress_fib ) does
not properly handle two states from zebra:  ROUTE_INSTALL_FAILED
and BETTER_ADMIN_DISTANCE_WON.  Pre this change the WFI code
would just never notify our peers about a route install failure
but more is needed.  In the ROUTE_INSTALL_FAILED and the
BETTER_ADMIN_DISTANCE_WON we need to notify our peers with
a withdrawal about the route, else we will continue to
draw traffic to us when we cannot legally do so.

Why is this needed?  In either case imagine that we've already
received a bgp route, installed it and sent to our peers.
In the Better admin distance won case, say a static route is installed
at this point in time we must stop advertising the route through
us since we are not installed.  As such a withdrawal must be sent.

In the ROUTE_INSTALL_FAILED case, the code was not properly handling
the situation where we have Route A, it was successfully installed
and then we received a update to Route A that was attempted to be
installed but failed.  In this case we also need to send a withdrawal

Finally update the bgp_suppress_fib topotest to test both of these
situations.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-12-17 13:28:56 -05:00
..
rfapi *: convert zclient callbacks to table 2021-10-20 13:28:46 +02:00
rfp-example build: properly split CFLAGS from AC_CFLAGS 2021-04-21 15:42:36 +02:00
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
bgp_addpath_types.h bgpd: Re-use TX Addpath IDs where possible 2018-11-10 00:16:36 +00:00
bgp_addpath.c bgpd, lib, staticd, tests: Convert to using FOREACH_AFI_SAFI 2020-11-14 18:53:03 -05:00
bgp_addpath.h bgp: rename bgp_node to bgp_dest 2020-06-23 17:32:52 +02:00
bgp_advertise.c bgpd: Call bgp_dest_unlock_node() inside bgp_adj_in_remove() 2021-06-11 09:39:23 +03:00
bgp_advertise.h *: require semicolon after DEFINE_<typesafe...> 2021-03-17 06:18:39 +01:00
bgp_aspath.c *: use compiler.h MIN/MAX macros instead of everyone having one 2021-11-11 09:39:52 -05:00
bgp_aspath.h bgpd: Replace 65535 with UINT16_MAX 2021-02-02 15:31:12 +02:00
bgp_attr_evpn.c bgpd: Parse EVPN RT-5 NLRI and store gateway IP for EVPN route 2021-06-07 17:58:22 -07:00
bgp_attr_evpn.h bgpd: Data structure for gateway IP overlay Index 2021-06-07 17:58:22 -07:00
bgp_attr.c Merge pull request #9546 from proelbtn/add-support-for-perfix-sid-type-5 2021-09-21 11:36:53 -04:00
bgp_attr.h Merge pull request #9546 from proelbtn/add-support-for-perfix-sid-type-5 2021-09-21 11:36:53 -04:00
bgp_bfd.c bgpd: fix source-address for BFD sessions when using update-source IFNAME 2021-11-12 19:32:06 +03:00
bgp_bfd.h bgpd: improve BFD with timers configuration 2021-03-23 12:40:11 -03:00
bgp_bmp.c Merge pull request #10144 from ton31337/fix/bmp_memory_leaks 2021-12-06 00:00:27 -05:00
bgp_bmp.h *: require semicolon after DEFINE_<typesafe...> 2021-03-17 06:18:39 +01:00
bgp_btoa.c bgpd: Convert inet_ntoa to %pI4/inet_ntop 2020-10-18 11:22:30 +03:00
bgp_clist.c bgpd: large community exact match fix 2021-10-05 16:24:41 +02:00
bgp_clist.h bgpd: Auto-complete for community lists 2021-08-10 10:56:26 +03:00
bgp_community_alias.c bgpd: fix memory leaks in bgp_alias2community_str 2021-08-11 12:09:15 +03:00
bgp_community_alias.h bgpd: fix memory leaks in bgp_alias2community_str 2021-08-11 12:09:15 +03:00
bgp_community.c bgpd: Fix misleading comments for some parts 2021-08-05 16:29:52 +03:00
bgp_community.h bgpd: Set NO_ADVERTISE community if blackhole community received 2021-01-21 16:00:53 +02:00
bgp_conditional_adv.c bgpd: fix memory leaks when using route-maps 2021-09-15 22:45:23 +03:00
bgp_conditional_adv.h bgpd: add knob to config cond-adv scanner period 2021-07-13 13:19:14 -04:00
bgp_damp.c bgpd: add "json" option to "show ip bgp ... dampening parameters" 2021-11-23 15:14:08 -03:00
bgp_damp.h Revert "bgpd: peer / peer group dampening profiles" 2021-08-03 21:54:47 +03:00
bgp_debug.c bgpd: Generate and advertise gateway IP overlay index with EVPN RT-5 2021-06-07 17:58:22 -07:00
bgp_debug.h bgpd: Generate and advertise gateway IP overlay index with EVPN RT-5 2021-06-07 17:58:22 -07:00
bgp_dump.c bgpd: Don't set NULL for struct thread at bgp_dump_interval_func() 2021-10-04 19:07:41 +03:00
bgp_dump.h bgpd: Add Support for rfc 8050 MRT add-path 2021-02-11 16:51:41 -08:00
bgp_ecommunity.c bgpd: support redirect import more than one route-target ipv6 2021-11-18 18:35:18 +01:00
bgp_ecommunity.h bgpd: Add neighbor PEER link-bw-encoding-ieee 2021-08-30 14:21:49 +03:00
bgp_encap_tlv.c *: Replace 4/16 integers to IPV4_MAX_BYTELEN/IPV6_MAX_BYTELEN 2021-07-01 23:54:39 +03:00
bgp_encap_tlv.h
bgp_encap_types.h
bgp_errors.c bgpd: Advertise FIB installed routes to bgp peers (Part 2) 2020-11-06 08:46:04 +05:30
bgp_errors.h bgpd: Advertise FIB installed routes to bgp peers (Part 2) 2020-11-06 08:46:04 +05:30
bgp_evpn_mh.c *: Remove redundand braces for single statement blocks 2021-11-27 11:20:59 +02:00
bgp_evpn_mh.h bgpd: initial batch of evpn lttng tracepoints 2021-10-01 09:02:25 -07:00
bgp_evpn_private.h bgpd: EVPN route type-5 to type-2 recursive resolution using gateway IP 2021-06-07 17:59:45 -07:00
bgp_evpn_vty.c Merge pull request #10124 from ton31337/feature/vty_json 2021-11-29 02:11:29 +03:00
bgp_evpn_vty.h bgpd: CLI to advertise gateway IP overlay index 2021-06-07 17:58:22 -07:00
bgp_evpn.c bgpd: initial batch of evpn lttng tracepoints 2021-10-01 09:02:25 -07:00
bgp_evpn.h bgpd: Add CLI for overlay index recursive resolution 2021-06-07 17:59:45 -07:00
bgp_filter.c *: Remove redundand braces for single statement blocks 2021-11-27 11:20:59 +02:00
bgp_filter.h bgpd: add seqno in bgp as-path access-list policy 2021-03-17 22:06:53 -07:00
bgp_flowspec_private.h bgpd, lib: support for flow_label flowspec type 2020-08-21 13:37:08 +02:00
bgp_flowspec_util.c *: unify prefix copying 2021-06-29 16:11:47 +03:00
bgp_flowspec_util.h bgpd: ipv6 flowspec address decoding and validation 2020-08-21 13:37:08 +02:00
bgp_flowspec_vty.c bgpd: Convert vty_out to vty_json for JSON 2021-11-25 17:51:12 +02:00
bgp_flowspec.c bgpd, lib: support for flow_label flowspec type 2020-08-21 13:37:08 +02:00
bgp_flowspec.h bgpd: flowspec code support for ipv6 2020-08-21 13:37:08 +02:00
bgp_fsm.c *: Rename quagga_timestamp with frr_timestamp 2021-11-11 14:41:27 -05:00
bgp_fsm.h bgpd: Address LL peer not NHT when receiving connection attempt 2021-04-15 13:16:28 -04:00
bgp_io.c bgpd: bgp_packet_process_error can access peer after deletion 2021-08-08 08:23:24 -04:00
bgp_io.h bgpd: raise default & max r/w quanta to 64 2019-10-14 18:41:53 +00:00
bgp_keepalives.c *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_keepalives.h
bgp_label.c bgpd: clearer safi handling for BGP-LU route updates 2021-12-01 07:56:38 -05:00
bgp_label.h bgpd: add some const 2021-10-01 07:48:45 -04:00
bgp_labelpool.c *: Remove redundand braces for single statement blocks 2021-11-27 11:20:59 +02:00
bgp_labelpool.h *: require semicolon after DEFINE_<typesafe...> 2021-03-17 06:18:39 +01:00
bgp_lcommunity.c bgpd: Fix misleading comments for some parts 2021-08-05 16:29:52 +03:00
bgp_lcommunity.h bgpd: separate lcommunity validation from tokenizer 2021-01-06 07:18:20 -05:00
bgp_mac.c bgpd: Generate and advertise gateway IP overlay index with EVPN RT-5 2021-06-07 17:58:22 -07:00
bgp_mac.h bgpd: Rework code to use const struct prefix 2020-03-24 07:51:41 -04:00
bgp_main.c *: Convert quagga_signal_X to frr_signal_X 2021-11-11 14:41:27 -05:00
bgp_memory.c Revert "bgpd: peer / peer group dampening profiles" 2021-08-03 21:54:47 +03:00
bgp_memory.h Revert "bgpd: peer / peer group dampening profiles" 2021-08-03 21:54:47 +03:00
bgp_mpath.c bgpd: VRF-Lite fix best path selection 2021-11-19 07:33:22 +05:30
bgp_mpath.h bgpd: Add vrf information to best path debugging 2021-11-12 13:24:04 -05:00
bgp_mplsvpn_snmp.c build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
bgp_mplsvpn_snmp.h bgpd: implement mplsL3VpnVrfRtTable 2021-02-02 09:37:13 +00:00
bgp_mplsvpn.c bgpd: VRF-Lite fix best path selection 2021-11-19 07:33:22 +05:30
bgp_mplsvpn.h Merge pull request #9546 from proelbtn/add-support-for-perfix-sid-type-5 2021-09-21 11:36:53 -04:00
bgp_network.c bgpd: Allow v6 LL peers to work when connected to as well 2021-09-16 08:07:45 -04:00
bgp_network.h bgpd: associate listener with the appropriate bgp instance 2020-09-01 09:42:26 +01:00
bgp_nexthop.c bgpd: EVPN route type-5 to type-2 recursive resolution using gateway IP 2021-06-07 17:59:45 -07:00
bgp_nexthop.h bgpd: EVPN route type-5 to type-2 recursive resolution using gateway IP 2021-06-07 17:59:45 -07:00
bgp_nht.c Merge pull request #10042 from wangshengjun/dev_bgp 2021-11-29 09:39:29 +01:00
bgp_nht.h bgpd: prevent routes loop through itself 2021-07-12 13:57:36 +02:00
bgp_open.c Merge pull request #10105 from ton31337/feature/rfc9072 2021-11-29 10:46:58 -05:00
bgp_open.h bgpd: Implement rfc9072 2021-11-22 15:34:46 +02:00
bgp_packet.c bgpd: bgp_packet_set_size int to void 2021-11-29 21:23:53 +02:00
bgp_packet.h bgpd: bgp_packet_set_size int to void 2021-11-29 21:23:53 +02:00
bgp_pbr.c bgpd: flowspec redirect vrf uses vrf table instead of allocated table id 2021-08-01 14:38:13 +02:00
bgp_pbr.h bgpd: fallback proto icmp/v6 to appropriate l3 filter 2020-08-21 13:37:08 +02:00
bgp_rd.c bgpd: Convert inet_ntoa to %pI4/inet_ntop 2020-10-18 11:22:30 +03:00
bgp_rd.h bgpd: support for Ethernet Segments and Type-1/EAD routes 2020-08-05 06:46:12 -07:00
bgp_regex.c
bgp_regex.h
bgp_route.c bgpd, tests: Add code to handle failed installations 2021-12-17 13:28:56 -05:00
bgp_route.h bgpd, tests: Add code to handle failed installations 2021-12-17 13:28:56 -05:00
bgp_routemap_nb_config.c bgpd, lib: fix inconsistency of match ip/ipv6 next-hop commands 2021-11-19 21:11:52 +03:00
bgp_routemap_nb.c bgpd: Add an ability to set extcommunity to none in route-maps 2021-08-18 14:14:52 +03:00
bgp_routemap_nb.h bgpd: Add an ability to set extcommunity to none in route-maps 2021-08-18 14:14:52 +03:00
bgp_routemap.c Merge pull request #9610 from iqras23/best_path 2021-11-30 16:14:34 -05:00
bgp_rpki.c bgpd: move rpki source after the server config 2021-09-08 23:43:55 +03:00
bgp_rpki.h bgpd: Convert RPKI states to an enum and use them 2021-03-26 08:23:33 -04:00
bgp_script.c bgpd: Update bgp_script encoders and decoders 2021-06-22 05:03:07 +08:00
bgp_script.h bgpd: Update bgp_script encoders and decoders 2021-06-22 05:03:07 +08:00
bgp_snmp.c bgpd: Fix misleading comments for some parts 2021-08-05 16:29:52 +03:00
bgp_table.c bgpd: don't return pointer to a local variable 2021-10-08 14:51:15 +03:00
bgp_table.h bgpd: Make sure bgp_dest lock/unlock tracepoints works for LTTng as well 2021-09-23 20:00:54 +03:00
bgp_trace.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
bgp_trace.h bgpd: lttng tracepoint for local events received from zebra 2021-10-15 10:37:02 -07:00
bgp_updgrp_adv.c bgpd, tests: Add code to handle failed installations 2021-12-17 13:28:56 -05:00
bgp_updgrp_packet.c bgpd: Increase sent prefix count per subgrp when originating default route 2021-07-14 23:55:20 +03:00
bgp_updgrp.c bgpd: Show max packet size per update-group 2021-07-03 11:17:37 +03:00
bgp_updgrp.h bgpd: Remove #if 0 code 2021-01-28 13:57:49 -05:00
bgp_vnc_types.h bgpd: #if ENABLE_BGP_VNC -> #ifdef ENABLE_BGP_VNC 2020-04-01 15:05:26 -04:00
bgp_vpn.c bgpd: Convert vty_out to vty_json for JSON 2021-11-25 17:51:12 +02:00
bgp_vpn.h bgpd/ospfd: make bgp and ospf json response a bit more consistent 2018-08-30 12:40:18 +00:00
bgp_vty.c Merge pull request #10105 from ton31337/feature/rfc9072 2021-11-29 10:46:58 -05:00
bgp_vty.h Revert "bgpd: convert global config to transactional cli" 2021-08-03 23:36:31 +03:00
bgp_zebra.c bgpd, tests: Add code to handle failed installations 2021-12-17 13:28:56 -05:00
bgp_zebra.h bgpd: Few code optimisations 2021-11-19 07:33:22 +05:30
bgpd.c Merge pull request #10105 from ton31337/feature/rfc9072 2021-11-29 10:46:58 -05:00
bgpd.conf.sample2
bgpd.h bgpd: Implement rfc9072 2021-11-22 15:34:46 +02:00
IMPLEMENTATION.txt bgpd: Convert struct bgp_info to struct bgp_path_info 2018-10-09 14:14:25 -04:00
Makefile build: non-recursive bgpd & rfp 2018-09-08 21:25:59 +02:00
subdir.am Revert "bgpd: bgp northbound callbacks prototypes" 2021-08-03 23:36:31 +03:00