Runting | 1 Nov 2005 23:37
Picon
Favicon

Re: Click questions

Hi, Eddie, thank you so much for your help.
I already solved the second problem, the problem is that pull-to-push
elements require a lot of scheduling overhead. And also RoundRobinSched does
a for loop to check if each queue is empty in each scheduling cycle, and
this turned out to be expensive too where I had > 1000 queues, and most of
the time the queues are all empty. So I got rid of the pull-to-push element,
and did something else that had the same effect, and I wrote my own
RoundRobin Scheduler that has constant overhead per scheduling cycle.

btw, I don't know if this is specific to the version I downloaded,
LinuxIPLookup code seems to be missing one line.

int
LinuxIPLookup::init_routes(ErrorHandler *errh)
{
  if (_out2dev)
    delete[] _out2dev;
  _out2dev = new net_device * [_nout];
  _out2dev[0] = 0;
  int i;
  for(i = 0; i < _nout; i++){
    net_device *dev = dev_get_by_name(_out2devname[i].cc());
    click_chatter("LinuxIPLookup: dev = %x\n", dev);
        if (dev == 0)
      return errh->error("Cannot find device %s", _out2devname[i].cc());
//the following line is missing
    _out2dev[i] = dev;
  }
  return(0);
}
(Continue reading)

Sacchi Alessio | 2 Nov 2005 10:06
Picon

Intel PRO 1000, what about this chip?

Hello,

I'm buying some Intel PRO/1000 cards for some test.

My company should provide these cards based on PWLA8391GT (CPU Intel 82541PI).

Is this version of PRO 1000 ok for polling tests on 2.4 kernel?

Thanks,

Alessio Sacchi

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
Beyers Cronje | 2 Nov 2005 14:04
Picon
Gravatar

Re: Intel PRO 1000, what about this chip?

Hi Sacchi,

Download the latest 5.x e1000 driver from click cvs, edit e1000_hw.h and
look for the "PCI Device IDs" section to identify if your requested
controller is supported

Beyers

On 11/2/05, Sacchi Alessio <sacchi.alessio.31284 <at> unimo.it> wrote:
>
> Hello,
>
> I'm buying some Intel PRO/1000 cards for some test.
>
> My company should provide these cards based on PWLA8391GT (CPU Intel
> 82541PI).
>
> Is this version of PRO 1000 ok for polling tests on 2.4 kernel?
>
> Thanks,
>
> Alessio Sacchi
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
> _______________________________________________
> click mailing list
> click <at> amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
(Continue reading)

Peter De Cleyn | 2 Nov 2005 15:32
Picon

Re: Re[2]: wifi and madwifi.stripped

This looks very promising and certainly worth a try later one. For the
moment, I implemented a basic infrastrucutre mac in Click which does the job
in combination with the madwifi drivers.

Thanks for the suggestion!

Peter

On 11/2/05, Daniel Henkel <henk <at> gmx.com> wrote:
>
> Hi Peter,
>
> We are using a modified version of madwifi with the 2.6.11 kernel. It
> is called SoftMac, and it was done here at the University of Colorado
> at Boulder. SoftMac lets you implement new MAC layers and tweak
> parameters to a certain degree. Too bad the HAL is not available in
> source. :)
>
> More info here:
> https://systems.cs.colorado.edu/projects/softmac
>
> It is working, but still in its infancy. Interoperable with Click.
>
> --
> Have a nice day,
> - Daniel.
>
> .....
> Interdisciplinary Telecommunications Program
> University of Colorado at Boulder
(Continue reading)

Eddie Kohler | 4 Nov 2005 19:27
Favicon

[Fwd: small bug--? in SimpleQueue element]

Subject: gmane.network.routing.click
Received: from toucan.cs.ucla.edu (toucan128 [131.179.128.16])
	by kiwi.cs.ucla.edu (8.11.7p1+Sun/8.11.7/UCLACS-5.2) with ESMTP id jA4BjP419680
	for <kohler <at> kiwi.cs.ucla.edu>; Fri, 4 Nov 2005 03:45:25 -0800 (PST)
Received: by toucan.cs.ucla.edu (Postfix)
	id 69E0C51FBC; Fri,  4 Nov 2005 03:45:25 -0800 (PST)
Delivered-To: kohler <at> cs.ucla.edu
Received: from diri.bris.ac.uk (diri.bris.ac.uk [137.222.10.112])
	by toucan.cs.ucla.edu (Postfix) with ESMTP id 4031351FB7
	for <kohler <at> cs.ucla.edu>; Fri,  4 Nov 2005 03:45:24 -0800 (PST)
