Proto commits in bio-routing/bio-rd

These 50 commits are when the Protocol Buffers files have changed:

Commit:2f55bf4
Author:Maximilian Wilhelm
Committer:GitHub

Remove gRPC Routing Protocol (#445) * Remove gRPC Routing Protocol proto Signed-off-by: Maximilian Wilhelm <max@sdn.clinic> * Convert NHs to string explicitly Signed-off-by: Maximilian Wilhelm <max@sdn.clinic> --------- Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>

The documentation is generated from this commit.

Commit:456c8d9
Author:Marvin Gaube
Committer:GitHub

ObserveRIB: Add Support for observing a not yet ready RIB (#427) Co-authored-by: Marvin Gaube <marvin.gaube@exaring.de>

Commit:ecd3fda
Author:Maximilian Wilhelm
Committer:Maximilian Wilhelm

Add gRPC-base Routing Protocol (GRP) path type This adds the first bits and pieces for a gRPC-based Routing Protocol (GRP). It will allow to leverage Bio-Routing as a proxy between classical routing protocols, such as BGP, IS-IS, and OSPF, and a user-defined gRPC service. This commit contains the new GRP path type definition, the integration into existing route and path structures, as well as a proto definition. Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>

Commit:133fb10
Author:takt
Committer:GitHub

BGP: Make TCP listener VRF aware (#407)

Commit:e30fc31
Author:Maximilian Wilhelm
Committer:GitHub

Clean up naming for Prefix.pfxlen (to Prefix.len) (#374) Closes #150 Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>

Commit:3cfb73a
Author:takt
Committer:GitHub

Implement BGP end of RIB marker and add it to RIS (#367) Co-authored-by: Oliver Geiselhardt-Herms <ogeiselhardt-herms@cloudflare.com> Co-authored-by: Maximilian Wilhelm <maximilian@cloudflare.com>

Commit:a4b5094
Author:Maximilian Wilhelm
Committer:GitHub

Add support for BGP Role Capability (RFC9234) (#334) This commit adds support for »Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages» as defined in RFC9234. As this feature requires to configure the local role to be useful, we sadly cannot activate it by default. Signed-off-by: Maximilian Wilhelm <max@sdn.clinic> Signed-off-by: Maximilian Wilhelm <max@sdn.clinic> Co-authored-by: takt <oliver.peter.herms@gmail.com>

Commit:6a8f820
Author:Maximilian Wilhelm
Committer:GitHub

Store the unix epoch when a route is learned (for BGP and BMP for now). (#347) This allows storing the unix timestamp (epoch) of when a route is learned. When a route is learned via BMP the timestamp provided by BMP is used (and the microseconds ignored), and when the route is learned via BGP the local time of that moment is used. Signed-off-by: Maximilian Wilhelm <maximilian@cloudflare.com>

Commit:ceb42c7
Author:Maximilian Wilhelm
Committer:Maximilian Wilhelm

Propage Pre/Post policy indicator from BMP Reciver into BGPPath Signed-off-by: Maximilian Wilhelm <maximilian@cloudflare.com>

Commit:4a3b35f
Author:Maximilian Wilhelm
Committer:Maximilian Wilhelm

Groundwork to store a reason why is route is hidden (BGP) Routes can be ineligible for many reasons. This allows to store why we considered a given path as ineligible and are ignoring it. Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>

Commit:a631a20
Author:takt
Committer:GitHub

ISIS: Implement GetLSDB RPC (#331)

Commit:84b39b9
Author:takt
Committer:GitHub

Implement ISIS server management API (#330)

Commit:1c8f0d2
Author:Leopold Schabel
Committer:GitHub

Port to google.golang.org/protobuf and buf (#310) * Port to google.golang.org/protobuf and buf This makes it easier for contributors to use the proto workflow. - Move away from deprecated github.com/golang/protobuf package. - Use pinned versions of buf, protoc-gen-go and protoc-gen-go-grpc. - Use relative proto imports. - Regenerate all protos with the new versions. * Bump to Go 1.17 Co-authored-by: takt <oliver.peter.herms@gmail.com>

Commit:c6d38ad
Author:Tobias Krischer
Committer:GitHub

add rib filtering (#309) * add rib filtering * add simple test for route.IsBGPOriginatedBy * add test names

Commit:8b9426f
Author:takt
Committer:GitHub

RIS: Add VRF string to DumpRIB and make it usable from riscli (#281)

Commit:bab1973
Author:Oliver Herms

RIS: Add option to specify VRF in human readable form

Commit:cb622cb
Author:Oliver Herms

RIS: Implement initial dump signaling in ObserveFIB

Commit:c6f64ea
Author:Sebastian Lohff
Committer:Sebastian Lohff

Add description field to PeerConfig and BGP API When creating a BGP peer the description field can be filled as well. This can then be exported via API.

Commit:ccd449f
Author:Sebastian Lohff
Committer:GitHub

Add and rename field in riscli GetRouters() grpc (#260) In the risserver every bmp server is identified by its address, specified in the config, but the GetRouters() grpc only presents us with the name acquired via the BMP session. To clarify the field usage the router field is renamed to sys_name and an address field is added. The address field is of type string to match the other grpc methods, which require a router address to be specified as string. Co-authored-by: takt <oliver.herms@exaring.de>

Commit:3538060
Author:Christoph Petrausch
Committer:GitHub

Implement a GetRouters RPC to RIS (#253) * Implement a GetRouters RPC to RIS This RPC returns all configured routers and their VRF IDs. This can be used by RIS clients to discovery the routers. The router and the VRF ID is a required parameter for all other RPCs. * Update grpc to v1.28.0 to support protoc-gen-go v1.21.0 * Fix test Co-authored-by: Oliver Herms <oliver.peter.herms@gmail.com>

Commit:832b7b6
Author:takt
Committer:Daniel Czerwonk

Implement RIS (#208) * Make BMP server VRF aware * Implement RIS service * Remove binary * Fix .gitignore * Implement more RPCs * Implement RIB Observer * Fix tests * Implement RIB Dump * Add support for translating proto BGP Paths into internal paths * Cleanup * Fix peer down * Implement buffered update receiver. Fix route propagation. * Add metrics * Add VRF metrics * Add router label to VRF metrics * Add peer metrics * Fix tests * Fix test * Fix test * Fix build * Add tests * Add test for unknown path attributes * Add tests * Extend test * Standardize grpc API * Fix tests

Commit:1769639
Author:takt
Committer:Daniel Czerwonk

Adding support for dumping BGP RIBin & RIBout (#188) * Adding support for dumping BGP RIBin & RIBout * Fix build * Add API Server to BGP IPv4 example * Re-factored Route dumping API to use streaming RPC * Add benchmark

Commit:9ca3c2b
Author:Julian Kornberger
Committer:Julian Kornberger

Switch to Go modules That's the way to go since Go 1.11 has been released.

Commit:49f0f46
Author:Daniel Czerwonk

renaming of stats attr

Commit:2cb804f
Author:Daniel Czerwonk

added filter to make it more clear if a filter should be applied to the list

Commit:ff877cd
Author:Daniel Czerwonk

we decided to add vrf, so filtering will be on vrf - remote ip base

Commit:a556734
Author:Daniel Czerwonk
Committer:Daniel Czerwonk

test fixes

Commit:465b6ac
Author:Daniel Czerwonk

making proto3 generated code to compile

Commit:9d7cac6
Author:Daniel Czerwonk

added simple bgp service to get session information

Commit:fe95d39
Author:Daniel Czerwonk

added proto file for bgp sessions

Commit:54600c0
Author:Daniel Czerwonk

proto files

Commit:0e6b70d
Author:Oliver Herms

Revert "Merge branch 'app/bmpstreamer'" This reverts commit a5bccc29f356c2e069778e39502b82b4fa941454, reversing changes made to 88c1c813c6287be16ef2dc7208d054983bae8890.

Commit:a5bccc2
Author:Oliver Herms

Merge branch 'app/bmpstreamer'

Commit:19de062
Author:Oliver Herms

Fix build

Commit:41f80dd
Author:Oliver Herms

Fix tests

Commit:7e79fb7
Author:Oliver Herms

Refactor IP versioning in API

Commit:411fb57
Author:cedi

Merge branch 'master' into feature/netlink

Commit:da69773
Author:Sergiusz Bazanski

get bazel to build protos

Commit:ee59d00
Author:Oliver Herms

Current state

Commit:9c04e00
Author:Oliver Herms

Moving API definitions

Commit:54c6ab6
Author:takt
Committer:GitHub

Merge branch 'master' into app/bmpstreamer

Commit:26ac318
Author:Oliver Herms
Committer:Oliver Herms

API

Commit:fe66740
Author:Oliver Herms

API

Commit:4e94e9b
Author:Oliver Herms

Implemented BMP GRPC streamer

Commit:e1226a2
Author:cedi

Implement Netlink With this commit i'm introducing the netlink protocol to read routes from the linux kernel routing table to the locRIB. This also adds the functionality to insert new routes to the linux kernel routing stack which where learned by other protocol (like e.g. BGP). This is done by the protocols/netlink/netlink.go object. The netlink.go file acts as an facade around the netlink_reader.go and netlink_writer.go. netlink_reader itself reads in a defined reding interval new routes from the kernel and propagates new routes to all subscribed clients. The netlink reader can also be filtered using the same filter-api as in adjRibIn/adjRibOut for BGP. To read new routes to the locRIB you have to register the locRIB to the netlink_reader using the ClientManager interface, just like you would register the locRIB to the adjRibIn. netlink_writer must be subscribed to the locRIB in order to write the routes from locRIB into the kernel. This useses the ClientManager interface, just like you would register the adjRibOut to the locRIB. netlink_writer itself currently does not support filters, since all routes form the locRIB should be written to the kernel. The filter functionality could be easily added here as well. The netlink_writer currently does not support ecmp. This is subject of an other commit. The current implementation could be considered as work in progress, but the code is mature enough to start a review on it.

This commit does not contain any .proto files.

Commit:42cde9f
Author:Oliver Herms

Dep

Commit:e840086
Author:Oliver Herms

Fix build

This commit does not contain any .proto files.

Commit:78ca72e
Author:Serge Bazanski
Committer:Serge Bazanski

Build using Bazel This change integrates the Bazel build system into bio-rd. We also add support for: - running go dep from vendored libraries - running goveralls from vendored libraries - running bazel-based coverage from travis

Commit:168cce5
Author:Serge Bazanski

Prune tests from vendored libraries

This commit does not contain any .proto files.

Commit:f4c6ed8
Author:Daniel Czerwonk

added dep vendoring