[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Please ignore my reply to Atsushi mail. I just misunderstood the 
problem of the BSD API.  Thanks for detail explanation.

> > > If RIPng doesn't use link-local addresses as the source address,
> > > routed can determine the interface where RIPng comes by checking its
> > > source address with address of interface.
> > >
> > The source address IS the address of the interface where RIPng comes from.
> I don't understand this. If a source address is link-local, the
> address isn't unique over multiple links.  So, we can't figure out the
> interface where the packet comes from by checking only the source
> address.
> If routed opens one socket per one neighbor, we can figure out an
> input interface:
> 	(1) BSD implementation saves a pointer to the input interface
> 	   in mbuf(i.e. the received packet).
> 	(2) Find a PCB where not only group addresses match but also
> 	   a pointer in PCB and the pointer in the packet match.
> 	   (Of course, we need to modify the PCB data structure.)
> 	(3) Pass the packet to routed via the PCB. The socket tells
> 	   routed the neighbor which sent the packet.
> Unfortunately, some routing daemon don't take this way. That is, just
> open one unbinded-and-unconnected socket for all neighbors then use
> sendto() function. So, Atushi said that we need a new API.
> This problem can be generalized to "an address scope problem" which
> the Internet has not experienced. We WIDE project had two meetings to
> discuss this problem but we have not achieved even rough consensus
> yet. 
> It is felt that there are many models for address scope and each has
> both advantages and disadvantages. I'm now hesitating to submit an ID
> about this problem which I wrote weeks ago. WIDE project is planning
> to have one more meeting on this problem around 8/23.
> --Kazu