Received: from ncsb.bris.ac.uk ([137.222.10.100])
	by diri.bris.ac.uk with esmtp (Exim 4.54)
	id 1EY00Y-0002uM-AE
	for kohler <at> cs.ucla.edu; Fri, 04 Nov 2005 11:45:23 +0000
Received: from een9185.een.bris.ac.uk ([137.222.189.185])
	by ncsb.bris.ac.uk with esmtpsa (TLSv1:AES256-SHA:256)
	(Exim 4.54)
	id 1EXzjm-0006If-Bq
	for kohler <at> cs.ucla.edu; Fri, 04 Nov 2005 11:28:02 +0000
Date: Fri, 04 Nov 2005 11:28:01 +0000
From: "Yuliang Li, Electrical & Electronic Engineering" <Yuliang.Li <at> bristol.ac.uk>
To: kohler <at> CS.UCLA.EDU
Subject: small bug--? in SimpleQueue element
Message-ID: <AFE566A2B6F23B7D105C4F81 <at> [172.20.5.2]>
Originator-Info: login-token=Mulberry:01V5djjbz83PmO2Nz3hb39kPaP+dmwl8kNke+UAdyxhbrF2Pg=;
 token_authority=postmaster <at> bristol.ac.uk
X-Mailer: Mulberry/3.1.5 (Win32)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-Spam-Score: -1.4
X-Spam-Level: -

Dear Eddie:
Thank you very much for your Click. It is really interesting and powerful.

My name is Yuliang Li. I am a third year PhD student from the University of 
Bristol, UK. I am using Click to do some implementation in the area of 
Congestion Control.

I found a small problem when I am using the SimpleQueue element. It never 
gives me the number of packets which have been dropped at whatever the 
source rate is. So I changed the 'push' function, to let 'next' comparing 
with the '_capacity' (originally comparing with '_head'). It seems this is 
more reasonable.

void
SimpleQueue::push(int, Packet *p)
{
    // If you change this code, also change NotifierQueue::push().
    int next = next_i(_tail);

    // should this stuff be in SimpleQueue::enq?
    if (next != _capacity) {
        _q[_tail] = p;
        _tail = next;

        int s = size();
        if (s > _highwater_length)
            _highwater_length = s;

    } else {
        // if (!(_drops % 100))
        if (_drops == 0)
            click_chatter("%{element}: overflow", this);
        _drops++;
        p->kill();
    }
}

Do you think is this a small bug in the program? Or are their any special 
meaning for using '_head'.

Thank you very much

*****************************************************************
  Yuliang Li           PhD student
Wireless and Networks Research Laboratory
Department of Electrical and Electronic Engineering
University of Bristol    Bristol     BS8 1UB
United Kingdom                   Tel: +44 117 3315059
Email: Yuliang.Li <at> bristol.ac.uk
*****************************************************************


_______________________________________________
click mailing list
click <at> amsterdam.lcs.mit.edu
https://amsterdam.lcs.mit.edu/mailman/listinfo/click
Eddie Kohler | 4 Nov 2005 19:31
Favicon

Re: small bug--? in SimpleQueue element

Hi Yuliang,

I don't understand the problem you're referring to, but your fix is certainly 
wrong.  Click's queues store packets in a circular array; comparing next and 
_capacity is correct.

Eddie

Yuliang Li, Electrical & Electronic Engineering wrote:
> Dear Eddie:
> Thank you very much for your Click. It is really interesting and powerful.
> 
> My name is Yuliang Li. I am a third year PhD student from the University 
> of Bristol, UK. I am using Click to do some implementation in the area 
> of Congestion Control.
> 
> I found a small problem when I am using the SimpleQueue element. It 
> never gives me the number of packets which have been dropped at whatever 
> the source rate is. So I changed the 'push' function, to let 'next' 
> comparing with the '_capacity' (originally comparing with '_head'). It 
> seems this is more reasonable.
> 
> 
> void
> SimpleQueue::push(int, Packet *p)
> {
>    // If you change this code, also change NotifierQueue::push().
>    int next = next_i(_tail);
> 
>    // should this stuff be in SimpleQueue::enq?
>    if (next != _capacity) {
>        _q[_tail] = p;
>        _tail = next;
> 
>        int s = size();
>        if (s > _highwater_length)
>            _highwater_length = s;
> 
>    } else {
>        // if (!(_drops % 100))
>        if (_drops == 0)
>            click_chatter("%{element}: overflow", this);
>        _drops++;
>        p->kill();
>    }
> }
> 
> Do you think is this a small bug in the program? Or are their any 
> special meaning for using '_head'.
> 
> Thank you very much
> 
> 
> 
> *****************************************************************
>  Yuliang Li           PhD student
> Wireless and Networks Research Laboratory
> Department of Electrical and Electronic Engineering
> University of Bristol    Bristol     BS8 1UB
> United Kingdom                   Tel: +44 117 3315059
> Email: Yuliang.Li <at> bristol.ac.uk
> *****************************************************************
> 
> 
Siddharth Kasat | 5 Nov 2005 19:44
Picon

