In IPv4, [Version 3 of IGMP adds support for “source filtering”, that is, the ability for a system to report interest in receiving packets *only* from specific source addresses.][1]
I am using IGMPv3 in a C# application to support this behaviour. Here is how I do it.
I am now in the process to add support to IPv6 in my application and I need to get the same behaviour as in IPv4. From what I’ve read, the equivalent protocol to IGMPv3 in IPv6 is MLDv2. Has someone any idea on how to implement this in C# with Socket?
Thanks!
The RFC3678 protocol independent API is only available in Vista+ which might explain the problem.
If C# runtime does fully support IPv6 you will have to try to match the GROUP_REQ or GROUP_SOURCE_REQ structures. There is no IPv6 specific API for SSM matching the IPv4 API because developers finally abandoned the inane duplication of APIs and finally settled on the one super set.
It is unfortunately likely that C# implements ipv6_mreq for
AddMembershipandAddSourceMembershipfails. The documentation is completely absent on detail.All the
SocketOptionNamevalues required are not defined in C#: