diff mbox series

[ovs-dev,v3,16/33] northd: Sync routing data to pb.

Message ID 0a5b8b40be92ccf945f6024db85acaf61ac1bc21.1732630355.git.felix.huettner@stackit.cloud
State Changes Requested
Headers show
Series OVN Fabric integration | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success

Commit Message

Felix Huettner Nov. 26, 2024, 2:38 p.m. UTC
this allows the the ovn-controller to later find all ports that
participate in dynamic routing.

Signed-off-by: Felix Huettner <felix.huettner@stackit.cloud>
---
 northd/northd.c | 15 +++++++++++++++
 ovn-nb.xml      | 23 +++++++++++++++++++++++
 2 files changed, 38 insertions(+)
diff mbox series

Patch

diff --git a/northd/northd.c b/northd/northd.c
index a2e59dcfc..b637a7183 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -4058,6 +4058,21 @@  sync_pb_for_lrp(struct ovn_port *op,
         }
     }
 
+    if (is_cr_port(op) || chassis_name) {
+        if (smap_get_bool(&op->nbrp->options, "maintain-vrf", false)) {
+            smap_add(&new, "maintain-vrf", "true");
+        }
+        if (smap_get_bool(&op->od->nbr->options, "dynamic-routing", false)) {
+            smap_add(&new, "dynamic-routing", "true");
+        }
+        const char *ifname = smap_get(&op->nbrp->options,
+                                      "dynamic-routing-ifname");
+        if (ifname) {
+            smap_add(&new, "dynamic-routing-ifname", ifname);
+        }
+    }
+
+
     const char *ipv6_pd_list = smap_get(&op->sb->options, "ipv6_ra_pd_list");
     if (ipv6_pd_list) {
         smap_add(&new, "ipv6_ra_pd_list", ipv6_pd_list);
diff --git a/ovn-nb.xml b/ovn-nb.xml
index d67a3d07a..b99a273ec 100644
--- a/ovn-nb.xml
+++ b/ovn-nb.xml
@@ -3732,6 +3732,29 @@  or
           </li>
         </ul>
       </column>
+
+      <column name="options" key="maintain-vrf" type='{"type": "boolean"}'>
+        Only relevant if <ref column="options" key="dynamic-routing"
+        table="Logical_Router"/> on the respective Logical_Router is set
+          to <code>true</code>.
+
+          If this LRP is bound to a specific chassis then the ovn-controller of
+          this chassis will maintain a vrf named "ovnvrf" with the datapath id
+          of the Logical Router appended to it.
+          This vrf will contain all the routes that should be announced from
+          this LRP.
+      </column>
+
+      <column name="options" key="dynamic-routing-ifname"
+          type='{"type": "string"}'>
+        Only relevant if <ref column="options" key="dynamic-routing"
+        table="Logical_Router"/> on the respective Logical_Router is set
+          to <code>true</code>.
+
+          Only learn routes associated with the interface specified here.
+          This allows a single chassis to learn different routes on separate
+          LRPs bound to this chassis.
+      </column>
     </group>
 
     <group title="Attachment">