Commit Graph

26797 Commits

Author SHA1 Message Date
Russ White
1358f9d10a
Merge pull request #9259 from opensourcerouting/moar-json
*: can't get enough JSON
2021-08-03 09:13:12 -04:00
Donatas Abraitis
3b225ee799 bgpd: Don't set non-transitive for extcommunity bandwidth by default
Before:

```
~/frr# vtysh -c 'conf' -c 'route-map testas permit 10' -c 'set extcommunity bandwidth 321'
~/frr# vtysh -c 'show route-map testas' | grep 321
    extcommunity bandwidth 321 non-transitive
~/frr# vtysh -c 'show run' | grep 321
 set extcommunity bandwidth 321 non-transitive
```

After:

```
~/frr# vtysh -c 'conf' -c 'route-map testas permit 10' -c 'set extcommunity bandwidth 321'
~/frr# vtysh -c 'show route-map testas' | grep 321
    extcommunity bandwidth 321
~/frr# vtysh -c 'show run' | grep 321
 set extcommunity bandwidth 321
~/frr# vtysh -c 'conf' -c 'route-map testas permit 20' -c 'set extcommunity bandwidth 321 non-tra'
~/frr# vtysh -c 'show run' | grep 321
 set extcommunity bandwidth 321
 set extcommunity bandwidth 321 non-transitive
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-03 14:38:54 +03:00
Donatas Abraitis
71bdae66b2 bgpd: Keep extcommunity bandwidth commands persistent in route-maps
~/frr# vtysh -c 'conf' -c 'route-map testas permit 10' -c 'set extcommunity bandwidth 321'
~/frr# vtysh -c 'show route-map testas' | grep 321
    extcommunity bandwidth 321 non-transitive
~/frr# vtysh -c 'sh run' | grep 321
~/frr#

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-03 14:38:53 +03:00
Dmitrii Turlupov
7a807a20d9 nhrp: fix display of nhs command.
Before:
ip nhrp nhs dynamicnbma 192.168.1.1

After:
ip nhrp nhs dynamic nbma 192.168.1.1

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
2021-08-03 14:10:54 +03:00
Russ White
04cfc0a3a8
Merge pull request #9056 from askorichenko/test-dont-capability
bgpd: Clear capabilities field when resetting a bgp neighbor
2021-08-03 06:59:56 -04:00
Christian Hopps
35c4c991f0 tests: reset router configs in parallel
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-08-03 09:07:49 +00:00
Christian Hopps
269a822be4 tests: dump the actual json values to log
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-08-03 09:07:49 +00:00
Donatas Abraitis
71c06f610f
Merge pull request #9258 from mjstapp/fix_rule_strlcpy
zebra: use strlcpy in dplane_rule_init
2021-08-03 09:12:38 +03:00
vivek
9146341f06 bgpd: Handle quick flaps of an EVPN prefix properly
When an EVPN prefix flaps too quickly such that the new advertisement
is received prior to the full processing of the prior withdraw, we may
get into a state where the route doesn't get imported properly into
MAC or IP VRFs. Ensure that we do the route import in such cases.

Suggested-by: Sri Mohana Singamsetty <msingamsetty@vmware.com>
Suggested-by: Ameya Dharkar <adharkar@vmware.com>
Signed-off-by: Vivek Venkatraman <vivek@nvidia.com>
2021-08-02 22:06:28 -07:00
Renato Westphal
488599bfa2
Merge pull request #9232 from idryzhov/interface-node-cleanup
*: cleanup interface node installation
2021-08-02 21:13:29 -03:00
Renato Westphal
58e2857d23 lib: add "json" option to "show ip[v6] prefix-list"
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-02 17:19:45 -03:00
Renato Westphal
c15dc24f79 zebra: add "json" option to "show interface"
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-02 17:19:45 -03:00
Renato Westphal
856ed18ae9 lib: add "json" option to "show route-map"
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-02 16:05:44 -03:00
Renato Westphal
068ab9018b lib: add "json" option to "show ip[v6] access-list"
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-02 16:05:44 -03:00
Renato Westphal
b15e836067 bgpd: add "json" option to "show bgp as-path-access-list"
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-02 15:53:02 -03:00
Mark Stapp
bc86b347db zebra: use strlcpy in dplane_rule_init
Use strlcpy for safety in dplane rule init api.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
2021-08-02 12:35:50 -04:00
Donald Sharp
b22928a117
Merge pull request #9255 from ton31337/fix/bgp_max_packet_size_no_capabilities
bgpd: Set extended msg size only if we advertised and received capability
2021-08-02 12:11:24 -04:00
Igor Ryzhov
1f74d96c41 zebra: remove checks for src address existence when using "set src"
1. This check is absolutely useless. Nothing keeps user from deleting
   the address right after this check.
2. This check prevents zebra from correctly reading the user config with
   "set src" because of a race with interface startup (see #4249).
3. NO OPERATIONAL DATA USAGE ON VALIDATION STAGE.

Fixes #7319.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-02 18:35:30 +03:00
Igor Ryzhov
72928fa1aa
Merge pull request #9238 from leonshaw/fix/netns-delete
lib, zebra: Preserve user-configured VRF on netns deletion
2021-08-02 18:12:19 +03:00
Quentin Young
41d3d77496
Merge pull request #8982 from dlqs/lua-func-stack 2021-08-02 13:51:35 +00:00
Mark Stapp
08bbca7511
Merge pull request #9211 from donaldsharp/revert_logic_changes
lib: prevent crash in make check in some situations
2021-08-02 08:34:55 -04:00
Donatas Abraitis
8d976b0e2b bgpd: Set extended msg size only if we advertised and received capability
If we don't advertise any capabilities (dont-capability-negotiate), we
shouldn't set msg size to 65k only if received this capability from another
peer.

Before:

```
~/frr# vtysh -c 'show ip bgp update-group' | grep 'Max packet size'
    Max packet size: 65535
```

After:

```
~/frr# vtysh -c 'show ip bgp update-group' | grep 'Max packet size'
    Max packet size: 4096
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-02 09:34:43 +03:00
Donald Sharp
bb9ff200b3 pimd: Allow more permisive versions of some no commands
Some no commands were not accepting values and left us in
a situation where a cut-n-paste of the non-no line would
not be properly accepted.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-01 20:22:36 -04:00
Philippe Guibert
7afeaffa12 bgpd: flowspec redirect vrf uses vrf table instead of allocated table id
Until now, when bgp flowspec entry action was to redirect to a vrf, a
default route was installed in a specific table. that route was a vrf
route leak one. The process can be simplified, as vrf-lite already
has a table identifier. Actually, because policy routing is used to
redirect traffic to a defined table (with ip rule command), use
the table identifier of the VRF.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2021-08-01 14:38:13 +02:00
Donatas Abraitis
ecec984b2f tests: Check if BGP connection established if using no capabilities adv
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-01 09:58:26 +03:00
Donatas Abraitis
8cff42add5 bgpd: Use strict AS4 capability when processing parsing/generating pkts
PeerA sets `dont-capability-negotiate` for PeerB. It does not send any
capabilities to PeerB. This leads to situation when PeerA received AS4 cap,
while it doesn't send AS4 to PeerB and tries parsing AS_PATH using 32bits.

[GTTPK-RX2GP][EC 33554436] Malformed AS path from 192.168.0.2, length is 4
[SM0KX-WXMGK] bgp_attr_malformed: attributes: , origin ?
[P7TRR-4J6XT][EC 33554487] 192.168.0.2: Attribute AS_PATH, parse error - treating as withdrawal
[WX70K-6XXVF][EC 33554454] 192.168.0.2 rcvd UPDATE with errors in attr(s)!! Withdrawing route.
[Z2KFR-ZGJC8] 192.168.0.2 rcvd UPDATE w/ attr: , origin ?
[P9VY3-5B6NX] 192.168.0.2 rcvd UPDATE wlen 0 attrlen 80 alen 73
[QMZ79-K2DH7][EC 33554454] 192.168.0.2 [Error] Update packet error (wrong prefix length 64 for afi 1)
[P9SYB-54XRZ][EC 33554454] 192.168.0.2 [Error] Error parsing NLRI
[V1CHF-JSGRR] %NOTIFICATION: sent to neighbor 192.168.0.2 3/10 (UPDATE Message Error/Invalid Network Field) 0 bytes
[HTHRX-GQYGJ][EC 33554454] bgp_process_packet: BGP UPDATE receipt failed for peer: 192.168.0.2

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-01 09:56:48 +03:00
Donald Sharp
a76301c11c
Merge pull request #9244 from LabNConsulting/chopps/fix-bgp-list-test
tests: add early interface config for topojson and fix test
2021-07-31 21:37:22 -04:00
Donatas Abraitis
41a6c1a32a
Merge pull request #9246 from mjstapp/fix_doc_bgp_colons
doc: fix bgp user doc colons
2021-07-31 20:16:39 +03:00
Christian Hopps
845b234a8d tests: add early interface config for topojson and fix test
- A more general fix for the bgp listener test which requires interfaces be
configured in the kernel when the bgpd daemons are launched.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-07-31 14:09:24 +00:00
David Lamparter
00908959ed
Merge pull request #9228 from LabNConsulting/chopps/scapy-sendpkt
tests: add scapy_sendpkt.py util, replace arping use with it
2021-07-31 12:09:40 +02:00
Christian Hopps
002e6825c1 tests: add scapy_sendpkt.py util, replace arping use with it
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-07-30 21:01:22 +00:00
Mark Stapp
05653f497b doc: fix bgp user doc
Too many colons in the bgp doc source file.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
2021-07-30 13:54:01 -04:00
Donatas Abraitis
8c834868dc
Merge pull request #9196 from donaldsharp/test_queued
tests: Increase timeout for loaded systems
2021-07-30 18:05:45 +03:00
Donatas Abraitis
d8e496242e Revert "bgpd: fix memory leak in dampening"
This reverts commit 322e1085fe.
2021-07-30 16:50:37 +03:00
Donatas Abraitis
253b4c5fd4 Revert "bgpd: fix missing delete from the list in dampening"
This reverts commit 755a977b8a.
2021-07-30 16:50:05 +03:00
Donatas Abraitis
b3aa2ed7a8 Revert "bgpd: use double-linked list instead of single-linked list in dampening"
Tested with full feed, this stucks and bgpd even stops responding.

```
[T58XM-TP956][EC 268435457] bgpd state -> unresponsive : no response yet to ping sent 90 seconds ago
```

This reverts commit db0e636dc4.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-30 16:49:21 +03:00
Mark Stapp
b0e475f7c2
Merge pull request #9214 from donaldsharp/assert_cleanup
zebra: bugfix of error quit of zebra, due to no nexthop ACTIVE
2021-07-30 09:21:46 -04:00
Donatas Abraitis
c48aaa01a3
Merge pull request #9217 from idryzhov/bgp-damp-leaks
bgpd: fix various memory leaks in dampening
2021-07-30 15:19:31 +03:00
Mobashshera Rasool
54d8e033f3 tools: Add ospfv3 commands in the support bundle
Co-authored-by: Yash Ranjan <ranjyany@vmware.com>
Signed-off-by: Yash Ranjan <ranjyany@vmware.com>
Co-authored-by: Mobashshera Rasool <mrasool@vmware.com>
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-07-30 05:14:26 -07:00
Igor Ryzhov
82f0277b35 ospfd: fix "no ip ospf passive" command
This command is currently always treated as an "unset" command, assuming
that active is the default type of the interface. In reality, the default
type of the interface can be changed using "passive-interface default"
command. Both "no" and regular commands can be "set" commands, depending
on the default value. They are treated as an "unset" when there's already
a config of the opposite type.

All this logic is in ospf_passive_interface_update.

Fixes #9240.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-30 15:08:08 +03:00
Mobashshera Rasool
34e96abf2e tools: Add ospfd commands in support bundle
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-07-30 03:52:45 -07:00
Russ White
e448fefbb4
Merge pull request #9028 from mobash-rasool/ospfv3-asbr-summarisation
Ospfv3 ASBR summarisation feature
2021-07-30 06:37:50 -04:00
Donatas Abraitis
6430836d92
Merge pull request #9237 from donaldsharp/code_block
doc: Fix code-block display for example shell commands
2021-07-30 10:18:14 +03:00
Xiao Liang
6910315f6f lib, zebra: Preserve user-configured VRF on netns deletion
Don't clear VRF's user-configured flag when netns is deleted.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
2021-07-30 14:53:45 +08:00
Donald Sharp
01af2696eb doc: Fix code-block display for example shell commands
the code-block was jumbled and not displaying properly.

Reported by: Drew Bloechl
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-07-29 21:42:06 -04:00
Anuradha Karuppiah
82732723da zebra: use a separate dummy prefix for referencing v6 nexthops
v4 and v6 host/refernce prefixes need to be setup separately for
[RMAC, VTEP] entries as the VTEP is always normalized to a v4 addr.

Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
2021-07-29 17:25:11 -07:00
Igor Ryzhov
db0e636dc4 bgpd: use double-linked list instead of single-linked list in dampening
This code always used double-linked list before this rework in 8.0 that
introduced all these crashes and memory leaks. Using single-linked list
is actually a performance regression, because there are frequent removes
here and single-linked list obviously handles removes much worse.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-30 00:59:19 +03:00
Igor Ryzhov
4538f89552 bgpd: fix missing damp info free when cleaning bgp path
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-30 00:59:19 +03:00
Igor Ryzhov
755a977b8a bgpd: fix missing delete from the list in dampening
When bgp_damp_info_free is called from bgp_route.c, we were never
deleting the BDI from the list.

Move the deletion inside bgp_damp_info_free to cover all cases.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-30 00:59:19 +03:00
Igor Ryzhov
97766ac8aa bgpd: cleanup bgp_damp_info_free
bgp_damp_config, afi and safi are never used.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-30 00:59:19 +03:00