|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
From 193b2aefdb41d55209193af1f5e8c8dacb861c84 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
From: Dumitru Ceara <dceara@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Date: Tue, 24 Sep 2019 10:02:49 +0200
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Subject: [PATCH 4/4] ovn-northd: Add static IP multicast flood configuration
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Add the following new configuration options to the
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Logical_Switch_Port:options column in the OVN Northbound database:
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- mcast_flood: if set to 'true' all incoming IP multicast traffic
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
(except IP multicast reports) entering the switch will also be
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
flooded on the logical switch port.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- mcast_flood_reports: if set to 'true' all incoming IP multicast
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
entering the switch will also be flooded on the logical switch
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
port. A clone of the packets is also processed by ovn-controller
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
for snooping.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Add the following new configuration option to the
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Logical_Router_Port:options column in the OVN Northbound database:
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- mcast_flood: if set to 'true' all incoming IP multicast traffic
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
(including IP multicast reports) entering the router will be also
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
flooded on the logical router port.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Due to the fact that in the router pipeline multicast reports are
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
not treated in a special way there's no need for an explicit
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
'mcast_flood_reports' option for router ports.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Acked-by: Mark Michelson <mmichels@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
Signed-off-by: Mark Michelson <mmichels@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
(cherry-picked from ovn commit 79308138891ae04a02a07068501696ef78157912)
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
---
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn/lib/mcast-group-index.h | 2 +
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn/northd/ovn-northd.8.xml | 30 ++++-
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn/northd/ovn-northd.c | 212 +++++++++++++++++++++++++++++++-----
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn/ovn-nb.xml | 34 ++++++
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
tests/ovn.at | 81 +++++++++++++-
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
5 files changed, 325 insertions(+), 34 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
diff --git a/ovn/lib/mcast-group-index.h b/ovn/lib/mcast-group-index.h
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
index 6249cac99..930963b1b 100644
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
--- a/ovn/lib/mcast-group-index.h
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+++ b/ovn/lib/mcast-group-index.h
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -28,6 +28,8 @@ enum ovn_mcast_tunnel_keys {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_MCAST_FLOOD_TUNNEL_KEY = OVN_MIN_MULTICAST,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_MCAST_UNKNOWN_TUNNEL_KEY,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_MCAST_MROUTER_FLOOD_TUNNEL_KEY,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ OVN_MCAST_MROUTER_STATIC_TUNNEL_KEY,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ OVN_MCAST_STATIC_TUNNEL_KEY,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_MIN_IP_MULTICAST,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_MAX_IP_MULTICAST = OVN_MAX_MULTICAST,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
};
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
diff --git a/ovn/northd/ovn-northd.8.xml b/ovn/northd/ovn-northd.8.xml
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
index ec9020d2a..b9ae28e14 100644
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
--- a/ovn/northd/ovn-northd.8.xml
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+++ b/ovn/northd/ovn-northd.8.xml
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -954,7 +954,11 @@ output;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
A priority-100 flow that punts all IGMP packets to
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn-controller if IGMP snooping is enabled on the
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- logical switch.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ logical switch. The flow also forwards the IGMP packets to the
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ MC_MROUTER_STATIC multicast group, which
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn-northd populates with all the logical ports that
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ have <ref column="options" table="Logical_Switch_Port"/>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ :mcast_flood_reports='true' .
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -976,10 +980,15 @@ output;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
A priority-80 flow that forwards all unregistered IP multicast traffic
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- to the MC_MROUTER_FLOOD multicast group, if any.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- Otherwise the flow drops all unregistered IP multicast packets. This
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- flow is added only if
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- table="Logical_Switch"/>:mcast_flood_unregistered='false'.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ to the MC_STATIC multicast group, which
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn-northd populates with all the logical ports that
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ have <ref column="options" table="Logical_Switch_Port"/>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ :mcast_flood='true' . The flow also forwards
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ unregistered IP multicast traffic to the MC_MROUTER_FLOOD
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ multicast group, which ovn-northd populates with all the
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ logical ports connected to logical routers that have
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ <ref column="options" table="Logical_Router"/>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ :mcast_relay='true' .
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -2092,6 +2101,17 @@ output;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ Priority-450 flow that matches unregistered IP multicast traffic
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ and sets outport to the MC_STATIC
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ multicast group, which ovn-northd populates with the
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ logical ports that have
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ <ref column="options" table="Logical_Router_Port"/>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ :mcast_flood='true' .
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
For distributed logical routers where one of the logical router
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
index 2f6826f17..250529eb7 100644
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
--- a/ovn/northd/ovn-northd.c
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+++ b/ovn/northd/ovn-northd.c
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -459,7 +459,12 @@ struct mcast_switch_info {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
* should be flooded to the mrouter. Only
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
* applicable if flood_unregistered == false.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
*/
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
-
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ bool flood_reports; /* True if the switch has at least one port
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * configured to flood reports.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ bool flood_static; /* True if the switch has at least one port
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * configured to flood traffic.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
int64_t table_size; /* Max number of IP multicast groups. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
int64_t idle_timeout; /* Timeout after which an idle group is
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
* flushed.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -477,7 +482,10 @@ struct mcast_switch_info {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
};
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct mcast_router_info {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- bool relay; /* True if the router should relay IP multicast. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ bool relay; /* True if the router should relay IP multicast. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ bool flood_static; /* True if the router has at least one port configured
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * to flood traffic.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
};
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct mcast_info {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -492,6 +500,34 @@ struct mcast_info {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
};
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
};
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+struct mcast_port_info {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ bool flood; /* True if the port should flood IP multicast traffic
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * regardless if it's registered or not. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ bool flood_reports; /* True if the port should flood IP multicast reports
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * (e.g., IGMP join/leave). */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+};
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+static void
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+init_mcast_port_info(struct mcast_port_info *mcast_info,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ const struct nbrec_logical_switch_port *nbsp,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ const struct nbrec_logical_router_port *nbrp)
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+{
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (nbsp) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ mcast_info->flood =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ smap_get_bool( ->options, "mcast_flood", false);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ mcast_info->flood_reports =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ smap_get_bool( ->options, "mcast_flood_reports",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ false);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ } else if (nbrp) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* We don't process multicast reports in any special way on logical
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * routers so just treat them as regular multicast traffic.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ mcast_info->flood =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ smap_get_bool(&nbrp->options, "mcast_flood", false);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ mcast_info->flood_reports = mcast_info->flood;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
static uint32_t
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_mcast_group_allocate_key(struct mcast_info *mcast_info)
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
{
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -1033,7 +1069,7 @@ build_datapaths(struct northd_context *ctx, struct hmap *datapaths,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_datapath_destroy(datapaths, od);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
-
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct ovn_port {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct hmap_node key_node; /* Index on 'key'. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
char *key; /* nbs->name, nbr->name, sb->logical_port. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -1055,6 +1091,9 @@ struct ovn_port {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct lport_addresses lrp_networks;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* Logical port multicast data. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ struct mcast_port_info mcast_info;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
bool derived; /* Indicates whether this is an additional port
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
* derived from nbsp or nbrp. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -1071,6 +1110,23 @@ struct ovn_port {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct ovs_list list; /* In list of similar records. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
};
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+static void
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn_port_set_sb(struct ovn_port *op,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ const struct sbrec_port_binding *sb)
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+{
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ op->sb = sb;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+static void
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn_port_set_nb(struct ovn_port *op,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ const struct nbrec_logical_switch_port *nbsp,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ const struct nbrec_logical_router_port *nbrp)
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+{
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ op->nbsp = nbsp;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ op->nbrp = nbrp;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ init_mcast_port_info(&op->mcast_info, op->nbsp, op->nbrp);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
static struct ovn_port *
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_port_create(struct hmap *ports, const char *key,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
const struct nbrec_logical_switch_port *nbsp,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -1084,9 +1140,8 @@ ovn_port_create(struct hmap *ports, const char *key,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
op->json_key = ds_steal_cstr(&json_key);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
op->key = xstrdup(key);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- op->sb = sb;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- op->nbsp = nbsp;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- op->nbrp = nbrp;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_port_set_sb(op, sb);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_port_set_nb(op, nbsp, nbrp);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
op->derived = false;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
hmap_insert(ports, &op->key_node, hash_string(op->key, 0));
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
return op;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -1882,7 +1937,7 @@ join_logical_ports(struct northd_context *ctx,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
nbsp->name);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- op->nbsp = nbsp;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_port_set_nb(op, nbsp, NULL);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovs_list_remove(&op->list);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
uint32_t queue_id = smap_get_int(&op->sb->options,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -1973,7 +2028,7 @@ join_logical_ports(struct northd_context *ctx,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
nbrp->name);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- op->nbrp = nbrp;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_port_set_nb(op, NULL, nbrp);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovs_list_remove(&op->list);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovs_list_push_back(both, &op->list);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -2018,7 +2073,7 @@ join_logical_ports(struct northd_context *ctx,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct ovn_port *crp = ovn_port_find(ports, redirect_name);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (crp) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
crp->derived = true;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- crp->nbrp = nbrp;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_port_set_nb(crp, NULL, nbrp);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovs_list_remove(&crp->list);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovs_list_push_back(both, &crp->list);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -2896,7 +2951,7 @@ build_ports(struct northd_context *ctx,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- op->sb = sbrec_port_binding_insert(ctx->ovnsb_txn);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_port_set_sb(op, sbrec_port_binding_insert(ctx->ovnsb_txn));
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_port_update_sbrec(ctx, sbrec_chassis_by_name, op,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
&chassis_qdisc_queues,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
&active_ha_chassis_grps);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -2938,6 +2993,14 @@ static const struct multicast_group mc_flood =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
static const struct multicast_group mc_mrouter_flood =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
{ MC_MROUTER_FLOOD, OVN_MCAST_MROUTER_FLOOD_TUNNEL_KEY };
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+#define MC_MROUTER_STATIC "_MC_mrouter_static"
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+static const struct multicast_group mc_mrouter_static =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ { MC_MROUTER_STATIC, OVN_MCAST_MROUTER_STATIC_TUNNEL_KEY };
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+#define MC_STATIC "_MC_static"
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+static const struct multicast_group mc_static =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ { MC_STATIC, OVN_MCAST_STATIC_TUNNEL_KEY };
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
#define MC_UNKNOWN "_MC_unknown"
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
static const struct multicast_group mc_unknown =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
{ MC_UNKNOWN, OVN_MCAST_UNKNOWN_TUNNEL_KEY };
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -3151,7 +3214,23 @@ ovn_igmp_group_get_ports(const struct sbrec_igmp_group *sb_igmp_group,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
*n_ports = 0;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
for (size_t i = 0; i < sb_igmp_group->n_ports; i++) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- ports[(*n_ports)] =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ struct ovn_port *port =
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_port_find(ovn_ports, sb_igmp_group->ports[i]->logical_port);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* If this is already a flood port skip it for the group. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (port->mcast_info.flood) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* If this is already a port of a router on which relay is enabled,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * skip it for the group. Traffic is flooded there anyway.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (port->peer && port->peer->od &&
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ port->peer->od->mcast_info.rtr.relay) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ports[(*n_ports)] = port;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_port_find(ovn_ports, sb_igmp_group->ports[i]->logical_port);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (ports[(*n_ports)]) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
(*n_ports)++;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -5531,9 +5610,18 @@ build_lswitch_flows(struct hmap *datapaths, struct hmap *ports,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct mcast_switch_info *mcast_sw_info = &od->mcast_info.sw;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (mcast_sw_info->enabled) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_clear(&actions);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (mcast_sw_info->flood_reports) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_cstr(&actions,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "clone { "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "outport = \""MC_MROUTER_STATIC"\"; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "output; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "};");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_cstr(&actions, "igmp;");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
/* Punt IGMP traffic to controller. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_lflow_add(lflows, od, S_SWITCH_IN_L2_LKUP, 100,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- "ip4 && ip.proto == 2", "igmp;");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "ip4 && ip.proto == 2", ds_cstr(&actions));
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
/* Flood all IP multicast traffic destined to 224.0.0.X to all
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
* ports - RFC 4541, section 2.1.2, item 2.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -5542,17 +5630,30 @@ build_lswitch_flows(struct hmap *datapaths, struct hmap *ports,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
"ip4 && ip4.dst == 224.0.0.0/24",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
"outport = \""MC_FLOOD"\"; output;");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- /* Drop unregistered IP multicast if not allowed. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* Forward uregistered IP multicast to routers with relay enabled
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * and to any ports configured to flood IP multicast traffic.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * If configured to flood unregistered traffic this will be
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * handled by the L2 multicast flow.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (!mcast_sw_info->flood_unregistered) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- /* Forward unregistered IP multicast to mrouter (if any). */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_clear(&actions);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (mcast_sw_info->flood_relay) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- ovn_lflow_add(lflows, od, S_SWITCH_IN_L2_LKUP, 80,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- "ip4 && ip4.mcast",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- "outport = \""MC_MROUTER_FLOOD"\"; output;");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_cstr(&actions,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "clone { "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "outport = \""MC_MROUTER_FLOOD"\"; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "output; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "}; ");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (mcast_sw_info->flood_static) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_cstr(&actions, "outport =\""MC_STATIC"\"; output;");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- ovn_lflow_add(lflows, od, S_SWITCH_IN_L2_LKUP, 80,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- "ip4 && ip4.mcast", "drop;");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_cstr(&actions, "drop;");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_lflow_add(lflows, od, S_SWITCH_IN_L2_LKUP, 80,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "ip4 && ip4.mcast", ds_cstr(&actions));
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -5582,11 +5683,20 @@ build_lswitch_flows(struct hmap *datapaths, struct hmap *ports,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ds_put_format(&match, "eth.mcast && ip4 && ip4.dst == %s ",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
igmp_group->mcgroup.name);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
/* Also flood traffic to all multicast routers with relay enabled. */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (mcast_sw_info->flood_relay) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ds_put_cstr(&actions,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
"clone { "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- "outport = \""MC_MROUTER_FLOOD "\"; output; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "outport = \""MC_MROUTER_FLOOD "\"; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "output; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "};");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (mcast_sw_info->flood_static) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_cstr(&actions,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "clone { "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "outport =\""MC_STATIC"\"; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "output; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
"};");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ds_put_format(&actions, "outport = \"%s\"; output; ",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -7783,6 +7893,7 @@ build_lrouter_flows(struct hmap *datapaths, struct hmap *ports,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (!od->nbr || !od->mcast_info.rtr.relay) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct ovn_igmp_group *igmp_group;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
LIST_FOR_EACH (igmp_group, list_node, &od->mcast_info.groups) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -7790,11 +7901,35 @@ build_lrouter_flows(struct hmap *datapaths, struct hmap *ports,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ds_clear(&actions);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ds_put_format(&match, "ip4 && ip4.dst == %s ",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
igmp_group->mcgroup.name);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (od->mcast_info.rtr.flood_static) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_cstr(&actions,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "clone { "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "outport = \""MC_STATIC"\"; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "ip.ttl--; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "next; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "};");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ds_put_format(&actions, "outport = \"%s\"; ip.ttl--; next;",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
igmp_group->mcgroup.name);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_lflow_add(lflows, od, S_ROUTER_IN_IP_ROUTING, 500,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ds_cstr(&match), ds_cstr(&actions));
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* If needed, flood unregistered multicast on statically configured
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * ports.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (od->mcast_info.rtr.flood_static) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_clear(&match);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_clear(&actions);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ds_put_format(&match, "ip4.mcast");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_lflow_add(lflows, od, S_ROUTER_IN_IP_ROUTING, 450,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "ip4.mcast",
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "clone { "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "outport = \""MC_STATIC"\"; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "ip.ttl--; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "next; "
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ "};");
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
/* Logical router ingress table 8: Policy.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -8943,11 +9078,15 @@ build_mcast_groups(struct northd_context *ctx,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
hmap_init(igmp_groups);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
HMAP_FOR_EACH (op, key_node, ports) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- if (!op->nbsp) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
-
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- if (lsp_is_enabled(op->nbsp)) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (op->nbrp && lrport_is_enabled(op->nbrp)) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* If this port is configured to always flood multicast traffic
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * add it to the MC_STATIC group.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (op->mcast_info.flood) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_multicast_add(mcast_groups, &mc_static, op);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ op->od->mcast_info.rtr.flood_static = true;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ } else if (op->nbsp && lsp_is_enabled(op->nbsp)) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_multicast_add(mcast_groups, &mc_flood, op);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
/* If this port is connected to a multicast router then add it
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -8957,6 +9096,22 @@ build_mcast_groups(struct northd_context *ctx,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
op->peer->od && op->peer->od->mcast_info.rtr.relay) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn_multicast_add(mcast_groups, &mc_mrouter_flood, op);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* If this port is configured to always flood multicast reports
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * add it to the MC_MROUTER_STATIC group.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (op->mcast_info.flood_reports) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_multicast_add(mcast_groups, &mc_mrouter_static, op);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ op->od->mcast_info.sw.flood_reports = true;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* If this port is configured to always flood multicast traffic
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * add it to the MC_STATIC group.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ if (op->mcast_info.flood) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ ovn_multicast_add(mcast_groups, &mc_static, op);
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ op->od->mcast_info.sw.flood_static = true;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -9017,8 +9172,13 @@ build_mcast_groups(struct northd_context *ctx,
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
for (size_t i = 0; i < od->n_router_ports; i++) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
struct ovn_port *router_port = od->router_ports[i]->peer;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ /* If the router the port connects to doesn't have multicast
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * relay enabled or if it was already configured to flood
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ * multicast traffic then skip it.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
if (!router_port || !router_port->od ||
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
- !router_port->od->mcast_info.rtr.relay) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ !router_port->od->mcast_info.rtr.relay ||
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ router_port->mcast_info.flood) {
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
continue;
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
}
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
index c2472a04a..e0051db25 100644
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
--- a/ovn/ovn-nb.xml
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+++ b/ovn/ovn-nb.xml
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -671,6 +671,26 @@
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
</column>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
</group>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ <group title="IP Multicast Snooping Options">
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ These options apply when the port is part of a logical switch
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ which has <ref table="Logical_Switch" column="other_config"/>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ :mcast_snoop set to true .
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ type='{"type": "boolean"}'>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ If set to true , multicast packets (except reports) are
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ unconditionally forwarded to the specific port.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ </column>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ type='{"type": "boolean"}'>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ If set to true , multicast reports are unconditionally
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ forwarded to the specific port.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ </column>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ </group>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
</group>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
<group title="Containers">
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -1962,6 +1982,20 @@
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
issues.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
</column>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ type='{"type": "boolean"}'>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ If set to true , multicast traffic (including reports)
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ are unconditionally forwarded to the specific port.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ This option applies when the port is part of a logical router which
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ has <ref table="Logical_Router" column="options"/>:mcast_relay set
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ to true .
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ </column>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
</group>
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
<group title="Attachment">
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
diff --git a/tests/ovn.at b/tests/ovn.at
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
index d52c97541..410a56fe5 100644
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
--- a/tests/ovn.at
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+++ b/tests/ovn.at
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -16258,7 +16258,6 @@ OVN_CHECK_PACKETS([hv2/vif3-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
# Flush IGMP groups.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
ovn-sbctl ip-multicast-flush sw1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
-ovn-nbctl --wait=hv -t 3 sync
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVS_WAIT_UNTIL([
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
total_entries=`ovn-sbctl find IGMP_Group | grep "239.0.1.68" | wc -l`
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
test "${total_entries}" = "0"
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -16310,12 +16309,12 @@ send_ip_multicast_pkt hv2-vif4 hv2 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
# Sleep a bit to make sure no traffic is received and then check.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
sleep 1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv1/vif1-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
-OVN_CHECK_PACKETS([hv2/vif3-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
-OVN_CHECK_PACKETS([hv1/vif4-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv1/vif2-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv1/vif3-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv1/vif4-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv2/vif2-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv2/vif3-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv2/vif4-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
# Enable IGMP relay on rtr
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
@@ -16386,6 +16385,82 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv2/vif2-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CHECK_PACKETS([hv2/vif4-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Flush IGMP groups.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-sbctl ip-multicast-flush sw1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-sbctl ip-multicast-flush sw2
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-sbctl ip-multicast-flush sw3
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVS_WAIT_UNTIL([
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ total_entries=`ovn-sbctl find IGMP_Group | grep "239.0.1.68" | wc -l`
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ test "${total_entries}" = "0"
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv1 reset_pcap_file hv1-vif1 hv1/vif1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv1 reset_pcap_file hv1-vif2 hv1/vif2
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv1 reset_pcap_file hv1-vif3 hv1/vif3
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv1 reset_pcap_file hv1-vif4 hv1/vif4
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv2 reset_pcap_file hv2-vif1 hv2/vif1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv2 reset_pcap_file hv2-vif2 hv2/vif2
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv2 reset_pcap_file hv2-vif3 hv2/vif3
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+as hv2 reset_pcap_file hv2-vif4 hv2/vif4
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+truncate -s 0 expected_empty
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+truncate -s 0 expected_switched
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+truncate -s 0 expected_routed
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+truncate -s 0 expected_reports
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Enable mcast_flood on sw1-p11
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-nbctl set Logical_Switch_Port sw1-p11 options:mcast_flood='true'
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Enable mcast_flood_reports on sw1-p21
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-nbctl set Logical_Switch_Port sw1-p21 options:mcast_flood_reports='true'
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Enable mcast_flood on rtr-sw2
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-nbctl set Logical_Router_Port rtr-sw2 options:mcast_flood='true'
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Enable mcast_flood on sw2-p1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-nbctl set Logical_Switch_Port sw2-p1 options:mcast_flood='true'
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ovn-nbctl --wait=hv sync
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Inject IGMP Join for 239.0.1.68 on sw1-p12.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+send_igmp_v3_report hv1-vif2 hv1 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ 000000000001 $(ip_to_hex 10 0 0 1) f9f8 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ $(ip_to_hex 239 0 1 68) 04 e9b9 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ expected_reports
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Check that the IGMP Group is learned.
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVS_WAIT_UNTIL([
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ total_entries=`ovn-sbctl find IGMP_Group | grep "239.0.1.68" | wc -l`
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ test "${total_entries}" = "1"
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Send traffic from sw1-p21
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+send_ip_multicast_pkt hv2-vif1 hv2 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ 000000000001 01005e000144 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ $(ip_to_hex 10 0 0 42) $(ip_to_hex 239 0 1 68) 1e 20 ca70 11 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ e518e518000a3b3a0000
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+store_ip_multicast_pkt \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ 000000000001 01005e000144 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ $(ip_to_hex 10 0 0 42) $(ip_to_hex 239 0 1 68) 1e 20 ca70 11 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ e518e518000a3b3a0000 expected_switched
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+store_ip_multicast_pkt \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ 000000000200 01005e000144 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ $(ip_to_hex 10 0 0 42) $(ip_to_hex 239 0 1 68) 1e 1f cb70 11 \
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+ e518e518000a3b3a0000 expected_routed
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Sleep a bit to make sure no duplicate traffic is received
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+sleep 1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Check that traffic is switched to sw1-p11 and sw1-p12
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Check that IGMP join is flooded on sw1-p21
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+# Check that traffic is routed by rtr to rtr-sw2 and then switched to sw2-p1
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv1/vif1-tx.pcap], [expected_switched])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv1/vif2-tx.pcap], [expected_switched])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv1/vif3-tx.pcap], [expected_routed])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv1/vif4-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected_reports])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv2/vif2-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv2/vif3-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+OVN_CHECK_PACKETS([hv2/vif4-tx.pcap], [expected_empty])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
+
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
OVN_CLEANUP([hv1], [hv2])
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
AT_CLEANUP
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
--
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
2.21.0
|
|
![](https://seccdn.libravatar.org/avatar/679c4857c0e45278b16e700873c39a57c201b7d6565eb3306f15ffa8bcb7b889?s=16&d=retro) |
bbaaef |
|