Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2077306
Signed-off-by: Dumitru Ceara <[email protected]>
---
northd/northd.c | 2 +-
northd/ovn-northd.8.xml | 4 ++--
tests/ovn.at | 42 ++++++++++++++++++++++++++++++++++++++---
3 files changed, 42 insertions(+), 6 deletions(-)
diff --git a/northd/northd.c b/northd/northd.c
index 0fcd3a642..facd41a59 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -8320,7 +8320,7 @@ build_lswitch_destination_lookup_bmcast(struct
ovn_datapath *od,
*/
ovn_lflow_add(lflows, od, S_SWITCH_IN_L2_LKUP, 85,
"ip4.mcast && ip4.dst == 224.0.0.0/24",
- "outport = \""MC_FLOOD"\"; output;");
+ "outport = \""MC_FLOOD_L2"\"; output;");
/* Flood all IPv6 multicast traffic destined to reserved
* multicast IPs (RFC 4291, 2.7.1).
diff --git a/northd/ovn-northd.8.xml b/northd/ovn-northd.8.xml
index 3d1e7357d..ff21c0737 100644
--- a/northd/ovn-northd.8.xml
+++ b/northd/ovn-northd.8.xml
@@ -1678,8 +1678,8 @@ output;
<li>
A priority-85 flow that forwards all IP multicast traffic destined to
- 224.0.0.X to the <code>MC_FLOOD</code> multicast group, which
- <code>ovn-northd</code> populates with all enabled logical ports.
+ 224.0.0.X to the <code>MC_FLOOD_L2</code> multicast group, which
+ <code>ovn-northd</code> populates with all non-router logical ports.
</li>
<li>
diff --git a/tests/ovn.at b/tests/ovn.at
index 3ba6ced4e..dd84b03c9 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -24459,6 +24459,8 @@ AT_SETUP([interconnection - static multicast])
# ---------------------------------------------------------------------
# |
# | +-- LR2 --- LS2 --- LSP2 (sender)
+# | | |
+# | | +----- LSP4 (receiver)
# | /
# LSP1 --- LS1 --- LR1 --- TS ---
# (receiver) | \
@@ -24518,6 +24520,10 @@ check ovs-vsctl -- add-port br-int hv2-vif2 \
-- set interface hv2-vif2 external-ids:iface-id=lsp3 \
options:tx_pcap=hv2/vif2-tx.pcap \
options:rxq_pcap=hv2/vif2-rx.pcap
+check ovs-vsctl -- add-port br-int hv2-vif3 \
+ -- set interface hv2-vif3 external-ids:iface-id=lsp4 \
+ options:tx_pcap=hv2/vif3-tx.pcap \
+ options:rxq_pcap=hv2/vif3-rx.pcap
check ovs-vsctl set open . external-ids:ovn-is-interconn=true
AT_CHECK([ovn-ic-nbctl create Transit_Switch name=ts], [0], [ignore])
@@ -24551,7 +24557,8 @@ check ovn-nbctl ls-add ls2 \
-- lsp-set-addresses ls2-lr2 router \
-- lsp-set-type ls2-lr2 router \
-- lsp-set-options ls2-lr2 router-port=lr2-ls2 \
- -- lsp-add ls2 lsp2
+ -- lsp-add ls2 lsp2 \
+ -- lsp-add ls2 lsp4
check ovn-nbctl lsp-add ts ts-lr2 \
-- lsp-set-addresses ts-lr2 router \
-- lsp-set-type ts-lr2 router \
@@ -24600,9 +24607,10 @@ check ovn_as az2 ovn-nbctl --wait=hv sync
OVN_POPULATE_ARP
# Send an IP multicast packet from lsp2, it should be forwarded
-# statically to lsp1 and lsp3.
+# statically to lsp1, lsp3 and lsp4.
> expected_az1
> expected_az2
+> expected_az2_switched
send_ip_multicast_pkt hv2-vif1 hv2 \
000000000001 01005e000144 \
$(ip_to_hex 44 44 44 2) $(ip_to_hex 239 0 1 68) 1e 20 7c6b 11 \
@@ -24615,10 +24623,38 @@ store_ip_multicast_pkt \
000000020200 01005e000144 \
$(ip_to_hex 44 44 44 2) $(ip_to_hex 239 0 1 68) 1e 1e 7e6b 11 \
e518e518000aed350000 expected_az2
+store_ip_multicast_pkt \
+ 000000000001 01005e000144 \
+ $(ip_to_hex 44 44 44 2) $(ip_to_hex 239 0 1 68) 1e 20 7c6b 11 \
+ e518e518000aed350000 expected_az2_switched
OVS_WAIT_UNTIL(
[check_packets 'hv1/vif1-tx.pcap expected_az1' \
- 'hv2/vif2-tx.pcap expected_az2'],
+ 'hv2/vif2-tx.pcap expected_az2' \
+ 'hv2/vif3-tx.pcap expected_az2_switched'],
+ [$at_diff -F'^---' exp rcv])
+
+# Send an IP multicast packet from lsp2 towards 224.0.0.x, it should be
+# forwarded statically only to lsp3.
+as hv1 reset_pcap_file hv1-vif1 hv1/vif1
+as hv2 reset_pcap_file hv2-vif2 hv2/vif2
+as hv2 reset_pcap_file hv2-vif3 hv2/vif3
+> expected_az1
+> expected_az2
+> expected_az2_switched
+send_ip_multicast_pkt hv2-vif1 hv2 \
+ 000000000001 01005e000144 \
+ $(ip_to_hex 44 44 44 2) $(ip_to_hex 224 0 0 1) 1e 20 8cae 11 \
+ e518e518000aed350000
+store_ip_multicast_pkt \
+ 000000000001 01005e000144 \
+ $(ip_to_hex 44 44 44 2) $(ip_to_hex 224 0 0 1) 1e 20 8cae 11 \
+ e518e518000aed350000 expected_az2_switched
+
+OVS_WAIT_UNTIL(
+ [check_packets 'hv1/vif1-tx.pcap expected_az1' \
+ 'hv2/vif2-tx.pcap expected_az2' \
+ 'hv2/vif3-tx.pcap expected_az2_switched'],
[$at_diff -F'^---' exp rcv])
AT_CLEANUP
--
2.31.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev