Commit Graph

24227 Commits

Author SHA1 Message Date
Javier Garcia
839e6ce560 pathd: Fix affinity command to exclude options to match implementation.
Including documentation update.

Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
2021-05-18 18:39:41 +02:00
Renato Westphal
0376f8a48c
Merge pull request #8608 from Fredi-raspall/pr_isis_sr_anycast
isisd: clear the N-flag in ext. reachability TLVs
2021-05-18 11:35:58 -03:00
Olivier Dugeon
365215dd4b
Merge pull request #8133 from gpnaveen/ospf_basic_testcases
tests: adding ospf basic 2 testcases.
2021-05-18 16:26:12 +02:00
Donald Sharp
cd43ad3ea9
Merge pull request #8673 from LabNConsulting/chopps/ly2-again
lib: libyang2 add missed conversion
2021-05-18 10:21:51 -04:00
Igor Ryzhov
0def0c9fa3 bgpd: raise privs for SO_BINDTODEVICE
The priv raise was incorrectly dropped in 97896a9.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 17:07:06 +03:00
Igor Ryzhov
dc47f2e726 doc: remove redundant index directives
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 15:29:59 +03:00
Patrick Ruddy
4006e41baf
Merge pull request #8646 from chiragshah6/mdev
zebra: evpn check vni oper state in svi up/down event
2021-05-18 11:45:56 +01:00
Fredi Raspall
249c445783 isisd: simplify node Sid handling
Centralize the n-flag-clear processing to a single point.

Signed-off-by: Fredi Raspall <fredi@voltanet.io>
2021-05-18 10:54:54 +02:00
Fredi Raspall
8f6a0d6402 isisd: clear the N-flag in ext. reachability TLVs
If the n-flag-clear option is set in the configuration of a prefix
segment, clear the flag in the extended ip reachability TLVs.

RFCs 7794 and 8667 are not too strict on the setting / clearing the
N-flag in prefix SIDs. However, if there exists a cmd line option
to clear it, it should be cleared in the TLVs announced, as other
vendors do.

Signed-off-by: Fredi Raspall <fredi@voltanet.io>
2021-05-18 10:54:11 +02:00
Donatas Abraitis
82689214b5
Merge pull request #8535 from opensourcerouting/zlog-rnode
zebra: replace _rnode_zlog with %pZN ext
2021-05-18 09:50:42 +03:00
nguggarigoud
8694dd78db tests: adding ospf basic 2 testcases.
Test cases included are 1 ospf cost, 1 ospf mtu.

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-05-17 19:23:15 -07:00
Christian Hopps
af1b88e990 lib: libyang2 add missed conversion
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-05-17 22:13:59 -04:00
Kuldeep Kashyap
f0cbb887f1 tests: Fix for multicast_pim_sm failure
Test case test_verify_mroute_when_5_different_receiver_joining_same_sources_p0
is failing intermittently in master. Fixed the issue.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-05-17 18:52:55 -07:00
Renato Westphal
5e6f6c964d
Merge pull request #8680 from idryzhov/rip-ripng-fix-crash
ripd, ripngd: fix interface wakeup after shutdown
2021-05-17 22:47:27 -03:00
Igor Ryzhov
23929ec918 ospf6d: free "default-information originate" config when removing router
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 01:27:16 +03:00
Igor Ryzhov
c84bbb2ad0 ospf6d: fix crash when removing router from vrf that doesn't exist
`listgetdata(listhead(list))` crashes for an empty list.