Re: click Digest, Vol 29, Issue 3

How does look up take place during routing in Click Modular Router??

Siddharth
Picon
Picon
Favicon

Re: small bug--? in SimpleQueue element

Dear Eddie:
Sorry for my last unclear mail. Comparing next and _capacity is what I have 
changed. The original is the next comparing with _head.

A more clear specification has been attached with this mail.

Thank you again.

--On 04 November 2005 10:31 -0800 Eddie Kohler <kohler <at> cs.ucla.edu> wrote:

> Hi Yuliang,
>
> I don't understand the problem you're referring to, but your fix is
> certainly wrong.  Click's queues store packets in a circular array;
> comparing next and _capacity is correct.
>
> Eddie
>
>
> Yuliang Li, Electrical & Electronic Engineering wrote:
>> Dear Eddie:
>> Thank you very much for your Click. It is really interesting and
>> powerful.
>>
>> My name is Yuliang Li. I am a third year PhD student from the University
>> of Bristol, UK. I am using Click to do some implementation in the area
>> of Congestion Control.
>>
>> I found a small problem when I am using the SimpleQueue element. It
>> never gives me the number of packets which have been dropped at whatever
>> the source rate is. So I changed the 'push' function, to let 'next'
>> comparing with the '_capacity' (originally comparing with '_head'). It
>> seems this is more reasonable.
>>
>>
>> void
>> SimpleQueue::push(int, Packet *p)
>> {
>>    // If you change this code, also change NotifierQueue::push().
>>    int next = next_i(_tail);
>>
>>    // should this stuff be in SimpleQueue::enq?
>>    if (next != _capacity) {
>>        _q[_tail] = p;
>>        _tail = next;
>>
>>        int s = size();
>>        if (s > _highwater_length)
>>            _highwater_length = s;
>>
>>    } else {
>>        // if (!(_drops % 100))
>>        if (_drops == 0)
>>            click_chatter("%{element}: overflow", this);
>>        _drops++;
>>        p->kill();
>>    }
>> }
>>
>> Do you think is this a small bug in the program? Or are their any
>> special meaning for using '_head'.
>>
>> Thank you very much
>>
>>
>>
>> *****************************************************************
>>  Yuliang Li           PhD student
>> Wireless and Networks Research Laboratory
>> Department of Electrical and Electronic Engineering
>> University of Bristol    Bristol     BS8 1UB
>> United Kingdom                   Tel: +44 117 3315059
>> Email: Yuliang.Li <at> bristol.ac.uk
>> *****************************************************************
>>
>>
>

*****************************************************************
  Yuliang Li           PhD student
Wireless and Networks Research Laboratory
Department of Electrical and Electronic Engineering
University of Bristol    Bristol     BS8 1UB
United Kingdom                   Tel: +44 117 3315059
Email: Yuliang.Li <at> bristol.ac.uk
*****************************************************************

Attachment (SimpleQueueTest.doc): application/msword, 34 KiB
_______________________________________________
click mailing list
click <at> amsterdam.lcs.mit.edu
https://amsterdam.lcs.mit.edu/mailman/listinfo/click
Eddie Kohler | 6 Nov 2005 17:18
Favicon

Re: small bug--? in SimpleQueue element

Yuliang,

Thanks for sending the configuration.  But do not send Word files to me or 
this list in future.  Plaintext would have been much better.

Your code is still wrong.  It is not correct.  It is a bad idea, completely 
erroneous, and horribly, tragically wrong.  It will cause any Queue to drop 
*all future packets* after receiving CAPACITY packets, no matter how many 
packets are drained from the queue.  That is wrong wrong wrong wrong wrong. 
Just trying to be clear :)

