summaryrefslogtreecommitdiffstats
path: root/bgpd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* lib, bgpd: add a specific oid_copy function for IPv6 addrsPat Ruddy2021-03-252-19/+20
| | | | | | | Do not overload the v4 oid_copy_addr function for ipv6 coverity does not like this kind of thing. Signed-off-by: Pat Ruddy <pat@voltanet.io>
* bgpd: improve BFD with timers configurationRafael Zalamena2021-03-232-1/+5
| | | | | | | | | Move `bgp_peer_config_apply` outside `bgp_peer_configure_bfd` (and document it) so we only call the session installation once with one set of timers. It also makes all calls of that function equal (e.g. always calls `bgp_peer_config_apply` afterwards). Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* bgpd: add debug option for BFDRafael Zalamena2021-03-233-8/+53
| | | | | | Add new BGP debug option to enable BFD related debugging messages. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* bgpd: rework BFD integrationRafael Zalamena2021-03-237-736/+436
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove old BFD API usage and replace it with the new one. Highlights: - More shared code: the daemon gets notified with callbacks instead of having to roll its own code to find the notified sessions. - Less code to integrate with BFD. - Remove hidden commands to configure single / multi hop. Use protocol data instead. BGP can determine if a peer is single/multi hop according to the following criteria: a. If the IP address is a link-local address (single hop) b. The network is shared with peer (single hop) c. BGP is configured for eBGP multi hop / TTL security (multi hop) - Respect the configuration hierarchy: a. Peer configuration take precendence over peer-group configuration. b. When peer group configuration is removed, reset peer BFD configurations to defaults (unless peer had specific configs). Example: neighbor foo peer-group neighbor foo bfd profile X neighbor 192.168.0.2 peer-group foo neighbor 192.168.0.2 bfd ! If peer-group is removed the profile configuration gets ! removed from peer 192.168.0.2, but BFD will still enabled ! because of the neighbor specific bfd configuration. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* bgpd: remove cumulus specific codeRafael Zalamena2021-03-231-12/+1
| | | | | | | | | | | | | | | | | | | The BFD function `bgp_bfd_is_peer_multihop` will no longer exist and now both code paths are equal. Longer explanation: Cumulus was previously using the BFD function to help determine whether a peer is multi hop or not, because there is a configuration to set BFD to use single or multi hop. Current BFD code can automatically pick between single/multi hop by using the protocol information and so it is a good idea to have that tested/used than relying on yet another duplicated information. (BFD extracts the TTL information from protocol and selects single/multi hop based on that) Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* Merge pull request #8305 from donaldsharp/bgp_ll_ifp_changeRuss White2021-03-231-0/+20
|\ | | | | bgpd: Reset LLA NHT's interface if there is a change
| * bgpd: Reset LLA NHT's interface if there is a changevivek2021-03-221-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For link-local IPv6 next hops, the next hop tracking is implemented based on interface status changes. For this purpose, the ifindex is stored in the NHT. Reset this value if a change in ifindex is noticed, such as for example after a restart of the networking service. Also add some additional debug logs. Signed-off-by: Vivek Venkatraman <vivek@nvidia.com> Updates: "bgpd: Switch LL nexthop tracking to be interface based" Ticket: RM 2575386 Testing Done: 1. Manual verification 2. Precommit (#156), evpn-smoke (#155), bgp-smoke (#157), vrl (#158) -- Precommit is clean, reported failures in evpn-smoke & vrl are resolved -- some other tests fail in evpn-smoke, bgp-smoke & vrl, appear to be existing -- or unrelated failures
* | Merge pull request #8120 from ton31337/feature/bgp_ipv6_default_activatedRuss White2021-03-236-60/+111
|\ \ | | | | | | bgpd: Activate ipv6-unicast for peer automatically if globally defined
| * | bgpd: Activate ipv6-unicast for peer automatically if globally definedDonatas Abraitis2021-02-286-60/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | When you use a single BGP session for both IPv4 and IPv6 it's a bit annoying going into ipv6 address-family and explicitly activating it. Let's get this automatically if enabled with `bgp default ipv6-unicast`. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | Merge pull request #8296 from chiragshah6/mdevIgor Ryzhov2021-03-221-6/+42
|\ \ \ | |_|/ |/| | bgpd: convert send-community to transactional cli
| * | bgpd: convert send-community to transactional cliChirag Shah2021-03-201-6/+42
| | | | | | | | | | | | | | | | | | [no] neighbor <A.B.C.D|X:X::X:X|WORD> send-community Signed-off-by: Chirag Shah <chirag@nvidia.com>
* | | Merge pull request #8121 from opensourcerouting/macro-cleanupDonatas Abraitis2021-03-2229-390/+395
|\ \ \ | | | | | | | | *: require ISO C11 + semicolons after file-scope macros
| * | | *: require semicolon after FRR_CFG_DEFAULT_*David Lamparter2021-03-172-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | ... again ... Signed-off-by: David Lamparter <equinox@diac24.net>
| * | | *: require semicolon after FRR_DAEMON_INFO & co.David Lamparter2021-03-174-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | ... again ... Signed-off-by: David Lamparter <equinox@diac24.net>
| * | | *: require semicolon after DEFINE_<typesafe...>David Lamparter2021-03-175-22/+23
| | | | | | | | | | | | | | | | | | | | | | | | Again, see previous commits. Signed-off-by: David Lamparter <equinox@diac24.net>
| * | | *: require semicolon after DEFINE_QOBJ & co.David Lamparter2021-03-179-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | Again, see previous commits. Signed-off-by: David Lamparter <equinox@diac24.net>
| * | | *: require semicolon after DEFINE_HOOK & co.David Lamparter2021-03-1711-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | See previous commit. Signed-off-by: David Lamparter <equinox@diac24.net>
| * | | *: require semicolon after DEFINE_MTYPE & coDavid Lamparter2021-03-179-299/+299
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Back when I put this together in 2015, ISO C11 was still reasonably new and we couldn't require it just yet. Without ISO C11, there is no "good" way (only bad hacks) to require a semicolon after a macro that ends with a function definition. And if you added one anyway, you'd get "spurious semicolon" warnings on some compilers... With C11, `_Static_assert()` at the end of a macro will make it so that the semicolon is properly required, consumed, and not warned about. Consistently requiring semicolons after "file-level" macros matches Linux kernel coding style and helps some editors against mis-syntax'ing these macros. Signed-off-by: David Lamparter <equinox@diac24.net>
| * | | snmp: change -std=gnu99 to -std=gnu11David Lamparter2021-03-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The point of the `-std=gnu99` was to override a `-std=c99` that may be coming in from net-snmp. However, we want C11, not C99. Signed-off-by: David Lamparter <equinox@diac24.net>
* | | | Merge pull request #8257 from donaldsharp/fix_bgp_metricDonatas Abraitis2021-03-211-2/+6
|\ \ \ \ | |_|/ / |/| | | Fix bgp metric
| * | | bgpd: Set metric appropriately for the bnc for a v6 LL addressDonald Sharp2021-03-161-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The v6 LL commit 8761cd6ddb5437767625f58c8e9cc3ccda7887ab incorrectly was setting the metric value to 1 for the underlying connected interface. Modify the code to use a metric value of 0 instead of 1 that now represents the actual metric value that was originally passed up. This was noticed when the `show bgp ipv4 uni` command was inserting a `(metric 1)` into output where before it was not. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | Merge pull request #8283 from chiragshah6/mdevDonatas Abraitis2021-03-182-13/+121
|\ \ \ \ | | | | | | | | | | bgpd: add seqno in bgp as-path access-list policy
| * | | | bgpd: add seqno in bgp as-path access-list policyChirag Shah2021-03-182-13/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add optional parameter seqno to bgp as-patch policy to inline with other bgp policies commands at same level. Testing Done: config t bgp as-path access-list foo1 permit _40_ bgp as-path access-list foo1 seq 5 permit _41_ bgp as-path access-list foo1 seq 8 permit _42_ bgp as-path access-list foo2 permit _43_ no bgp as-path access-list foo1 permit _41_ bgp as-path access-list foo1 permit 41$ show run: bgp as-path access-list foo1 seq 8 permit _42_ bgp as-path access-list foo1 seq 10 permit 41$ bgp as-path access-list foo2 seq 5 permit _43_ Signed-off-by: Chirag Shah <chirag@nvidia.com>
* | | | | Merge pull request #8284 from mjstapp/fix_bgp_zero_timersDonald Sharp2021-03-183-5/+5
|\ \ \ \ \ | |/ / / / |/| | | | bgpd: use add_event instead of add_timer with zero timeout
| * | | | bgpd: use add_event instead of add_timer with zero timeoutMark Stapp2021-03-173-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just use events in a few places where timers with zero timeout were being used. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | | | | Merge pull request #8052 from ton31337/feature/show_bgp_peer-groups_jsonQuentin Young2021-03-171-48/+170
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | bgpd: Add JSON output for `show ip bgp peer-group` commandDonatas Abraitis2021-03-141-48/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` exit1-debian-9# show bgp peer-group BGP peer-group test, remote AS 123 Peer-group type is external Configured address-families: IPv4 Unicast; IPv6 Unicast; 1 IPv4 listen range(s) 192.168.100.0/24 2 IPv6 listen range(s) 2001:db8:1::/64 2001:db8:2::/64 Peer-group members: 192.168.200.1 Active 2001:db8::1 Active BGP peer-group test3 Peer-group type is external Configured address-families: IPv4 Unicast; exit1-debian-9# exit1-debian-9# show bgp peer-group json { "test":{ "remoteAs":123, "type":"external", "addressFamiliesConfigured":[ "IPv4 Unicast", "IPv6 Unicast" ], "dynamicRanges":{ "IPv4":{ "count":1, "ranges":[ "192.168.100.0\/24" ] }, "IPv6":{ "count":2, "ranges":[ "2001:db8:1::\/64", "2001:db8:2::\/64" ] } }, "members":{ "192.168.200.1":{ "status":"Active" }, "2001:db8::1":{ "status":"Active" } } }, "test3":{ "type":"external", "addressFamiliesConfigured":[ "IPv4 Unicast" ] } } ``` Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | | | bgpd: If we have a SAFI conflict do not allow labeled unicast to resetDonald Sharp2021-03-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have a SAFI conflict, ie we are trying to activate safi's UNICAST and LABELED_UNICAST at the same time, we should not cause bestpath to be rerun and we should not try to put labels on everything. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | | bgpd: Attempting to activate unicast and labeled-unicastDonald Sharp2021-03-171-2/+2
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Should return an actual useful error message. Commit: 055679e915fc826fe13abdd8d60a22a0ca35c8c6 messed this error message up. Fixes: #8246 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | Merge pull request #8226 from adharkar/frr-evi_rxPatrick Ruddy2021-03-163-1/+43
|\ \ \ \ | |_|/ / |/| | | bgpd: Reevaluate es_evi_vtep active state on disable-ead-evi-rx config flap
| * | | bgpd: Reevaluate es_evi_vtep active state on disable-ead-evi-rx config flapAmeya Dharkar2021-03-103-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Update es_evi_vtep active state and add/delete es_vtep accordingly to zebra for remote ES. Signed-off-by: Ameya Dharkar <adharkar@vmware.com>
* | | | bgpd: use appropriate printf formatter for some uint32_tDonald Sharp2021-03-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | newm and existm are uint32_t so let's use %u instead of %d to print them out. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | Merge pull request #8220 from mjstapp/bgp_notify_raceDonatas Abraitis2021-03-153-27/+58
|\ \ \ \ | | | | | | | | | | bgpd: handle socket read errors in the main pthread
| * | | | bgpd: handle socket read errors in the main pthreadMark Stapp2021-03-093-27/+58
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a handler for socket errors that runs in the main pthread, rather than the io pthread. When the io pthread encounters a read error, capture the error and schedule a task for the main pthread. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | / / bgpd: fix wrong debug formatRafael Zalamena2021-03-141-1/+1
| |/ / |/| | | | | | | | | | | | | | Use `%pIA` instead of `%pI4` for `struct ipaddr *`. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* | | bgpd: Convert remaining string output to our internal typesDonald Sharp2021-03-109-180/+80
|/ / | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | Merge pull request #8208 from donaldsharp/validation_stateDonatas Abraitis2021-03-083-0/+41
|\ \ | | | | | | bgpd: Display RPKI validation state if we have it
| * | bgpd: Display RPKI validation state if we have itDonald Sharp2021-03-073-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When dumping data about prefixes in bgp. Let's dump the rpki validation state as well: Output if rpki is turned on: janelle# show rpki prefix 2003::/19 Prefix Prefix Length Origin-AS 2003:: 19 - 19 3320 janelle# show bgp ipv6 uni 2003::/19 BGP routing table entry for 2003::/19 Paths: (1 available, best #1, table default) Not advertised to any peer 15096 6939 3320 ::ffff:4113:867a from 65.19.134.122 (193.72.216.231) (fe80::e063:daff:fe79:1dab) (used) Origin IGP, valid, external, best (First path received), validation-state: valid Last update: Sat Mar 6 09:20:51 2021 janelle# show rpki prefix 8.8.8.0/24 Prefix Prefix Length Origin-AS janelle# show bgp ipv4 uni 8.8.8.0/24 BGP routing table entry for 8.8.8.0/24 Paths: (1 available, best #1, table default) Advertised to non peer-group peers: 100.99.229.142 15096 6939 15169 65.19.134.122 from 65.19.134.122 (193.72.216.231) Origin IGP, valid, external, best (First path received), validation-state: not found Last update: Sat Mar 6 09:21:25 2021 Example output when rpki is not configured: eva# show bgp ipv4 uni 8.8.8.0/24 BGP routing table entry for 8.8.8.0/24 Paths: (1 available, best #1, table default) Advertised to non peer-group peers: janelle(192.168.161.137) 64539 15096 6939 15169 192.168.161.137(janelle) from janelle(192.168.161.137) (192.168.44.1) Origin IGP, valid, external, bestpath-from-AS 64539, best (First path received) Last update: Sat Mar 6 09:33:51 2021 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | bgpd: improve socket read performanceRafael Zalamena2021-03-051-7/+1
|/ / | | | | | | | | | | | | Use the new ringbuffer API function to read file descriptors directly to the ringbuffer instead of using intermediary buffers. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* | Merge pull request #8196 from ton31337/feature/rfc8654_bgpdDonald Sharp2021-03-0510-28/+124
|\ \ | | | | | | bgpd: Add BGP Extended message support
| * | bgpd: Add BGP Extended message supportDonatas Abraitis2021-03-0410-28/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement https://www.rfc-editor.org/rfc/rfc8654.txt ``` > | jq '."192.168.10.25".neighborCapabilities.extendedMessage' "advertisedAndReceived" ``` Another side is Bird: ``` BIRD 2.0.7 ready. Name Proto Table State Since Info v4 BGP --- up 19:39:15.689 Established BGP state: Established Neighbor address: 192.168.10.123 Neighbor AS: 65534 Local AS: 65025 Neighbor ID: 192.168.100.1 Local capabilities Multiprotocol AF announced: ipv4 Route refresh Extended message Graceful restart 4-octet AS numbers Enhanced refresh Long-lived graceful restart Neighbor capabilities Multiprotocol AF announced: ipv4 Route refresh Extended message Graceful restart 4-octet AS numbers ADD-PATH RX: ipv4 TX: Enhanced refresh Session: external AS4 Source address: 192.168.10.25 Hold timer: 140.139/180 Keepalive timer: 9.484/60 Channel ipv4 State: UP Table: master4 Preference: 100 Input filter: ACCEPT Output filter: ACCEPT Routes: 9 imported, 3 exported, 8 preferred Route change stats: received rejected filtered ignored accepted Import updates: 9 0 0 0 9 Import withdraws: 2 0 --- 2 0 Export updates: 11 8 0 --- 3 Export withdraws: 0 --- --- --- 0 BGP Next hop: 192.168.10.25 ``` Tested at least as well with to make sure it works with backward compat.: ExaBGP 4.0.2-1c737d99. Arista vEOS 4.21.14M Testing by injecint 10k routes with: ``` sharp install routes 172.16.0.1 nexthop 192.168.10.123 10000 ``` Before extended message support: ``` 2021/03/01 07:18:51 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:51 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:51 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:51 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:51 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:51 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:52 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:52 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:52 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:52 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:52 BGP: u1:s1 send UPDATE len 4096 (max message len: 4096) numpfx 809 2021/03/01 07:18:52 BGP: u1:s1 send UPDATE len 2186 (max message len: 4096) numpfx 427 2021/03/01 07:18:53 BGP: u1:s1 send UPDATE len 3421 (max message len: 4096) numpfx 674 ``` After extended message support: ``` 2021/03/01 07:20:11 BGP: u1:s1 send UPDATE len 50051 (max message len: 65535) numpfx 10000 ``` Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | bgpd: fix bgp statistics for l2vpn evpnTrey Aspelund2021-03-041-0/+3
|/ / | | | | | | | | | | | | | | 'show bgp l2vpn evpn statistics' was returning 0 for all stats because bgp_table_stats_walker bailed out if afi != AFI_IP or AFI_IP6. Add case condition to catch AFI_L2VPN. Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
* | Merge pull request #8170 from mjstapp/fix_sa_pimDonald Sharp2021-03-021-1/+1
|\ \ | | | | | | bgpd, pimd: fix coverity SA warnings
| * | bgpd, pimd: fix coverity SA warningsMark Stapp2021-03-011-1/+1
| |/ | | | | | | | | | | Fix a couple of coverity warnings in pim and bgp. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | Merge pull request #8150 from pguibert6WIND/ecomm_seq_0_possibleRuss White2021-03-021-26/+26
|\ \ | | | | | | bgpd: accept (ext)community list sequence number set to 0
| * | bgpd: accept (ext)community list sequence number set to 0Philippe Guibert2021-03-011-26/+26
| | | | | | | | | | | | | | | | | | | | | now that sequence number is configurable, there is no problem in permitting to configure seq 0 sequence number. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* | | Merge pull request #8175 from mjstapp/fix_printfrr_nullsRuss White2021-03-021-2/+8
|\ \ \ | | | | | | | | lib, bgpd: handle NULL inputs in printfrr extensions
| * | | bgpd: protect bgp printfrr extension from NULLsMark Stapp2021-03-011-2/+8
| | |/ | |/| | | | | | | | | | | | | Protect the bgp printfrr extension from NULL input. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | | Merge pull request #7951 from mjstapp/fix_cancel_eventDonald Sharp2021-03-021-4/+4
|\ \ \ | | | | | | | | libs, bgpd: improve task cancellation by argument value
| * | | libs, bgpd: improve task cancellation by argument valueMark Stapp2021-02-091-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend the thread_cancel_event api so that it's more complete: look in all the lists of events, including io and timers, for matching tasks. Add a limited version of the api that only examines tasks in the event and ready queues. BGP appears to require the old behavior, so change its macro to use the more limited cancel api. Signed-off-by: Mark Stapp <mjs@voltanet.io>