This attribute of the "parsed_route" determines whether northd
will create logical flows for this route.

Signed-off-by: Martin Kalcok <[email protected]>
---
 northd/en-learned-route-sync.c |  3 ++-
 northd/northd.c                | 10 ++++++----
 northd/northd.h                |  4 +++-
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/northd/en-learned-route-sync.c b/northd/en-learned-route-sync.c
index a144b4487..a3e2b93a4 100644
--- a/northd/en-learned-route-sync.c
+++ b/northd/en-learned-route-sync.c
@@ -181,7 +181,8 @@ parse_route_from_sbrec_route(struct hmap *parsed_routes_out,
 
     parsed_route_add(od, nexthop, &prefix, plen, false, lrp_addr_s,
                      out_port, 0, false, false, NULL,
-                     ROUTE_SOURCE_LEARNED, &route->header_, parsed_routes_out);
+                     ROUTE_SOURCE_LEARNED, &route->header_, parsed_routes_out,
+                     true);
 }
 
 static void
diff --git a/northd/northd.c b/northd/northd.c
index 630466812..71adb88d7 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -10881,7 +10881,8 @@ parsed_route_add(const struct ovn_datapath *od,
                  const struct sset *ecmp_selection_fields,
                  enum route_source source,
                  const struct ovsdb_idl_row *source_hint,
-                 struct hmap *routes)
+                 struct hmap *routes,
+                 bool install_lflow)
 {
 
     struct parsed_route *new_pr = xzalloc(sizeof *new_pr);
@@ -10894,6 +10895,7 @@ parsed_route_add(const struct ovn_datapath *od,
     new_pr->od = od;
     new_pr->ecmp_symmetric_reply = ecmp_symmetric_reply;
     new_pr->is_discard_route = is_discard_route;
+    new_pr->install_lflow = install_lflow;
     if (!is_discard_route) {
         new_pr->lrp_addr_s = xstrdup(lrp_addr_s);
     }
@@ -11039,7 +11041,7 @@ parsed_routes_add_static(const struct ovn_datapath *od,
     parsed_route_add(od, nexthop, &prefix, plen, is_discard_route, lrp_addr_s,
                      out_port, route_table_id, is_src_route,
                      ecmp_symmetric_reply, &ecmp_selection_fields, source,
-                     &route->header_, routes);
+                     &route->header_, routes, true);
     sset_destroy(&ecmp_selection_fields);
 }
 
@@ -11057,7 +11059,7 @@ parsed_routes_add_connected(const struct ovn_datapath 
*od,
                          false, addr->addr_s, op,
                          0, false,
                          false, NULL, ROUTE_SOURCE_CONNECTED,
-                         &op->nbrp->header_, routes);
+                         &op->nbrp->header_, routes, true);
     }
 
     for (size_t i = 0; i < op->lrp_networks.n_ipv6_addrs; i++) {
@@ -11069,7 +11071,7 @@ parsed_routes_add_connected(const struct ovn_datapath 
*od,
                          false, addr->addr_s, op,
                          0, false,
                          false, NULL, ROUTE_SOURCE_CONNECTED,
-                         &op->nbrp->header_, routes);
+                         &op->nbrp->header_, routes, true);
     }
 }
 
diff --git a/northd/northd.h b/northd/northd.h
index 991732038..fffaab3a0 100644
--- a/northd/northd.h
+++ b/northd/northd.h
@@ -729,6 +729,7 @@ struct parsed_route {
     const struct ovsdb_idl_row *source_hint;
     char *lrp_addr_s;
     const struct ovn_port *out_port;
+    bool install_lflow;
 };
 
 struct parsed_route *parsed_route_clone(const struct parsed_route *);
@@ -747,7 +748,8 @@ void parsed_route_add(const struct ovn_datapath *od,
                       const struct sset *ecmp_selection_fields,
                       enum route_source source,
                       const struct ovsdb_idl_row *source_hint,
-                      struct hmap *routes);
+                      struct hmap *routes,
+                      bool install_lflow);
 
 bool
 find_route_outport(const struct hmap *lr_ports, const char *output_port,
-- 
2.43.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to