[Click] nsclick Installation problems

Michael Neufeld mneufeld at bbn.com
Fri Dec 22 10:52:29 EST 2006


Hello-
The most current nsclick patches are included with the click distribution. The 
nsclick patches at Colorado are old and unmaintained at this point. I believe 
the directions here:

http://www.read.cs.ucla.edu/click/nsclick

are what you want to use.

That being said, if your're stuck using the older versions of ns-2 and the ns-2 
nsclick patches there's still a reasonable chance that things will work, but I 
can imagine that a bit of tweaking might be required. As a start, have you been 
able to build regular userland Click without nsclick enabled? I noticed that 
you're building on cygwin -- that can sometimes complicate building *nix apps in 
general.

-Mike

Donkey Kong wrote:
> Hi
>  
> I am having a few problems getting click to run with ns-2. I have downloaded
> the following packages:
>  
> ns-allinone-2.26
> click-1.5.0
> nsclick-patch-2.26
>  
> I have unzipped and installed ns-2 without any problems but when trying to
> 'make' click, I get errors.
> The exact steps are as follows:
> Downloaded ns-2.26 from http://www.isi.edu/nsnam/dist/
> Downloaded click-1.5.0 from http://www.read.cs.ucla.edu/click/download
> Download patch 2.26 from http://systems.cs.colorado.edu/Networking/nsclick/
> Downloaded libnet from
> http://www.linuxsoft.cz/en/sw_detail.php?id_item=6100#down
>  
> I unpacked ns-2 with tar xvfz ns-allinone-2.26.tar.gz
> I also unpacked click and libnet in the unpacked ns-allinone directory.
> I applied the ns-2.26 patch
> I made libnet using the freebsd makfiles.
> I configured click, autoconf command could not be found.
> ./configure -enable-nsclick -disable-linuxmodule:
> The following results were returned:
> $ ./configure -enable-nsclick -disable-linuxmodule
> checking build system type... i686-pc-cygwin
> checking host system type... i686-pc-cygwin
> checking target system type... i686-pc-cygwin
> checking for gcc... gcc
> checking for g++... g++
> checking for gcc... (cached) gcc
> checking for C compiler default output file name... a.exe
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables... .exe
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking how to run the C preprocessor... gcc -W -Wall -E
> checking for inline... inline
> checking whether we are using the GNU C++ compiler... yes
> checking whether g++ accepts -g... yes
> checking whether <new> works... yes
> checking how to run the C++ preprocessor... g++ -W -Wall  -E
> checking for ar... ar
> checking for ld... ld
> checking for ranlib... ranlib
> checking for strip... strip
> checking whether we are compiling for Linux... no
> checking for strerror... yes
> checking for snprintf... yes
> checking for strtoul... yes
> checking for tcgetpgrp... yes
> checking for vsnprintf... yes
> checking whether machine is indifferent to alignment... yes
> checking for egrep... grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for int... yes
> checking size of int... 4
> checking for long... yes
> checking size of long... 4
> checking for inttypes.h... (cached) yes
> checking for long long... yes
> checking size of long long... 8
> checking for long long... (cached) yes
> checking for int64_t typedef... yes
> checking for uint64_t typedef... yes
> checking whether long and int64_t are the same type... no
> checking for struct timeval... no
> checking size of struct timeval... 0
> checking for struct timespec... yes
> checking for struct timespec... (cached) yes
> checking size of struct timespec... 8
> checking endian.h usability... yes
> checking endian.h presence... yes
> checking for endian.h... yes
> checking endianness... 1234
> checking byteswap.h usability... yes
> checking byteswap.h presence... yes
> checking for byteswap.h... yes
> checking for addressable va_list type... yes
> checking for __builtin_clz... yes
> checking for __builtin_clzl... yes
> checking for __builtin_clzll... yes
> checking for __builtin_ffs... yes
> checking for __builtin_ffsl... yes
> checking for __builtin_ffsll... yes
> checking for strings.h... (cached) yes
> checking for ffs... yes
> checking for ffsl... no
> checking for ffsll... no
> checking for unistd.h... (cached) yes
> checking termio.h usability... yes
> checking termio.h presence... yes
> checking for termio.h... yes
> checking netdb.h usability... yes
> checking netdb.h presence... yes
> checking for netdb.h... yes
> checking sys/event.h usability... no
> checking sys/event.h presence... no
> checking for sys/event.h... no
> checking pwd.h usability... yes
> checking pwd.h presence... yes
> checking for pwd.h... yes
> checking grp.h usability... yes
> checking grp.h presence... yes
> checking for grp.h... yes
> checking poll.h usability... yes
> checking poll.h presence... yes
> checking for poll.h... yes
> checking whether <poll.h> is emulated... no
> checking for sigaction... yes
> checking for kqueue... no
> checking dlfcn.h usability... yes
> checking dlfcn.h presence... yes
> checking for dlfcn.h... yes
> checking for dlopen... yes
> checking compiler flags for building loadable modules... -shared
> checking for library containing gethostbyname... none required
> checking for library containing connect... none required
> checking whether accept() uses socklen_t... yes
> checking for large file support in C library... yes
> checking for off_t... yes
> checking size of off_t... 8
> checking sys/mman.h usability... yes
> checking sys/mman.h presence... yes
> checking for sys/mman.h... yes
> checking for stdlib.h... (cached) yes
> checking for unistd.h... (cached) yes
> checking for getpagesize... yes
> checking for working mmap... no
> checking for madvise... no
> checking whether madvise is declared... no
> checking linux/if_tun.h usability... no
> checking linux/if_tun.h presence... no
> checking for linux/if_tun.h... no
> checking net/if_tun.h usability... no
> checking net/if_tun.h presence... no
> checking for net/if_tun.h... no
> checking net/bpf.h usability... no
> checking net/bpf.h presence... no
> checking for net/bpf.h... no
> checking for pcap.h... not found
> configure: WARNING:
> =========================================
>  
> pcap.h and/or -lpcap not found; user-level driver can't steal packets.
>  
> =========================================
> checking whether struct if_data has ifi_datalen... no
> checking expat.h usability... yes
> checking expat.h presence... yes
> checking for expat.h... yes
> checking for XML_ParserCreateNS in -lexpat... yes
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether install accepts -C... no
> checking for GNU make... make
> checking for working autoconf... missing
> checking for perl5... no
> checking for perl... perl
> checking for working makeinfo... found
> checking for working texi2dvi... found
> checking for install-info... /usr/bin/install-info
> checking for working install-info... found
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating click-buildtool
> config.status: creating click-compile
> config.status: creating config.mk
> config.status: creating installch
> config.status: creating tools/Makefile
> config.status: creating tools/lib/Makefile
> config.status: creating doc/Makefile
> config.status: creating etc/libclick/Makefile
> config.status: creating etc/pkg-config.mk
> config.status: creating bsdmodule/Makefile
> config.status: creating linuxmodule/Makefile
> config.status: creating ns/Makefile
> config.status: creating userlevel/Makefile
> config.status: creating tools/click-align/Makefile
> config.status: creating tools/click-check/Makefile
> config.status: creating tools/click-combine/Makefile
> config.status: creating tools/click-devirtualize/Makefile
> config.status: creating tools/click-fastclassifier/Makefile
> config.status: creating tools/click-flatten/Makefile
> config.status: creating tools/click-mkmindriver/Makefile
> config.status: creating tools/click-pretty/Makefile
> config.status: creating tools/click-undead/Makefile
> config.status: creating tools/click-xform/Makefile
> config.status: creating tools/click2xml/Makefile
> config.status: creating tools/click-install/Makefile
> config.status: creating include/click/config.h
> config.status: creating include/click/pathvars.h
> config.status: creating include/click/config-bsdmodule.h
> config.status: creating include/click/config-linuxmodule.h
> config.status: creating include/click/config-ns.h
> config.status: creating include/click/config-userlevel.h
> config.status: executing default-1 commands
>  
>  
> In particular I think these lines
> configure: WARNING:
> ========================================= 
>  
> pcap.h and/or -lpcap not found; user-level driver can't steal packets.
>  
> =========================================
>  
> were important. After this I changed to the ns directory and typed make. The
> following was the output:
> $ make
> echo "ns userlevel  app aqm ethernet icmp ip standard tcpudp" |
> ../click-buildtool findelem -r ns -p .. > elements.conf
> ../click-buildtool elem2make -x "addressinfo.o alignmentinfo.o
> errorelement.o portinfo.o scheduleinfo.o" < elements.conf > elements.mk
>   CXX ../lib/string.cc
> ../lib/string.cc:1: warning: -fpic ignored for target (all code is position
> independent)
>   CXX ../lib/straccum.cc
> ../lib/straccum.cc:1: warning: -fpic ignored for target (all code is
> position independent)
>   CXX ../lib/nameinfo.cc
> ../lib/nameinfo.cc:1: warning: -fpic ignored for target (all code is
> position independent)
> In file included from ../include/click/packet.hh:5,
>                  from ../include/click/element.hh:7,
>                  from ../include/click/router.hh:4,
>                  from ../lib/nameinfo.cc:23:
> ../include/click/ip6address.hh: In member function `unsigned int*
> Click::IP6Address::data32()':
> ../include/click/ip6address.hh:28: error: invalid conversion from
> `uint32_t*' to `unsigned int*'
> ../include/click/ip6address.hh: In member function `const unsigned int*
> Click::IP6Address::data32() const':
> ../include/click/ip6address.hh:29: error: invalid conversion from `const
> uint32_t*' to `const unsigned int*'
> ../include/click/ip6address.hh: In member function `Click::IP6Address&
> Click::IP6Address::operator&=(const click_in6_addr&)':
> ../include/click/ip6address.hh:119: error: invalid conversion from `const
> uint32_t*' to `const unsigned int*'
> 
>  
>  
> I was wondering does anyone know what the problem could be?
>  
> Thanks in advance for any help, and of course merry christmas to you all.
>  
> Cheers
> Brian
> 
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> 

-- 
*******************************
Michael J. Neufeld, Ph.D.
Network Scientist
BBN Technologies
10 Moulton St.
Cambridge, MA 02138
http://www.bbn.com
*******************************


More information about the click mailing list