-
Notifications
You must be signed in to change notification settings - Fork 357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add multicast support. #885
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dcbw
reviewed
Oct 29, 2019
dceara
force-pushed
the
multicast
branch
2 times, most recently
from
October 30, 2019 10:30
5796456
to
c974e72
Compare
dcbw
reviewed
Oct 30, 2019
dcbw
reviewed
Oct 30, 2019
dceara
force-pushed
the
multicast
branch
2 times, most recently
from
October 30, 2019 16:02
70eace2
to
49cf249
Compare
danwinship
reviewed
Oct 30, 2019
dceara
force-pushed
the
multicast
branch
2 times, most recently
from
October 31, 2019 00:27
0b10fb3
to
292110d
Compare
Enable IGMP Snoop (when supported) and IGMP relay to allow multicast connectivity across nodes. Enforce the following network policies for IP multicast traffic: - a default deny-all network policy is applied to all IP multicast traffic. This is implemented with two ACLs: a) one ACL dropping egress multicast traffic from all pods: this is to protect OVN controller from processing IP multicast reports from nodes that are not allowed to receive multicast traffic. b) one ACL dropping ingress multicast traffic to all pods. - when multicast is explicitly enabled in the namespace, IP multicast traffic is forwarded only to pods in the same namespace. This is done by adding: a) a port group containing all logical ports associated with the namespace. b) one "from-lport" ACL allowing egress multicast traffic from the in the namespace. c) one "to-lport" ACL allowing ingress multicast traffic to pods in the namespace. This matches only traffic originated by pods in the same namespace (based on the namespace address set). Add a new namespace annotation to allow enabling of multicast: "k8s.ovn.org/multicast-enabled". Signed-off-by: Dumitru Ceara <[email protected]>
@girishmg this passed OpenShift CI FWIW |
@dcbw I will not be able to look at these changes immediately (I will look at it later), so please go ahead if you think it is good. FYI, I quickly gave the changes in this PR a spin on my cluster and there is no regression from the tests I ran. |
dcbw
added a commit
to dcbw/ovn-kubernetes
that referenced
this pull request
Nov 16, 2019
First, updateNamespace() didn't have locking for oc.namespaceMutex Introduced by c3def15 (PR ovn-kubernetes#885). Second, getNamespaceLock() didn't protect against concurrent access of oc.namespaceMutex when it checked it the second time. That's fishy anyway; we serialize Namespace events from the watch factory and getNamespaceLock() is only called from event handler functions, so it doesn't seem possible for the namespace to be deleted between grabbing these two locks. Signed-off-by: Dan Williams <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Enable IGMP Snoop (when supported) and IGMP relay to allow multicast
connectivity across nodes.
Enforce the following network policies for IP multicast traffic:
traffic. This is implemented with two ACLs:
a) one ACL dropping egress multicast traffic from all pods:
this is to protect OVN controller from processing IP multicast
reports from nodes that are not allowed to receive multicast
traffic.
b) one ACL dropping ingress multicast traffic to all pods.
traffic is forwarded only to pods in the same namespace. This is done
by adding:
a) a port group containing all logical ports associated with the
namespace.
b) one "from-lport" ACL allowing egress multicast traffic from the
in the namespace.
c) one "to-lport" ACL allowing ingress multicast traffic to pods in
the namespace. This matches only traffic originated by pods in
the same namespace (based on the namespace address set).
Add a new namespace annotation to allow enabling of multicast:
"k8s.ovn.org/multicast-enabled".
Signed-off-by: Dumitru Ceara [email protected]