The MAC binding sync needs to be aware of Port Binding updates as
change in connection between EVPN LS and LR might result in update
of relevant MAC Bindings. Add missing handler that will take care
of that.
Fixes: ee02a786ad26 ("controller: Distribute EVPN-learned MAC bindings via SB.")
Signed-off-by: Ales Musil <[email protected]>
---
controller/evpn-mac-binding-sync.c | 4 ++
controller/evpn-mac-binding-sync.h | 4 ++
controller/ovn-controller.c | 72 ++++++++++++++++++++
tests/multinode.at | 106 +++++------------------------
tests/ovn-inc-proc-graph-dump.at | 1 +
5 files changed, 97 insertions(+), 90 deletions(-)
diff --git a/controller/evpn-mac-binding-sync.c
b/controller/evpn-mac-binding-sync.c
index 7387f91ca..be62c0f9a 100644
--- a/controller/evpn-mac-binding-sync.c
+++ b/controller/evpn-mac-binding-sync.c
@@ -186,6 +186,8 @@ evpn_mac_binding_sync_run(
continue;
}
+ uuidset_insert(&data->lsp_peers, &peers->local->header_.uuid);
+
int64_t remaining =
sync_evpn_mb_for_router_port(ovnsb_idl_txn,
sbrec_mac_binding_by_lport_ip,
@@ -225,6 +227,7 @@ void
evpn_mac_binding_sync_init(struct ed_type_evpn_mac_binding_sync *data)
{
hmap_init(&data->synced_entries);
+ uuidset_init(&data->lsp_peers);
data->sb_changes_pending = false;
}
@@ -238,4 +241,5 @@ evpn_mac_binding_sync_cleanup(struct
ed_type_evpn_mac_binding_sync *data)
free(entry);
}
hmap_destroy(&data->synced_entries);
+ uuidset_destroy(&data->lsp_peers);
}
diff --git a/controller/evpn-mac-binding-sync.h
b/controller/evpn-mac-binding-sync.h
index dc1e63a6a..249059d0e 100644
--- a/controller/evpn-mac-binding-sync.h
+++ b/controller/evpn-mac-binding-sync.h
@@ -18,6 +18,7 @@
#include "openvswitch/hmap.h"
#include "openvswitch/uuid.h"
+#include "uuidset.h"
struct mac_cache_data;
struct ovsdb_idl_index;
@@ -41,6 +42,9 @@ struct ed_type_evpn_mac_binding_sync {
* (logical_port, ip) pairs we have written to SB. */
struct hmap synced_entries;
+ /* Contains LSP UUIDs belonging to synced entries peers. */
+ struct uuidset lsp_peers;
+
/* True when an SB write was skipped because ovnsb_idl_txn was NULL. */
bool sb_changes_pending;
};
diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
index 31cb30cfd..be02d2864 100644
--- a/controller/ovn-controller.c
+++ b/controller/ovn-controller.c
@@ -7032,6 +7032,7 @@ en_evpn_mac_binding_sync_run(struct engine_node *node,
void *data_)
struct evpn_mb_sync_waker *waker =
engine_get_input_data("evpn_mac_binding_sync_waker", node);
+ uuidset_clear(&data->lsp_peers);
data->sb_changes_pending = false;
evpn_mac_binding_sync_run(engine_get_context()->ovnsb_idl_txn,
@@ -7064,6 +7065,75 @@ evpn_mac_binding_sync_sb_ro_handler(struct engine_node
*node OVS_UNUSED,
return EN_HANDLED_UNCHANGED;
}
+static enum engine_input_handler_result
+evpn_mac_binding_sync_sb_port_binding_handler(struct engine_node *node,
+ void *data_)
+{
+ struct ed_type_evpn_mac_binding_sync *data = data_;
+ struct ed_type_runtime_data *rt_data =
+ engine_get_input_data("runtime_data", node);
+ const struct sbrec_port_binding_table *port_binding_table =
+ EN_OVSDB_GET(engine_get_input("SB_port_binding", node));
+ struct ovsdb_idl_index *sbrec_port_binding_by_name =
+ engine_ovsdb_node_get_index(
+ engine_get_input("SB_port_binding", node),
+ "name");
+
+ const struct sbrec_port_binding *pb;
+ SBREC_PORT_BINDING_TABLE_FOR_EACH_TRACKED (pb, port_binding_table) {
+ if (sbrec_port_binding_is_deleted(pb) &&
+ uuidset_contains(&data->lsp_peers, &pb->header_.uuid)) {
+ return EN_UNHANDLED;
+ }
+
+ if (!sbrec_port_binding_is_new(pb) &&
+ uuidset_contains(&data->lsp_peers, &pb->header_.uuid) &&
+ (sbrec_port_binding_is_updated(pb,
+ SBREC_PORT_BINDING_COL_OPTIONS) ||
+ sbrec_port_binding_is_updated(pb, SBREC_PORT_BINDING_COL_TYPE))) {
+ return EN_UNHANDLED;
+ }
+
+ if (!sbrec_port_binding_is_new(pb)) {
+ continue;
+ }
+
+ struct local_datapath *ld = get_local_datapath(
+ &rt_data->local_datapaths, pb->datapath->tunnel_key);
+ if (!ld || !ld->is_switch) {
+ continue;
+ }
+
+ int64_t vni = ovn_smap_get_llong(&ld->datapath->external_ids,
+ "dynamic-routing-vni", -1);
+ if (!ovn_is_valid_vni(vni)) {
+ continue;
+ }
+
+ enum en_lport_type type = get_lport_type(pb);
+ if (type != LP_L3GATEWAY && type != LP_PATCH) {
+ continue;
+ }
+
+ const struct sbrec_port_binding *peer =
+ lport_get_peer(pb, sbrec_port_binding_by_name);
+ if (!peer) {
+ continue;
+ }
+
+ struct local_datapath *peer_ld =
+ get_local_datapath(&rt_data->local_datapaths,
+ peer->datapath->tunnel_key);
+ if (!peer_ld || peer_ld->is_switch) {
+ continue;
+ }
+
+ return EN_UNHANDLED;
+ }
+
+ return EN_HANDLED_UNCHANGED;
+}
+
/* Define engine node functions for nodes that represent SB tables.
*
* en_sb_<TABLE_NAME>_run()
@@ -7491,6 +7561,8 @@ inc_proc_ovn_controller_init(
engine_noop_handler);
engine_add_input(&en_evpn_mac_binding_sync, &en_sb_ro,
evpn_mac_binding_sync_sb_ro_handler);
+ engine_add_input(&en_evpn_mac_binding_sync, &en_sb_port_binding,
+ evpn_mac_binding_sync_sb_port_binding_handler);
engine_add_input(&en_pflow_output, &en_evpn_vtep_binding,
pflow_output_evpn_binding_handler);
diff --git a/tests/multinode.at b/tests/multinode.at
index 21d9b9f03..91f220abd 100644
--- a/tests/multinode.at
+++ b/tests/multinode.at
@@ -4159,46 +4159,16 @@ check multinode_nbctl --wait=hv
\
-- lsp-add ls-int w-int2 \
-- lsp-set-addresses w-int2 "00:00:00:02:00:02 20.0.0.12 2000::12"
-rtr_dp_key=$(m_fetch_column Datapath tunnel_key external_ids:name=lr)
-rtr_port_key=$(m_fetch_column Port_Binding tunnel_key logical_port=lr-ls)
-
check m_as ovn-gw-1 /data/create_fake_vm.sh w-int1 w-int1 00:00:00:02:00:01
1500 20.0.0.11 24 20.0.0.1 2000::11/64 2000::1
check m_as ovn-gw-2 /data/create_fake_vm.sh w-int2 w-int2 00:00:00:02:00:02
1500 20.0.0.12 24 20.0.0.1 2000::12/64 2000::1
m_wait_for_ports_up
-# Check that flows are created for the type-2 EVPN MAC+IP routes, in the
-# router pipeline.
-AT_CHECK_UNQUOTED([m_as ovn-gw-1 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_BINDING | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,reg0=0xa00000b,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:00:01,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xa00000c,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:00:02,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg0=0xa000029,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:01:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg4=0x100000,reg5=0,reg6=0,reg7=0x41,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:01:00,load:0x1->NXM_NX_REG10[[6]]
-])
-
-AT_CHECK_UNQUOTED([m_as ovn-gw-1 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_LOOKUP | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,arp,reg0=0xa00000b,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:00:01
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xa00000c,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:00:02
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,arp,reg0=0xa000029,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:01:00
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,icmp6,reg0=0x100000,reg1=0,reg2=0,reg3=0x41,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:01:00,icmp_code=0
actions=load:0x1->NXM_NX_REG10[[6]]
-])
-
-AT_CHECK_UNQUOTED([m_as ovn-gw-2 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_BINDING | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,reg0=0xa00000b,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:00:01,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xa00000c,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:00:02,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg0=0xa00002a,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:02:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg4=0x100000,reg5=0,reg6=0,reg7=0x42,reg15=0x$rtr_port_key,metadata=0x$rtr_dp_key
actions=mod_dl_dst:00:00:00:00:02:00,load:0x1->NXM_NX_REG10[[6]]
-])
-
-AT_CHECK_UNQUOTED([m_as ovn-gw-2 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_LOOKUP | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,arp,reg0=0xa00000b,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:00:01
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xa00000c,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:00:02
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,arp,reg0=0xa00002a,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:02:00
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,icmp6,reg0=0x100000,reg1=0,reg2=0,reg3=0x42,reg14=0x$rtr_port_key,metadata=0x$rtr_dp_key,dl_src=00:00:00:00:02:00,icmp_code=0
actions=load:0x1->NXM_NX_REG10[[6]]
-])
+# Check that SB MAC Bindings are created for the type-2 EVPN MAC+IP routes,
+# in the router pipeline.
+m_wait_row_count mac_binding 1 ip="10.0.0.41" logical_port="lr-ls"
+m_wait_row_count mac_binding 1 ip="10.0.0.42" logical_port="lr-ls"
+m_wait_row_count mac_binding 1 ip="10\:\:41" logical_port="lr-ls"
+m_wait_row_count mac_binding 1 ip="10\:\:42" logical_port="lr-ls"
AS_BOX([Check traffic to "fabric" hosts - ping from internal hosts])
OVS_WAIT_UNTIL([m_as ovn-gw-1 ip netns exec w-int1 ping -W 1 -c 1
10.0.0.41])
@@ -4580,66 +4550,22 @@ check multinode_nbctl --wait=hv
\
-- lsp-add ls1-int w1-int2 \
-- lsp-set-addresses w1-int2 "00:00:00:12:00:02 21.0.0.12 2001::12"
-rtr_dp_key0=$(m_fetch_column Datapath tunnel_key external_ids:name=lr0)
-rtr_dp_key1=$(m_fetch_column Datapath tunnel_key external_ids:name=lr1)
-rtr_port_key0=$(m_fetch_column Port_Binding tunnel_key logical_port=lr0-ls)
-rtr_port_key1=$(m_fetch_column Port_Binding tunnel_key logical_port=lr1-ls)
-
check m_as ovn-gw-1 /data/create_fake_vm.sh w0-int1 w0-int1 00:00:00:02:00:01
1500 20.0.0.11 24 20.0.0.1 2000::11/64 2000::1
check m_as ovn-gw-1 /data/create_fake_vm.sh w1-int1 w1-int1 00:00:00:12:00:01
1500 21.0.0.11 24 21.0.0.1 2001::11/64 2001::1
check m_as ovn-gw-2 /data/create_fake_vm.sh w0-int2 w0-int2 00:00:00:02:00:02
1500 20.0.0.12 24 20.0.0.1 2000::12/64 2000::1
check m_as ovn-gw-2 /data/create_fake_vm.sh w1-int2 w1-int2 00:00:00:12:00:02
1500 21.0.0.12 24 21.0.0.1 2001::12/64 2001::1
m_wait_for_ports_up
-# Check that flows are created for the type-2 EVPN MAC+IP routes, in the
-# router pipeline.
-AT_CHECK_UNQUOTED([m_as ovn-gw-1 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_BINDING | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,reg0=0xa00000b,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:00:01,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xa00000c,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:00:02,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xb00000b,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:00:11,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xb00000c,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:00:12,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg0=0xa000029,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:01:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg0=0xb000029,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:11:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg4=0x100000,reg5=0,reg6=0,reg7=0x41,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:01:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg4=0x110000,reg5=0,reg6=0,reg7=0x41,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:11:00,load:0x1->NXM_NX_REG10[[6]]
-])
-
-AT_CHECK_UNQUOTED([m_as ovn-gw-1 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_LOOKUP | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,arp,reg0=0xa00000b,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:00:01
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xa00000c,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:00:02
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xb00000b,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:00:11
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xb00000c,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:00:12
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,arp,reg0=0xa000029,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:01:00
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,arp,reg0=0xb000029,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:11:00
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,icmp6,reg0=0x100000,reg1=0,reg2=0,reg3=0x41,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:01:00,icmp_code=0
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,icmp6,reg0=0x110000,reg1=0,reg2=0,reg3=0x41,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:11:00,icmp_code=0
actions=load:0x1->NXM_NX_REG10[[6]]
-])
-
-AT_CHECK_UNQUOTED([m_as ovn-gw-2 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_BINDING | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,reg0=0xa00000b,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:00:01,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xa00000c,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:00:02,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xb00000b,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:00:11,load:0x1->NXM_NX_REG10[[6]]
-priority=100,reg0=0xb00000c,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:00:12,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg0=0xa00002a,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:02:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg0=0xb00002a,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:12:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg4=0x100000,reg5=0,reg6=0,reg7=0x42,reg15=0x$rtr_port_key0,metadata=0x$rtr_dp_key0
actions=mod_dl_dst:00:00:00:00:02:00,load:0x1->NXM_NX_REG10[[6]]
-priority=200,reg4=0x110000,reg5=0,reg6=0,reg7=0x42,reg15=0x$rtr_port_key1,metadata=0x$rtr_dp_key1
actions=mod_dl_dst:00:00:00:00:12:00,load:0x1->NXM_NX_REG10[[6]]
-])
-
-AT_CHECK_UNQUOTED([m_as ovn-gw-2 ovs-ofctl dump-flows br-int
table=OFTABLE_MAC_LOOKUP | grep priority | grep -vE "reg[[04]]=0xfe80" | \
- awk '{print $7, $8}' | sort], [0], [dnl
-priority=100,arp,reg0=0xa00000b,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:00:01
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xa00000c,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:00:02
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xb00000b,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:00:11
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=100,arp,reg0=0xb00000c,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:00:12
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,arp,reg0=0xa00002a,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:02:00
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,arp,reg0=0xb00002a,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:12:00
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,icmp6,reg0=0x100000,reg1=0,reg2=0,reg3=0x42,reg14=0x$rtr_port_key0,metadata=0x$rtr_dp_key0,dl_src=00:00:00:00:02:00,icmp_code=0
actions=load:0x1->NXM_NX_REG10[[6]]
-priority=200,icmp6,reg0=0x110000,reg1=0,reg2=0,reg3=0x42,reg14=0x$rtr_port_key1,metadata=0x$rtr_dp_key1,dl_src=00:00:00:00:12:00,icmp_code=0
actions=load:0x1->NXM_NX_REG10[[6]]
-])
+# Check that SB MAC Bindings are created for the type-2 EVPN MAC+IP routes,
+# in the router pipeline.
+m_wait_row_count mac_binding 1 ip="10.0.0.41" logical_port="lr0-ls"
+m_wait_row_count mac_binding 1 ip="10.0.0.42" logical_port="lr0-ls"
+m_wait_row_count mac_binding 1 ip="11.0.0.41" logical_port="lr1-ls"
+m_wait_row_count mac_binding 1 ip="11.0.0.42" logical_port="lr1-ls"
+m_wait_row_count mac_binding 1 ip="10\:\:41" logical_port="lr0-ls"
+m_wait_row_count mac_binding 1 ip="10\:\:42" logical_port="lr0-ls"
+m_wait_row_count mac_binding 1 ip="11\:\:41" logical_port="lr1-ls"
+m_wait_row_count mac_binding 1 ip="11\:\:42" logical_port="lr1-ls"
AS_BOX([Check traffic to "fabric" hosts - ping from internal hosts])
OVS_WAIT_UNTIL([m_as ovn-gw-1 ip netns exec w0-int1 ping -W 1 -c 1
10.0.0.41])
diff --git a/tests/ovn-inc-proc-graph-dump.at b/tests/ovn-inc-proc-graph-dump.at
index dd2e0e9c0..44bf5689e 100644
--- a/tests/ovn-inc-proc-graph-dump.at
+++ b/tests/ovn-inc-proc-graph-dump.at
@@ -489,6 +489,7 @@ digraph "Incremental-Processing-Engine" {
runtime_data -> evpn_mac_binding_sync [[label="engine_noop_handler"]];
mac_cache -> evpn_mac_binding_sync [[label="engine_noop_handler"]];
sb_ro -> evpn_mac_binding_sync
[[label="evpn_mac_binding_sync_sb_ro_handler"]];
+ SB_port_binding -> evpn_mac_binding_sync
[[label="evpn_mac_binding_sync_sb_port_binding_handler"]];
SB_acl_id [[style=filled, shape=box, fillcolor=white,
label="SB_acl_id"]];
acl_id [[style=filled, shape=box, fillcolor=white, label="acl_id"]];
SB_acl_id -> acl_id [[label=""]];
--
2.55.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev