Ranieri Argentini wrote:
> The problem is that this model grinds to a halt when it comes to the IP layer.
> IP is responsible for distributing packets among interfaces, and can
> therefore not be bound to any of them.
>
> The only thing that comes to mind is to have a single IP object that queues
> incoming packets for all interfaces. This requires strict serialisation on
> the incoming_packet() functions. A thread that lives in IP could then
> handle the packets (route them through, drop them or reassemble them and
> queue them to TCP/UDP objects that eventually put them into user space
> buffers).
BSD* operating systems solves this problem with a number of routines:
o ether_input
o ip_input
o tcp_input
o ...
When a device driver (i.e., a netword card driver) receives a packet it
calls
"ether_input," passing information about which interface the packet was
received
on (and ofcouse the packet data).
The "ether_input" then passes the packet to the right protocol stack.
Why not implement this in a similar manner?
--
Johan Rydberg [EMAIL PROTECTED]
Net Insight AB, Sweden direct: +46-8-685 04 17
http://www.netinsight.net phone: +46-8-685 04 00
fax: +46-8-685 04 20
_______________________________________________
Kernel maillist - [EMAIL PROTECTED]
http://jos.org/mailman/listinfo/kernel