Reproducible with:
```
router ospf6 vrf doesntexist
 default-information originate always
 exit
no router ospf6 vrf doesntexist
```

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 01:27:16 +03:00
Igor Ryzhov
8696e8be34 ospf6d: always free redistribute config
When the ospf6 instance in unknown VRF is deleted, the redistribution
config is not freed, because it is not registered in zebra. We should
always free the config regardless of zebra registration status.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 01:27:16 +03:00
Igor Ryzhov
82bc4b8a96 ospf6d: fix "default-information originate" in non-existing vrf
If the default route redistribution is configured in OSPF6 router before
the VRF is created, then this is not currently registered in zebra after
the VRF creation.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 01:24:22 +03:00
Igor Ryzhov
b46538c4a3 ospfd: fix "default-information originate" in non-existing vrf
If the default route redistribution is configured in OSPF router before
the VRF is created, then this is not currently registered in zebra after
the VRF creation.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 01:23:35 +03:00
Sri Mohana Singamsetty
ea9aa70547
Merge pull request #8643 from icosahedral/master
bgpd: modify path selection for EVPN type-5 routes
2021-05-17 11:43:35 -07:00
Mark Stapp
c78b7bc4a3
Merge pull request #8676 from idryzhov/test-gitignore
tests: fix missing gitignore entry
2021-05-17 12:44:13 -04:00
Igor Ryzhov
29ceb84855 ripngd: fix interface wakeup after shutdown
RIPNG schedules a call to `ripng_interface_wakeup` in 1 second after
receiving the interface UP event from zebra. The function is called even
if the interface was shut down during this interval.

This is incorrect and also leads to a crash in the following scenario:
```
vtysh -c "conf" -c "router ripng vrf red" -c "network enp2s0"
ip link add red type vrf table 1
ip link set enp2s0 vrf red
ip link set enp2s0 down
ip link set enp2s0 up && sleep 2 && ip link del red
```

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-17 19:35:57 +03:00
Igor Ryzhov
8f0c2688d7 ripd: fix interface wakeup after shutdown
RIP schedules a call to `rip_interface_wakeup` in 1 second after
receiving the interface UP event from zebra. The function is called even
if the interface was shut down during this interval.

This is incorrect and also leads to a crash in the following scenario:
```
vtysh -c "conf" -c "router rip vrf red" -c "network enp2s0"
ip link add red type vrf table 1
ip link set enp2s0 vrf red
ip link set enp2s0 down
ip link set enp2s0 up && ip link del red
```

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-17 19:34:11 +03:00
Alexander Chernavin
b50a061064 bgpd: recalc peer's sort after changing confed peers
Currently, when AS number of an existing BGP neighbor is added in a BGP
confederation, AS_CONFED_SEQUENCE segment attribute will be missing in
prefixes advertised to the neighbor. Also, receiving prefixes from the
neighbor will be withdrawn because of "Malformed AS path from A.B.C.D".

    neighbor 10.100.200.3 remote-as 123
    bgp confederation identifier 65001
    bgp confederation peers 123

With this change, update peer's sort after adding or removing its AS
number in a BGP confederation.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
2021-05-17 06:33:27 -04:00
Igor Ryzhov
5ff4ad8ee3 isisd: fix build warning and simplify code
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-17 13:07:24 +03:00
Igor Ryzhov
d769bde5be tests: fix missing gitignore entry
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-17 13:01:55 +03:00
Igor Ryzhov
4d1bf2b129
Merge pull request #8672 from qlyoung/fix-bgp-timer-display 2021-05-15 14:18:50 +03:00
Quentin Young
9800cfff2b bgpd: fix display of timers when only 1 is changed
When only one of the keepalive or hold timers is changed from the
default, bgp won't print the timers command in the config.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-05-14 14:59:16 -04:00
Igor Ryzhov
5cfffcdd8d isisd: fix dangling instances
We only need an instance when we have at least one area configured in a
VRF. Currently we have the following issues:
- instance for the default VRF is always created
- instance is not removed after the last area config is removed

This commit fixes both issues.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-14 17:12:38 +03:00
Igor Ryzhov
46c9042fbc isisd: fix memleak when deleting area and instance
Release memory for all redistributed route info.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-14 17:12:36 +03:00
Igor Ryzhov
8c6482db8c isisd: fix redistribution in vrf
When the redistribution is configured in non-default VRF, isisd should
redistribute routes from this VRF instead of default.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-14 17:12:35 +03:00
Igor Ryzhov
a601d66274 isisd: fix "default-information originate always"
We don't need to register for default routes from zebra, when the
origination type is set to "always".

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-14 17:12:34 +03:00
Igor Ryzhov
164ab8965e isisd: deregister vrf from zebra when vrf is disabled
Currently the VRF is deregistered only when it is re-enabled again.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-14 17:12:33 +03:00
Igor Ryzhov
ba51dd2605 bgpd, yang: fix replace-as yang leaf
The leaf is called "no-replace-as" in the model but is used reversed in
all the code. Let's rename it to comply with the actual behavior.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-14 17:00:11 +03:00
Russ White
a63273a5b4
Merge pull request #8556 from donaldsharp/bgp_pbr_weird
Bgp flowspec cleanups
2021-05-13 23:14:34 -04:00
Martin Winter
d8baf3db2d
Merge pull request #8144 from LabNConsulting/chopps/ly2
libyang2
2021-05-14 01:12:06 +02:00
Christian Hopps
3bb513c399 lib: adapt to version 2 of libyang
Compile with v2.0.0 tag of `libyang2` branch of:
https://github.com/CESNET/libyang

staticd init load time of 10k routes now 6s vs ly1 time of 150s

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-05-13 16:24:48 -04:00
Martin Winter
d390582e64
Merge pull request #8658 from gromit1811/bugfix_8567
Fix #8567 OSPFv3-26.13 ANVL failure
2021-05-13 20:12:43 +02:00
Donald Sharp
16a8eb4d00
Merge pull request #8649 from ton31337/fix/unify-naming-for-topotests-directory
tests: Rename tests/topotests directories to be consistent
2021-05-13 07:26:15 -04:00
Donald Sharp
e524fc1e2c
Merge pull request #8659 from mjstapp/fix_connected_multi
lib,zebra: Use a flag to track down status for connected addrs
2021-05-13 07:23:42 -04:00
Donatas Abraitis
04b122335b
Merge pull request #8663 from donaldsharp/pretty_function
Use __func__ instead of __PRETTY_FUNCTION__
2021-05-13 08:23:06 +03:00
Donald Sharp
d3cc1e4518 pimd: Remove pim->vrf_id and use pim->vrf->vrf_id
VRF creation can happen from either cli or from
knowledged about the vrf learned from zebra.
In the case where we learn about the vrf from
the cli, the vrf id is UNKNOWN.  Upon actual
creation of the vrf, lib/vrf.c touches up the vrf_id
and calls pim_vrf_enable to turn it on properly.
At this point in time we have a pim->vrf_id of
UNKNOWN and the vrf->vrf_id of the right value.

There is no point in duplicating this data.  So just
remove all pim->vrf_id and use the vrf->vrf_id instead
since we keep a copy of the pim->vrf pointer.

This will remove some crashes where we expect the
pim->vrf_id to be usable and it's not.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-05-12 14:36:59 -04:00
Donald Sharp
e5981db7e9 pimd: There exists a path where on vrf bringup we do not create the pimreg
When creating configuration for a vrf *Before* the vrf has been
created, pim will not properly create the pimreg device and
we will promptly crash when we try to pass data.

Put some code checks in place to ensure that the pimreg is
created for vrf's.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-05-12 14:08:07 -04:00
Mark Stapp
6806a59321
Merge pull request #8544 from donaldsharp/weird_stuff_in_topo
tests: Fix pylint issues in test_bgp_recursive_route_ebgp_multi_hop.py
2021-05-12 12:28:07 -04:00
Donald Sharp
48c320d2f1 pimd: Use __func__ instead of __PRETTY_FUNCTION__
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-05-12 12:04:57 -04:00
Donald Sharp
a4544597f4 ospfd: Use _func__ instead of __PRETTY_FUNCTION__
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-05-12 12:03:59 -04:00
Donald Sharp
7d7be47ef0 zebra: Use __func__ instead of __PRETTY_FUNCTION__
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-05-12 12:02:05 -04:00
Donald Sharp
cc42c4f00c bgpd: use __func__ instead of __PRETTY_FUNCTION__
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-05-12 12:00:23 -04:00
Igor Ryzhov
440daf95fd tests: fix bgp_l3vpn_to_bgp_vrf
Too many arguments for format string.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-12 18:55:40 +03:00
Mark Stapp
e3d901f863 lib,zebra: Use a flag to track down status for connected addrs
Track 'down' state of connected addresses with a new flag. We
may have multiple addresses on an interface that share a prefix;
in those cases, we need to determine when the first address
is valid, to install a connected route, and similarly detect
when the last address goes 'down', to remove the connected
route.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-05-12 09:37:00 -04:00