[Click] Newbie question: splitting flows and merging them later

Eddie Kohler kohler at cs.ucla.edu
Wed Feb 22 03:15:21 EST 2006


Hi Anirudh,

This question actually has a very simple answer.  For push elements, you can 
simply join the streams however you want.  In fact, your configuration 
*already* does this, since both the "ipc[0]" path and the "ipc[1]" path 
converge at the "route" element's input.

In a pull path you must use a scheduler element, such as RoundRobinSched, to 
join streams,

Eddie


Anirudh wrote:
> Hi,
> 
>   I'm new to click, and I couldnt find any documentation on how to
> actually split a "flow" and merge it later. I have a small routing
> table and a few error checks, which, in order, are :
>  - check IP header/cksum
>  - check TCP header/cksum
>  - check UDP header/cksum
>  - check ICMP header/cksum
>  - check expired TTL etc.
> 
>>From the man pages, I see that CheckTCPHeader *expects* a TCP/IP
> packet (similarly for CheckUDPHeader), so I have something like this:
> 
> *******
> ...
> 
> //For simplicity, LinearIPLookup
> route :: LinearIPLookup (10/8 0, 0/0 1);
> 
> //Read from dump
> FromDump(a.dump, STOP true) -> checkIPHeader
>                             -> ipc :: IPClassifier(tcp, udp);
> 
> ipc[0] -> checkTCP
>        -> CheckICMPHeader
>        -> dt :: DecIPTTL
>        -> GetIPAddress(16)
>        -> route;
> 
> ipc[1] -> checkUDP
>        -> CheckICMPHeader
>        -> dt :: DecIPTTL
>        -> GetIPAddress(16)
>        -> route;
> 
> ...
> 
> *******
> 
> Now, how do I 'merge' the stream of packets split by IPClassifier so I
> dont have to replicate the elements coming after the TCP or UDP
> checks?
> 
> Any help at all will be appreciated.
> 
> Thanks,
> Anirudh
> 
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list