On Sunday 15 January 2006 12:50, Willem de Bruijn wrote:

> int tcp(char * pkt, int plen){
>       if (!ip(pkt, plen))
>               return -1;
>       //[... process tcp stuff ..]
>       return 0;
> }

Linux TCP/IP doesn't work like this.

> Why do people keep developing stream-like architectures, then? First of all, 
> streams are not intrinsically slower than sockets. <plug_work>Indeed, the 
> system I'm currently finishing of (ffpf) has been shown to outperform linux 
> kernel code for filtering 

Linux netfilter is basically like STREAMS, so you're just showing
that one STREAM like thing can be faster than another. Undoubtedly
a full hardcoded filter system could be faster.

> Second, some of us believe that with more modular, flexible paths, we can 
> reduce code complexity and increase reuse. I'm not too familiar with 
> netfilter, but I think it uses a stream-like framework itself.

So you want to replace something that you're not familiar with? 
That sounds like a upside down approach. How about studying prior art first
to avoid making their mistakes and reusing their strengths?

> One advantage  
> is that a new netfilter function can be inserted in the stream if the module 
> is loaded. In a purely functional framework this would be impossible, as all 
> functions have to be known in advance. 

Your lack of knowledge about netfilter shows very clearly here.

> Lastly, there are uses where reconfigurability is essential. Click had 
> routing 
> as application domain, where the stream-topology is very dependent on 
> administrator policies. Therefore it fitted better than a static functional 
> codeblock with many if/then statements.

Have you ever tried reading through the Linux routing code path?  It doesn't
sound like it.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to