summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* bgpd: bgp_fsm_change_status/BGP_TIMER_ON and BGP_EVENT_ADDDonald Sharp2023-09-1013-266/+232
| | | | | | | | | Modify bgp_fsm_change_status to be connection oriented and also make the BGP_TIMER_ON and BGP_EVENT_ADD macros connection oriented as well. Attempt to make peer_xfer_conn a bit more understandable because, frankly it was/is confusing. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: peer_established should be connection orientedDonald Sharp2023-09-1017-97/+108
| | | | | | The peer_established function should be connection oriented. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: make bgp_keepalives_on|off connection orientedDonald Sharp2023-09-104-17/+21
| | | | | | | The bgp_keepalives_on|off functions should use a peer_connection as a basis for it's operation. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: bgp_open_send is connection oriented not peer orientedDonald Sharp2023-09-103-10/+9
| | | | | | | The bgp_open_send function should use a connection oriented pointer for it's basis. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: convert bgp_stop_with_notify to connection basedDonald Sharp2023-09-101-5/+8
| | | | | | | The bgp_stop_with_notify function should use a peer_connection pointer as the basis instead of a peer. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: make bgp_timer_set use a peer_connection insteadDonald Sharp2023-09-104-60/+57
| | | | | | | The bgp_timer_set function should use a peer_connection pointer instead. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: bgp_notify_send use peer_connection instead of peerDonald Sharp2023-09-099-162/+197
| | | | | | The bgp_notify_send function should use a peer_connection Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: move t_pmax_restart to peer_connectionDonald Sharp2023-09-095-11/+11
| | | | | | | The t_pmax_restart event pointer belongs in the peer_connection pointer. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: move t_generate_updgrp_packets into peer_connectionDonald Sharp2023-09-095-12/+16
| | | | | | | The t_generate_updgrp_packets event pointer belongs in the peer_connection pointer. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: move t_gr_restart and _stale into peer_connectionDonald Sharp2023-09-095-46/+54
| | | | | | | The t_gr_restart and t_gr_stale event pointers belong into the peer_connection pointer. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: move t_routeadv to peer_connectionDonald Sharp2023-09-095-31/+37
| | | | | | The t_routeadv belongs to the peer_connection data structure Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: t_connect_check_r and w move to peer connectionDonald Sharp2023-09-093-18/+19
| | | | | | These two event pointers belong in the peer_connection Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: t_holdtime move to peer_connectionDonald Sharp2023-09-092-18/+18
| | | | | | The t_holdtime event pointer belongs in the peer connection Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: move t_start into peer_connectionDonald Sharp2023-09-094-19/+22
| | | | | | The t_start event pointer belongs on the peer_connection Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: move t_delayopen from peer to peer_connectionDonald Sharp2023-09-092-13/+13
| | | | | | This belongs in peer_connection let's move it. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: t_connect conversion from peer to peer_connectDonald Sharp2023-09-093-26/+31
| | | | | | Move t_connect into struct peer_connect Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* bgpd: Remove BGP_EVENT_FLUSH and just use event_cancel_event_readyDonald Sharp2023-09-093-9/+3
| | | | | | | | | The usage of BGP_EVENT_FLUSH is unnecessarily abstracting the call into event_cancel_event_ready and in addtion the macro was not always being used! Just convert to using the actual event_cancel_event_ready function directly. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* Merge pull request #14377 from mjstapp/nl_rule_valid_actionDonatas Abraitis2023-09-091-0/+24
|\ | | | | zebra: ignore iprule requests for unsupported actions
| * zebra: ignore iprule requests for unsupported actionsMark Stapp2023-09-081-0/+24
| | | | | | | | | | | | | | | | Only attempt to install in netlink iprules that include supported actions; ignore requests with actions that aren't supported by netlink. Signed-off-by: Mark Stapp <mjs@labn.net>
* | Merge pull request #14360 from opensourcerouting/fix/as_path_no_prependQuentin Young2023-09-071-18/+2
|\ \ | | | | | | bgpd: Fix `no set as-path prepend` command for BGP
| * | bgpd: Fix `no set as-path prepend` command for BGPDonatas Abraitis2023-09-061-18/+2
| | | | | | | | | | | | Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* | | Merge pull request #14358 from donaldsharp/tc_possible_crashDonatas Abraitis2023-09-071-2/+6
|\ \ \ | | | | | | | | zebra: Prevent Null pointer deref
| * | | zebra: Prevent Null pointer derefDonald Sharp2023-09-061-2/+6
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the kernel sends us bad data then the kind_str will be NULL and a later strcmp operation will cause a crash. As a note: If the kernel is not sending us properly formated netlink messages then we got bigger problems than zebra crashing. But at least let's prevent zebra from crashing. Reported-by: Iggy Frankovic <iggyfran@amazon.com> Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | Merge pull request #14357 from donaldsharp/no_need_anymoreDavid Lamparter2023-09-061-6/+0
|\ \ \ | |_|/ |/| |
| * | *: Remove unused configure optionDonald Sharp2023-09-051-6/+0
| | | | | | | | | | | | | | | | | | | | | The `-disable-rr-semantics` or `--enable-rr-senamtics` configure option is never used. Let's just remove it. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | Merge pull request #14261 from Keelan10/ospfd-memleakDonald Sharp2023-09-061-2/+11
|\ \ \ | | | | | | | | ospfd: fix area range memory leak
| * | | ospfd: fix area range memory leakKeelan102023-09-051-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Addressed a memory leak in OSPF by fixing the improper deallocation of area range nodes when removed from the table. Introducing a new function, `ospf_range_table_node_destroy` for proper node cleanup, resolved the issue. The ASan leak log for reference: ``` Direct leak of 56 byte(s) in 2 object(s) allocated from: #0 0x7faf661d1d28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28) #1 0x7faf65bce1e9 in qcalloc lib/memory.c:105 #2 0x55a66e0b61cd in ospf_area_range_new ospfd/ospf_abr.c:43 #3 0x55a66e0b61cd in ospf_area_range_set ospfd/ospf_abr.c:195 #4 0x55a66e07f2eb in ospf_area_range ospfd/ospf_vty.c:631 #5 0x7faf65b51548 in cmd_execute_command_real lib/command.c:993 #6 0x7faf65b51f79 in cmd_execute_command_strict lib/command.c:1102 #7 0x7faf65b51fd8 in command_config_read_one_line lib/command.c:1262 #8 0x7faf65b522bf in config_from_file lib/command.c:1315 #9 0x7faf65c832df in vty_read_file lib/vty.c:2605 #10 0x7faf65c83409 in vty_read_config lib/vty.c:2851 #11 0x7faf65bb0341 in frr_config_read_in lib/libfrr.c:977 #12 0x7faf65c6cceb in event_call lib/event.c:1979 #13 0x7faf65bb1488 in frr_run lib/libfrr.c:1213 #14 0x55a66dfb28c4 in main ospfd/ospf_main.c:249 #15 0x7faf651c9c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) SUMMARY: AddressSanitizer: 56 byte(s) leaked in 2 allocation(s). ``` Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
* | | | Merge pull request #14225 from opensourcerouting/bug/topostest_grpcDonald Sharp2023-09-061-12/+1
|\ \ \ \ | |_|_|/ |/| | | topotest: Command using wrong python version
| * | | topotest: Command using wrong python versionRodrigo Nardi2023-08-301-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | Changing command from python to python3. Signed-off-by: Rodrigo Nardi <rnardi@netdef.org>
* | | | Merge pull request #14344 from opensourcerouting/freebsd-printf-sync-20230903Donald Sharp2023-09-066-10/+36
|\ \ \ \ | | | | | | | | | | lib/printf: sync with FreeBSD for ISO C23 enhancements
| * | | | lib/printf: update READMEDavid Lamparter2023-09-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make a note that `%b` was picked up. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * | | | tests: exercise `%b` printfrr format specifierDavid Lamparter2023-09-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added by ISO C23 / N2630, implementation imported from FreeBSD. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * | | | tools/gcc-plugins: allow ISO C23 `%b`David Lamparter2023-09-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It behaves exactly like `%x`, so adding it is a single byte diff. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
| * | | | lib/printf: Implement N2630.Dag-Erling Smørgrav2023-09-032-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds formatted input/output of binary integer numbers to the printf(), scanf(), and strtol() families, including their wide-character counterparts. Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D41511 FRR changes only include printf(), scanf/strtol are not locally implemented in FRR. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from FreeBSD commit d9dc1603d6e48cca84cad3ebe859129131b8387c)
| * | | | lib/printf: Remove $FreeBSD$: two-line .h patternWarner Losh2023-09-032-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/ Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from FreeBSD commit b3e7694832e81d7a904a10f525f8797b753bf0d3)
| * | | | lib/printf: drop "All rights reserved" from Foundation copyrightsEd Maste2023-09-032-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has already been done for most files that have the Foundation as the only listed copyright holder. Do it now for files that list multiple copyright holders, but have the Foundation copyright in its own section. Sponsored by: The FreeBSD Foundation Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from FreeBSD commit 5b5fa75acff11d871d0c90045f8c1a58fed85365)
* | | | | Merge pull request #14349 from opensourcerouting/fix/update_doc_for_dockerJafar Al-Gharaibeh2023-09-061-3/+3
|\ \ \ \ \ | |_|_|_|/ |/| | | | doc: Reuse $TAG for git checkout when building Docker images
| * | | | doc: Reuse $TAG for git checkout when building Docker imagesDonatas Abraitis2023-09-051-3/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* | | | | Merge pull request #14285 from ↵Russ White2023-09-056-5/+362
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | opensourcerouting/feature/graceful_restart_dynamic_capability bgpd: Handle Graceful Restart capability using dynamic capabilities
| * | | | | bgpd: Print a hostname also for GR logs under dynamic capabilityDonatas Abraitis2023-08-301-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just to be consistent with other zlog_ stuff for dynamic capabilities. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
| * | | | | bgpd: Make sure we have enough data to read restart time and flags for GR capDonatas Abraitis2023-08-301-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just a safety check to avoid out of bound reading. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
| * | | | | tests: Check if GR settings can be changed via BGP dynamic capabilitiesDonatas Abraitis2023-08-303-0/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | restart-time and/or notification support. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
| * | | | | doc: GR restart time, notifcation flag can be changed via BGP dynamic capDonatas Abraitis2023-08-301-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
| * | | | | bgpd: Handle Graceful-Restart capability with dynamic capabilityDonatas Abraitis2023-08-302-2/+174
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Graceful-Restart restart time is exchanged using OPEN messages. In order to reduce restart time before doing an actual graceful restart, it might be useful to increase the time, but this is not possible without resetting the session. With this change, it's possible to send dynamic capability with a new value, and GR will respect a new reset time value. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* | | | | Merge pull request #14341 from ↵Russ White2023-09-051-0/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | opensourcerouting/fix/bgpd_BGP_ATTR_PMSI_TUNNEL_treat_as_withdraw bgpd: AS4_PATH and PMSI tunnel attributes handling by RFC 7606
| * | | | | bgpd: Treat as4-path (17) attribute as withdraw if malformedDonatas Abraitis2023-09-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rfc7606 defines: Attributes 17 (AS4_PATH), 18 (AS4_AGGREGATOR), 22 (PMSI_TUNNEL), 23 (Tunnel Encapsulation Attribute), 26 (AIGP), 27 (PE Distinguisher Labels), and 29 (BGP-LS Attribute) do have error handling consistent with Section 8 and thus are not further discussed herein. Section 8 defines: The "treat-as-withdraw" approach is generally preferred and the "session reset" approach is discouraged. For any malformed attribute that is handled by the "attribute discard" instead of the "treat-as-withdraw" approach, it is critical to consider the potential impact of doing so. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
| * | | | | bgpd: Treat PMSI tunnel attribute as withdrawn if malformedDonatas Abraitis2023-09-011-0/+1
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://datatracker.ietf.org/doc/html/rfc6514#page-10 states: A router that supports the PMSI Tunnel attribute considers this attribute to be malformed if either (a) it contains an undefined tunnel type in the Tunnel Type field of the attribute, or (b) the router cannot parse the Tunnel Identifier field of the attribute as a tunnel identifier of the tunnel types specified in the Tunnel Type field of the attribute. When a router that receives a BGP Update that contains the PMSI Tunnel attribute with its Partial bit set determines that the attribute is malformed, the router SHOULD treat this Update as though all the routes contained in this Update had been withdrawn. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* | | | | Merge pull request #14318 from raja-rajasekar/frr_dev1Russ White2023-09-053-20/+48
|\ \ \ \ \ | | | | | | | | | | | | zebra: Fix zebra crash when replacing NHE during shutdown
| * | | | | zebra: Fix zebra crash when replacing NHE during shutdownRajasekar Raja2023-08-313-20/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During replace of a NHE from upper proto in zebra_nhg_proto_add(), - rib_handle_nhg_replace() is invoked with old NHE where we walk all RNs/REs & replace the re->nhe whose address points to old NHE. - In this walk, if prev re->nhe refcnt is decremented to 0, we free up the memory which the old NHE is pointing to. Later in zebra_nhg_proto_add(), we end up accessing this freed memory and crash. Logs: 1380766 2023/08/16 22:34:11.994671 ZEBRA: [WDEB1-93HCZ] zebra_nhg_decrement_ref: nhe 0x56091d890840 (70312519[2756/2762/2810]) 2 => 1 1380773 2023/08/16 22:34:11.994678 ZEBRA: [WDEB1-93HCZ] zebra_nhg_decrement_ref: nhe 0x56091d890840 (70312519[2756/2762/2810]) 1 => 0 1380777 2023/08/16 22:34:11.994844 ZEBRA: [JE46R-G2NEE] zebra_nhg_release: nhe 0x56091d890840 (70312519[2756/2762/2810]) 1380778 2023/08/16 22:34:11.994849 ZEBRA: [SCDBM-4H062] zebra_nhg_free: nhe 0x56091d890840 (70312519[2756/2762/2810]), refcnt 0 1380782 2023/08/16 22:34:11.995000 ZEBRA: [SCDBM-4H062] zebra_nhg_free: nhe 0x56091d890840 (0[]), refcnt 0 1380783 2023/08/16 22:34:11.995011 ZEBRA: lib/memory.c:84: mt_count_free(): assertion (mt->n_alloc) failed Backtrace: 0  0x00007f833f5f48eb in raise () from /lib/x86_64-linux-gnu/libc.so.6 1  0x00007f833f5df535 in abort () from /lib/x86_64-linux-gnu/libc.so.6 2  0x00007f833f636648 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 3  0x00007f833f63cd6a in ?? () from /lib/x86_64-linux-gnu/libc.so.6 4  0x00007f833f63cfb4 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 5  0x00007f833f63fbc8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 6  0x00007f833f64172a in malloc () from /lib/x86_64-linux-gnu/libc.so.6 7  0x00007f833f6c3fd2 in backtrace_symbols () from /lib/x86_64-linux-gnu/libc.so.6 8  0x00007f833f9013fc in zlog_backtrace_sigsafe (priority=priority@entry=2, program_counter=program_counter@entry=0x7f833f5f48eb <raise+267>) at lib/log.c:222 9  0x00007f833f901593 in zlog_signal (signo=signo@entry=6, action=action@entry=0x7f833f988ee8 "aborting...", siginfo_v=siginfo_v@entry=0x7ffee1ce4a30,     program_counter=program_counter@entry=0x7f833f5f48eb <raise+267>) at lib/log.c:154 10 0x00007f833f92dbd1 in core_handler (signo=6, siginfo=0x7ffee1ce4a30, context=<optimized out>) at lib/sigevent.c:254 11 <signal handler called> 12 0x00007f833f5f48eb in raise () from /lib/x86_64-linux-gnu/libc.so.6 13 0x00007f833f5df535 in abort () from /lib/x86_64-linux-gnu/libc.so.6 14 0x00007f833f958f96 in _zlog_assert_failed (xref=xref@entry=0x7f833f9e4080 <_xref.10705>, extra=extra@entry=0x0) at lib/zlog.c:680 15 0x00007f833f905400 in mt_count_free (mt=0x7f833fa02800 <MTYPE_NH_LABEL>, ptr=0x51) at lib/memory.c:84 16 mt_count_free (ptr=0x51, mt=0x7f833fa02800 <MTYPE_NH_LABEL>) at lib/memory.c:80 17 qfree (mt=0x7f833fa02800 <MTYPE_NH_LABEL>, ptr=0x51) at lib/memory.c:140 18 0x00007f833f90799c in nexthop_del_labels (nexthop=nexthop@entry=0x56091d776640) at lib/nexthop.c:563 19 0x00007f833f907b91 in nexthop_free (nexthop=0x56091d776640) at lib/nexthop.c:393 20 0x00007f833f907be8 in nexthops_free (nexthop=<optimized out>) at lib/nexthop.c:408 21 0x000056091c21aa76 in zebra_nhg_free_members (nhe=0x56091d890840) at zebra/zebra_nhg.c:1628 22 zebra_nhg_free (nhe=0x56091d890840) at zebra/zebra_nhg.c:1628 23 0x000056091c21bab2 in zebra_nhg_proto_add (id=<optimized out>, type=9, instance=<optimized out>, session=0, nhg=nhg@entry=0x56091d7da028, afi=afi@entry=AFI_UNSPEC)     at zebra/zebra_nhg.c:3532 24 0x000056091c22bc4e in process_subq_nhg (lnode=0x56091d88c540) at zebra/zebra_rib.c:2689 25 process_subq (qindex=META_QUEUE_NHG, subq=0x56091d24cea0) at zebra/zebra_rib.c:3290 26 meta_queue_process (dummy=<optimized out>, data=0x56091d24d4c0) at zebra/zebra_rib.c:3343 27 0x00007f833f9492c8 in work_queue_run (thread=0x7ffee1ce55a0) at lib/workqueue.c:285 28 0x00007f833f93f60d in thread_call (thread=thread@entry=0x7ffee1ce55a0) at lib/thread.c:2008 29 0x00007f833f8f9888 in frr_run (master=0x56091d068660) at lib/libfrr.c:1223 30 0x000056091c1b8366 in main (argc=12, argv=0x7ffee1ce5988) at zebra/main.c:551 Issue: 3492162 Ticket# 3492162 Signed-off-by: Chirag Shah <chirag@nvidia.com> Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
* | | | | | Merge pull request #14234 from Pdoijode/pdoijode/frr-bgp-nexthop-find-fix-1Russ White2023-09-054-3/+84
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | bgpd: set ifindex only for v6 nexthops and nexthops that match peer's LL