Commit Graph

23292 Commits

Author SHA1 Message Date
Donald Sharp
8ca7a3ed38 nhrpd: Fix clang SA about null deref
Clang was complaining when running SA that the nhrpd_privs.change
function was null.  It just does not fully understand how things
are setup.  Add a assert to make it happy.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-14 16:04:16 -05:00
Donald Sharp
0fec6da172
Merge pull request #8080 from opensourcerouting/log-whitespace
*: remove tabs & newlines from log messages
2021-02-14 14:58:40 -05:00
Donatas Abraitis
ab0e0f733d bgpd: Check for peer->su_remote if not NULL when handling IPv6 nexthop
```
(gdb) bt
0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
1  0x00007fe57ca4a42a in __GI_abort () at abort.c:89
2  0x00007fe57ddd1935 in core_handler (signo=6, siginfo=0x7ffc81067570, context=<optimized out>) at lib/sigevent.c:255
3  <signal handler called>
4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
5  0x00007fe57ca4a42a in __GI_abort () at abort.c:89
6  0x00007fe57ddd1935 in core_handler (signo=11, siginfo=0x7ffc81067e30, context=<optimized out>) at lib/sigevent.c:255
7  <signal handler called>
8  0x000055a7b25b923f in bgp_path_info_to_ipv6_nexthop (ifindex=ifindex@entry=0x7ffc810683c0, path=<optimized out>, path=<optimized out>) at bgpd/bgp_zebra.c:909
9  0x000055a7b25bb2e5 in bgp_zebra_announce (dest=dest@entry=0x55a7b5239c10, p=p@entry=0x55a7b5239c10, info=info@entry=0x55a7b5239cd0, bgp=bgp@entry=0x55a7b518b090, afi=afi@entry=AFI_IP6, safi=safi@entry=SAFI_UNICAST) at bgpd/bgp_zebra.c:1358
10 0x000055a7b256af6a in bgp_process_main_one (bgp=0x55a7b518b090, dest=0x55a7b5239c10, afi=AFI_IP6, safi=SAFI_UNICAST) at bgpd/bgp_route.c:2918
11 0x000055a7b256b0ee in bgp_process_wq (wq=<optimized out>, data=0x55a7b5221800) at bgpd/bgp_route.c:3027
12 0x00007fe57ddea2e0 in work_queue_run (thread=0x7ffc8106cd60) at lib/workqueue.c:291
13 0x00007fe57dde0781 in thread_call (thread=thread@entry=0x7ffc8106cd60) at lib/thread.c:1684
14 0x00007fe57dda84b8 in frr_run (master=0x55a7b48aaf00) at lib/libfrr.c:1126
15 0x000055a7b250a7da in main (argc=<optimized out>, argv=<optimized out>) at bgpd/bgp_main.c:540
(gdb)
```

This crashes with configs like:

```
router bgp 65534
 no bgp ebgp-requires-policy
 no bgp network import-check
 !
 address-family ipv6 unicast
  import vrf donatas <<<<<< Crashes when entering this command
 exit-address-family
!
router bgp 65534 vrf donatas
 no bgp ebgp-requires-policy
 no bgp network import-check
 neighbor fe80::c15a:ddab:1689:db86 remote-as 65025
 neighbor fe80::c15a:ddab:1689:db86 interface eth2
 neighbor fe80::c15a:ddab:1689:db86 update-source eth2
 neighbor fe80::c15a:ddab:1689:db86 capability extended-nexthop
 !
 address-family ipv6 unicast
  network 2a02:face::/32    <<<<<< Crashes due to static networks
  neighbor fe80::c15a:ddab:1689:db86 activate
 exit-address-family
!
```

Locally configured routes do not have peer->su_remote.

```
exit1-debian-9# show bgp ipv6 unicast
BGP table version is 3, local router ID is 192.168.100.1, vrf id 0
Default local pref 100, local AS 65534
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 2a02🔤:/64    fe80::c15a:ddab:1689:db86@5<
                                                           0 65025 i
   2a02:face::/32   ::@5<                    0         32768 i

Displayed  2 routes and 2 total paths
exit1-debian-9#

```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-02-14 17:49:19 +02:00
David Lamparter
1d5453d607 *: remove tabs & newlines from log messages
Neither tabs nor newlines are acceptable in syslog messages.  They also
break line-based parsing of file logs.

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-02-14 15:36:51 +01:00
Donald Sharp
824065c401 bgpd: Blackhole nexthops are not reachable
When bgp registers for a nexthop that is not reachable due
to the nexthop pointing to a blackhole, bgp is never going
to be able to reach it when attempting to open a connection.

