@@ -368,6 +368,7 @@ chassis_build_other_config(const struct ovs_chassis_cfg *ovs_cfg,
smap_replace(config, OVN_FEATURE_CT_NO_MASKED_LABEL, "true");
smap_replace(config, OVN_FEATURE_MAC_BINDING_TIMESTAMP, "true");
smap_replace(config, OVN_FEATURE_CT_LB_RELATED, "true");
+ smap_replace(config, OVN_FEATURE_FDB_TIMESTAMP, "true");
}
/*
@@ -495,6 +496,12 @@ chassis_other_config_changed(const struct ovs_chassis_cfg *ovs_cfg,
return true;
}
+ if (!smap_get_bool(&chassis_rec->other_config,
+ OVN_FEATURE_FDB_TIMESTAMP,
+ false)) {
+ return true;
+ }
+
return false;
}
@@ -624,6 +631,7 @@ update_supported_sset(struct sset *supported)
sset_add(supported, OVN_FEATURE_CT_NO_MASKED_LABEL);
sset_add(supported, OVN_FEATURE_MAC_BINDING_TIMESTAMP);
sset_add(supported, OVN_FEATURE_CT_LB_RELATED);
+ sset_add(supported, OVN_FEATURE_FDB_TIMESTAMP);
}
static void
@@ -25,6 +25,7 @@
#define OVN_FEATURE_CT_NO_MASKED_LABEL "ct-no-masked-label"
#define OVN_FEATURE_MAC_BINDING_TIMESTAMP "mac-binding-timestamp"
#define OVN_FEATURE_CT_LB_RELATED "ovn-ct-lb-related"
+#define OVN_FEATURE_FDB_TIMESTAMP "fdb-timestamp"
/* OVS datapath supported features. Based on availability OVN might generate
* different types of openflows.
@@ -467,6 +467,15 @@ build_chassis_features(const struct sbrec_chassis_table *sbrec_chassis_table,
chassis_features->ct_lb_related) {
chassis_features->ct_lb_related = false;
}
+
+ bool fdb_timestamp =
+ smap_get_bool(&chassis->other_config,
+ OVN_FEATURE_FDB_TIMESTAMP,
+ false);
+ if (!fdb_timestamp &&
+ chassis_features->fdb_timestamp) {
+ chassis_features->fdb_timestamp = false;
+ }
}
}
@@ -16444,6 +16453,7 @@ northd_init(struct northd_data *data)
.ct_no_masked_label = true,
.mac_binding_timestamp = true,
.ct_lb_related = true,
+ .fdb_timestamp = true,
};
data->ovn_internal_version_changed = false;
}
@@ -71,6 +71,7 @@ struct chassis_features {
bool ct_no_masked_label;
bool mac_binding_timestamp;
bool ct_lb_related;
+ bool fdb_timestamp;
};
/* A collection of datapaths. E.g. all logical switch datapaths, or all
Add feature indication to every chassis about FDB timestamp support. In case the northd and SB DB is updated before ovn-controller, which would trigger aging loop as the new row would be added with timestamp being 0. That would trigger constant aging mechanism. Signed-off-by: Ales Musil <amusil@redhat.com> --- controller/chassis.c | 8 ++++++++ include/ovn/features.h | 1 + northd/northd.c | 10 ++++++++++ northd/northd.h | 1 + 4 files changed, 20 insertions(+)