Commit Graph

29287 Commits

Author SHA1 Message Date
Nobuhiro MIKI
9fa4ae2943 bgpd: take SRv6 locator's prefix length into account when generating SIDs
Until now, it has been hard-coded that the position at which the label
is inserted is from the 64th bits. Therefore, when the Locator prefix
was not /64, incorrect SIDs were generated. Also, SIDs are generated
in duplicate on Lines 604 & 613 in bgpd/bgp_mplsvpn.c.

In this patch, the position where the label is inserted is calculated
based on the sum of block_bits_length and node_bits_length (i.e., the
user-specified Locator prefix length). In addition, SID generation is
performed at one location in alloc_new_sid.

Signed-off-by: Nobuhiro MIKI <nmiki@yahoo-corp.jp>
2022-04-14 14:37:55 +09:00
Donatas Abraitis
b17d5444f4 bgpd: Pass non-transitive ext-communities between Route Server and RS clients
https://datatracker.ietf.org/doc/html/rfc7947#section-2.2

Optional recognized and unrecognized BGP attributes,
   whether transitive or non-transitive, SHOULD NOT be updated by the
   route server (unless enforced by local IXP operator configuration)
   and SHOULD be passed on to other route server clients.

By default LB ext-community works with iBGP peers. When we receive a route
from eBGP peer, we can send LB ext-community to iBGP peers.

With this patch, allow sending LB ext-community to iBGP/eBGP peers if they
are set as RS clients.

FRR does not send non-transitive ext-communities to eBGP peers, but for
example GoBGP sends and if it's set as RS client, we should pass those attributes
towards another RS client.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-14 08:36:20 +03:00
Nobuhiro MIKI
808ad1b617 bgpd: fix memory leak
Signed-off-by: Nobuhiro MIKI <nmiki@yahoo-corp.jp>
2022-04-14 10:07:22 +09:00
Sri Mohana Singamsetty
926e00236e
Merge pull request #10910 from donaldsharp/doc_nht
doc: Add `show ip nht..` documentation
2022-04-13 12:28:43 -07:00
Russ White
0d523362d6
Merge pull request #10978 from anlancs/bgpd-cleanup-6
bgpd: cosmetic change for evpn-mh
2022-04-13 15:27:39 -04:00
Sri Mohana Singamsetty
af280434ed
Merge pull request #10996 from donaldsharp/watchfrr_systemd_interactions
watchfrr: Send operational state to systemd
2022-04-13 12:26:15 -07:00
Russ White
bd751c0700
Merge pull request #10987 from opensourcerouting/fix/bgp_conditional_advertisements_rmap_change_peer_groups
bgpd: Do not forget to update conditional advertisements rmaps for peer-groups
2022-04-13 15:00:14 -04:00
Russ White
8a86917097
Merge pull request #11024 from anlancs/bgpd-fix-missing-newline
bgpd: fix wrong check for default VRF
2022-04-13 14:56:00 -04:00
Russ White
5dd323579a
Merge pull request #11025 from anlancs/bgpd-remove-l3nhg-control
bgpd: remove unnecessary l3nhg knob for evpn-mh
2022-04-13 14:55:29 -04:00
Russ White
6a1dbeba2f
Merge pull request #11010 from opensourcerouting/feature/reuse_bgp_attr_set_community_for_flags
bgpd: Reuse bgp_attr_set_[el]community() for setting attribute flags
2022-04-13 14:54:30 -04:00
Russ White
a39df8492d
Merge pull request #11009 from opensourcerouting/fix/med_for_aggregate-address
bgpd: aggregate-address fixes
2022-04-13 14:53:14 -04:00
Russ White
7c6316c521
Merge pull request #11013 from opensourcerouting/fix/convert_bgp_peer_sort_t_to_enum
bgpd: typedef enum to enum
2022-04-13 14:52:58 -04:00
Donatas Abraitis
cd876f8a78
Merge pull request #10935 from anlancs/zebra-mh-esi-warning
zebra: adjust the warnings for ESI of evpn-mh
2022-04-13 15:45:07 +03:00
mobash-rasool
4e3ccd396c
Merge pull request #10931 from g-balaji1/pimv6-ssm-cmds
pim6d: Addition of ipv6 ssmpingd config commands
2022-04-13 15:50:31 +05:30
Donatas Abraitis
a1d5f4ceab
Merge pull request #10972 from iqras23/default_originate
bgpd: Metric not set with default route
2022-04-13 13:13:00 +03:00
anlan_cs
c2b7d418f7 bgpd: remove unnecessary l3nhg knob for evpn-mh
Remove unnecessary `install_l3nhg` knob because it has already
been controlled by the command: "[no$no] use-es-l3nhg".

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-13 05:17:08 -04:00
anlan_cs
4a5271a56b bgpd: fix wrong check for default VRF
Currently the warning is wrong:
```
root#show bgp vrf default vni
BGP instance for VRF default not foundACC1(config)#
```

Two changes for "show bgp vrf VRFNAME vni [json]":
- Correct the default VRF check
- Add newline for warning

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-13 05:00:33 -04:00
Abhishek N R
80a82b567f pimd: Changing PIM_OIF_FLAG_PROTO_IGMP to PIM_OIF_FLAG_PROTO_GM
Modified marco name so that it can be reused in mld.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-04-13 01:19:03 -07:00
mobash-rasool
5cc9af2a6d
Merge pull request #10969 from donaldsharp/test_multicast_remove_support_bundle_collection
tests: Fix test_multicast_pim_sm_topo3.py from generating a support b…
2022-04-13 12:12:41 +05:30
Abhinay Ramesh
f78cfba9c9 bgpd: Metric not set with default route.
Description:
- When default route is originated using the
  neighbor default-originate command, MED is
  not set as part of the update message
  attribute.

- Changes are done to set the MED value and MED
  flag for default route.

Co-authored-by: Abhinay Ramesh <rabhinay@vmware.com>
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2022-04-12 19:55:54 -07:00
Donatas Abraitis
682abee174 bgpd: Apply frrbot styling
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:15:17 +03:00
Donatas Abraitis
e8e36ff315 bgpd: Convert bpacket_attr_vec_type to enum
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:13:55 +03:00
Donatas Abraitis
79288e4c12 bgpd: Convert bgp_attr_parse_ret_t to enum
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:13:55 +03:00
Donatas Abraitis
9c2fd3fe44 bgpd: Convert vpn_policy_direction_t to enum
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:13:55 +03:00
Donatas Abraitis
d54f55f22d bgpd: Convert bgp_policy_type_e to enum
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:13:55 +03:00
Donatas Abraitis
3061acc235 bgpd: Convert bgp_peer_sort_t to enum
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:13:55 +03:00
Donatas Abraitis
26870e2dcc bgpd: Fix styling, drop braces for single statement block
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:12:16 +03:00
Donatas Abraitis
58cf5c088a bgpd: Reuse bgp_attr_set_ecommunity() for setting attribute flags
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:09:28 +03:00
Donatas Abraitis
9d34440bf8 bgpd: Reuse bgp_attr_set_[l]community() for setting attribute flags
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-12 22:09:28 +03:00
Russ White
695c24c3b0
Merge pull request #10994 from opensourcerouting/fix/autocomplete_for_advertise_map
bgpd: Use autocomplete for route-map under conditional advertisements CLI
2022-04-12 14:40:33 -04:00
Russ White
94ee557658
Merge pull request #10999 from opensourcerouting/fix/bgp_aliases_with_community
bgpd: Allow setting BGP [large]community in route-maps
2022-04-12 14:37:58 -04:00
Mark Stapp
946fb036a3
Merge pull request #11000 from opensourcerouting/feature/show_conditional_adv_timer_in_neighbor_cli
bgpd: Show conditional advertisement timers in neighbor CLI output
2022-04-12 11:54:16 -04:00
mobash-rasool
8e53f35b5f
Merge pull request #10989 from opensourcerouting/pim-options-remove
pimd: remove pim_interface->options
2022-04-12 21:10:44 +05:30
anlan_cs
fff7545a03 bgpd: correct a few comments for evpn-mh
Correct a few evpn-mh omissions mainly on type-1 and type-4.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-12 09:33:06 -04:00
Balaji Gurudoss
a8caf78d61 pim6d: Addition of ipv6 ssmpingd config commands
Signed-off-by: Balaji Gurudoss <G_Balaji1@dell.com>
2022-04-12 18:07:24 +05:30
Donatas Abraitis
af3b36a1e1
Merge pull request #11003 from anlancs/bgpd-mh-trival-remove
bgpd: correct one flag name on comment for evpn-mh
2022-04-12 09:00:08 +03:00
anlan_cs
9a8fc8f88d zebra: simplify one check for evpn-mh
An simplification for one check in
`zebra_evpn_mh_uplink_oper_flags_update()`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-12 01:26:54 -04:00
kuldeepkash
40c28c860a tests: Add multicast_pim_dr_nondr_test suite
1. Added test cases to test/verify multicast_pim_dr_nondr scenarios

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2022-04-12 02:39:39 +05:30
Igor Ryzhov
5c73173536
Merge pull request #11006 from opensourcerouting/fix/remove_&routemap_optimization_cmd
lib: Remove deprecated routemap_optimization_cmd
2022-04-11 23:22:41 +03:00
Donatas Abraitis
764402feba bgpd: Fix styling for aggregate_addressv4_cmd
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-11 17:53:42 +03:00
Donatas Abraitis
cacba915d0 bgpd: Add autocomplete for aggregate-address ... route-map X
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-11 17:47:52 +03:00
Donatas Abraitis
59136db5a7 bgpd: Send MED attribute when aggregate prefix is created
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-11 17:46:04 +03:00
Donatas Abraitis
5e1a1129f5
Merge pull request #11007 from mobash-rasool/fixes
pimd: correct the show ip igmp sources output
2022-04-11 14:28:15 +03:00
Mobashshera Rasool
e1f87dce0f pimd: correct the show ip igmp sources output
frr(config-if)# ip igmp join 232.1.1.1 10.10.10.10
frr(config-if)# do sh ip igmp sources
Interface        Address         Group           Source          Timer Fwd Uptime
ens192           232.1.1.1       10.10.10.10     04:10   N 00:00:10
frr(config-if)#

The above output is misaligned and is having Address field which is not
required here.

Fixing it.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-04-11 00:17:11 -07:00
Donatas Abraitis
c90fab3c26 lib: Remove deprecated routemap_optimization_cmd
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-11 10:12:18 +03:00
Donald Sharp
747aa92e74 tests: Do not turn off multicast stream
The test is testing whether interface flaps are causing
the appropriate pim reactions.  Unfortunately the test
is turning off the multicast stream and the test also
has a keep alive timer of 15 seconds set on all routers.
Which of course means the test has 15 seconds(at most) to finish
testing.  This is not always possible given system loads.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-10 07:47:38 -04:00
Donald Sharp
184ab61ee3 tests: Fix test_multicast_pim_sm_topo3.py from generating a support bundle
The test_multicast_pim_sm_topo3.py test is both spending extra time
looking for state that will never occurr but also generating a support
bundle when it doesn't find it.  Fix the test to come to the correct
solution faster.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-10 07:47:18 -04:00
anlan_cs
b3ba21181a bgpd: correct one flag name on comment for evpn-mh
Correct flag name of `attr.es_flags` - ATTR_ES_L3_NHG_USE.

"bgp_path_info"s (Per "es-vrf") with this flag can use l3nhg.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-04-10 19:39:19 +08:00
Donald Sharp
efcd39d87b tests: Add a test case for a kernel route depending on a kernel route
Add a test case where a kernel route depends on a kernel route
and when you perturb an interface, ensure that FRR does not
loose the route.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-09 15:52:58 -04:00
Donald Sharp
c9e4abf81f zebra: Allow system routes to recurse through themselves
Currently if a end user has something like this:

Routing entry for 192.168.212.1/32
  Known via "kernel", distance 0, metric 100, best
  Last update 00:07:50 ago
  * directly connected, ens5

Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* 0.0.0.0/0 [0/100] via 192.168.212.1, ens5, src 192.168.212.19, 00:00:15
C>* 192.168.212.0/27 is directly connected, ens5, 00:07:50
K>* 192.168.212.1/32 [0/100] is directly connected, ens5, 00:07:50

And FRR does a link flap, it refigures the route and rejects the default
route:

2022/04/09 16:38:20 ZEBRA: [NZNZ4-7P54Y] default(0:254):0.0.0.0/0: Processing rn 0x56224dbb5b00
2022/04/09 16:38:20 ZEBRA: [ZJVZ4-XEGPF] default(0:254):0.0.0.0/0: Examine re 0x56224dbddc20 (kernel) status: Changed Installed flags: Selected dist 0 metric 100
2022/04/09 16:38:20 ZEBRA: [GG8QH-195KE] nexthop_active_update: re 0x56224dbddc20 nhe 0x56224dbdd950 (7), curr_nhe 0x56224dedb550
2022/04/09 16:38:20 ZEBRA: [T9JWA-N8HM5] nexthop_active_check: re 0x56224dbddc20, nexthop 192.168.212.1, via ens5
2022/04/09 16:38:20 ZEBRA: [M7EN1-55BTH]         nexthop_active: Route Type kernel has not turned on recursion
2022/04/09 16:38:20 ZEBRA: [HJ48M-MB610]         nexthop_active_check: Unable to find active nexthop
2022/04/09 16:38:20 ZEBRA: [JPJF4-TGCY5] default(0:254):0.0.0.0/0: After processing: old_selected 0x56224dbddc20 new_selected 0x0 old_fib 0x56224dbddc20 new_fib 0x0

So the 192.168.212.1 route is matched for the nexthop but it is not connected and
zebra treats it as a problem.  Modify the code such that if a system route
matches through another system route, then it should work imo.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-09 13:17:14 -04:00