[Click] click Digest, Vol 92, Issue 25

Justok Jiang|蒋小可 justok06 at gmail.com
Tue Feb 22 20:18:26 EST 2011


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