I think you're missing the fact that the Discard element in this configuration 
is active.  That is, it is actively trying to empty the queue.  Do you 
understand about push and pull?  (If not, it is explained in our papers.) 
Discard is actively trying to empty the queue by removing packets from the 
queue's head.  It throws away any packets that it pulls.  That is why your 
first configuration has no drops; the Queue never gets a chance to drop them, 
because the Discard drops them first.

Here are two things to try.

RatedSource(DATASIZE 1000, RATE 4294967295) -> Print(OK) -> SimpleQueue(2) -> 
Print(ABOUT TO DROP) -> Discard;

RatedSource(DATASIZE 1000, RATE 4294967295) -> Print(OK) -> SimpleQueue(2) -> 
Idle;

Eddie

Yuliang Li, Electrical & Electronic Engineering wrote:
> Dear Eddie:
> Sorry for my last unclear mail. Comparing next and _capacity is what I 
> have changed. The original is the next comparing with _head.
> 
> A more clear specification has been attached with this mail.
> 
> Thank you again.
> 
> 
> 
> 
> --On 04 November 2005 10:31 -0800 Eddie Kohler <kohler <at> cs.ucla.edu> wrote:
> 
>> Hi Yuliang,
>>
>> I don't understand the problem you're referring to, but your fix is
>> certainly wrong.  Click's queues store packets in a circular array;
>> comparing next and _capacity is correct.
>>
>> Eddie
>>
>>
>> Yuliang Li, Electrical & Electronic Engineering wrote:
>>
>>> Dear Eddie:
>>> Thank you very much for your Click. It is really interesting and
>>> powerful.
>>>
>>> My name is Yuliang Li. I am a third year PhD student from the University
>>> of Bristol, UK. I am using Click to do some implementation in the area
>>> of Congestion Control.
>>>
>>> I found a small problem when I am using the SimpleQueue element. It
>>> never gives me the number of packets which have been dropped at whatever
>>> the source rate is. So I changed the 'push' function, to let 'next'
>>> comparing with the '_capacity' (originally comparing with '_head'). It
>>> seems this is more reasonable.
>>>
>>>
>>> void
>>> SimpleQueue::push(int, Packet *p)
>>> {
>>>    // If you change this code, also change NotifierQueue::push().
>>>    int next = next_i(_tail);
>>>
>>>    // should this stuff be in SimpleQueue::enq?
>>>    if (next != _capacity) {
>>>        _q[_tail] = p;
>>>        _tail = next;
>>>
>>>        int s = size();
>>>        if (s > _highwater_length)
>>>            _highwater_length = s;
>>>
>>>    } else {
>>>        // if (!(_drops % 100))
>>>        if (_drops == 0)
>>>            click_chatter("%{element}: overflow", this);
>>>        _drops++;
>>>        p->kill();
>>>    }
>>> }
>>>
>>> Do you think is this a small bug in the program? Or are their any
>>> special meaning for using '_head'.
>>>
>>> Thank you very much
>>>
>>>
>>>
>>> *****************************************************************
>>>  Yuliang Li           PhD student
>>> Wireless and Networks Research Laboratory
>>> Department of Electrical and Electronic Engineering
>>> University of Bristol    Bristol     BS8 1UB
>>> United Kingdom                   Tel: +44 117 3315059
>>> Email: Yuliang.Li <at> bristol.ac.uk
>>> *****************************************************************
>>>
>>>
>>
> 
> 
> 
> *****************************************************************
>  Yuliang Li           PhD student
> Wireless and Networks Research Laboratory
> Department of Electrical and Electronic Engineering
> University of Bristol    Bristol     BS8 1UB
> United Kingdom                   Tel: +44 117 3315059
> Email: Yuliang.Li <at> bristol.ac.uk
> *****************************************************************
> 
Picon
Picon
Favicon

Thank you ------- small bug--? in SimpleQueue element

Dear Eddie:
Thank you very much for your mail again.

Now things became really clear to me. I didn't do the research carefully 
for the Discard element.

Thank you and appreciate for all your work in Click.

Yuliang

--On 06 November 2005 08:18 -0800 Eddie Kohler <kohler <at> cs.ucla.edu> wrote:

> Yuliang,
>
> Thanks for sending the configuration.  But do not send Word files to me
> or this list in future.  Plaintext would have been much better.
>
> Your code is still wrong.  It is not correct.  It is a bad idea,
> completely erroneous, and horribly, tragically wrong.  It will cause any
> Queue to drop *all future packets* after receiving CAPACITY packets, no
> matter how many packets are drained from the queue.  That is wrong wrong
> wrong wrong wrong. Just trying to be clear :)
>
> I think you're missing the fact that the Discard element in this
> configuration is active.  That is, it is actively trying to empty the
> queue.  Do you understand about push and pull?  (If not, it is explained
> in our papers.) Discard is actively trying to empty the queue by removing
> packets from the queue's head.  It throws away any packets that it pulls.
> That is why your first configuration has no drops; the Queue never gets a
> chance to drop them, because the Discard drops them first.
>
> Here are two things to try.
>
> RatedSource(DATASIZE 1000, RATE 4294967295) -> Print(OK) ->
> SimpleQueue(2) -> Print(ABOUT TO DROP) -> Discard;
>
> RatedSource(DATASIZE 1000, RATE 4294967295) -> Print(OK) ->
> SimpleQueue(2) -> Idle;
>
> Eddie
>
>
> Yuliang Li, Electrical & Electronic Engineering wrote:
>> Dear Eddie:
>> Sorry for my last unclear mail. Comparing next and _capacity is what I
>> have changed. The original is the next comparing with _head.
>>
>> A more clear specification has been attached with this mail.
>>
>> Thank you again.
>>
>>
>>
>>
>> --On 04 November 2005 10:31 -0800 Eddie Kohler <kohler <at> cs.ucla.edu>
>> wrote:
>>
>>> Hi Yuliang,
>>>
>>> I don't understand the problem you're referring to, but your fix is
>>> certainly wrong.  Click's queues store packets in a circular array;
>>> comparing next and _capacity is correct.
>>>
>>> Eddie
>>>
>>>
>>> Yuliang Li, Electrical & Electronic Engineering wrote:
>>>
>>>> Dear Eddie:
>>>> Thank you very much for your Click. It is really interesting and
>>>> powerful.
>>>>
>>>> My name is Yuliang Li. I am a third year PhD student from the
>>>> University of Bristol, UK. I am using Click to do some implementation
>>>> in the area of Congestion Control.
>>>>
>>>> I found a small problem when I am using the SimpleQueue element. It
>>>> never gives me the number of packets which have been dropped at
>>>> whatever the source rate is. So I changed the 'push' function, to let
>>>> 'next' comparing with the '_capacity' (originally comparing with
>>>> '_head'). It seems this is more reasonable.
>>>>
>>>>
>>>> void
>>>> SimpleQueue::push(int, Packet *p)
>>>> {
>>>>    // If you change this code, also change NotifierQueue::push().
>>>>    int next = next_i(_tail);
>>>>
>>>>    // should this stuff be in SimpleQueue::enq?
>>>>    if (next != _capacity) {
>>>>        _q[_tail] = p;
>>>>        _tail = next;
>>>>
>>>>        int s = size();
>>>>        if (s > _highwater_length)
>>>>            _highwater_length = s;
>>>>
>>>>    } else {
>>>>        // if (!(_drops % 100))
>>>>        if (_drops == 0)
>>>>            click_chatter("%{element}: overflow", this);
>>>>        _drops++;
>>>>        p->kill();
>>>>    }
>>>> }
>>>>
>>>> Do you think is this a small bug in the program? Or are their any
>>>> special meaning for using '_head'.
>>>>
>>>> Thank you very much
>>>>
>>>>
>>>>
>>>> *****************************************************************
>>>>  Yuliang Li           PhD student
>>>> Wireless and Networks Research Laboratory
>>>> Department of Electrical and Electronic Engineering
>>>> University of Bristol    Bristol     BS8 1UB
>>>> United Kingdom                   Tel: +44 117 3315059
>>>> Email: Yuliang.Li <at> bristol.ac.uk
>>>> *****************************************************************
>>>>
>>>>
>>>
>>
>>
>>
>> *****************************************************************
>>  Yuliang Li           PhD student
>> Wireless and Networks Research Laboratory
>> Department of Electrical and Electronic Engineering
>> University of Bristol    Bristol     BS8 1UB
>> United Kingdom                   Tel: +44 117 3315059
>> Email: Yuliang.Li <at> bristol.ac.uk
>> *****************************************************************
>>

*****************************************************************
  Yuliang Li           PhD student
Wireless and Networks Research Laboratory
Department of Electrical and Electronic Engineering
University of Bristol    Bristol     BS8 1UB
United Kingdom                   Tel: +44 117 3315059
Email: Yuliang.Li <at> bristol.ac.uk
*****************************************************************

Gmane