[Click] packet weirdness

Eddie Kohler kohler at cs.ucla.edu
Fri Jan 19 18:42:07 EST 2007


Cleaning up longstanding email...

Roman Chertov wrote:
> After reading the doc for FastUDPsrc it seems that it operates on a 
> single skb_buff.  The thing which confuses me is why incr_ports is 
> allowed to be used in the pull function if packet modifications is not 
> allowed without cloning.

Strictly speaking it is not "allowed", that's true.  The FastUDPSource element 
cheats.  I think it's one of the very few -- perhaps the only one.

Eddie


> Roman
> 
> Roman Chertov wrote:
>> Hello,
>> 	I have a machine with two NICs connected by a cross over cable.  I am 
>> running Click from CVS on a 2.4.32 kernel.  I did a few modifications to 
>> the Click linux module elements such that FastUDPsrc now puts a packet 
>> sequence number into the packet's payload and then I set the timestamp 
>> annotation. Then the packet gets sent to eth1.  A special element on the 
>> eth2 recieve path looks at the packets and stores the sequence numbers 
>> in an internal fixed size array.  To get the array data I have made a 
>> read_handler for it.
>>
>> If I set the packet generation rate to something low then I get a 
>> non-repeating set of sequence numbers; however, if I set the rate to 0, 
>> then I sometimes see a long series of repeating numbers.
>>
>> Any input would be much appreciated,
>>
>> Roman
>>
>> Script.
>> source :: FastUDPSource2(0, 10000, 60,
>>                          00:0E:0C:AB:64:0C, 10.0.1.1, 1234,
>>                          00:0E:0C:AB:63:70, 10.0.2.1, 1234);
>>
>> to     :: ToDevice(eth1);
>> from   :: PollDevice(eth2);
>> ctr    :: AverageCounter;
>>
>> classifier      :: Classifier(12/0800 /* IP packets */,
>>                                - /* everything else */);
>> ip_classifier   :: IPClassifier(dst udp port 1234 /* relevant UDP 
>> packets */,
>>                                  - /* everything else */);
>>
>>
>> source -> SetTimestamp
>>         -> to;
>>
>>
>> from   -> classifier[0]
>>         -> CheckIPHeader(14, CHECKSUM false) // don't check checksum for 
>> speed
>>         -> ip_classifier[0]
>>         -> tt :: TimestampTrack(1000)
>>         -> ctr
>>         //-> Print
>>         -> Discard;
>>
>> classifier[1] -> ToHost;
>> ip_classifier[1] -> ToHost;
>>
>> Idle -> ToDevice(eth2);
>> _______________________________________________
>> click mailing list
>> click at amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>>
> 
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list