[Click] FreeBSD 6.0
Andrew Chanler
orlot at rocketmail.com
Mon Apr 3 14:18:01 EDT 2006
Thanks for the reply.
I found a way to run a NAT in userspace on my freeBSD machine so that I
do not need to use the kernel module. I setup freeBSD's packet filter
to block everything except ssh connections (so I can still connect to
it). Then I use FromDevice and ToDevice Click elements to read packets
from both of my NIC cards.
One other question. Because I am pretty new to click, I haven't figured
out how to use element handlers. For example, when click is running in
user space, how can I view the arp table that my ARPQuerier has built
up?
Andrew Chanler
--- Eddie Kohler <kohler at cs.ucla.edu> wrote:
> Hi Andrew,
>
> Our FreeBSD kernel support tends, unfortuantely, to rot quickly, as I
> don't
> believe anyone uses it day to day.
>
> The "invalid conversion from `void*' to `T*'" errors can probably be
> fixed
> with -fpermissive.
>
> The last errors are maybe more serious, and indicate an interface
> difference
> between 5.0 (which is what we currently more or less support) and
> 6.0. I
> don't know what to do there.
>
> We'll accept any patches that make this situation better!
> Eddie
>
>
> Andrew Chanler wrote:
> > Has anyone built the freebsd kernel module on a FreeBSD 6.0
> machine? I
> > am having build problems. first ./configure failed because it
> couldn't
> > /usr/src/sys/kern/vnode_if.pl and I searched around and found
> > /usr/src/sys/tools/vnode_if.awk which does the samething. So I
> fixed
> > ./configure and the makefile to use that awk script. But now I get
> a
> > much tougher error. anyone seen something like this before?
> >
> >
> > g++ -w -W -Wall -fno-exceptions -fno-rtti -DHAVE_CONFIG_H
> -nostdinc
> > -I../include -I../include -I. -I.. -I. -I/usr/include
> -DCLICK_BSDMODULE
> > -DBSD_NETISRSCHED -O2 -g -c module.cc
> > In file included from /usr/include/sys/systm.h:246,
> > from modulepriv.hh:13,
> > from module.cc:20:
> > /usr/include/sys/libkern.h: In function `uint32_t crc32_raw(const
> > void*, size_t, uint32_t)':
> > /usr/include/sys/libkern.h:118: error: invalid conversion from
> `const
> > void*' to `const uint8_t*'
> > In file included from /usr/include/sys/vnode.h:547,
> > from modulepriv.hh:16,
> > from module.cc:20:
> > ./vnode_if.h:9:30: vnode_if_typedef.h: No such file or directory
> > ./vnode_if.h:10:31: vnode_if_newproto.h: No such file or directory
> > In file included from ../include/click/glue.hh:50,
> > from ../include/click/element.hh:4,
> > from ../include/click/router.hh:4,
> > from modulepriv.hh:21,
> > from module.cc:20:
> > /usr/include/sys/mbuf.h: In function `mbuf* m_get(int, short int)':
> > /usr/include/sys/mbuf.h:376: error: invalid conversion from `void*'
> to
> > `mbuf*'
> > /usr/include/sys/mbuf.h: In function `mbuf* m_getclr(int, short
> int)':
> > /usr/include/sys/mbuf.h:389: error: invalid conversion from `void*'
> to
> > `mbuf*'
> > /usr/include/sys/mbuf.h: In function `mbuf* m_gethdr(int, short
> int)':
> > /usr/include/sys/mbuf.h:403: error: invalid conversion from `void*'
> to
> > `mbuf*'
> > /usr/include/sys/mbuf.h: In function `mbuf* m_getcl(int, short int,
> > int)':
> > /usr/include/sys/mbuf.h:414: error: invalid conversion from `void*'
> to
> > `mbuf*'
> > /usr/include/sys/mbuf.h: In function `void m_clget(mbuf*, int)':
> > /usr/include/sys/mbuf.h:438: error: invalid conversion from `void*'
> to
> > `char*'
> > /usr/include/sys/mbuf.h: In function `void m_tag_init(mbuf*)':
> > /usr/include/sys/mbuf.h:697: error: invalid conversion from `void*'
> to
> > `m_tag*'
> > /usr/include/sys/mbuf.h: In function `m_tag* m_tag_find(mbuf*, int,
> > m_tag*)':
> > /usr/include/sys/mbuf.h:773: error: invalid conversion from `void*'
> to
> > `m_tag*'
> > In file included from ../include/click/element.hh:7,
> > from ../include/click/router.hh:4,
> > from modulepriv.hh:21,
> > from module.cc:20:
> > ../include/click/packet.hh: In member function `net_device*
> > Packet::device_anno() const':
> > ../include/click/packet.hh:230: error: invalid conversion from
> `void*'
> > to `net_device*'
> > ../include/click/packet.hh: In static member function `static
> Packet*
> > Packet::make(mbuf*)':
> > ../include/click/packet.hh:474: error: invalid conversion from
> `void*'
> > to `int*'
> > ../include/click/packet.hh:474: error: initializing argument 4 of
> > `mbuf* m_pulldown(mbuf*, int, int, int*)'
> > module.cc: At global scope:
> > module.cc:373: error: invalid conversion from `vfsops*' to `u_int'
> > module.cc:373: error: invalid conversion from `int' to `vfsops*'
> > module.cc:382: error: expected constructor, destructor, or type
> > conversion before '(' token
> > module.cc:382: error: expected `,' or `;' before '(' token
> > gmake: *** [module.o] Error 1
> > *** Error code 2
> >
> >
> >
> > I am trying to run some of the example click files that do NATing,
> but
> > they all seem to use ToHost, so I can't run them in userspace. If
> I
> > can't get this BSD module to build, is there away to use something
> like
> > mazu-nat.click or thomer-nat.click in userspace?
> >
> > Thanks,
> > Andrew Chanler
> >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam? Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> > _______________________________________________
> > click mailing list
> > click at amsterdam.lcs.mit.edu
> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the click
mailing list