Commit Graph

5364 Commits

Author SHA1 Message Date
Ryoga Saito
16f3db2d8c bgpd: add sid struct info to bgp_path_info_extra
add SID structure information to bgp_path_info_extra to use structure
data in other places.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-09-14 16:54:31 +00:00
Ryoga Saito
a1a5100851 bgpd: insert SID structure Sub-Sub-TLV
This patch enables frr to advertise SRv6 SID information with SID
structure Sub-Sub-TLV.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-09-03 01:19:49 +00:00
Ryoga Saito
cc8f05dfdc bgpd: add transpose operation
if advertisement with SID structure Sub-Sub-TLV, we need to transpose
SID, so added transpose operation into bgp_update.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-09-03 01:19:49 +00:00
Ryoga Saito
9299fd00e7 bgpd: introduce SID structure information
draft-ietf-bess-srv6-services-07 defines new SID structure Sub-Sub-TLV.
This patch adds SID structure information to bgp_attr_srv6_l3vpn. This
patch also defines default SID stucture used by following patches.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-09-03 01:19:45 +00:00
Ryoga Saito
a45cd34e54 bgpd: introduce new alloc algorithm for SRv6 SID
Current implementation of SRv6 SID allocation algorithm sets most least
2 bytes. But, according to RFC8986, function bits is located in the next
to locator. New allocation alogirithm respects this format.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-09-03 01:18:50 +00:00
Ryoga Saito
73604f8217 bgpd: fix parser of srv6 infomation
bgpd couldn't parse SRv6 SID Information Sub-TLV correctly.
draft-ietf-bess-srv6-services-07 also defines SRv6 SID Structure
Sub-Sub-TLV. This patch adds the parser for SRv6 SID Structure
Sub-Sub-TLV.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-08-18 09:03:41 +00:00
Ryoga Saito
a3e3b5b08b bgpd: fix prefix sid sub-tlv header is missing
draft-ietf-bess-srv6-services-07 defines SRv6 Service Sub-TLV header,
but, current bgpd implementation send path attribute without SRv6
Service Sub-TLV header.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-08-18 09:03:36 +00:00
Russ White
9205044945
Merge pull request #9402 from donaldsharp/rpki_processing
Rpki processing
2021-08-17 09:47:10 -04:00
Donatas Abraitis
bd67b727e9 bgpd: Return rmap match if large-community alias found
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-17 12:19:43 +03:00
Donald Sharp
9a65115329 bgpd: Add code to output expire and retry interval for rpki
The code to output during a `show run` is missing for both
the expire_interval and the retry_interval in rpki.
Let's add it in so the end user can see what they
are set to if not set to the default.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-16 11:04:06 -04:00
Donald Sharp
73261b4759 bgpd: Continue processing rpki nodes
We are prematurely stopping processing of bgp_path_info's
when bgp_update returns a -1.  The only place that this
happens when we cross some prefix limit.  But we still
need to continiue processing other nodes in the list too.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-16 11:04:06 -04:00
Donald Sharp
35a1e798f8 bgpd: Limit processing to what is needed in rpki validation
The processing was looping over all bgp instances then
over all peers then over all safi's to find a match
for a prefix received in order to validate it.

Suppose you have 100 peers each sending you the same
prefix.  This code will cause it to look at each node 100
times since we look at for each peer.  This is especially
egregarious because we never ever do anything with the peer
when we are looping over them.

Remove the peer loop, significantly reduce processing.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-16 11:04:06 -04:00
Donatas Abraitis
3af20fda0b
Merge pull request #9369 from idryzhov/comm-alias-memleaks
bgpd: fix various memleaks when using community aliases
2021-08-16 17:24:21 +03:00
Igor Ryzhov
5838d3b452
Merge pull request #9265 from ton31337/fix/extcommunity_lb_route-map_persistent
bgpd: Extended community bandwidth fixes
2021-08-16 12:26:25 +03:00
Igor Ryzhov
06dc3705b7
Merge pull request #9350 from ton31337/feature/autocomplete_for_community_lists
bgpd: Auto-complete for community lists (show commands)
2021-08-16 12:02:13 +03:00
Don Slice
6ba0adacd2 bgpd: Stop prepending peer-as if self-originated and lastas configured
Problem seen where if "set aspath-prepend last-as" configured and
applied outbound, we prepend the peer's asn which causes our self-
originated routes to be denied.

Signed-off-by: Don Slice <dslice@nvidia.com>
2021-08-13 15:25:48 -04:00
Igor Ryzhov
cd9cc0e64a bgpd: fix memory leaks in bgp_show_table
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-13 14:45:08 +03:00
Igor Ryzhov
1ca0a0bc92 bgpd: fix memory leaks in route_match_alias
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-13 14:28:41 +03:00
Igor Ryzhov
15bc6a40d3 bgpd: fix memory leaks in bgp_alias2community_str
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-11 12:09:15 +03:00
Russ White
800ac2d7b5
Merge pull request #9328 from donaldsharp/peer_deletion
bgpd: bgp_packet_process_error can access peer after deletion
2021-08-10 09:33:58 -04:00
Donatas Abraitis
77a3a95eaa bgpd: Auto-complete for show bgp <afi> <safi> large-community-list
```
exit1-debian-9# show ip bgp large-community-list
  (1-500)               large-community-list number
  LCOMMUNITY_LIST_NAME  large-community-list name
     large-testas
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-10 11:06:22 +03:00
Donatas Abraitis
96870ecb05 bgpd: Auto-complete for show bgp <afi> <safi> community-list
```
exit1-debian-9# show ip bgp community-list ?
  (1-500)              community-list number
  COMMUNITY_LIST_NAME  community-list name
     testas
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-10 11:06:12 +03:00
Donatas Abraitis
225096bcd1 bgpd: Auto-complete for community lists
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-10 10:56:26 +03:00
Donatas Abraitis
f4dd829679 bgpd: BGP extended [l]community-list regexp match must work with aliases
We have to convert BGP alias to numerical format to compare in regexp.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-10 09:46:15 +03:00
Donatas Abraitis
d04e7788c1
Merge pull request #9324 from donaldsharp/bgp_info_cmp
bgpd: Store distance received from a redistribute statement
2021-08-09 10:36:43 +03:00
Donatas Abraitis
4de721ee97
Merge pull request #9305 from proelbtn/patch-1
bgpd: fix typo in ensure_vrf_tovpn_sid
2021-08-09 10:35:10 +03:00
Donald Sharp
1fae5c8e28 bgpd: bgp_packet_process_error can access peer after deletion
in bgp_io.c upon packet read of some error we are storing
the peer pointer on a thread to call bgp_packet_process_error.
In this case an event is generated that is not guaranteed to be
run immediately.  It could come in *after* the peer data structure
is deleted and as such we now are writing into memory that we
no longer possibly own as a peer data structure.

Modify the code so that the peer can track the thread associated
with the read error and then it can wisely kill that thread
when deleting the peer data structure.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-08 08:23:24 -04:00
Donald Sharp
957f74c302 bgpd: Store distance received from a redistribute statement
When bgp receives the admin distance from a redistribution statement
let's store that distance for later usage.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-07 20:27:45 -04:00
Donald Sharp
883da9f5ec
Merge pull request #9256 from idryzhov/dampening-revert
BGP per-peer dampening revert
2021-08-06 10:46:09 -04:00
Donald Sharp
2f958e5562
Merge pull request #9280 from idryzhov/bgp-nb-revert-master
BGP NB revert
2021-08-06 10:45:59 -04:00
Ryoga
f7cafbb717 bgpd: fix typo in ensure_vrf_tovpn_sid
In eusure_vrf_tovpn_sid, there is a check to ensure not to select both
SID index and SID auto mode. But, this current check is wrong and not
meaningful.

Signed-off-by: proelbtn <contact@proelbtn.com>
2021-08-06 11:53:42 +09:00
Donatas Abraitis
639caccfeb bgpd: Fix misleading comments for some parts
Mostly just retrun => return and misleading comments at all.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-05 16:29:52 +03:00
Sri Mohana Singamsetty
08d7be0f4d
Merge pull request #9261 from vivek-cumulus/fix_evpn_quick_flap
bgpd: Handle quick flaps of an EVPN prefix properly
2021-08-04 12:44:37 -07:00
Igor Ryzhov
92cf415d6b Revert "bgpd: register northbound callbacks to bootstrap"
This reverts commit e4a464160d.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-03 23:36:31 +03:00
Igor Ryzhov
5f81a7edcb Revert "bgpd: bgp northbound callbacks prototypes"
This reverts commit a1950c80a5.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-03 23:36:31 +03:00
Igor Ryzhov
1ca2fd1175 Revert "bgpd: convert global config to transactional cli"
This reverts commit ff8a8a7ac1.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-03 23:36:31 +03:00
Igor Ryzhov
5bbc8de1b0 Revert "bgpd: register nb routing hook"
This reverts commit 374069da83.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-03 23:36:31 +03:00
Igor Ryzhov
1e48dfd2fd Revert "bgpd: shorten northbound callback names"
This reverts commit 906ebeec98.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-03 23:36:31 +03:00
Igor Ryzhov
66d2a8553b Revert "bgpd: correct bgp global context"
This reverts commit 87ce25646b.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
56648eab39 Revert "bgpd: move router bgp nb callback"
This reverts commit 5e42cb2fb0.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
8382083a8f Revert "bgpd: no router bgp check candidate config"
This reverts commit 4b63e358bc.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
cd6012bb22 Revert "bgpd: fix SA warnings in bgp northbound"
This reverts commit 082de39e71.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
31acf04aa4 Revert "bgpd: Use default VRF name if using router bgp command"
This reverts commit 5ce106b72b.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
23f1fa0704 Revert "bgpd: rename router bgp callbacks"
This reverts commit feded4118b.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
2fc82a12fb Revert "bgpd: fix crash in bgp instance creation"
This reverts commit a5ab756f24.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
385069ca17 Revert "bgpd: use common api in bgp_get"
This reverts commit bdaadb91e8.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
012baeeca6 Revert "yang: update bgp module afi-safi parameters"
This reverts commit 3b66fcef58.
2021-08-03 23:36:31 +03:00
Igor Ryzhov
585f1adc4f Revert "bgpd: convert addr-family clis to transactional clis"
This reverts commit 37a87b8f98.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-03 23:36:30 +03:00
Igor Ryzhov
ba0b0df767 Revert "bgpd: add match-med nb support in aggregate cmd"
This reverts commit fa423774ff.
2021-08-03 23:36:05 +03:00
Igor Ryzhov
1bf062e1b4 Revert "bgpd: add nb support for suppress-map in aggregate cmd"
This reverts commit 90e21f3535.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-03 23:35:40 +03:00