[Click] New TCP connection

Eddie Kohler kohler at cs.ucla.edu
Tue Oct 26 01:57:47 EDT 2004


Hi

Indian Mogul wrote:
> Hi Eddie, 
> 
>       I am stuck in some conceptual packet flow in
> click implementation. I have the following packet flow
> diagram inside click: 
> 
> Incoming TCP connection (from client) -> TCP
> Termination  (by click) - Packet buffering (click) ->
> payload analysis  (click) ->  New TCP connection
> (click->server)
> 
> 1. Suppose all the nodes of the above packet flow
> diagram are implemented as click elements.

OK -- but no current Click elements will terminate or initiate TCP connections. 
  (There are a couple elements in elements/local that sort of do this, but not 
correctly.)

> 2. How can the element "Packet buffering" signal 
> "payload analysis" that packets are available and
> payload analysis should start? 

By calling a function on it?  This isn't terribly hard, just supply the "packet 
buffering" element with the name of the "payload analysis" element as a 
parameter.  Then "packet buffering" can call "pl anal" directly.

> 3. How can element "payload analysis" signal to
> "Packet buffering" that a decision on payload content
> has been made and no more packets need to be buffered?

Same thing.  See the interaction between RED and Queue for an example (RED's 
QUEUES argument); there are other examples.

> 4. While steps (3) & (4) are continuing , click
> element " TCP Termination " should be able to recv
> packets so that click does not get held up in (3) &
> (4)
> (basically need to decouple the two)

Then (3) and (4) must not run for too long.  Click generally runs 
single-threaded; it is a bad idea for any individual Click "task" to take too long.

> 5. How to reinitiate "New TCP connection" when the
> packet needs to be sent to the server independently of
> the state of any of the above elements?

Hmm, not sure how to answer this.  See, Click doesn't run like a set of 
"processes".  It's not threaded, for example, it's event driven.  Long-running 
tasks are generally divided into multiple task executions.  And the elements 
have to do this explicitly.

> Being a newbie I am just diving, swimming & drowning
> in click. Your help would be greatly appreciated.

Good luck!!
Eddie


> Thanks,
> IM
> 
> 
> 		
> _______________________________
> Do you Yahoo!?
> Declare Yourself - Register online to vote today!
> http://vote.yahoo.com
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list