[Click] Queues and notifications
Mike Wilson
mlw2 at arl.wustl.edu
Thu Jan 25 16:36:18 EST 2007
Yes, checked out yesterday morning. (I just confirmed that there have
been no changes since then.)
-Mike
On Thu, 25 Jan 2007, Beyers Cronje wrote:
> Hi Mike,
>
> Are you using the latest version from CVS?
>
>
> On 1/25/07, Mike Wilson <mlw2 at arl.wustl.edu> wrote:
>>
>> I've got a large, complex click config where I read from UDP sockets and
>> write to a raw socket, routing packets from UDP tunnels. Unfortunately, I
>> can't seem to get notifications working in the Queues.
>>
>> I've stripped the config down to a fairly simple case that replicates the
>> problem, at least on my system. If I use Queue or NotifierQueue
>> components for the queues, I either get nothing out the interface, or I
>> get 1-2 packets and then nothing. If I use a SimpleQueue, everything
>> works just fine.
>>
>> My limited understanding is that the SimpleQueue doesn't do notifiers, so
>> the pull components downstream must use polling. In other words, it's a
>> massive CPU hog - I get 99% utilization to click with a SimpleQueue. With
>> Queue, I don't even see click in my top(1) list.
>>
>> Am I mis-using the queue components somehow, or is this a bug? Do
>> RawSockets use notifiers?
>>
>> -Mike Wilson
>>
>> ---replication example---
>>
>> // Warning, this config will send bogus UDP packets to 172.16.46.20.
>> // Unfortunately, the problem doesn't manifest with a Discard at the end.
>>
>> AddressInfo(myip 128.252.160.209,
>> NetRtr 172.16.46.12,
>> HostRtr 172.16.46.20,
>> NetRoute 172.16.46.0/24);
>>
>> PortInfo(NetTun 0xA121,
>> HostTun 0xA122);
>>
>> out :: RawSocket("UDP");
>> rt :: RangeIPLookup(NetRoute 0, HostRtr 1);
>> sched :: DRRSched();
>>
>> TimedSource -> UDPIPEncap(HostRtr, 5005, HostRtr, 5005) ->
>> IPPrint("Injecting Packet") -> check :: CheckIPHeader;
>> Idle -> rt;
>>
>> check[1] -> Print("Injected Bad packet") -> Discard;
>> check[0] -> IPPrint("Injected Valid Packet") -> GetIPAddress(16) -> rt;
>>
>> rt[0] -> UDPIPEncap(myip, NetTun, NetRtr, NetTun) -> IPPrint("Net Route")
>> -> SimpleQueue -> [0]sched;
>> rt[1] -> UDPIPEncap(myip, HostTun, HostRtr, HostTun) -> IPPrint("Host
>> Route") -> SimpleQueue -> [1]sched;
>>
>> sched -> IPPrint("Sending") -> 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