@@ -5758,7 +5758,7 @@ static void
57585758build_lswitch_learn_fdb_op(
57595759 struct ovn_port *op, struct lflow_table *lflows,
57605760 struct ds *actions, struct ds *match,
5761- const char *pf9_mac_learning_skip)
5761+ const struct sset *pf9_mac_learning_skip)
57625762{
57635763 ovs_assert(op->nbsp);
57645764
@@ -5779,9 +5779,12 @@ build_lswitch_learn_fdb_op(
57795779 op->lflow_ref);
57805780
57815781 ds_put_cstr(match, " && "REGBIT_LKUP_FDB" == 0");
5782- if (pf9_mac_learning_skip) {
5783- ds_put_format(match, " && eth.src != %s",
5784- pf9_mac_learning_skip);
5782+ if (pf9_mac_learning_skip &&
5783+ !sset_is_empty(pf9_mac_learning_skip)) {
5784+ const char *skip_mac;
5785+ SSET_FOR_EACH (skip_mac, pf9_mac_learning_skip) {
5786+ ds_put_format(match, " && eth.src != %s", skip_mac);
5787+ }
57855788 }
57865789 ds_clear(actions);
57875790 ds_put_cstr(actions, "put_fdb(inport, eth.src); next;");
@@ -15794,7 +15797,7 @@ struct lswitch_flow_build_info {
1579415797 struct ds actions;
1579515798 size_t thread_lflow_counter;
1579615799 const char *svc_monitor_mac;
15797- const char *pf9_mac_learning_skip;
15800+ const struct sset *pf9_mac_learning_skip;
1579815801};
1579915802
1580015803/* Helper function to combine all lflow generation which is iterated by
@@ -15877,7 +15880,7 @@ build_lswitch_and_lrouter_iterate_by_lsp(struct ovn_port *op,
1587715880 const struct hmap *ls_ports,
1587815881 const struct hmap *lr_ports,
1587915882 const struct shash *meter_groups,
15880- const char *pf9_mac_learning_skip,
15883+ const struct sset *pf9_mac_learning_skip,
1588115884 struct ds *match,
1588215885 struct ds *actions,
1588315886 struct lflow_table *lflows)
@@ -16164,7 +16167,7 @@ build_lswitch_and_lrouter_flows(
1616416167 const struct chassis_features *features,
1616516168 const char *svc_monitor_mac,
1616616169 bool pf9_allow_mac_forged_transmits,
16167- const char *pf9_mac_learning_skip)
16170+ const struct sset *pf9_mac_learning_skip)
1616816171{
1616916172
1617016173 char *svc_check_match = xasprintf("eth.dst == %s", svc_monitor_mac);
0 commit comments