Broken behavior:

<show bgp nexthop>
 192.168.161.204 valid [IGP metric 0], #paths 0, peer 192.168.161.204
  blackhole
  Last update: Thu Feb 11 09:46:10 2021

eva# show bgp ipv4 uni summ fail
BGP router identifier 10.10.3.11, local AS number 3235 vrf-id 0
BGP table version 40
RIB entries 78, using 14 KiB of memory
Peers 2, using 54 KiB of memory

Neighbor             EstdCnt DropCnt ResetTime Reason
192.168.161.204            0       0     never Waiting for peer OPEN

The log file fills up with this type of message:
2021-02-09T18:53:11.653433+00:00 nq-sjc6c-cor-01 bgpd[6548]: can't connect to 24.51.27.241 fd 26 : Invalid argument
2021-02-09T18:53:21.654005+00:00 nq-sjc6c-cor-01 bgpd[6548]: can't connect to 24.51.27.241 fd 26 : Invalid argument
2021-02-09T18:53:31.654381+00:00 nq-sjc6c-cor-01 bgpd[6548]: can't connect to 24.51.27.241 fd 26 : Invalid argument
2021-02-09T18:53:41.654729+00:00 nq-sjc6c-cor-01 bgpd[6548]: can't connect to 24.51.27.241 fd 26 : Invalid argument
2021-02-09T18:53:51.655147+00:00 nq-sjc6c-cor-01 bgpd[6548]: can't connect to 24.51.27.241 fd 26 : Invalid argument

As that the connect to a blackhole is correctly rejected by the kernel

Fixed behavior:

eva# show bgp ipv4 uni summ
BGP router identifier 10.10.3.11, local AS number 3235 vrf-id 0
BGP table version 40
RIB entries 78, using 14 KiB of memory
Peers 2, using 54 KiB of memory
Neighbor             V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
annie(192.168.161.2) 4      64539    126264        39        0    0    0 00:01:36           38       40 N/A
192.168.161.178      4          0         0         0        0    0    0    never       Active        0 N/A
Total number of neighbors 2
eva# show bgp ipv4 uni summ fail
BGP router identifier 10.10.3.11, local AS number 3235 vrf-id 0
BGP table version 40
RIB entries 78, using 14 KiB of memory
Peers 2, using 54 KiB of memory
Neighbor             EstdCnt DropCnt ResetTime Reason
192.168.161.178            0       0     never Waiting for NHT
Total number of neighbors 2
eva# show bgp nexthop
Current BGP nexthop cache:
 192.168.161.2 valid [IGP metric 0], #paths 38, peer 192.168.161.2
  if enp39s0
  Last update: Thu Feb 11 09:52:05 2021
 192.168.161.131 valid [IGP metric 0], #paths 0, peer 192.168.161.131
  if enp39s0
  Last update: Thu Feb 11 09:52:05 2021
 192.168.161.178 invalid, #paths 0, peer 192.168.161.178
  Must be Connected
  Last update: Thu Feb 11 09:53:37 2021
eva#

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-13 10:10:19 -05:00
Donatas Abraitis
44b0793e88
Merge pull request #8036 from qlyoung/disable-mallinfo
lib: support mallinfo2() if available
2021-02-13 10:46:15 +02:00
Donatas Abraitis
b60ae61548
Merge pull request #8076 from qlyoung/doc-lttng-fork-preload
doc: document LD_PRELOAD workaround for lttng
2021-02-13 10:43:44 +02:00
Trey Aspelund
9d51b28c3e ospfd: cleanup ospf_flood debugs
Replaces some hard-coded function names with __func__,
adds some additional references to neighbor/interface,
and cleans up some debug strings to be more readable.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2021-02-13 05:17:05 +00:00
Quentin Young
9029461188 doc: document LD_PRELOAD workaround for lttng
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-02-12 18:14:53 -05:00
Jafar Al-Gharaibeh
b1b277fbd2
Merge pull request #7764 from pguibert6WIND/nhrp_shortcut_routes
nhrp: fix shortcut routes
2021-02-12 13:34:40 -06:00
Quentin Young
21e8caa293 bgpd: send correct BMP down message when nht fails
When sending BMP messages for a status change event for a peer whose NHT
has failed, we were sending a Peer Down Reason Code of 1 (Local system
closed, NOTIFICATION follows) with no NOTIFICAION PDU (because there was
none). This is wrong. Also, the reason code of 1 is semantically off, it
should be 2 (Local system closed, FSM event follows).

This patch:

- adds definitions of all BGP FSM event codes per RFC4271
- changes the BMP reason code emitted when a peer changes state due to
  NHT failure to 2 and encodes FSM event 18 (TcpConnectionFails)
- changes the catch-all case where we have not yet
  implemented the appropriate BMP response to indicate reason code 2
  with FSM event 0 (no relevant Event code is defined).

These changes ought to prevent the BMP session from being torn down due
to an improperly formatted message.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2021-02-12 14:11:05 -05:00
Quentin Young
78ae07dbca
Merge pull request #8039 from m-varasteh/master
[filter]: change return code for errors
2021-02-12 13:32:44 -05:00
David Lamparter
b6bc1ee8d3 lib: de-uglify -t option + log stdout combo
The logging code writes log messages with a `\n` line ending, meanwhile
the VTY code switches it so you need `\r\n`...

And we don't flush the newline after executing a command either.

After this patch, starting daemons like `zebra/zebra -t` should provide
a nice development/debugging experience with a VTY open right there on
stdio and `log stdout` interspersed.

(This is already documented in the man pages, it just looked like sh*t
previously since the log messages didn't newline correctly.)

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-02-12 19:29:36 +01:00
David Lamparter
877057b67a lib: have a lib_privs for ... lib privs
Logging code might want to raise privs for file operations.

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-02-12 19:28:52 +01:00
David Lamparter
6e3253b979 lib: memorize what fds were open at startup
... in case the user does something like `zebra 3>logfile`.  Also useful
for some module purposes, maybe even feeding config at some point in the
future.

Signed-off-by: David Lamparter <equinox@diac24.net>
2021-02-12 19:28:22 +01:00
Philippe Guibert
35da69f154
Merge pull request #8006 from idryzhov/fix-bfd-lookup
bfdd: fix session lookup
2021-02-12 18:25:09 +01:00
Igor Ryzhov
bcbe60d456 lib: allow "show config running" command for non-transactional CLI
This command doesn't rely on transactional CLI and works perfectly for
daemons converted to northbound configuration.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-02-12 18:18:34 +03:00
Donatas Abraitis
8484f8b994
Merge pull request #8065 from donaldsharp/foo_master
bgpd: When deleting a neighbor from a peer-group the PGNAME is optional
2021-02-12 17:04:59 +02:00
Quentin Young
e0302d7eab bgpd: add tracepoints for BMP
Adds the following tracepoints:
- frr_bgp:bmp_mirror_packet
- frr_bgp:bmp_update_saved_open
- frr_bgp:bmp_status_changed
- frr_bgp:bmp_peer_backward_transition
- frr_bgp:bmp_eor
- frr_bgp:bmp_process

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2021-02-11 19:55:05 -05:00
David Teach
1073f44d4d bgpd: Add Support for rfc 8050 MRT add-path
- Rfc 8050 adds support for BGP NLRI that carry path identifiers. this commit adds that support to FRR
 - Updated bgp_dump.h to include new sub-type values
 - Updated bgp_dump.c to check for add_path af_caps in the peer struct.
 - Updated bgp_dump.c to use the proper sub-type values upon detection of add-path af_caps
 - Updated bgp_dump.c to properly dump the path_id wen present.

Signed-off-by: David Teach <dteach@routeviews.org>
2021-02-11 16:51:41 -08:00
Quentin Young
169afe9dfc bgpd: add PEER_HOSTNAME() macro
Add macro to get hostname if available or provide a default value if
not.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2021-02-11 19:21:08 -05:00
Trey Aspelund
d9478df0dc bgpd: fix empty advertised-routes for 2-tier safis
'show bgp ipv[46] vpn neighbors ... advertised-routes' was displaying
empty output due to new command syntax using show_adj_routes() which
assumed each bgp_table was single-tier (not nested).  This fixes that
assumption for safis with a two-tier bgp_table (SAFI_MPLS_VPN,
SAFI_ENCAP, and SAFI_EVPN).

Before:
ub18# show bgp ipv6 vpn neighbors 2001:db8:cafe::2 advertised-routes
ub18#

After:
ub20# show bgp ipv6 vpn neighbors 2001:db8:cafe::1 advertised-routes
BGP table version is 2, local router ID is 100.64.0.222, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 30:30
*> 2::2/128         ::                       0    100  32768 i
*> 2::22/128        ::                       0    100  32768 i
Route Distinguisher: 33:33
*> 2::2/128         ::                       0    100  32768 i
*> 2::22/128        ::                       0    100  32768 i

Total number of prefixes 4

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2021-02-11 21:04:10 +00:00
Mark Stapp
497bb82b62
Merge pull request #8063 from ton31337/fix/typo_enum_bestpath
bgpd: Replace typo "Cluser length" => "Cluster length"
2021-02-11 14:59:40 -05:00
Quentin Young
66fdb1d15d
Merge pull request #7915 from kssoman/ospf_test 2021-02-11 14:47:49 -05:00
Donald Sharp
2cbd181ac9 bgpd: When deleting a neighbor from a peer-group the PGNAME is optional
Currently when deleting a neighbor from a peer-group:
no neighbor A.B.C.D peer-group FOO

We must specify FOO, while A.B.C.D is sufficient enough of an
identifier to know what to do.

Make PGNAME optional on this command and just delete the peer.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-11 13:35:22 -05:00
Mark Stapp
f43e9ec02f
Merge pull request #8060 from donaldsharp/ospf_vrf_baloney
ospfd:  Prevent duplicate packet read in certain vrf situations
2021-02-11 11:58:15 -05:00
Donatas Abraitis
bcab253c22 bgpd: Replace typo "Cluser length" => "Cluster length"
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-02-11 17:11:12 +02:00
Olivier Dugeon
56981b40e9 ospfd: Debug race condition in Segment Routing
Issue #7926 hilight a race condition in Segment Routing processing.

The problem occurs when Router Information Opaque LSA is received late, in
particular after SPF run and after ospf_sr_nhlfe_update() was called. This
scenario is unfrequent and takes place due to a slow DR election.
In this particular case, SR Prefix are handle but not fully fill. In fact,
SRGB for the nexthop is not yet received and thus, output label could not
be computed.

When Router Information Opaque LSA is received and processed, if the
corresponding SR node is a direct neighbor of the self node, update_out_nhlfe()
is called against all SR nodes to adjust SR prefix if the next hop is the new
SR node. The function wrongly computes output label and configure a bad MPLS
LFIB entries.

Another way to hilight the problem is to change through CLI the SRGB of a node
and look to MPLS LFIB of direct neighbor, in particular those who announce
EXPLICIT NULL Prefix SID.

This patch correct the update_out_nhlfe() function by calling the appropriate
function (sr_prefix_out_label() instead of index2label()) to compute the output
label.

Some log debugs were adjusted and unused prefix route table was removed too.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2021-02-11 14:52:40 +01:00
Donald Sharp
555691e96e ospfd: Prevent duplicate packet read in certain vrf situations
Currently if the sysctl net.ipv4.raw_l3mdev_accept is 1, packets
destined to a specific vrf also end up being delivered to the default
vrf.  We will see logs like this in ospf:

2021/02/10 21:17:05.245727 OSPF: ospf_recv_packet: fd 20(default) on interface 1265(swp1s1.26)
2021/02/10 21:17:05.245740 OSPF: Hello received from [9.9.36.12] via [swp1s1.26:200.254.26.13]
2021/02/10 21:17:05.245741 OSPF:  src [200.254.26.14],
2021/02/10 21:17:05.245743 OSPF:  dst [224.0.0.5]
2021/02/10 21:17:05.245769 OSPF: ospf_recv_packet: fd 45(vrf1036) on interface 1265(swp1s1.26)
2021/02/10 21:17:05.245774 OSPF: Hello received from [9.9.36.12] via [swp1s1.26:200.254.26.13]
2021/02/10 21:17:05.245775 OSPF:  src [200.254.26.14],
2021/02/10 21:17:05.245777 OSPF:  dst [224.0.0.5]

This really really makes ospf unhappy in the vrf we are running in.

I am approaching the problem by just dropping the packet if read in the
default vrf because of:

commit 0556fc33c7
Author: Donald Sharp <sharpd@cumulusnetworks.com>
Date:   Fri Feb 1 11:54:59 2019 -0500

    lib: Allow bgp to always create a listen socket for the vrf

Effectively if we have `router ospf vrf BLUE` but no ospf running
in the default vrf, we will not have a listener and that would
require a fundamental change in our approach to handle the ospf->fd
at a global level.  I think this is less than ideal at the moment
but it will get us moving again and allow FRR to work with
a bunch of vrf's and ospf neighbors.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-02-11 07:31:05 -05:00
Donatas Abraitis
6b9265a3f2 bgpd: Print IPv4 nexthop for IPv6 prefixes under bgp_table_map_apply()
With latest kernels that's possible to have IPv6 routes with IPv4 nexthops.

We already handled this in bgp_zebra_announce():

	nexthop = bgp_path_info_to_ipv6_nexthop(mpinfo_cp,
						&ifindex);

	if (!nexthop)
		nh_updated = update_ipv4nh_for_route_install(
			nh_othervrf,
			nh_othervrf ? info->extra->bgp_orig
				    : bgp,
			&mpinfo_cp->attr->nexthop,
			mpinfo_cp->attr, is_evpn, api_nh);
	else
		nh_updated = update_ipv6nh_for_route_install(
			nh_othervrf,
			nh_othervrf ? info->extra->bgp_orig
				    : bgp,
			nexthop, ifindex, mpinfo, info, is_evpn,
			api_nh);

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-02-11 12:25:01 +02:00
Philippe Guibert
a3e520f37b nhrpd: replace nhrp route nexthop with onlink route when prefix=nh
There are cases where nhrp wants to create a nhrp route to gre interface
with the nexthop which is the same the prefix. This is the case with
ipv6:

ipv6 route a:ff::ff:4/128 via a:ff::ff:4:/128 dev gre1

This route entry is false from zebra point of view, and to avoid that,
the nexthop is ignored in nhrp only if the prefix equals the nexthop.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2021-02-11 09:06:32 +01:00
Philippe Guibert
ef91ff0468 nhrpd: shortcut routes installed with nexthop.
Previously, when a shortcut entry was created, its associated route was
created on system, with no nexthop, only gre device. eg:

[..]
N>* 192.168.2.0/24 [10/0] is directly connected, gre1, 00:01:04           <--- can not be resolved

[..]
Type     Prefix                   Via                      Identity
dynamic  192.168.2.0/24           10.255.255.2             				<---- correct

This situation was forcing neighbor resolution on the first outgoing packet matching the route entry. for instance 192.168.2.1 could not be resolved at link layer, and was going to fail. Instead, nhrp nexthop should have been used.
This is what this commit intends to do, that is to say that when a
shortcut is installed by nhrp, the associated nexthop entry is used.

[..]
N>* 192.168.2.0/24 [10/0] via 10.255.255.2, gre1 onlink, 00:00:31

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2021-02-11 09:06:28 +01:00
Quentin Young
51ab4dbaad lib: support mallinfo2()
mallinfo() is deprecated as of glibc 2.33 and emits a warning if used.
Support mallinfo2() if available.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2021-02-10 18:35:15 -05:00
Soman K S
b9b87bfc36 ospf6d : fix issue in ecmp inter area route
Issue: When a path in the inter area ecmp route is deleted, the route is removed

Fix: The fix is to remove the specific path from the inter area route using
     ospf6_abr_old_route_remove() when abr route entry is not found.
     In  the function ospf6_abr_old_route_remove() the path to be removed needs
     to match adv router and link state ID

     Fixed memory leak in ospf6_intra_prefix_update_route_origin() caused by
     route node lock not getting released.

Signed-off-by: kssoman <somanks@gmail.com>
2021-02-10 16:45:22 +05:30
Donatas Abraitis
de6223a98d
Merge pull request #8033 from qlyoung/fix-gnu-readline-bracketed-paste
vtysh: disable bracketed paste in readline
2021-02-10 11:01:18 +02:00
Stephen Worley
3d26211e08
Merge pull request #7508 from sudhanshukumar22/zebra-vrf-delete
zebra: treat vrf add for existing vrf as update
2021-02-10 02:05:10 -05:00
Martin Winter
7a9c641d5c
Merge pull request #7917 from pjdruddy/l3vpn-mpls-snmp-upstream-1
L3vpn mpls snmp upstream 1
2021-02-10 01:37:58 +01:00
lynne
cb978d686b ospf6d: Don't send hellos on loopback interface
When ospf6 passive is turned off on a loopback interface don't start
sending ospf6 hellos.

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
2021-02-09 19:31:18 -05:00
Philippe Guibert
061166ac0c
Merge pull request #8048 from idryzhov/fix-vrf-command
vrf: mark vrf as configured when entering vrf node
2021-02-09 21:43:54 +01:00
Quentin Young
7533cad751 *: remove more sprintf()
Should be just a couple non-development, non-test occurrences of this
function left now.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2021-02-09 15:40:40 -05:00
Donald Sharp
ed985dfd9d
Merge pull request #8045 from ton31337/feature/doc_ebgp_multihop_with_nht_resolve
doc: We have to enable nht tracking via default route multihop eBGP
2021-02-09 14:59:26 -05:00
Igor Ryzhov
18e196f6fa vrf: use wrappers to change VRF_CONFIGURED flag
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-02-09 22:39:32 +03:00
Igor Ryzhov
966806294b vrf: mark vrf as configured when entering vrf node
The VRF must be marked as configured when user enters "vrf NAME" command.

Otherwise, the following problem occurs:

`ip link add red type vrf table 1`

  VRF structure is allocated.

`vtysh -c "conf t" -c "vrf red"`

  `lib_vrf_create` is called, and pointer to the VRF structure is stored
  to the nb_config_entry.

`ip link del red`

  VRF structure is freed (because it is not marked as configured), but
  the pointer is still stored in the nb_config_entry.

`vtysh -c "conf t" -c "no vrf red"`

  Nothing happens, because VRF structure doesn't exist. It means that
  `lib_vrf_destroy` is not called, and nb_config_entry still exists in
  the running config with incorrect pointer.

`ip link add red type vrf table 1`

  New VRF structure is allocated.

`vtysh -c "conf t" -c "vrf red"`

  `lib_vrf_create` is NOT called, because the nb_config_entry for that
  VRF name still exists in the running config.

After that all NB commands for this VRF will use incorrect pointer to
the freed VRF structure.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-02-09 21:38:45 +03:00
Mark Stapp
a9318a3287 libs, bgpd: improve task cancellation by argument value
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>
2021-02-09 12:10:51 -05:00
Mark Stapp
aea25d1ec8 libs: make the task cancellation struct private
No reason for the thread/task cancellation struct to be public:
move it out of the header file. Also add a flags field.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-02-09 12:10:51 -05:00
Pat Ruddy
f40594ca77 tests: mplsL3vpn SNMP topotest
Tests to exercise the MPLS-L3VPN-STD MIB

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-02-09 17:04:49 +00:00
nsaigomathi
85c8286666 pimd: json support added
Modify code to add JSON format output in show command.
"show ip igmp [vrf NAME] join" and "show ip igmp vrf all join" with proper formatting

Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
2021-02-09 05:33:14 -08:00
Russ White
d887c7bf04
Merge pull request #7973 from sworleys/Pbr-More-Fixes
zebra,pbrd,doc: PBR more fixes
2021-02-09 07:37:09 -05:00
Russ White
a384dd69d8
Merge pull request #7980 from gromit1811/fix_ospf6_lsa_str_oob
Fix ospf6 LSA formatting out-of-bounds access
2021-02-09 07:36:29 -05:00
Donatas Abraitis
7e6295a4b0
Merge pull request #8042 from donaldsharp/smaller_timers_blackhole
tests: Modify timers on bgp_blackhole_community
2021-02-09 12:04:33 +02:00