[Click] big endian supporting?

YenJung Chang yenjung at gmail.com
Thu Oct 20 22:04:40 EDT 2005


Hi John,

It is MIPS architecture. :)

YJ.


2005/10/20, John Bicket <jbicket at amsterdam.lcs.mit.edu>:
> Hi YenJung,
>
> I think you are correct.  I was thinking through this and there are
> probably a lot of other small things like this that need fixing.
>
> What kind of board are you running on?
>
> John
>
>
> YenJung Chang [yenjung at gmail.com] wrote:
> >Hi,
> >
> >I made mistake. I tried to align an aligned configuration. :(.
> >
> >I think the root cause of this "failed checksum" is:
> >There is no byte order conversion to some variables in link_probe, for
> >example, _psz in this case of "failed checksum".
> >Therefore, the big-endian device would access lp->_psz wrong if the
> >value is transmited from a little-endian device, and vice versa.
> >
> >Is it right?
> >
> >Thanks,
> >YJ.
> >
> >
> >2005/10/5, YenJung Chang <yenjung at gmail.com>:
> >> Hi,
> >>
> >> test.click is attached.(it is same with the roofnet.click I attached
> >> in previous mail. :) ).
> >>
> >> click-align did not add any Align element into test-align.click
> >> (test-align.click is same with test.click), and the same message
> >> ("ETTStat srcr/es: failed checksum") is printed when I ran "click
> >> test-align.click".
> >>
> >> Thanks,
> >> YJ.
> >>
> >>
> >> 2005/10/4, Eddie Kohler <kohler at cs.ucla.edu>:
> >> > How did click-align fail?  Can you resend your test.click?
> >> >
> >> > On Oct 4, 2005, at 5:52 AM, YenJung Chang wrote:
> >> >
> >> > > 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
> >> > >>>
> >> > >>
> >> > >>
> >> > >>
> >> > >
> >> > >
> >> >
> >> >
> >>
> >>
> >>
> >
> >_______________________________________________
> >click mailing list
> >click at amsterdam.lcs.mit.edu
> >https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>



More information about the click mailing list