From 8174f0ada87d3845705b245071d22054f6a8b17b Mon Sep 17 00:00:00 2001 From: Felix Huettner Date: Tue, 10 Dec 2024 14:36:30 +0100 Subject: [PATCH] ovn-sb: Introduce Advertised_ and Learned_Route. These two tables will be used in the future to coordinate routing information between northd and ovn-controller. Northd will insert routes that should be advertised to the outside fabric to Advertised_Route. Ovn-controller will insert routes that have been learned from the outside fabric to Learned_Route. Signed-off-by: Felix Huettner Signed-off-by: Dumitru Ceara --- ovn-sb.ovsschema | 38 ++++++++++++++++++++++++-- ovn-sb.xml | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 2 deletions(-) diff --git a/ovn-sb.ovsschema b/ovn-sb.ovsschema index 73abf2c8dc..61bc264579 100644 --- a/ovn-sb.ovsschema +++ b/ovn-sb.ovsschema @@ -1,7 +1,7 @@ { "name": "OVN_Southbound", - "version": "20.37.0", - "cksum": "1950136776 31493", + "version": "20.38.0", + "cksum": "2175279464 33450", "tables": { "SB_Global": { "columns": { @@ -617,6 +617,40 @@ "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}}, "indexes": [["chassis"]], + "isRoot": true}, + "Advertised_Route": { + "columns": { + "datapath": {"type": {"key": {"type": "uuid", + "refTable": "Datapath_Binding", + "refType": "strong"}}}, + "logical_port": {"type": {"key": {"type": "uuid", + "refTable": "Port_Binding", + "refType": "strong"}}}, + "ip_prefix": {"type": "string"}, + "tracked_port": {"type": {"key": {"type": "uuid", + "refTable": "Port_Binding", + "refType": "strong"}, + "min": 0, + "max": 1}}, + "external_ids": { + "type": {"key": "string", "value": "string", + "min": 0, "max": "unlimited"}}}, + "indexes": [["datapath", "logical_port", "ip_prefix"]], + "isRoot": true}, + "Learned_Route": { + "columns": { + "datapath": {"type": {"key": {"type": "uuid", + "refTable": "Datapath_Binding", + "refType": "strong"}}}, + "logical_port": {"type": {"key": {"type": "uuid", + "refTable": "Port_Binding", + "refType": "strong"}}}, + "ip_prefix": {"type": "string"}, + "nexthop": {"type": "string"}, + "external_ids": { + "type": {"key": "string", "value": "string", + "min": 0, "max": "unlimited"}}}, + "indexes": [["datapath", "logical_port", "ip_prefix", "nexthop"]], "isRoot": true} } } diff --git a/ovn-sb.xml b/ovn-sb.xml index 9394bb5f43..3919b44e3a 100644 --- a/ovn-sb.xml +++ b/ovn-sb.xml @@ -5218,4 +5218,74 @@ tcp.flags = RST; The set of variable values for a given chassis. + + +

+ Each record represents a route that should be exported from ovn to the + outside network fabric. + It is populated by ovn-northd based on the addresses, + routes and NAT Entries of a + OVN_Northbound.Logical_Router_Port. +

+ + + The datapath belonging to the + OVN_Northbound.Logical_Router that this route is valid + for. + + + + This is the that the router will send packets + out that are received for the below prefix. + + + + IP prefix of this route (e.g. 192.168.100.0/24). + + + + In combination with a host ip_prefix this tracks the port + OVN will forward the packets for this destination to. + If set the will always + contain a /32 (for ipv4) or /128 (for ipv6) prefix. + + An announcing chassis can use this information to check if this + destination is local and adjust the route priorities based on that. + + + + See External IDs at the beginning of this document. + +
+ + +

+ Each record represents a route that learned by ovn using some dynamic + routing logic outside of ovn. + It is populated by ovn-controller with routes it learns + locally. +

+ + + The datapath belonging to the + OVN_Northbound.Logical_Router that this route is valid + for. + + + + This is the that the route was learned on. + + + + IP prefix of this route (e.g. 192.168.100.0/24). + + + + This is the nexthop ip we learned from outside of OVN. + + + + See External IDs at the beginning of this document. + +