mirror_frr/bgpd
Mitchell Skiba def2c27e49 bgpd: add addpath ID to adj_out tree sort
When withdrawing addpaths, adj_lookup was called to find the path that
needed to be withdrawn. It would lookup in the RB tree based on subgroup
pointer alone, often find the path with the wrong addpath ID, and return
null.  Only the path highest in the tree sent to the subgroup could be
found, thus withdrawn.

Adding the addpath ID to the sort criteria for the RB tree allows us to
simplify the logic for adj_lookup, and address this problem. We are able
to remove the logic around non-addpath subgroups because the addpath ID
is consistently 0 for non-addpath adj_outs, so special logic to skip
matching the addpath ID isn't required.  (As a side note, addpath will
also never use ID 0, so there won't be any ambiguity when looking at the
structure content.)

Signed-off-by: Mitchell Skiba <mskiba@amazon.com>
2020-01-16 11:08:02 +02:00
..
rfapi *: use ZAPI_CALLBACK_ARGS macro for zapi handlers 2019-05-03 20:57:35 +00:00
rfp-example Treewide: use ANSI function definitions 2019-01-24 11:21:59 +01: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: Fix per afi/safi addpath peer counting 2019-11-19 08:41:20 +02:00
bgp_addpath.h bgpd: Re-use TX Addpath IDs where possible 2018-11-10 00:16:36 +00:00
bgp_advertise.c bgpd: replace ADV_FIFO with DECLARE_LIST 2019-04-27 19:33:45 +02:00
bgp_advertise.h bgpd: use DLIST for adv_fifo 2019-05-21 22:46:48 +02:00
bgp_aspath.c Merge pull request #3869 from qlyoung/cocci-fixes 2019-03-06 15:54:44 +01:00
bgp_aspath.h bgpd: Code to handle BGP aggregate's as-path. 2019-02-28 20:22:30 -08:00
bgp_attr_evpn.c Merge pull request #3869 from qlyoung/cocci-fixes 2019-03-06 15:54:44 +01:00
bgp_attr_evpn.h bgpd: parse and comapre rmac attr against self mac 2019-03-04 09:56:05 -08:00
bgp_attr.c bgpd: Invalid NH's should send an apropriate reason code 2019-09-20 13:10:19 -04:00
bgp_attr.h bgpd: IPv6 session flapping with MP_REACH_NLRI and 0.0.0.0 in NEXT_HOP attribute 2019-09-20 13:10:14 -04:00
bgp_bfd.c Merge pull request #4264 from pguibert6WIND/trace_bfd 2019-05-06 21:42:18 -04:00
bgp_bfd.h bgpd/ospfd: make bgp and ospf json response a bit more consistent 2018-08-30 12:40:18 +00:00
bgp_btoa.c bgpd: Untrusted argument (Coverity 1399380) 2018-06-19 15:00:25 +02:00
bgp_clist.c bgpd: Convert to network byte order before passing value to community_del_val 2019-08-02 09:35:10 +03:00
bgp_clist.h bgpd: Use string length not sizeof the array 2019-01-16 20:43:53 -05:00
bgp_community.c Merge pull request #3869 from qlyoung/cocci-fixes 2019-03-06 15:54:44 +01:00
bgp_community.h bgpd: Code to handle BGP aggregate's communities. 2019-02-28 20:22:41 -08:00
bgp_damp.c bgpd: Rework BGP dampening to be per AFI/SAFI 2019-11-14 19:56:49 +02:00
bgp_damp.h bgpd: Rework BGP dampening to be per AFI/SAFI 2019-11-14 19:56:49 +02:00
bgp_debug.c bgpd: Remove unused bgp_debug_count function 2019-02-09 18:22:01 -05:00
bgp_debug.h bgpd: Remove unused bgp_debug_count function 2019-02-09 18:22:01 -05:00
bgp_dump.c bgpd: Abstract bgp_info retrieving/setting from info pointer 2018-11-16 09:43:35 -05:00
bgp_dump.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_ecommunity.c Merge pull request #3869 from qlyoung/cocci-fixes 2019-03-06 15:54:44 +01:00
bgp_ecommunity.h bgpd: Code to handle BGP aggregate's e-communities. 2019-02-28 20:22:41 -08:00
bgp_encap_tlv.c *: remove null check before XFREE 2019-02-25 23:00:46 +00:00
bgp_encap_tlv.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_encap_types.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
bgp_errors.c *: spelchek 2018-10-25 20:10:57 +02:00
bgp_errors.h bgpd: Try to notice when configuration changes during startup 2018-10-01 10:58:06 -04:00
bgp_evpn_private.h Merge pull request #4025 from AnuradhaKaruppiah/pim-evpn 2019-04-22 11:44:52 -05:00
bgp_evpn_vty.c bgpd: evpn json cli bug fix 2019-05-16 16:35:06 -04:00
bgp_evpn_vty.h bgpd: get rid of afi_header_vty_out() & co. 2017-08-29 08:36:03 +02:00
bgp_evpn.c Merge pull request #4140 from ton31337/fix/do_not_send_notification_again_with_invalid_nlri 2019-04-25 18:43:10 -04:00
bgp_evpn.h bgpd: maintain flood mcast group per-l2-vni 2019-04-20 08:33:20 -07:00
bgp_filter.c Merge pull request #4184 from ton31337/fix/documentation_for_as-path_regexp 2019-04-24 11:54:35 -04:00
bgp_filter.h bgpd: Validate as-path in show bgp regexp 2019-04-23 11:25:35 +03:00
bgp_flowspec_private.h bgpd: support for show bgp ipv4 flowspec 2018-03-30 14:01:05 +02:00
bgp_flowspec_util.c bgpd: upon bgp fs study, determine if iprule can be used 2019-01-29 14:15:09 +01:00
bgp_flowspec_util.h bgpd: flowspec redirect IP info is retrieved into nh tracking 2018-12-28 18:10:26 +01:00
bgp_flowspec_vty.c bgpd: do not allocate lists on fs entries of bgp entries. 2019-03-28 16:57:59 +01:00
bgp_flowspec.c bgpd: Do not send UPDATE message with maximum-prefix 2019-04-24 14:51:06 +03:00
bgp_flowspec.h bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
bgp_fsm.c bgpd: improve reconnection mechanism by cancelling connect timers 2019-04-18 16:11:51 +02:00
bgp_fsm.h bgpd: improve reconnection mechanism by cancelling connect timers 2019-04-18 16:11:51 +02:00
bgp_io.c lib,bgpd: remove deprecated stream lib macros 2018-11-29 11:13:15 -05:00
bgp_io.h bgpd: update pthreads to use lib changes 2018-01-24 15:30:55 -05:00
bgp_keepalives.c *: Rename backet to bucket 2019-02-25 16:22:36 +00:00
bgp_keepalives.h bgpd: update pthreads to use lib changes 2018-01-24 15:30:55 -05:00
bgp_label.c bgpd: Do not send UPDATE message with maximum-prefix 2019-04-24 14:51:06 +03:00
bgp_label.h bgpd, zebra: auto assign labels from label pool to regular prefixes in BGP labeled unicast 2018-12-20 15:28:52 +03:00
bgp_labelpool.c bgpd: replace label pool fifo with DECLARE_LIST 2019-04-27 19:33:45 +02:00
bgp_labelpool.h bgpd: replace label pool fifo with DECLARE_LIST 2019-04-27 19:33:45 +02:00
bgp_lcommunity.c Merge pull request #3869 from qlyoung/cocci-fixes 2019-03-06 15:54:44 +01:00
bgp_lcommunity.h bgpd: Code to handle BGP aggregate's l-communities. 2019-02-28 20:22:41 -08:00
bgp_mac.c bgpd: parse and comapre rmac attr against self mac 2019-03-04 09:56:05 -08:00
bgp_mac.h bgpd: parse and comapre rmac attr against self mac 2019-03-04 09:56:05 -08:00
bgp_main.c bgpd: add the -Z option to run bgp without zebra 2019-04-18 15:48:27 +02:00
bgp_memory.c *: support for evpn type-4 route 2018-05-30 07:48:20 -04:00
bgp_memory.h *: support for evpn type-4 route 2018-05-30 07:48:20 -04:00
bgp_mpath.c *: compare pointer types to NULL, not 0 2019-02-25 23:00:46 +00:00
bgp_mpath.h bgpd: Rename various variable names to something more appropriate 2018-10-09 14:26:30 -04:00
bgp_mplsvpn.c bgpd: Remove logically dead code assignment 2019-05-03 05:05:19 -04:00
bgp_mplsvpn.h Merge pull request #3931 from chiragshah6/evpn_dev1 2019-04-02 11:59:35 -04:00
bgp_network.c bgpd: Keep the session down if maximum-prefix is reached 2019-10-16 08:26:46 +03:00
bgp_network.h bgpd: add support for MD5 auth on listen ranges 2019-04-16 15:26:20 +00:00
bgp_nexthop.c Revert "bgpd: Prevent IPv6 routes received via a ibgp session with own ip as nexthop " 2019-05-02 07:15:39 -04:00
bgp_nexthop.h Revert "bgpd: Prevent IPv6 routes received via a ibgp session with own ip as nexthop " 2019-05-02 07:15:39 -04:00
bgp_nht.c *: s/TRUE/true/, s/FALSE/false/ 2019-07-02 18:02:35 +00:00
bgp_nht.h bgpd: Late registration of Extended Nexthop should allow RA's to happen 2018-11-07 14:11:45 -05:00
bgp_open.c bgpd: capabilty 2019-02-27 18:09:08 +00:00
bgp_open.h bgpd: capabilty 2019-02-27 18:09:08 +00:00
bgp_packet.c bgpd: IPv6 session flapping with MP_REACH_NLRI and 0.0.0.0 in NEXT_HOP attribute 2019-09-20 13:10:14 -04:00
bgp_packet.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
bgp_pbr.c bgpd: simplify lookup list call with fs pbr entries 2019-03-29 15:04:18 +01:00
bgp_pbr.h bgpd: display the list of iprules attached to a fs entry 2019-01-29 14:15:10 +01:00
bgp_rd.c bgpd: fix large route-distinguisher's format 2020-01-07 16:13:10 +09:00
bgp_rd.h bgpd: Auto RD definitions and encoding 2018-04-25 12:39:16 -04:00
bgp_regex.c *: reindent 2017-07-17 14:04:07 +02:00
bgp_regex.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_route.c bgpd: Fix memory leak in json output of show commands 2019-12-01 19:37:38 -05:00
bgp_route.h bgpd: Do not send UPDATE message with maximum-prefix 2019-04-24 14:51:06 +03:00
bgp_routemap.c bgpd: Add 'no set as-path prepend last-as X' command 2019-08-29 14:36:47 +03:00
bgp_rpki.c bgpd: remove initial sync timeout in rpki startup code 2019-08-20 10:31:43 +02:00
bgp_snmp.c *: use array_size instead of raw division 2019-02-25 23:00:16 +00:00
bgp_table.c bgpd: Prevent crash in bgp_table_range_lookup 2019-12-02 19:08:16 -05:00
bgp_table.h Merge pull request #3093 from donaldsharp/bgp_node_continued 2018-12-11 11:13:25 -05:00
bgp_updgrp_adv.c bgpd: add addpath ID to adj_out tree sort 2020-01-16 11:08:02 +02:00
bgp_updgrp_packet.c bgpd: replace ADV_FIFO with DECLARE_LIST 2019-04-27 19:33:45 +02:00
bgp_updgrp.c *: s/TRUE/true/, s/FALSE/false/ 2019-07-02 18:02:35 +00:00
bgp_updgrp.h bgpd: replace ADV_FIFO with DECLARE_LIST 2019-04-27 19:33:45 +02:00
bgp_vnc_types.h bgpd: Cleanup of bgp daemon code 2018-07-07 22:51:13 +02:00
bgp_vpn.c bgpd: Cleanup non-usage of prefix2str in bgp_vpn.c 2018-11-16 09:43:35 -05: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 #5576 from ton31337/fix/no_bgp_listen_range_peer-group_7.1 2020-01-07 00:05:11 -03:00
bgp_vty.h bgpd, lib, vtysh, zebra: Convert to using CMD_VNI_RANGE 2018-10-31 06:23:32 -04:00
bgp_zebra.c *: use ZAPI_CALLBACK_ARGS macro for zapi handlers 2019-05-03 20:57:35 +00:00
bgp_zebra.h bgpd: move bgp_update_redist_vrf_bitmaps to bgp_zebra.c for wider use beyond bgp_vty 2019-03-14 15:05:38 +00:00
bgpd.c bgpd: Notify "Peer De-configured" after entering 'no neighbor <neighbor> cmd' 2019-11-20 21:29:01 +02:00
bgpd.conf.sample Fix typos in BGPd sample configuration file 2018-12-27 09:13:55 +02:00
bgpd.conf.sample2 Initial revision 2002-12-13 20:15:29 +00:00
bgpd.conf.vnc.sample bgpd: hide "router bgp" commands also under "address-family ipv4 unicast" 2017-05-04 17:06:13 +00:00
bgpd.h bgpd: Notify "Peer De-configured" after entering 'no neighbor <neighbor> cmd' 2019-11-20 21:29:01 +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 bgpd: vrl source-vrf route map filter 2019-02-19 07:24:19 -08:00
valgrind.supp bgpd: make valgrind suppression more generic 2019-02-19 22:00:34 +01:00