-
Notifications
You must be signed in to change notification settings - Fork 83
IGMPv3 SSM support #70
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
Conversation
fixed issue that delays for timers were ignored and functions are called continously
the behavior is not fully complaint to RFC3376 eg. IS_EX, TO_EX and BLOCK not handled correctly, especially with more than one downstream host for a given group
Fix timeouts
IGMPv3 SSM functionality
Hello! Thank you for working on this. I have there already open pull request for rewiring timing #66 which I think will be in the conflict with your pull request. It would be great to cooperate with @Uglymotha to resolve possible merge conflicts and code duplication. Also this pull request is huge and would take for me too much time to review it. I see that in this pull request you have more different changes, e.g. IGMPv3 and filter support. Could you please split different features, bug fixes, etc... into more separate pull requests? It would really help me if I could review and merge small changes as one big pull reuest. |
Thanks for your reply. Ok I try to split this PR into several parts. |
Great stuff. Have looked through your PR is fair detail and it definitely looks like it's perfectly mergable with what I'm doing. Can you open a PR on my repo master branch too? I am currently in the process of a rewrite of core functionality for configuration and dynamic interface handling. That's pretty much finished in my master branch. You can remove the fix for issue #59 as the whole main event loop and timing / callout queue has been rewritten to something much simpler and better. |
Never mind, I have opened the PR myself. New to git, still discovering all the ins & outs. :) |
#define _GNU_SOURCE | ||
#include <netinet/in.h> | ||
#include <netinet/ip.h> | ||
#include <netinet/igmp.h> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reason that you do not want to use de-facto standard netinet/igmp.h header file?
Hello! As I asked in #70 (comment) could you split changes into smaller and separate pull requests? Such big change is hard to review & merge. |
Ok, sry for late reply. I will close this and split it up. |
Thank you all for doing this! |
added support for IGMPv3 SSM. Filter mode INCLUDE should be fully suported, even with multiple upstream interfaces and several downstream hosts requesting different or the same sources for one group. BLOCK requests are ignored when the requesting host is not the last for this group.
Group-and-Source speific queries are not yet implemented.
Filter mode EXCLUDE is only supported with empty source list. Exclude lists from downstream hosts are Ignored. Also block requests are ignored in EXCLUDE mode
Change in filter mode for a group is only supported from INCLUDE to EXCLUDE when an additional host requests the specific group in EXCLUDE. Once in EXCLUDE the filter mode can't change when the host which requested EXCLUDE mode leaves the group.
Tested on OPNSense 20.1.6 cascaded behind FritzBox with several IGMPv3 and IGMPv2 downstream hosts with and without SSM (UPNP devices and German Telekom MagentaTV MR401)
included timeout fix from #59