With the extremely large RIBs, GetRib gRPC API hits the limits of each
message size, because this API is using simple request/response RPC.
This patch introduces a new API GetPath which using streaming RPC and
can retrieve RIBs even if extremely large.
Note: GetRib can be replaced with GetPath and obsoleted in the future.
Signed-off-by: IWASE Yusuke <[email protected]>
To reduce the translations of "AfiSafiName" into "bgp.RouteFamily", this
patch introduces "Family" field into "AfiSafiState" and stores the
translated value.
Signed-off-by: IWASE Yusuke <[email protected]>
allocating 256 bytes per prefix isn't a good idea. Let's allocate 8
bytes by default and expand dynamically if necessary.
Signed-off-by: FUJITA Tomonori <[email protected]>
To make it easier for other projects to include gobgp.proto file,
let's use more permissive license, MIT.
[skip ci]
Signed-off-by: FUJITA Tomonori <[email protected]>
add-path support needs two identifiers, remote (rx) and local
(tx). The remote identifiers are assigined by remote peers, the local
ones are assigned by gobgpd itself.
Signed-off-by: FUJITA Tomonori <[email protected]>
This patch adds the feature in the neighbor subcommand
to get detailed information about RPKI validation.
The command receives a prefix in Adj-RIB-In,
and gives the detailed RPKI information for the route.
The informaton includes the validation status, the reason if it is invalid,
and matched/unmatched VRPs.
Example:
$ gobgp neighbor 172.17.0.3 adj-in 2.1.0.0/16 validation
Target Prefix: 2.1.0.0/16, AS: 65001
This route is invalid reason: as
No VRP ASN matches the route origin ASN.
Matched VRPs:
No Entry
Unmatched AS VRPs:
Network AS MaxLen
2.0.0.0/12 3215 16
2.1.0.0/16 3215 16
Unmatched Length VRPs:
No Entry
Signed-off-by: Satoshi Fujimoto <[email protected]>
By introducing dynamic neighbor feature,
GoBGP can have dynamic neighbors,
and corresponding Config.NeighboAddress can be empty.
This patch sets State.NeighborAddress for all neighbors,
and gets the neighbor's address from them.
Signed-off-by: Satoshi Fujimoto <[email protected]>
RFC5549 allows IPv6 Next Hop address for the advertisement of IPv4
related NLRIs for <AFI/SAFI> of <1/1>, <1/2>, <1/4> and <1/128>.
Currently, the advertisement using the MP_REACH_NLRI is supported,
but IPv4 routes with IPv6 Next Hop is not enough.
This patch enable to advertise IPv4 routes for <AFI/SAFI> of <1/1>
through GoBGP CLI command.
e.g.)
$ gobgp global rib add -a ipv4 10.2.1.0/24 nexthop 2001:2::1
Signed-off-by: IWASE Yusuke <[email protected]>
we use the term replace-peer-as instead of as-override
since openconfig is using it.
cli
```
$ gobgp n add <neighbor-addr> as <asn> replace-peer-as
```
config
```
neighbor:
config:
peer-as: <asn>
neighbor-address: <neighbor-addr>
as-path-options:
config:
replace-peer-as: true
```
Signed-off-by: Wataru Ishida <[email protected]>
RFC4271 9.1.2 Phase 2: Route Selection
If the AS_PATH attribute of a BGP route contains an AS loop, the BGP
route should be excluded from the Phase 2 decision function. AS loop
detection is done by scanning the full AS path (as specified in the
AS_PATH attribute), and checking that the autonomous system number of
the local system does not appear in the AS path. Operations of a BGP
speaker that is configured to accept routes with its own autonomous
system number in the AS path are outside the scope of this document.
Also this commit adds support for allow-own-as option to relax this.
Signed-off-by: ISHIDA Wataru <[email protected]>
convert default in/import/export policy type
remove remote-private-as, send-community since we are not using them
Signed-off-by: Wataru Ishida <[email protected]>
For configuring the Nexthop Tracking features with ZClient, this patch
adds the config values:
- "nexthop-trigger-enable" enables to the Nexthop Tracking features.
Please note this features is only available with version 3 or later,
and "true" by the default with that version.
- "nexthop-trigger-delay" specifies the delay sec to update the
nexthops triggered by the events from Zebra daemon. The default is
5 secs and the same with the default of Cisco's routers.
Signed-off-by: IWASE Yusuke <[email protected]>
This patch adds "--reason" option support into the disable neighbor command
which can specify "Administrative Shutdown Communication" on the BGP Cease
NOTIFICATION message.
Usage:
$ gobgp neighbor <neighbor address> disable --reason "some messages"
Signed-off-by: IWASE Yusuke <[email protected]>
When we use gRPC API to add neighbor. Even if we specify,
config.Neighbor.AfiSafis parameter, it is ignored in
NewPeerFromConfigStruct(). Adding to that even if we fix the issue,
NewNeighborFromAPIStruct() count Families twice. So resulting neighbor
has duplicated Families configuration. This patch fixed both problems.
AdjRibOut isn't in memory so needs to be calculated on the fly.
Doing such for multiple neighbors consumes too much CPU (especially
there are lots of routes).
Signed-off-by: FUJITA Tomonori <[email protected]>