[Click] click Digest, Vol 92, Issue 25

Cliff Frey cliff at meraki.com
Tue Feb 22 20:29:56 EST 2011


Perhaps you don't need linux kernel module support?  you could add the
--disable-linuxmodule option to your command line...

2011/2/22 Justok Jiang|蒋小可 <justok06 at gmail.com>

>  Dear Cliff,
> Thank you for your help, with which I solve most of the Questions except
> Q2.
>
> I want to generate IPv6 packet by click, so I reinstall click with command:
> ./configure --enable-ip6
> sudo make install
>
> the compliling lasts for 1 night, so I check the output messages, it shows:
>
> "-I/lib/modules/2.6.32-21-generic/build/include  -I/usr/src/linux-headers-2.6.32-21-generic/arch/x86/include -include /lib/modules/2.6.32-21-generic/build/include/linux/autoconf.h -Iubuntu/include  -D__KERNEL__ -Wall -Wundef  -Wno-trigraphs -fno-strict-aliasing   -Wno-format-security -fno-delete-null-pointer-checks -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2  -march=i586 -mtune=generic -maccumulate-outgoing-args -Wa,-mtune=generic32 -ffreestanding -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow  -Wframe-larger-than=1024 -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg   -fno-strict-overflow -fno-dwarf2-cfi-asm -fconserve-stack
>
> checking for C++-includable kernel header files... no
>
> checking whether long and int64_t are the same type in the Linux kernel... yes
>
> checking whether long long and int64_t are the same type in the Linux kernel... yes
> checking whether uintptr_t is defined in the Linux kernel... no
> checking whether struct sk_buff has a security member... no
> checking whether struct sk_buff has an fclone member... no
> checking whether skb_shinfo has a tso_size member... no
> checking whether skb_shinfo has a gso_size member... no
> checking whether skb_shinfo has a ufo_size member... "
>
> for many times, maybe something was wrong, could you point it out or give
> me some clues?
>
> thx.
>
>
> 2011-02-23
> ------------------------------
>  Justok Jiang|蒋小可
> ------------------------------
> *发件人:* Cliff Frey
> *发送时间:* 2011-02-23  02:01:39
> *收件人:* Justok Jiang|蒋小可
> *抄送:* click
> *主题:* Re: [Click] click Digest, Vol 92, Issue 25
>
>
> 2011/2/21 Justok Jiang|蒋小可 <justok06 at gmail.com>
>
>> Dear all,
>>
>> I am sure If I could send email to this mailling-list when I have some
>> Questions about Click.
>> If It's not appropriate, Please skip this email; but I would be thanksful
>> if some do me some favor to answer.
>>
>> Q. 1/
>> FromDevice(eth1)->
>> c::Classifier(12/0806 20/0001,
>>             12/0806 20/0002,
>>             12/0800,
>>             -);
>>
>> I would find that all the packet are sent to c[3]
>>
>
> Is eth1 a normal ethernet device?  Perhaps you should add a Print() element
> which will show you the actual binary data inside of each packet, and you
> can see what bytes are at offset 12?
>
>
>>
>>
>> FromDevice(eth1)->Strip(14)->cip::CheckIPHeader->IPClassifier->IPPrint(ip)->Discard;
>> cip[1]->Discard;
>>
>>
>> I would find that some IP packet also output warning msg "cip: IP header
>> check failed: bad IP version "
>>
>
> This is expected, because you might be sending non-IP packets to a
> CheckIPHeader.
>
>
>> Q. 2/
>>
>> My Project is flexable, so I want to use some configure files, which store
>> host name, host interface and their ip.
>> So how can I use that configure file?
>>
>
> There is no one-size-fits-all answer for this.  You can pass in variables
> on the command line.  You can use cpp or some other pre processor on your
> config files.  You can come up with another solution...
>
>
>>
>> Q. 3/
>> About script,
>>   s :: Script(set x 0,
>>               label begin_loop,
>>               print $x,
>>               set x $(s.add $x 1),
>>               goto begin_loop $(s.lt $x 5),
>>               );
>> this code runs well and output "0 1 2 3 4", but
>>   s :: Script(set x 0,
>>               label begin_loop,
>>               print $x,
>>               set x $(s.add $x 1),
>>               goto begin_loop $(s.lt $x 5),
>>               );
>> InfiniteSource(DATA \<00 00 c0 ae 67 ef  00 00 00 00 00 00  08 00
>> 45 00 00 28  00 00 00 00  40 11 77 c3  01 00 00 01
>> 02 00 00 02  13 69 13 69  00 14 d6 41  55 44 50 20
>> 70 61 63 6b  65 74 21 0a>, LIMIT 10, *STOP true*)
>>    -> Strip(14)
>>    -> Align(4, 0)    // in case we're not on x86
>>    -> cih::CheckIPHeader()
>>    ->IPPrint(ip)
>>    ->c::Counter
>>    ->Discard;
>> those code runs well, but the output have no "0 1 2 3 4"
>>
>
> The "STOP true" parameter on your InfiniteSource element will stop the
> entire router as soon as the source has generated 10 packets.
>
>


More information about the click mailing list