Skip to content

Commit 94c2430

Browse files
committed
WIP: Foundational pieces for VRF-aware Monitoring Protocol (VAMP)
Signed-off-by: Maximilian Wilhelm <[email protected]>
1 parent c9e7c0f commit 94c2430

11 files changed

+1021
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# VRF-Aware Monitoring Protocol (VAMP)
2+
3+
This protocol is designed to allow leveraging Bio-Routing to observe routing information present inside the network, across multiple VRFs and protocols.
4+
5+
Now you may wonder, that this sound similar to the BGP Monitoring Protocol (BMP), and it is, but it's also different in some aspects:
6+
7+
* BMP has support to expose routing information from different VRFs, which are identified by their respective Route Distinguisher (RD). To be able to leverage this feature there needs to be a unique RD per VRF, which introduces the requirement to managed RDs per VRF or device. When dealing with VRF-lite setups managing RDs would otherwise not be required and therefore it may not be desireable to add this additional requirement into the overall architecture.
8+
* BMP only exposes routes learned via BGP - which is was designed to do - in some circumstances however it might be desireable to also expose routing information from other protocols like IS-IS, OSPF, or even static routes, which may have been added manually or programatically.
9+
10+
To be most flexible the VRF-Aware Monitoring Protocol allows exporting routes for multiple VRFs over one gRPC connection.
11+
12+
Bio-Routing, at least for now, only implements a VRF-Aware Monitoring Protocol client componenent, meaning that the user has to run a VAMP server by themselves. An example can be found in the examples/vamp/ folder inside this repository.
13+
14+
The following diagram shows the architectural overview:
15+
16+
![VRF-Aware Monitoring Protocol architecural overview](VAMP Architecture.drawio.svg)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile host="Electron" modified="2023-01-29T15:22:22.341Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/16.5.1 Chrome/96.0.4664.110 Electron/16.0.7 Safari/537.36" etag="A6juuqf1uNvtjt7GlIQ8" version="16.5.1" type="device"><diagram id="qTsozOltfgc4AzKQSObR" name="Page-1">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</diagram></mxfile>
Loading

Documentation/user/protocols/VAMP/VAMP Architecture.drawio.svg

+4
Loading

0 commit comments

Comments
 (0)