[Twisted-Python] Source specific multicasting (SSM) example?

Phil Mayers p.mayers at imperial.ac.uk
Sat Apr 5 06:15:02 MDT 2008


Rodney Lott wrote:
> Thanks for the information, Phil.
> 
> I believe the 2.6 kernels are supposed to have IGMP setup.  Not sure
> about the PIM-SSM, though.

I don't think Linux 2.6 has IGMPv3 yes (necessary for SSM). I think it 
just has IGMPv2/1

PIM-SSM is a routing protocol and is only necessary on the routers in 
your or your providers network

Even if your network is plain ASM (any-source multicast) capable, 
there's a good chance it's not enabled for SSM. Of course, it may be 
e.g. ours is.

> 
> My Python setup (Debian etch, python 2.4.4-2) shows similar to yours
> re. the socket module.
> 
> Yeah.  I sent a post here because my Googling for this stuff wasn't
> going anywhere.  Oh, well.  Not the end of the world.  I will just
> use separate IGMP groups and switch on the separate addresses.
> 
> -Rodney Lott
> 
> -----Original Message----- From:
> twisted-python-bounces at twistedmatrix.com 
> [mailto:twisted-python-bounces at twistedmatrix.com]On Behalf Of Phil 
> Mayers Sent: Friday, April 04, 2008 12:41 PM To: Twisted general
> discussion Subject: Re: [Twisted-Python] Source specific multicasting
> (SSM) example?
> 
> 
> Rodney Lott wrote:
>> Hi, there.
>> 
>> I was wondering if there is any information or examples on how to
>> use Twisted to perform a SSM operation.  I am new to Twisted and to
>> Python.
>> 
>> In C, I believe one would use the setsocketopt() to specify the
>> joining to a multicast group (G) to a specific source (S):
>> 
>> setsockopt(sock,…, IP_ADD_SOURCE_MEMBERSHIP, (S, G, iface), …)
> 
> ...provided your OS has IGMPv3 support (and the underlying network
> has IGMPv3 and PIM-SSM setup).
> 
>> I believe that Python itself has analogous socket calls and could
>> do this using a UDP socket.
> 
> At least on my version of Python (2.5.1, Fedora 8) there's no
> constant in the "socket" module for that:
> 
>>>> [x for x in dir(socket) if 'member' in x.lower()]
> ['IP_ADD_MEMBERSHIP', 'IP_DROP_MEMBERSHIP', 'IP_MAX_MEMBERSHIPS']
> 
> Google for "python igmpv3" does not look promising... It seems as if
>  this support isn't there yet.
> 
>> I read the Multicast UDP example on Twisted here: 
>> http://stderr.org/doc/twisted-doc/howto/udp.html#auto3
>> 
>> This shows how to do a normal multicast UDP situation with Twisted
>> (i.e. a process will receive UDP traffic from ALL sources
>> registered to the IGMP group).
>> 
>> So, if there were UDP three sources (e.g. A, B, and C) registered
>> to the IGMP group, I would like to find a way for my client to only
>> receive data from source B.
>> 
>> I believe that I can get information using a SDP/SAP using a simple
>> UDP server listening on the appropriate port.  So, the only thing
>> that I am missing is how to register to a group for a specific
>> source.  I am not sure if the joinGroup() method will allow for
>> this.
>> 
>> Thanks.
>> 
>> -Rodney Lott
>> 
>> 
>> ------------------------------------------------------------------------
>> 
>> 
>> _______________________________________________ Twisted-Python
>> mailing list Twisted-Python at twistedmatrix.com 
>> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> 
> 
> _______________________________________________ Twisted-Python
> mailing list Twisted-Python at twistedmatrix.com 
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> 
> _______________________________________________ Twisted-Python
> mailing list Twisted-Python at twistedmatrix.com 
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python





More information about the Twisted-Python mailing list