Commit Graph

30591 Commits

Author SHA1 Message Date
Donatas Abraitis
3d3c38b1d4
Merge pull request #11051 from donaldsharp/speell_more
Speell more
2022-04-20 11:04:14 +03:00
mobash-rasool
1815b8f335
Merge pull request #11045 from anlancs/fix/bgpd-cleanup-8-remove
zebra: cleanup duplicated "extern"s for evpn-mh
2022-04-20 13:28:17 +05:30
Donald Sharp
8be297c8b8
Merge pull request #11046 from opensourcerouting/fix/issue_template
github: Use checkboxes for issue templates
2022-04-19 20:01:54 -04:00
Donald Sharp
4069e53960
Merge pull request #11048 from opensourcerouting/fix/fsync_before_fclose
vtysh: Call fflush+fsync before calling fclose() when saving the config
2022-04-19 18:37:18 -04:00
Donald Sharp
945f6ce22c
Merge pull request #11004 from volodymyrhuti/master
zebra: set ZEBRA_IFC_DOWN on connected routes for inactive interfaces
2022-04-19 18:36:52 -04:00
Volodymyr Huti
7fb9825cf7 zebra: set ZEBRA_IFC_DOWN on connected routes for inactive interfaces
If you are in a situation where you have multiple addresses on an
interface, zebra creates one connected route for them.
The issue is that the rib entry is not created if addresses were
added before the interface was running.

We add the address to a running interface in a typical flow.
Therefore, we handle the route & rib creation within a single ADD event.
In the opposite case, we create the route entries without activating them.
These are considered to be active since ZEBRA_IFC_DOWN is not set.
On the following interface UP, we ignore the same ADDR_ADD as it overlaps
with the existing prefixes -> rib is never created.

The minimal reproducible setup:
-----------------------------------------
ip link add name dummy0 type dummy
ip addr flush dev dummy0
ip link set dummy0 down
ip addr add 192.168.1.7/24 dev dummy0
ip addr add 192.168.1.8/24 dev dummy0
ip link set dummy0 up
vtysh -c 'show ip route' | grep dummy0

Signed-off-by: Volodymyr Huti <v.huti@vyos.io>
2022-04-19 22:53:57 +03:00
Donald Sharp
27a1680926
Merge pull request #11050 from opensourcerouting/fix/pathd_missing
packaging: Add pathd to logrotate
2022-04-19 14:57:46 -04:00
Donald Sharp
95ffdb6475
Merge pull request #11049 from opensourcerouting/fix/usage_for_frrinit.sh
tools: Print usage for frrinit.sh when running without arguments
2022-04-19 14:57:03 -04:00
Donald Sharp
10258b031a lib: Prevent crash after shutdown request
Recent commit e92508a741 changed
the prefix_master->str to a RB tree.  This introduced a condition
whnere on shutdown the prefix list was removed from the master list
and then operated on by passing around a name.  Which was then used
to lookup the prefix list again when we operated on the code.
This change to a RB Tree first deleted the item from the RB tree
first thus introducing this crash

Crash:
(gdb) bt
    index=0x556c07d59650, pentry=0x556c07d29380) at lib/routemap.c:2397
    arg=0x7ffdbf84bc60) at lib/hash.c:267
    event=RMAP_EVENT_PLIST_DELETED) at lib/routemap.c:2489

Grab the first item on the list, clean it and then remove it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 14:55:55 -04:00
Donatas Abraitis
03ea2db724 packaging: Add pathd to logrotate
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-19 19:13:19 +03:00
mobash-rasool
16b5065b47
Merge pull request #10908 from donaldsharp/proto_only_error
zebra: When `zebra nexthop proto only` limit errors
2022-04-19 21:27:29 +05:30
Russ White
a037a34436
Merge pull request #10977 from bobuhiro11/alloc_sid_based_on_prefix
bgpd: take SRv6 locator's prefix length into account when generating SIDs
2022-04-19 11:17:57 -04:00
Russ White
7e785dae95
Merge pull request #10983 from pguibert6WIND/show_isis_nbr_bfd
isisd: add bfd information on isis neighbor show command
2022-04-19 11:17:31 -04:00
Russ White
2e4b21fc58
Merge pull request #11030 from ranjanyash54/minls
ospf6d: Check for MinLSInterval timer when adding to LSUpdate list
2022-04-19 11:13:05 -04:00
Donatas Abraitis
db8d184392
Merge pull request #11040 from donaldsharp/bgp_type5_route_handling
bgpd: Allow type 5 routes to be handled better when link is flapping
2022-04-19 17:35:22 +03:00
Donatas Abraitis
b5b09eee6d packaging: Use 0640 (frr:frr) as permissions when running under logrotate
When we do "log file /var/log/frr/something", permissions are set to
0640 (frr:frr), but when the logrotate kicks in, we have 0640 (frr:frrvty).

I believe, we should have a consistent permissions.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-19 16:54:11 +03:00
Donatas Abraitis
9bf7cb0b74 packaging: Set default permissions for /var/log/frr to 0755
At the moment we set /var/log/frr permissions to 0750 (frr:frr), but the log
file is 0640 (root:adm) (unless logrotated) and that doesn't allow adm group
to even open the directory.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-19 16:54:10 +03:00
Donald Sharp
4667220e3a *: Fix spelling of accidently
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:31:30 -04:00
Donald Sharp
f526739897 *: Fix spelling of accomodate
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:29:58 -04:00
Donald Sharp
ed18e04d91 doc: Fix spelling of choosen
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:28:47 -04:00
Donald Sharp
4563e2047a tests: Fix spelling of conjuction
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:28:09 -04:00
Donald Sharp
2b669d3a21 *: Fix spelling of overriden
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:27:02 -04:00
Donald Sharp
53c7a86eec *: Fix spelling of Verfiy
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:26:00 -04:00
Donald Sharp
2ef62909a9 *: Fix spelling of atleast
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:25:03 -04:00
Donald Sharp
3f1f5852b1 tests: Fix spelling of Initilized
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:22:47 -04:00
Donald Sharp
3819e4ced7 *: Fix spelling of inteface
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:21:31 -04:00
Donald Sharp
eaf59d27c1 *: Fix spelling of modifed
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:20:37 -04:00
Donald Sharp
544be97911 *: Fix spelling of strucutre
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:19:37 -04:00
Donald Sharp
ce5002c659 *: Fix spelling of comparision
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:18:43 -04:00
Donald Sharp
e3fde76840 *: Fix spelling of modfiy
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:17:58 -04:00
Donald Sharp
b97047ed11 *: Fix spelling of non-existant
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:16:45 -04:00
Donald Sharp
8afb9d8a70 *: Fix spelling of seperator
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:15:23 -04:00
Donald Sharp
bd4f51b10f *: Fix spelling of specifed
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:12:43 -04:00
Donald Sharp
485ac9a79b *: Fix spelling of neccessary
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:11:29 -04:00
Donald Sharp
b515c81a22 tests: Fix spelling of 'registred'
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-19 08:09:36 -04:00
Donatas Abraitis
9c2f5943aa tools: Print usage for frrinit.sh when running without arguments
```
root@spine1-debian-11:~/frr# /usr/lib/frr/frrinit.sh
Usage:
    /usr/lib/frr/frrinit.sh (start|stop|restart|force-reload|reload|status)
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-19 14:21:21 +03:00
Donatas Abraitis
789c5919cf vtysh: Call fflush+fsync before calling fclose() when saving the config
A safety check we flushed the data to the storage.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-19 14:01:13 +03:00
Donatas Abraitis
aad6068ff7 github: Use checkboxes for issue templates
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-19 13:23:22 +03:00
Donatas Abraitis
f5327fc339
Merge pull request #11012 from anlancs/bgpd-mh-simplify-condition
zebra: simplify one check for evpn-mh
2022-04-19 13:04:43 +03:00
Donatas Abraitis
5f771a2a70
Merge pull request #11043 from mobash-rasool/spell-fix
pimd, pim6d: Spelling fixes
2022-04-19 12:50:12 +03:00
anlan_cs
4e5bda347c zebra: cleanup duplicated "extern"s for evpn-mh
There are some duplicated `extern`s in this header
file, just remove them.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-19 05:20:10 -04:00
Mobashshera Rasool
3d4c335568 pim6d: Correct the spelling of Rendezvous
Rendevous --> Rendezvous
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-04-18 23:17:43 -07:00
Mobashshera Rasool
a6324d6a30 pimd: Correct the spelling of Rendezvous
Rendevous --> Rendezvous
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-04-18 23:17:43 -07:00
Jafar Al-Gharaibeh
33dfcd7397
Merge pull request #10993 from donaldsharp/more_watchfrr_info
watchfrr: Add some more information to `show watchfrr`
2022-04-18 22:43:35 -05:00
Jafar Al-Gharaibeh
4079cda2e6
Merge pull request #11032 from anlancs/fix/bgpd-evpn-mh-null-debug
bgpd: fix NULL deference in evpn-mh's log
2022-04-18 22:42:03 -05:00
Igor Ryzhov
5b53523466
Merge pull request #11029 from rampxxxx/isis_mtu 2022-04-19 02:17:25 +03:00
Donald Sharp
7f2e9cce7f bgpd: Allow type 5 routes to be handled better when link is flapping
In some stress testing, we are seeing type-5 evpn routes being
left in a rejected state in zebra.

Sequence of events as I am seeing it:

a) Interface comes up that type5 routes nexthop depends on
b) zebra processes creates the connected and lets bgp know via nht
c) bgp installs the route to zebra
d) zebra processes and sends install to kernel
e) before route is installed, the interface the nexthop points at flaps
f) the route install is rejected, notify zebra
g) the interface comes up
h) zebra gets the notification about the route install rejection
i) zebra processes the down/up and turns it into a single up event
j) BGP never reinstalls the type 5 route

This up event does not translate into a nexthop tracking event
when the events happen quickly enough and/or zebra is extremelyh
busy and bgp would never see that the nexthops changed even very quickly.

This is the same thing that was going on with
https://github.com/FRRouting/frr/pull/7724
in PBR.

To fix this let's notice the interface up/down events for v4
in bgp now as well.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-18 14:15:23 -04:00
lynnemorrison
c7b253d0bb isisd: Fix crash in ISIS when mtu mismatch occurs
When lsp-mtu is configured larger than interface mtu and the interface
is brought up, the ISIS code would crash. When other vendors have this
misconfiguration they just continue ISIS running and allow the LSP
packets to be created but not sent. When the misconfiguration is corrected
the LSP packets start being sent. This change creates that same behavior
in FRR.

The startup issue I am hitting is when the isis lsp-mtu is larger that the interfaces mtu.
We run into this case when we are in the process of changing the mtu on a tunnel.
I issue a shutdown/no shutdown on the interface, because the tunnel MTU is smaller
than the lsp-mtu, it is considered an error and calls circuit_if_del. This deletes
part of the circuit information, which includes the circuit->ip_addr list. Later on we get
an address update from zebra and try to add the interface address to this list and crash.

2022/04/07 20:19:52.032 ISIS: [GTRPJ-X68CG] CSM_EVENT for tun_gw2: IF_UP_FROM_Z
calls isis_circuit_if_add
this initialize the circuit->ip_addrs
isis_circuit_up
has the mtu check circuit->area->lsp_mtu > isis_circuit_pdu_size(circuit) and fails
returns ISIS_ERROR
on failure call isis_circuit_if_del
this deletes the circiut->ip_addrs list <----

2022/04/07 20:19:52.032 ZEBRA: [NXYHN-ZKW2V] zebra_if_addr_update_ctx: INTF_ADDR_ADD: ifindex 3, addr 192.168.0.1/24
message to isisd to add address
isis_zebra_if_address_add
isis_circuit_add_addr
circuit->ip_addr we try to add the ip address to the list, but it was deleted above and isisd crashes

Signed-off-by: Lynne Morrison <lynne.morrison@ibm.com>
2022-04-18 11:15:15 -04:00
Russ White
1258cfcd8c
Merge pull request #11001 from donaldsharp/system_route_recursion
zebra: Allow system routes to recurse through themselves
2022-04-18 09:47:47 -04:00
Donald Sharp
1cadfaf213 zebra: When zebra nexthop proto only limit errors
Operators are seeing:

Mar 28 07:19:37 kingpin zebra[418]: [TZANK-DEMSE] netlink_nexthop_msg_encode: nhg_id 68 (zebra): proto-based nexthops only, ignoring
Mar 28 07:19:37 kingpin zebra[418]: [TZANK-DEMSE] netlink_nexthop_msg_encode: nhg_id 68 (zebra): proto-based nexthops only, ignoring
Mar 28 07:19:37 kingpin zebra[418]: [YXPF5-B2CE0] netlink_route_multipath_msg_encode: RTM_DELROUTE 2804:4d48:4000::/42 vrf 0(254)
Mar 28 07:19:37 kingpin zebra[418]: [YXPF5-B2CE0] netlink_route_multipath_msg_encode: RTM_NEWROUTE 2804:4d48:4000::/42 vrf 0(254)
Mar 28 07:19:37 kingpin zebra[418]: [TVM3E-A8ZAG] _netlink_route_build_singlepath: (single-path): 2804:4d48:4000::/42 nexthop via fe80::b6fb:e4ff:fe26:c5d5  if 2 vrf default(0)
Mar 28 07:19:37 kingpin zebra[418]: [HYEHE-CQZ9G] nl_batch_send: netlink-dp (NS 0), batch size=140, msg cnt=2
Mar 28 07:19:37 kingpin zebra[418]: [P2XBZ-RAFQ5][EC 4043309074] Failed to install Nexthop ID (68) into the kernel

When `zebra nexthop proto only` is turned on.

Effectively zebra intentionally does not do the nexthop group installation
and the dplane notification in zebra_nhg.c just assumes it was a failure
and prints an error message.  Since this act was intentional, let's
just notice that it was intentional and not report the message
as a failure.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-18 09:41:38 -04:00