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

Reply via email to