[Click] upstream queue

Eddie Kohler kohler at cs.ucla.edu
Mon Sep 18 22:34:52 EDT 2006


Hi Venky,

This is odd, since I would expect it to work.  Assuming, of course, that the 
RoundRobinSched is attached *DIRECTLY* to the queues -- with no intervening 
elements.

One way you could test what's going on is to print out the *name* of the q 
element, with "click_chatter("%s", q->name().c_str());".  THen you can make 
sure whether you're getting the real queue.

If you want to know how to find the real upstream queue, even if there are 
intervening elements, check out how RED does this with an ElementFilter.

Eddie


Venky Rama wrote:
> hi - how can say a roundrobinscheduler element get information about an upstream queue? something like 
>      Queue *q = (Queue*)input(j).element();
>      q->getColor();
>   in the downstream element does not work...
>    
>   for example, if the upstream queue has a new member called _color, then the scheduler needs to know if _color of the upstream queue is say red or green....
>    
>   thanks!
>   venky
>    
>   ________
>    
>   details:
>   ________
>    
>   i tried this in the scheduler's pull function but it gives weird numbers instead...assume the Queue class has a simple int member which stores color and which is returned by public getColor().
>    
>   Packet *
>   RoundRobinSched::pull(int)
>   {
>    int n = ninputs();
>    int i = _next;
>    for (int j = 0; j < n; j++) {
>      Queue *q = (Queue*)input(j).element();
>      click_chatter("upstream queue %i has a color %i", j, q->getColor();)
>      Packet *p = (_signals[i] ? input(i).pull() : 0);
>      i++; 
>      if (i >= n) 
>        i = 0;
>      if (p) {
>        _next = i;
>        return p;
>      }
>    }
>    return 0;
>   }
>    
>    
> 
>  			
> ---------------------------------
> See the all-new, redesigned Yahoo.com.  Check it out.
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list