This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Why does sending multicast UDP require a gateway?


On 2011-03-30, Grant Edwards <grant.b.edwards@gmail.com> wrote:
> On 2011-03-30, Andrew Lunn <andrew@lunn.ch> wrote:
>>> It's being sent via a socket that's bound to a specific interface, so
>>> I wouldn't think that would be a problem.
>>
>> Ah, O.K. 
>>
>> Maybe try it anyway?
>>
>>> I can see that if you're sending from an unbound socket, you might
>>> want a way to specify which interface to use for sending multicast
>>> packets.  But without such a route, the only thing that makes sense to
>>> me is "send it out all of them".
>>
>> And on a multi homed machine that might result in the group receiving
>> two copies of the packet when both multicast routers pick it up and
>> send to the RP.
>
> True.
>
> According to RFC1112, you only send a multicast packet on one
> interface. If the application doesn't specify an interface, a default
> interface is used.  IOW, discarding the packet is not correct:
>
>    Second, for hosts that may be attached to more than one network,
>    the service interface should provide a way for the upper-layer
>    protocol to identify which network interface is be used for the
>    multicast transmission.  Only one interface is used for the initial
>    transmission; multicast routers are responsible for forwarding to
>    any other networks, if necessary.  If the upper-layer protocol
>    chooses not to identify an outgoing interface, a default interface
>    should be used, preferably under the control of system management.
>
> It turns out this was fixed in the FreeBSD sources in 2001:
>    
>   http://svn.freebsd.org/viewvc/base?view=revision&revision=79830   
>   http://svn.freebsd.org/viewvc/base?view=revision&revision=79836
>
> I'll work up a patch...

It turns out that doesn't fix the problem.  That only handles the case
where you've explicitly asked the multicast packets to go out a
specific interface.  Binding a socket to an interface and sending
multicast packets still doesn't work unless there's a route to the
"destination".

One would think that binding the socket to a particular interface
would cause sent packets to go out that interface, but I guess not...

-- 
Grant Edwards               grant.b.edwards        Yow! Here I am in 53
                                  at               B.C. and all I want is a
                              gmail.com            dill pickle!!


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]