diff mbox series

[ovs-dev,v4,04/14] ic: Prepare *_run functions for engine nodes.

Message ID 20260902211744.2159261-5-guilherme.paulo@magalu.cloud
State New
Headers show
Series ic: Incremental processing for ovn-ic. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Paulo Guilherme Silva Sept. 2, 2026, 9:17 p.m. UTC
Make gateway_run, address_set_run, ts_run, tr_run, port_binding_run,
route_run, sync_service_monitor and enumerate_datapaths non-static and
declare them in ovn-ic.h so the upcoming per-subsystem
incremental-processing engine nodes (ic/en-*.c) can invoke them.  No
functional change.

Assisted-by: Claude Opus 4.8, Claude Code
Signed-off-by: Paulo Guilherme Silva <guilherme.paulo@magalu.cloud>
---
 ic/ovn-ic.c | 16 ++++++++--------
 ic/ovn-ic.h | 18 ++++++++++++++++++
 2 files changed, 26 insertions(+), 8 deletions(-)
diff mbox series

Patch

diff --git a/ic/ovn-ic.c b/ic/ovn-ic.c
index be03d1781..738685eaa 100644
--- a/ic/ovn-ic.c
+++ b/ic/ovn-ic.c
@@ -191,7 +191,7 @@  ic_pb_get_type(const struct icsbrec_port_binding *isb_pb)
     return IC_SWITCH_PORT;
 }
 
-static void
+void
 enumerate_datapaths(struct ic_context *ctx, struct hmap *dp_tnlids,
                     struct shash *isb_ts_dps, struct shash *isb_tr_dps)
 {
@@ -220,7 +220,7 @@  is_az_leader(struct ovsdb_idl_txn *txn)
     return idl && ovsdb_idl_has_lock(idl);
 }
 
-static void
+void
 ts_run(struct ic_context *ctx, struct hmap *dp_tnlids,
        struct shash *isb_ts_dps)
 {
@@ -353,7 +353,7 @@  ts_run(struct ic_context *ctx, struct hmap *dp_tnlids,
     }
 }
 
-static void
+void
 tr_run(struct ic_context *ctx, struct hmap *dp_tnlids,
        struct shash *isb_tr_dps)
 {
@@ -610,7 +610,7 @@  sync_addr_set_from_icsb(struct ovsdb_idl_txn *ovnnb_txn,
     sorted_array_destroy(&sorted_addrs);
 }
 
-static void
+void
 address_set_run(struct ic_context *ctx)
 {
     if (!ctx->ovnisb_unlocked_txn || !ctx->ovnnb_txn || !ctx->ovnsb_txn) {
@@ -710,7 +710,7 @@  address_set_run(struct ic_context *ctx)
     shash_destroy(&ic_remote_as);
 }
 
-static void
+void
 gateway_run(struct ic_context *ctx)
 {
     if (!ctx->ovnisb_unlocked_txn || !ctx->ovnsb_txn) {
@@ -1399,7 +1399,7 @@  find_lsp_in_sb(struct ic_context *ctx,
     return find_sb_pb_by_name(ctx->sbrec_port_binding_by_name, lsp->name);
 }
 
-static void
+void
 port_binding_run(struct ic_context *ctx)
 {
     if (!ctx->ovnisb_unlocked_txn || !ctx->ovnnb_txn || !ctx->ovnsb_txn) {
@@ -3134,7 +3134,7 @@  delete_orphan_ic_routes(struct ic_context *ctx,
     icsbrec_route_index_destroy_row(isb_route_key);
 }
 
-static void
+void
 route_run(struct ic_context *ctx)
 {
     if (!ctx->ovnisb_unlocked_txn || !ctx->ovnnb_txn || !ctx->ovnsb_txn) {
@@ -3580,7 +3580,7 @@  destroy_service_monitor_data(struct sync_service_monitor_data *sync_data)
     free(sync_data->prpg_svc_monitor_mac);
 }
 
-static void
+void
 sync_service_monitor(struct ic_context *ctx)
 {
     if (!ctx->ovnisb_unlocked_txn || !ctx->ovnsb_txn) {
diff --git a/ic/ovn-ic.h b/ic/ovn-ic.h
index 4db493e08..5a1cf060a 100644
--- a/ic/ovn-ic.h
+++ b/ic/ovn-ic.h
@@ -62,6 +62,24 @@  struct ic_state {
 enum ic_datapath_type { IC_SWITCH, IC_ROUTER, IC_DATAPATH_MAX };
 enum ic_port_binding_type { IC_SWITCH_PORT, IC_ROUTER_PORT, IC_PORT_MAX };
 
+struct hmap;
+struct shash;
+
 void ovn_db_run(struct ic_context *ctx);
 
+/* Per-subsystem entry points, invoked by the incremental-processing engine
+ * nodes (see ic/en-*.c).  Each performs a full recompute of its subsystem and
+ * may be invoked independently when its engine inputs change. */
+void enumerate_datapaths(struct ic_context *ctx, struct hmap *dp_tnlids,
+                         struct shash *isb_ts_dps, struct shash *isb_tr_dps);
+void gateway_run(struct ic_context *ctx);
+void address_set_run(struct ic_context *ctx);
+void ts_run(struct ic_context *ctx, struct hmap *dp_tnlids,
+            struct shash *isb_ts_dps);
+void tr_run(struct ic_context *ctx, struct hmap *dp_tnlids,
+            struct shash *isb_tr_dps);
+void port_binding_run(struct ic_context *ctx);
+void route_run(struct ic_context *ctx);
+void sync_service_monitor(struct ic_context *ctx);
+
 #endif /* OVN_IC_H */