Bug or Problem for ToDevice.u?

Dongyu Yang <[email protected]>
Newsgroups gmane.network.routing.click
Message-ID <CA+84s3XNzj3CzpnctvCxY2BGLQ6sYCWsHtHXyjd5337SJCPqyA@mail.gmail.com>
Hello,

    I use two PC to test click userlevel as bellow:  every PC has two
802.11g NICs (wlan0, wlan1),
I set all NICs in ad-hoc mode, I set two PC's wlan0 in channel 4, and two
wlan1 in channel 9.
When I transmit files between two PC from two NICs meanwhile
(uplayer's packets are sent from
wlan0 and wlan1 meanwhile). I find the throughput is very low: it
only 150KB/s. But when I use one
NIC (only one path) the throughput can reach 2.4MB/s.

the configure as bellow:


   FromDevice(wlan0)   FromDevice(wlan1)
                \                     /
                 \                   /
               Multi Path Routing
                  /                \
                 /                  \
     Queue(wlan0)        Queue(wlan1)
              |                       |
              |                       |
   ToDevice(wlan0)      ToDevice(wlan1)



I find the ToDevice.u may casue this problem: in the functon
bool ToDevice::run_task()

bool ToDevice::run_task(){
    .......
    .......

    if (p || _signal)
    _task.fast_reschedule();
    return count > 0;
}

      When we use only one NIC, the uplayer's packets are stored in the same
Queue,
so when _task.fast_reschedule() be called, we called the run_task() again,
and we can
fast get the next uplayer packet. But when we use two NICs the uplayer's
packets are
stored in two Queue, so when call _task.fast_reschedule() in
ToDevice(wlan0), we get
NULL, so we can't get the uplayer's next packet until the the system
schedule the
ToDevice(wlan1), so the throughput is low.

     So how can I fix this problem, thanks for your help?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.