[Click] big endian supporting?

YenJung Chang yenjung at gmail.com
Tue Oct 4 08:52:20 EDT 2005


Hi,

I guess the root cause is the alignment is needed in my big-endian board.
The problem of ETHTYPE could be fixed if I change the data type of _et
from uint16_t to uint32_t in ettstat.hh and srforwarder.hh.
However, another problem followed, it showed "ETTStat srcr/es: failed
checksum" repeatly.
I guess this problem is same with ETHTYPE.

I have tried the tool click-align, but failed. (click-align test.click
> test-align.click)
Is there other way to fix this or have to change all uint16_t to
uint32_t manually?

Thanks in advance.
YJ.


2005/10/3, John Bicket <jbicket at amsterdam.lcs.mit.edu>:
> Hi YenJung,
>
> You are correct, thanks for the fix; I checked it in.
>
>
> YenJung Chang [yenjung at gmail.com] wrote:
> >In addition, I could not build click for the big-endian board
> >successfully before I hacked include/click/glue.hh.
> >
> >This is the output message.
> >--------------------------------------------------------------------------------------------------
> >mips-linux-g++ -W -Wall -fno-exceptions -fno-rtti  -DHAVE_CONFIG_H
> >-I../include -I../include -I. -I..  -DCLICK_USERLEVEL -static -MD -c
> >../elements/wifi/analysis/printpower.cc
> >../elements/wifi/analysis/printpower.cc: In constructor `
> >   PrintPower::PrintPower()':
> >../elements/wifi/analysis/printpower.cc:32: warning: `__base_ctor' is
> >   deprecated (declared at ../include/click/element.hh:33)
> >mips-linux-g++ -W -Wall -fno-exceptions -fno-rtti  -DHAVE_CONFIG_H
> >-I../include -I../include -I. -I..  -DCLICK_USERLEVEL -static -MD -c
> >../elements/wifi/analysis/printrate.cc
> >../elements/wifi/analysis/printrate.cc: In constructor `PrintRate::PrintRate()
> >   ':
> >../elements/wifi/analysis/printrate.cc:32: warning: `__base_ctor' is deprecated
> >   (declared at ../include/click/element.hh:33)
> >mips-linux-g++ -W -Wall -fno-exceptions -fno-rtti  -DHAVE_CONFIG_H
> >-I../include -I../include -I. -I..  -DCLICK_USERLEVEL -static -MD -c
> >../elements/wifi/analysis/printseq.cc
> >../elements/wifi/analysis/printseq.cc: In member function `virtual Packet*
> >   PrintSeq::simple_action(Packet*)':
> >../elements/wifi/analysis/printseq.cc:68: error: `bswap_16' undeclared (first
> >   use this function)
> >../elements/wifi/analysis/printseq.cc:68: error: (Each undeclared identifier is
> >   reported only once for each function it appears in.)
> >../elements/wifi/analysis/printseq.cc:70: error: `bswap_32' undeclared (first
> >   use this function)
> >make[1]: *** [printseq.o] Error 1
> >make[1]: Leaving directory `/home1/spencer/roofnet/click-2005.10.03/userlevel'
> >make: *** [userlevel] Error 2
> >----------------------------------------------------------------------------------------------------
> >
> >This is what I added in include/click/glue.hh
> >------------------------------------------------------------------------------------------------
> >Index: include/click/glue.hh
> >===================================================================
> >RCS file: /cvs/click/release/one/include/click/glue.hh,v
> >retrieving revision 1.50
> >diff -u -r1.50 glue.hh
> >--- include/click/glue.hh       25 Aug 2005 04:34:59 -0000      1.50
> >+++ include/click/glue.hh       3 Oct 2005 06:18:38 -0000
> >@@ -69,6 +69,10 @@
> > #  include "simclick.h"
> > # endif
> >
> >+# if CLICK_BYTE_ORDER == CLICK_BIG_ENDIAN
> >+#  include <byteswap.h>
> >+# endif
> >+
> > #endif
> >------------------------------------------------------------------------------------------------
> >
> >This is the steps I executed.
> >------------------------------------------------------------------------------------------------
> >./configure --enable-wifi --disable-linuxmodule
> >--build=i686-pc-linux-gnu --host=mipsel-linux --enable-tools=mixed
> >CLFLAGS=-static CXXFLAGS=-static
> >make
> >------------------------------------------------------------------------------------------------
> >
> >Please refer to attached config.log for more information.
> >
> >After I added those three lines in include/click/glue.hh,
> >userlevel/click could be built successfully. Is this a bug?
> >(Although userlevel/click was built, but it could not work well as
> >described in previous mails.)
> >
> >Thanks,
> >YJ.
> >
> >2005/10/3, YenJung Chang <yenjung at gmail.com>:
> >> BTW, I have had the click for x86 use this roofnet.click, it worked
> >> well; there was no error messages and srcr interface was created
> >> successfully at least.
> >>
> >> Thanks,
> >> YJ.
> >>
> >> 2005/9/30, YenJung Chang <yenjung at gmail.com>:
> >> > Thanks for your reply.
> >> >
> >> > I am planing to use Click (userlevel) in a big endian board. And when
> >> > I run "click roofnet.click", the following message is out.
> >> > .....
> >> > /home/am0/biswas/roofnet.click:27: While configuring 'srcr/es :: ETTStat':
> >> >   Must specify ETHTYPE
> >> > /home/am0/biswas/roofnet.click:41: While configuring 'srcr/forwarder
> >> > :: SRForwarder'
> >> > :
> >> >   ETHTYPE not specified
> >> > Router could not be initialized!
> >> > Segmentation fault
> >> >
> >> > Please refer to the attached for the roofnet.click, and tell me if you
> >> > need more information. :)
> >> >
> >> > Thansk.
> >> > YJ.
> >> >
> >> >
> >> >
> >> >
> >> >
> >>
>
>
> >_______________________________________________
> >click mailing list
> >click at amsterdam.lcs.mit.edu
> >https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
>



More information about the click mailing list