The options:ovn-active-active-mappings will be used by northd to generate active-active LRP + LSP combinations for active-active routers with external interfaces.
Signed-off-by: Felix Huettner <felix.huettner@stackit.cloud> --- controller/chassis.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/controller/chassis.c b/controller/chassis.c index ee839084a..38cdfd2bf 100644 --- a/controller/chassis.c +++ b/controller/chassis.c @@ -52,6 +52,7 @@ struct ovs_chassis_cfg { const char *cms_options; const char *monitor_all; const char *chassis_macs; + const char *active_active_mappings; const char *enable_lflow_cache; const char *limit_lflow_cache; const char *memlimit_lflow_cache; @@ -132,6 +133,14 @@ get_chassis_mac_mappings(const struct smap *ext_ids, const char *chassis_id) "ovn-chassis-mac-mappings", ""); } +static const char * +get_chassis_active_active_mappings(const struct smap *ext_ids, + const char *chassis_id) +{ + return get_chassis_external_id_value(ext_ids, chassis_id, + "ovn-active-active-mappings", ""); +} + static const char * get_cms_options(const struct smap *ext_ids, const char *chassis_id) { @@ -316,6 +325,8 @@ chassis_parse_ovs_config(const struct ovsrec_open_vswitch_table *ovs_table, ovs_cfg->monitor_all = get_monitor_all(&cfg->external_ids, chassis_id); ovs_cfg->chassis_macs = get_chassis_mac_mappings(&cfg->external_ids, chassis_id); + ovs_cfg->active_active_mappings = + get_chassis_active_active_mappings(&cfg->external_ids, chassis_id); ovs_cfg->enable_lflow_cache = get_enable_lflow_cache(&cfg->external_ids, chassis_id); ovs_cfg->limit_lflow_cache = @@ -378,6 +389,8 @@ chassis_build_other_config(const struct ovs_chassis_cfg *ovs_cfg, smap_replace(config, "ovn-trim-timeout-ms", ovs_cfg->trim_timeout_ms); smap_replace(config, "iface-types", ds_cstr_ro(&ovs_cfg->iface_types)); smap_replace(config, "ovn-chassis-mac-mappings", ovs_cfg->chassis_macs); + smap_replace(config, "ovn-active-active-mappings", + ovs_cfg->active_active_mappings); smap_replace(config, "is-interconn", ovs_cfg->is_interconn ? "true" : "false"); smap_replace(config, OVN_FEATURE_PORT_UP_NOTIF, "true"); @@ -556,6 +569,14 @@ chassis_other_config_changed(const struct ovs_chassis_cfg *ovs_cfg, return true; } + const char *chassis_active_active_mapping = + get_chassis_active_active_mappings(&chassis_rec->other_config, + chassis_rec->name); + if (strcmp(ovs_cfg->active_active_mappings, + chassis_active_active_mapping)) { + return true; + } + return false; } @@ -699,6 +720,7 @@ update_supported_sset(struct sset *supported) sset_add(supported, "ovn-trim-timeout-ms"); sset_add(supported, "iface-types"); sset_add(supported, "ovn-chassis-mac-mappings"); + sset_add(supported, "ovn-active-active-mappings"); sset_add(supported, "is-interconn"); /* Internal options. */ -- 2.47.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev