Coder Social home page Coder Social logo

kohler / click Goto Github PK

View Code? Open in Web Editor NEW
730.0 77.0 321.0 23.47 MB

The Click modular router: fast modular packet processing and analysis

License: Other

Java 0.44% C 28.14% C++ 61.55% Perl 1.86% Shell 2.17% Makefile 1.51% TeX 0.02% XSLT 0.04% Click 1.06% Roff 0.33% M4 0.05% Ruby 0.35% Hack 2.29% Vim Script 0.18%

click's Introduction

The Click Modular Router

build status

Click is a modular router toolkit. To use it you'll need to know how to compile and install the software, how to write router configurations, and how to write new elements. Our ACM Transactions on Computer Systems paper will give you a feeling for what Click can do. Using the optimization tools under CLICKDIR/tools, you can get even better performance than that paper describes.

Contents

Subdirectory Description
CLICKDIR/apps Click-related applications
CLICKDIR/apps/clicky GTK+ program for displaying configurations and interacting with drivers
CLICKDIR/apps/csclient Command-line program for interacting with drivers
CLICKDIR/apps/ClickController Java program for interacting with drivers
CLICKDIR/conf example configuration files
CLICKDIR/doc documentation
CLICKDIR/elements element source code
CLICKDIR/elements/analysis …for trace analysis and manipulation
CLICKDIR/elements/app …for application-level protocols (e.g. FTP)
CLICKDIR/elements/aqm …for active queue management (e.g. RED)
CLICKDIR/elements/ethernet …for Ethernet
CLICKDIR/elements/etherswitch …for an Ethernet switch
CLICKDIR/elements/grid …for the Grid mobile ad-hoc wireless network protocols
CLICKDIR/elements/icmp …for ICMP
CLICKDIR/elements/ip …for IPv4
CLICKDIR/elements/ip6 …for IPv6
CLICKDIR/elements/ipsec …for IPsec
CLICKDIR/elements/linuxmodule …for the Linux kernel driver
CLICKDIR/elements/local …for your own elements (empty)
CLICKDIR/elements/ns …for the NS network simulator driver
CLICKDIR/elements/radio …for communicating with wireless radios
CLICKDIR/elements/standard …for simple protocol-generic elements
CLICKDIR/elements/tcpudp …for TCP and UDP
CLICKDIR/elements/test …for regression tests
CLICKDIR/elements/threads …for thread management
CLICKDIR/elements/userlevel …for the user-level driver
CLICKDIR/elements/wifi …for 802.11
CLICKDIR/etc/samplepackage sample source code for Click element package
CLICKDIR/etc/samplellrpc sample source code for reading Click LLRPCs
CLICKDIR/etc/diagrams files for drawing Click diagrams
CLICKDIR/etc/libclick files for standalone user-level Click library
CLICKDIR/include/click common header files
CLICKDIR/include/clicknet header files defining network headers
CLICKDIR/lib common non-element source code
CLICKDIR/linuxmodule Linux kernel module driver
CLICKDIR/ns NS driver (integrates with the NS simulator)
CLICKDIR/test regression tests
CLICKDIR/tools Click tools
CLICKDIR/tools/lib …common code for tools
CLICKDIR/tools/click-align …enforces alignment for non-x86 machines
CLICKDIR/tools/click-combine …merges routers into combined configuration
CLICKDIR/tools/click-devirtualize …removes virtual functions from source
CLICKDIR/tools/click-fastclassifier …specializes Classifiers into C++ code
CLICKDIR/tools/click-mkmindriver …build environments for minimal drivers
CLICKDIR/tools/click-install …installs configuration into kernel module
CLICKDIR/tools/click-pretty …pretty-prints Click configuration as HTML
CLICKDIR/tools/click-undead …removes dead code from configurations
CLICKDIR/tools/click-xform …pattern-based configuration optimizer
CLICKDIR/tools/click2xml …convert Click language <-> XML
CLICKDIR/userlevel user-level driver

Documentation

The INSTALL.md file in this directory contains installation instructions. User documentation is in the doc subdirectory, which contains manual pages for the Click language, the Linux kernel module, and several tools; it also has a script that generates manual pages for many of the elements distributed in this package. To install these manual pages so you can read them, follow the INSTALL.md instructions, but make install-man instead of make install.

Running a Click Router

Before playing with a Click router, you should get familiar with the Click configuration language. You use this to tell Click how to process packets. The language describes a graph of “elements,” or packet processing modules. See the doc/click.5 manual page for a detailed description, or check the conf directory for some simple examples.

Click can be compiled as a user-level program or as a kernel module for Linux. Either driver can receive and send packets; the kernel module directly interacts with device drivers, while the user-level driver uses packet sockets (on Linux) or the pcap library (everywhere else).

User-Level Program

Run the user-level program by giving it the name of a configuration file: click CONFIGFILE.

Linux Kernel Module

See the doc/click.o.8 manual page for a detailed description. To summarize, install a configuration by running click-install CONFIGFILE. This will also install the kernel module if necessary and report any errors to standard error. (You must run make install before click-install will work.)

NS-3 Simulator

See INSTALL.md for more information. Further information on NS-3 and Click is available in the NS-3 manual.

NS-2 Simulator

See INSTALL.md for more information. Once a Click-enabled version of NS-2 is installed, the 'ns' command is able to run Click scripts as part of a normal NS-2 simulation.

DPDK

Click’s user-level driver supports DPDK. Before running in DPDK mode, the DPDK must be set up properly as per the DPDK documentation. This mainly involves setting up huge pages and binding some NIC to the DPDK userspace driver. E.g., to set up huge pages:

echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge

On x86_64 you might achieve better performances with 1G huge pages, which must be enabled through the kernel cmdline.

Intel NICs use entierly userspace drivers and needs to be bound to DPDK. Eg., to bind eth0 to DPDK:

modprobe uio_pci_generic
dpdk/tools/dpdk_nic_bind.py --bind=uio_pci_generic eth0

Refer to the DPDK documentation for more details about huge pages and binding devices.

Unlike most other DPDK applications, you have to pass DPDK EAL arguments between --dpdk and --, then pass Click arguments. As the DPDK EAL will handle thread management instead of Click, Click's -j/--threads argument will be disabled when --dpdk is active. You should give at least the following two EAL arguments for best practice. This is required with older versions of DPDK, even if running on a single core:

  • -c COREMASK: hexadecimal bitmask of cores to run on
  • -n NUM: number of memory channels

If -c or -l is not provided, DPDK will use all available cores.

A sample command to run a click configuration on 4 cores on a computer with 4 memory channels and listen for control connections on TCP port 8080 would be:

click --dpdk -c 0xf -n 4 -- -p 8080 configfile

If Click is launched without --dpdk, it will run in normal userlevel mode without involving DPDK EAL, meaning that any DPDK element will not work.

Configurations

Some sample configurations are included in the conf directory, including a Perl script that generated the IP router configurations used in our TOCS paper (conf/make-ip-conf.pl) and a set of patterns for the click-xform pattern optimizer (conf/ip.clickpat).

Adding Your Own Elements

Please see the FAQ in this directory to learn how to add elements to Click.

Copyright and License

Most of Click is distributed under the Click license, a version of the MIT License. See the LICENSE file for details. Each source file should identify its license. Source files that do not identify a specific license are covered by the Click license.

Parts of Click are distributed under different licenses. The specific licenses are listed below.

  • drivers/e1000*, etc/linux-*-patch, linuxmodule/proclikefs.c: These portions of the Click software are derived from the Linux kernel, and are thus distributed under the GNU General Public License, version 2. The GNU General Public License is available via the Web and in etc/COPYING.

  • include/click/bigint.hh: This portion of the Click software derives from the GNU Multiple Precision Arithmetic Library, and is thus distributed under the GNU Lesser General Public License, version 3. This license is available via the Web and in etc/COPYING.lgpl.

Element code that uses only Click’s interfaces will not be derived from the Linux kernel. (For instance, those interfaces have multiple implementations, including some that run at user level.) Thus, for element code that uses only Click’s interfaces, the BSD-like Click license applies, not the GPL or the LGPL.

Bugs, Questions, etc.

We welcome bug reports, questions, comments, code, whatever you'd like to give us. GitHub issues are the best way to stay in touch.

click's People

Contributors

amckinley03 avatar asmuth avatar bartbraem avatar bcronje avatar cffs avatar ckreibich avatar fmanco avatar gdistasi avatar hacklschorsch avatar hsmtkk avatar hwl-robat avatar jensdewit avatar joonwpark avatar jpemartins avatar kohler avatar kwi-dk avatar lalithsuresh avatar larsbro avatar peterhurley-meraki avatar pnr avatar rchertov avatar rommon avatar schmittner avatar springbo avatar srcman avatar tbarbette avatar teknoraver avatar tumatik avatar vlolteanu avatar watsonmf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

click's Issues

click on netmap

Hi, guys,
Tonight, i was working on running click-netmap. This is my problem when i run my configuration.
netmap-result

Below is my configuration code:
baidushurufa_2015-5-24_21-57-15

Below is the steps which i install netmap and click-netmap:
baidushurufa_2015-5-24_21-57-33

Issue with missing PCAP magic

I've been generating a PCAP trace with libpcap 1.5.3 and reading it as follows to sort it:

ipsumdump -r - --collate -w - < trace.pcap > sorted.pcap

It gives me a magic error:

config:1: While initializing ‘src0 :: FromDump(<stdin>)’:
<stdin>:   not a tcpdump file (bad magic number)

Looking the beginning of my generated trace with xxd, I get this:

0000000: 4d3c b2a1 0200 0400 0000 0000 0000 0000  M<..............
0000010: ffff 0000 6500 0000 30a5 044b 3085 3812  ....e...0..K0.8.

So the magic number is 0xa1b23c4d. In fakepcap.hh, you define:

#define FAKE_PCAP_MAGIC             0xA1B2C3D4
#define FAKE_MODIFIED_PCAP_MAGIC    0xA1B2CD34

If the magic does not equal either value, ipsumdump produces the above error. According to the wireshark wiki, the magic I get should also be okay:

[..] the writing application writes 0xa1b23c4d, with the two nibbles of the two lower-order bytes swapped, and the reading application will read either 0xa1b23c4d (identical) or 0x4d3cb2a1 (swapped).

This suggest to me that you should add another constant to allow the version with the lower-order bytes swapped, maybe FAKE_PCAP_MAGIC_SWAPPED. I'm happy to issue a pull request if you greenlight this change.

Lastest build not detected by NS3

I used the latest build to test for #196. While it does compile and make succeeds when cd'ing back into the main ns3 directory to configure it does not detect that the click library has been installed.

I went back to the lastest revision I could find that built and was detected properly with: 392b1f6

Ran the old build, which was detected, then ran the same commands for the latest build which fails to be detected by ns3.

Clicky: "Connection error: Broken pipe"

When I use Clicky (on one of the sample .click files, for instance), the following happens: when the configuration is running, and I try to open the element sidebar or switch it to a different component or basically do anything that changes its visual structure, I get the error "Connection error: Broken pipe" and the configuration stops running.

I'm using Debian jessie, 64 bit.

Make fails with scope error - Ubuntu Trusty

make[2]: Entering directory `/usr/src/linux-headers-3.13.0-24-generic'
  CXX [M] string.o
In file included from /home/varad/contain/click/include/click-linuxmodule/include2/linux/vtime.h:9:0,
                 from /home/varad/contain/click/include/click-linuxmodule/include2/linux/hardirq.h:12,
                 from /home/varad/contain/click/linuxmodule/../include/click/glue.hh:31,
                 from /home/varad/contain/click/linuxmodule/../include/click/atomic.hh:5,
                 from /home/varad/contain/click/linuxmodule/../include/click/string.hh:5,
                 from /home/varad/contain/click/linuxmodule/../lib/string.cc:23:
/home/varad/contain/click/include/click-linuxmodule/include2/linux/context_tracking_state.h: In function ‘bool context_tracking_in_user()’:
/home/varad/contain/click/include/click-linuxmodule/include2/linux/context_tracking_state.h:32:52: error: ‘IN_USER’ was not declared in this scope
  return __this_cpu_read(context_tracking.state) == IN_USER;
                                                    ^
make[3]: *** [/home/varad/contain/click/linuxmodule/string.o] Error 1
make[2]: *** [_module_/home/varad/contain/click/linuxmodule] Error 2

Is there a fix available for this issue? The issue is because of enums wrapped in structs are not visible in global scope (in C++).

Additionally, this header 'context_tracking_state.h' was added in August 2013 in the kernel source.

Running maz-nat in userspace

Hi Eddie,
I need to run maz-nat in userspace and I'm having a problem with TCP. Yes, I know kernel space gives much much better performance. But we are in the process of integrating Click with another project and we must run Click in userspce.

Using the same configuration file in Click repo, I could use it in kernelspace with full link BW. When I switched to userspace, I had to modify the configuration file by changing ToHost element to ToHost(tap0) since the first one only works in linuxmode. With theses changes, I can only test iperf in UDP between two end hosts and of course click running maz-nat in a machine resides in the middle.

Now, the only way I could make the two end hosts reach each other with tcp is by disabling ARP in the interfaces in the machine running click. When ARP is off, Click seems to respond to arp queries. I wrote a simple tcp client/server program and was able to connect them and send some packets between them (through click-nat of course).

The main problem is when I want to run tcp iperf. When the connection is established between the two ends, Click shows this error "CheckIPHeader@37: IP header check failed: bad IP length".
After the test is done. Both ends report BW with 70Kbit. Which is about one packet.
Looking at Wireshark at the machine running NAT, it seems that Client keep retransmitting a packet over and over.

I am guessing the problem is related to ARP since it is the only thing changed in config file and also the tcp handshake since click shows the error above.

Any suggestions?

Thanks alot

Murad

Click on linux-3.16.7

Dear all,

I would like to run click (kernel module) on an APU (pc engines) with voyage 0.10.0.
Voyage 0.10.0 comes with kernel 3.16.7 but I was unable to build click against this kernel due to a kernel header errors related to linuxmodule/fixincludes.pl. (first error in config.log unable to find kconfig.h)
I fixed some of the errors by adding symbolic links in the linux include dir.
After three attempts I've got a bad feeling about my approach...
Click perfectly builds against 3.13.

Does somebody has more insights of what might have changed in the kernel?

Thanks,

Bart

Errors and warnings not being printed when using live_reconfigure?

Hi, I'm currently adding some live_reconfigure functionality to the RoundRobinIPMapper module, and noticed that errors and warnings are not being printed to console when I do a live_reconfigure. Is this expected behaviour? I've looked through the docs for ErrorHandler and live_reconfigure, and haven't found the answer. In the meanwhile, I've just replaced the error warnings with click_chatter functions.

My changes to RoundRobinIPMapper are fairly simple, I've just added a new live_reconfigure function that pops off the patterns from the previous config.

Weird memset argument in RangeIPLookup::flush_table()

In elements/ip/rangeiplookup.cc, it says

void
RangeIPLookup::flush_table()
{
    _helper.flush();
    memset(_range_base, 0, sizeof(_range_base));
    memset(_range_len, 0, sizeof(_range_len));
    memset(_range_t, 0, sizeof(_range_t));
}

Since those members are pointers, memset is clearing something the size of the pointer, not an element in the underlying array. Is this the intention? or should the code be

void
RangeIPLookup::flush_table()
{
    _helper.flush();
    memset(_range_base, 0, sizeof(*_range_base));
    memset(_range_len, 0, sizeof(*_range_len));
    memset(_range_t, 0, sizeof(*_range_t));
}

or

void
RangeIPLookup::flush_table()
{
    _helper.flush();
    memset(_range_base, 0, (1 << KICKSTART_BITS) * sizeof(*_range_base));
    memset(_range_len, 0, (1 << KICKSTART_BITS) * sizeof(*_range_len));
    memset(_range_t, 0, RANGES_MAX * sizeof(*_range_t));
}

BoundedIntArg does not handle types beyond 'int'

uint32_t myval;
uint32_t max_allowed = 100;
if (!BoundedIntArg(0, max_allowed).parse(mystr, myval))
    return errh->error("bad number");

gives compiler warnings, because BoundedIntArg always uses int to store the lower/upper bounds, and I suspect that it would have issues with very large unsigned bounds.

Compile error on ARM

When compiling for an ARM target using the OpenWRT toolchain I get the following compile error. Seems to be linked to the static_assert call made in the Timer constructor.

../lib/timer.cc: In constructor 'Timer::Timer()':
../lib/timer.cc:198:5: error: duplicate case value
../lib/timer.cc:198:5: error: previously used here

Compiling fails when nsclick is enabled

If I configure click with "--enable-nsclick", compiling fails with the following error message:

  CXX ../elements/tcpudp/fasttcpflows.cc
In file included from ../elements/tcpudp/fasttcpflows.cc:20:0:
../elements/tcpudp/fasttcpflows.hh:60:37: error: expected class-name before ‘{’ token
 class FastTCPFlows : public Element {
                                     ^
../elements/tcpudp/fasttcpflows.hh:72:3: error: ‘click_jiffies_t’ does not name a type
   click_jiffies_t _first;
   ^
../elements/tcpudp/fasttcpflows.hh:73:3: error: ‘click_jiffies_t’ does not name a type
   click_jiffies_t _last;
   ^
../elements/tcpudp/fasttcpflows.hh:76:5: error: ‘Packet’ does not name a type
     Packet *syn_packet;
     ^
../elements/tcpudp/fasttcpflows.hh:77:5: error: ‘Packet’ does not name a type
     Packet *fin_packet;
     ^
../elements/tcpudp/fasttcpflows.hh:78:5: error: ‘Packet’ does not name a type
     Packet *data_packet;
     ^
../elements/tcpudp/fasttcpflows.hh:83:3: error: ‘Packet’ does not name a type
   Packet *get_packet();
   ^
../elements/tcpudp/fasttcpflows.hh:89:3: error: ‘GapRate’ does not name a type
   GapRate _rate;
   ^
../elements/tcpudp/fasttcpflows.hh:101:17: error: ‘Vector’ has not been declared
   int configure(Vector<String> &, ErrorHandler *) CLICK_COLD;
                 ^
../elements/tcpudp/fasttcpflows.hh:101:23: error: expected ‘,’ or ‘...’ before ‘<’ token
   int configure(Vector<String> &, ErrorHandler *) CLICK_COLD;
                       ^
../elements/tcpudp/fasttcpflows.hh:102:18: error: ‘ErrorHandler’ has not been declared
   int initialize(ErrorHandler *) CLICK_COLD;
                  ^
../elements/tcpudp/fasttcpflows.hh:103:16: error: ‘CleanupStage’ has not been declared
   void cleanup(CleanupStage) CLICK_COLD;
                ^
../elements/tcpudp/fasttcpflows.hh:104:3: error: ‘Packet’ does not name a type
   Packet *pull(int);
   ^
../elements/tcpudp/fasttcpflows.hh:109:3: error: ‘click_jiffies_t’ does not name a type
   click_jiffies_t first() { return _first; }
   ^
../elements/tcpudp/fasttcpflows.hh:110:3: error: ‘click_jiffies_t’ does not name a type
   click_jiffies_t last() { return _last; }
   ^
../elements/tcpudp/fasttcpflows.hh: In member function ‘const char* FastTCPFlows::port_count() const’:
../elements/tcpudp/fasttcpflows.hh:98:43: error: ‘PORTS_0_1’ was not declared in this scope
   const char *port_count() const { return PORTS_0_1; }
                                           ^
../elements/tcpudp/fasttcpflows.hh: In member function ‘const char* FastTCPFlows::processing() const’:
../elements/tcpudp/fasttcpflows.hh:99:43: error: ‘PULL’ was not declared in this scope
   const char *processing() const { return PULL; }
                                           ^
../elements/tcpudp/fasttcpflows.cc: In constructor ‘FastTCPFlows::FastTCPFlows()’:
../elements/tcpudp/fasttcpflows.cc:33:3: error: ‘_first’ was not declared in this scope
   _first = _last = 0;
   ^
../elements/tcpudp/fasttcpflows.cc:33:12: error: ‘_last’ was not declared in this scope
   _first = _last = 0;
            ^
../elements/tcpudp/fasttcpflows.cc: At global scope:
../elements/tcpudp/fasttcpflows.cc:42:25: error: ‘int FastTCPFlows::configure’ is not a static data member of ‘class FastTCPFlows’
 FastTCPFlows::configure(Vector<String> &conf, ErrorHandler *errh)
                         ^
../elements/tcpudp/fasttcpflows.cc:42:25: error: ‘Vector’ was not declared in this scope
../elements/tcpudp/fasttcpflows.cc:42:25: note: suggested alternative:
In file included from ../include/click/element.hh:5:0,
                 from ../elements/tcpudp/fasttcpflows.hh:53,
                 from ../elements/tcpudp/fasttcpflows.cc:20:
../include/click/vector.hh:111:7: note:   ‘Click::Vector’
 class Vector {
       ^
../elements/tcpudp/fasttcpflows.cc:42:32: error: ‘String’ was not declared in this scope
 FastTCPFlows::configure(Vector<String> &conf, ErrorHandler *errh)
                                ^
../elements/tcpudp/fasttcpflows.cc:42:32: note: suggested alternative:
In file included from ../include/click/element.hh:6:0,
                 from ../elements/tcpudp/fasttcpflows.hh:53,
                 from ../elements/tcpudp/fasttcpflows.cc:20:
../include/click/string.hh:18:7: note:   ‘Click::String’
 class String { public:
       ^
../elements/tcpudp/fasttcpflows.cc:42:41: error: ‘conf’ was not declared in this scope
 FastTCPFlows::configure(Vector<String> &conf, ErrorHandler *errh)
                                         ^
../elements/tcpudp/fasttcpflows.cc:42:47: error: ‘ErrorHandler’ was not declared in this scope
 FastTCPFlows::configure(Vector<String> &conf, ErrorHandler *errh)
                                               ^
../elements/tcpudp/fasttcpflows.cc:42:47: note: suggested alternative:
In file included from ../elements/tcpudp/fasttcpflows.cc:23:0:
../include/click/error.hh:90:7: note:   ‘Click::ErrorHandler’
 class ErrorHandler { public:
       ^
../elements/tcpudp/fasttcpflows.cc:42:61: error: ‘errh’ was not declared in this scope
 FastTCPFlows::configure(Vector<String> &conf, ErrorHandler *errh)
                                                             ^
../elements/tcpudp/fasttcpflows.cc:42:65: error: expression list treated as compound expression in initializer [-fpermissive]
 FastTCPFlows::configure(Vector<String> &conf, ErrorHandler *errh)
                                                                 ^
../elements/tcpudp/fasttcpflows.cc:43:1: error: expected ‘,’ or ‘;’ before ‘{’ token
 {
 ^
elements.mk:362: recipe for target 'fasttcpflows.o' failed
make[1]: *** [fasttcpflows.o] Error 1
make[1]: Leaving directory '/data/nsclick/lib/click-master/ns'
Makefile:55: recipe for target 'ns' failed
make: *** [ns] Error 2

Kernel 3.14 compilation problem

Hi,

I saw a commit which should update the compatibility to kernel 3.15, so I imagine it should work with 3.14 (tried with gcc 4.8 and 4.9) . But I've got this compilation problem :

$ make
make[1]: Entering directory `/home/tom/click-kernel/linuxmodule'
echo "linuxmodule  analysis app aqm ethernet icmp ip simple standard tcpudp test threads" | ../click-buildtool findelem -r linuxmodule -p .. -X ./elements.exclude --checksum elements.csmk > elements.conf
../click-buildtool elem2make --linux -x "addressinfo.o alignmentinfo.o errorelement.o portinfo.o scheduleinfo.o" < elements.conf > elements.mk
../click-buildtool elem2export < elements.conf > elements.cc
make -C /usr/src/linux-source-3.14/ M=/home/tom/click-kernel/linuxmodule  modules
make[2]: Entering directory `/usr/src/linux-source-3.14'
  CC [M] crc32.o
  CC [M] in_cksum.o
  CXX [M] string.o
  CXX [M] straccum.o
  CXX [M] nameinfo.o
In file included from /home/tom/click-kernel/include/click-linuxmodule/include2/linux/kernel.h:18:0,
                 from /home/tom/click-kernel/linuxmodule/../include/click/glue.hh:23,
                 from /home/tom/click-kernel/linuxmodule/../include/click/array_memory.hh:3,
                 from /home/tom/click-kernel/linuxmodule/../include/click/vector.hh:4,
                 from /home/tom/click-kernel/linuxmodule/../include/click/args.hh:5,
                 from /home/tom/click-kernel/linuxmodule/../include/click/nameinfo.hh:4,
                 from /home/tom/click-kernel/linuxmodule/../lib/nameinfo.cc:21:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:237:2: error: expected identifier before string constant
  DEPRECATED = h_deprecated,
  ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:237:2: error: expected ‘}’ before string constant
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:237:2: error: expected unqualified-id before string constant
In file included from /home/tom/click-kernel/linuxmodule/../include/click/element.hh:8:0,
                 from /home/tom/click-kernel/linuxmodule/../include/click/router.hh:4,
                 from /home/tom/click-kernel/linuxmodule/../lib/nameinfo.cc:24:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘const String& Handler::name() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:64:9: error: ‘_name’ was not declared in this scope
  return _name;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘uint32_t Handler::flags() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:71:9: error: ‘_flags’ was not declared in this scope
  return _flags;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘void* Handler::user_data(int) const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:77:25: error: ‘_write_user_data’ was not declared in this scope
  return op == h_write ? _write_user_data : _read_user_data;
                         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:77:44: error: ‘_read_user_data’ was not declared in this scope
  return op == h_write ? _write_user_data : _read_user_data;
                                            ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘void* Handler::read_user_data() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:82:9: error: ‘_read_user_data’ was not declared in this scope
  return _read_user_data;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘void* Handler::write_user_data() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:87:9: error: ‘_write_user_data’ was not declared in this scope
  return _write_user_data;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::readable() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:98:9: error: ‘_flags’ was not declared in this scope
  return _flags & h_read;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::read_param() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:104:9: error: ‘_flags’ was not declared in this scope
  return _flags & h_read_param;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::read_visible() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:113:10: error: ‘_flags’ was not declared in this scope
  return (_flags & (h_read | h_read_private)) == h_read;
          ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::writable() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:118:9: error: ‘_flags’ was not declared in this scope
  return _flags & h_write;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::write_visible() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:127:10: error: ‘_flags’ was not declared in this scope
  return (_flags & (h_write | h_write_private)) == h_write;
          ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::allow_concurrent_handlers() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:138:17: error: ‘_flags’ was not declared in this scope
         return (_flags & h_nonexclusive);
                 ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::allow_concurrent_threads() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:144:17: error: ‘_flags’ was not declared in this scope
         return (_flags & h_nonexclusive);
                 ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In member function ‘bool Handler::raw() const’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:166:9: error: ‘_flags’ was not declared in this scope
  return _flags & h_raw;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In static member function ‘static const Handler* Handler::blank_handler()’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:225:9: error: ‘the_blank_handler’ was not declared in this scope
  return the_blank_handler;
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: At global scope:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:247:14: error: ‘h_exclusive’ was not declared in this scope
  EXCLUSIVE = h_exclusive,
              ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:248:17: error: ‘h_nonexclusive’ was not declared in this scope
  NONEXCLUSIVE = h_nonexclusive
                 ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:259:64: error: non-member function ‘String __call_read(Element*, void*)’ cannot have cv-qualifier
     inline String __call_read(Element *e, void *new_user_data) const {
                                                                ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: In function ‘String __call_read(Element*, void*)’:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:261:9: error: ‘_read_hook’ was not declared in this scope
  return _read_hook.r(e, new_user_data);
         ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh: At global scope:
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:265:3: error: expected unqualified-id before ‘private’
   private:
   ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:271:7: warning: anonymous type with no linkage used to declare variable ‘<anonymous union> _read_hook’ with linkage
     } _read_hook;
       ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:275:7: warning: anonymous type with no linkage used to declare variable ‘<anonymous union> _write_hook’ with linkage
     } _write_hook;
       ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:284:13: error: expected unqualified-id before ‘const’
     Handler(const String & = String());
             ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:284:13: error: expected ‘)’ before ‘const’
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:287:46: error: non-member function ‘bool compatible(const Handler&)’ cannot have cv-qualifier
     inline bool compatible(const Handler &x) const;
                                              ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:289:5: error: ‘friend’ used outside of class
     friend class Router;
     ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:291:1: error: expected declaration before ‘}’ token
 };
 ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:271:7: warning: ‘_read_hook’ defined but not used [-Wunused-variable]
     } _read_hook;
       ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:275:7: warning: ‘_write_hook’ defined but not used [-Wunused-variable]
     } _write_hook;
       ^
/home/tom/click-kernel/linuxmodule/../include/click/handler.hh:282:27: warning: ‘the_blank_handler’ defined but not used [-Wunused-variable]
     static const Handler *the_blank_handler;
                           ^
make[5]: *** [/home/tom/click-kernel/linuxmodule/nameinfo.o] Error 1
make[4]: *** [_module_/home/tom/click-kernel/linuxmodule] Error 2
make[3]: *** [sub-make] Error 2
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/linux-source-3.14'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/tom/click-kernel/linuxmodule'
make: *** [linuxmodule] Error 2

Thanks for the help,

Tom

Error during build.

Hi all,

just did a git pull. With this config ./configure --enable-linuxmodule --enable-userlevel --enable-all-elements --enable-wifi

I've got this error during the make:
...
CXX [M] config.o
CXX [M] sched.o
CXX [M] module.o
CXX [M] clickfs.o
CXX [M] skbmgr.o
CXX [M] elements.o
/usr/local/11ac/click/linuxmodule/skbmgr.cc:229:57: error: no ‘unsigned int RecycledSkbPool::size_to_lower_bucket_size(unsigned int)’ member function declared in class ‘RecycledSkbPool’
RecycledSkbPool::size_to_lower_bucket_size(unsigned size)
^
make[3]: *** [/usr/local/11ac/click/linuxmodule/skbmgr.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from /usr/local/11ac/click/linuxmodule/../elements/grid/dsdvroutetable.hh:7:0,
from /usr/local/11ac/click/linuxmodule/elements.cc:50:
/usr/local/11ac/click/linuxmodule/../elements/grid/grid.hh: In member function ‘String grid_location::s() const’:
/usr/local/11ac/click/linuxmodule/../elements/grid/grid.hh:62:65: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘int32_t {aka int}’ [-Wformat=]
snprintf(buf, 255, "%ld,%ld,%ld", lat_ms(), lon_ms(), h_mm());
^
/usr/local/11ac/click/linuxmodule/../elements/grid/grid.hh:62:65: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘int32_t {aka int}’ [-Wformat=]
/usr/local/11ac/click/linuxmodule/../elements/grid/grid.hh:62:65: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘int32_t {aka int}’ [-Wformat=]
make[2]: *** [module/usr/local/11ac/click/linuxmodule] Error 2
make[2]: Leaving directory /usr/src/linux-headers-3.13.0-33-generic' make[1]: *** [all] Error 2 make[1]: Leaving directory/usr/local/11ac/click/linuxmodule'
make: *** [linuxmodule] Error 2

Thanks in advance,

Bart

Error while configure . Please help me

I have already loaded click kernel but unfortunately i it not working now. I tried to reinstall but it is showing error message

./configure --enable-linuxmodule --disable-userlevel
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking for g++... g++
checking for gcc... (cached) gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
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 ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/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 sys/types.h... (cached) yes
checking for unistd.h... (cached) yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for endian.h... yes
checking for machine/endian.h... no
checking for byteswap.h... yes
checking for strings.h... (cached) yes
checking for time.h... yes
checking for termio.h... yes
checking for netdb.h... yes
checking for sys/event.h... no
checking for pwd.h... yes
checking for grp.h... yes
checking for execinfo.h... yes
checking for poll.h... yes
checking for dlfcn.h... yes
checking for sys/mman.h... yes
checking for stdlib.h... (cached) yes
checking for sys/param.h... yes
checking for ifaddrs.h... yes
checking for linux/if_tun.h... yes
checking for net/if_dl.h... no
checking for net/if_tap.h... no
checking for net/if_tun.h... no
checking for net/if_types.h... no
checking for net/bpf.h... no
checking for netpacket/packet.h... yes
checking whether the C compiler accepts -W -Wall... yes
checking whether the C compiler accepts -Werror... yes
checking how to run the C preprocessor... gcc -E
checking for inline... inline
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether works... yes
checking whether the C++ compiler understands constexpr... no
checking whether the C++ compiler understands rvalue references... no
checking whether the C++ compiler understands static_assert... no
checking whether the C++ compiler understands template alias... no
checking whether the C++ compiler understands #pragma interface... yes
checking how to run the C++ preprocessor... g++ -E
checking for ar... ar
checking for ld... ld
checking for nm... nm
checking for objcopy... objcopy
checking for ranlib... ranlib
checking for strip... strip
checking whether we are compiling for Linux... yes
checking for strerror... yes
checking for random... yes
checking for snprintf... yes
checking for strnlen... yes
checking for strtof... yes
checking for strtold... yes
checking for strtoul... yes
checking for tcgetpgrp... yes
checking for vsnprintf... yes
checking size of int... 4
checking size of long... 8
checking size of size_t... 8
checking size of ptrdiff_t... 8
checking size of void *... 8
checking whether char is unsigned... no
checking whether machine is indifferent to alignment... yes
checking size of long long... 8
checking for long long... yes
checking for int64_t... yes
checking for uint64_t... yes
checking whether long and int64_t are the same type... yes
checking whether long long and int64_t are the same type... no
checking whether byte ordering is bigendian... no
checking whether signed right shift is arithmetic... yes
checking for addressable va_list type... no
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 __sync_synchronize... yes
checking whether __sync_synchronize supports arguments... no
checking for __has_trivial_copy... yes
checking for __thread storage class support... yes
checking for ffs... yes
checking for ffsl... yes
checking for ffsll... yes
checking size of struct timeval... 16
checking for struct timespec... yes
checking size of struct timespec... 16
checking whether clock_gettime is declared... yes
checking for library containing clock_gettime... none required
checking for clock_gettime... yes
checking whether <poll.h> is emulated... no
checking for pselect... yes
checking for sigaction... yes
checking for kqueue... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether linker accepts the -rdynamic flag... yes
checking compiler flags for building loadable modules... -shared
checking for large file support in C library... yes
checking size of off_t... 8
checking for getpagesize... yes
checking for working mmap... yes
checking for madvise... yes
checking whether madvise is declared... yes
checking for Linux System.map... /boot/System.map-3.16.0-31-generic
checking Linux version... 3.16.7
checking for Click Linux kernel extensions... no
checking for Click Linux kernel extensions for transmit notification... no
checking for read_net_skbcount kernel extension... no
checking for strlen kernel symbol... yes
checking for tulip_interrupt_hook kernel symbol... no
checking for files_lock kernel symbol... no
checking for files_lglock kernel symbol... no
checking for sb_lock kernel symbol... no
checking for dev_ioctl kernel symbol... no
checking for devinet_ioctl kernel symbol... no
checking for inet_ioctl kernel symbol... yes
checking for inet_ctl_sock_create kernel symbol... yes
checking for <linux/ktime.h>... yes
checking whether struct if_data has ifi_datalen... no
checking whether struct sockaddr_in has sin_len... no
checking expat.h usability... no
checking expat.h presence... no
checking for expat.h... no
checking for XML_ParserCreateNS in -lexpat... no
checking for Linux kernel compilation flags... -I./arch/x86/include -I/lib/modules/3.16.0-31-generic/build/arch/x86/include/generated -I/lib/modules/3.16.0-31-generic/build/include -I./arch/x86/include/uapi -I/lib/modules/3.16.0-31-generic/build/arch/x86/include/generated/uapi -I./include/uapi -I/lib/modules/3.16.0-31-generic/build/include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include
-I./arch/x86/include -I/lib/modules/3.16.0-31-generic/build/arch/x86/include/generated -I/lib/modules/3.16.0-31-generic/build/include -I./arch/x86/include/uapi -I/lib/modules/3.16.0-31-generic/build/arch/x86/include/generated/uapi -I./include/uapi -I/lib/modules/3.16.0-31-generic/build/include/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL

-D__KERNEL__ -Wall -Wundef -Wno-trigraphs -fno-strict-aliasing -Wno-format-security -m64 -mno-mmx -mno-sse -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fstack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO
-Wall -Wundef -Wno-trigraphs -fno-strict-aliasing -Wno-format-security -m64 -mno-mmx -mno-sse -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fstack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO
configure: making C++-safe versions of Linux kernel headers (may take a while)
checking for C++-includable kernel header files... no

configure: error:

Your Linux kernel header files cause errors when included by a C++ program.

Click modifies the Linux kernel's header files to make them work with
C++, using the program 'linuxmodule/fixincludes.pl'. It looks like
your kernel header files have features that 'linuxmodule/fixincludes.pl'
doesn't know how to fix. You can report this error to us on the Click
mailing list, or, even better, try to fix the error. See the config.log
file for more information on the error.

config.log

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by click configure 2.1, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ ./configure --enable-linuxmodule --disable-userlevel

---------

Platform.

---------

hostname = router1-HVM
uname -m = x86_64
uname -r = 3.16.0-31-generic
uname -s = Linux
uname -v = #41~14.04.1-Ubuntu SMP Wed Feb 11 19:30:13 UTC 2015

/usr/bin/uname -p = unknown
/bin/uname -X = unknown

/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown

PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /usr/games
PATH: /usr/local/games

-----------

Core tests.

-----------

configure:3290: checking build system type
configure:3304: result: x86_64-unknown-linux-gnu
configure:3324: checking host system type
configure:3337: result: x86_64-unknown-linux-gnu
configure:3357: checking target system type
configure:3370: result: x86_64-unknown-linux-gnu
configure:3441: checking for gcc
configure:3457: found /usr/bin/gcc
configure:3468: result: gcc
configure:3533: checking for g++
configure:3549: found /usr/bin/g++
configure:3560: result: g++
configure:3631: checking for gcc
configure:3658: result: gcc
configure:3887: checking for C compiler version
configure:3896: gcc --version >&5
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:3907: $? = 0
configure:3896: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre
--enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
configure:3907: $? = 0
configure:3896: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3907: $? = 4
configure:3896: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3907: $? = 4
configure:3927: checking whether the C compiler works
configure:3949: gcc conftest.c >&5
configure:3953: $? = 0
configure:4001: result: yes
configure:4004: checking for C compiler default output file name
configure:4006: result: a.out
configure:4012: checking for suffix of executables
configure:4019: gcc -o conftest conftest.c >&5
configure:4023: $? = 0
configure:4045: result:
configure:4067: checking whether we are cross compiling
configure:4075: gcc -o conftest conftest.c >&5
configure:4079: $? = 0
configure:4086: ./conftest
configure:4090: $? = 0
configure:4105: result: no
configure:4110: checking for suffix of object files
configure:4132: gcc -c conftest.c >&5
configure:4136: $? = 0
configure:4157: result: o
configure:4161: checking whether we are using the GNU C compiler
configure:4189: result: yes
configure:4198: checking whether gcc accepts -g
configure:4218: gcc -c -g conftest.c >&5
configure:4218: $? = 0
configure:4259: result: yes
configure:4276: checking for gcc option to accept ISO C89
configure:4339: gcc -c -g -O2 conftest.c >&5
configure:4339: $? = 0
configure:4352: result: none needed
configure:4378: checking how to run the C preprocessor
configure:4409: gcc -E conftest.c
configure:4409: $? = 0
configure:4423: gcc -E conftest.c
conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^
compilation terminated.
configure:4423: $? = 1
configure: failed program was:
| /* confdefs.h /
| #define PACKAGE_NAME "click"
| #define PACKAGE_TARNAME "click"
| #define PACKAGE_VERSION "2.1"
| #define PACKAGE_STRING "click 2.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define CLICK_VERSION "2.1"
| #define CLICK_VERSION_CODE CLICK_MAKE_VERSION_CODE(2,1,0)
| /
end confdefs.h. /
| #include <ac_nonexistent.h>
configure:4448: result: gcc -E
configure:4468: gcc -E conftest.c
configure:4468: $? = 0
configure:4482: gcc -E conftest.c
conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
compilation terminated.
configure:4482: $? = 1
configure: failed program was:
| /
confdefs.h /
| #define PACKAGE_NAME "click"
| #define PACKAGE_TARNAME "click"
| #define PACKAGE_VERSION "2.1"
| #define PACKAGE_STRING "click 2.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define CLICK_VERSION "2.1"
| #define CLICK_VERSION_CODE CLICK_MAKE_VERSION_CODE(2,1,0)
| /
end confdefs.h. /
| #include <ac_nonexistent.h>
configure:4511: checking for grep that handles long lines and -e
configure:4569: result: /bin/grep
configure:4574: checking for egrep
configure:4636: result: /bin/grep -E
configure:4641: checking for ANSI C header files
configure:4661: gcc -c -g -O2 conftest.c >&5
configure:4661: $? = 0
configure:4734: gcc -o conftest -g -O2 conftest.c >&5
configure:4734: $? = 0
configure:4734: ./conftest
configure:4734: $? = 0
configure:4745: result: yes
configure:4758: checking for sys/types.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for sys/stat.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for stdlib.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for string.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for memory.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for strings.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for inttypes.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for stdint.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4758: checking for unistd.h
configure:4758: gcc -c -g -O2 conftest.c >&5
configure:4758: $? = 0
configure:4758: result: yes
configure:4776: checking for sys/types.h
configure:4776: result: yes
configure:4776: checking for unistd.h
configure:4776: result: yes
configure:4776: checking for stdint.h
configure:4776: result: yes
configure:4776: checking for inttypes.h
configure:4776: result: yes
configure:4776: checking for endian.h
configure:4776: gcc -c -g -O2 conftest.c >&5
configure:4776: $? = 0
configure:4776: result: yes
configure:4776: checking for machine/endian.h
configure:4776: gcc -c -g -O2 conftest.c >&5
configure:4776: gcc -c -g -O2 conftest.c >&5
conftest.c:60:28: fatal error: machine/endian.h: No such file or directory
#include <machine/endian.h>
^
compilation terminated.
configure:4776: $? = 1
configure: failed program was:
| /
confdefs.h /
| #define PACKAGE_NAME "click"
| #define PACKAGE_TARNAME "click"
| #define PACKAGE_VERSION "2.1"
| #define PACKAGE_STRING "click 2.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define CLICK_VERSION "2.1"
| #define CLICK_VERSION_CODE CLICK_MAKE_VERSION_CODE(2,1,0)
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_ENDIAN_H 1
| /
end confdefs.h. /
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| # include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| # include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
|
| #include <machine/endian.h>
configure:4776: result: no
configure:4776: checking for byteswap.h
configure:4776: gcc -c -g -O2 conftest.c >&5
configure:4776: $? = 0
configure:4776: result: yes
configure:4776: checking for strings.h
...
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
|
| #include <net/if_dl.h>
configure:4776: result: no
configure:4776: checking for net/if_tap.h
configure:4776: gcc -c -g -O2 conftest.c >&5
conftest.c:75:24: fatal error: net/if_tap.h: No such file or directory
#include <net/if_tap.h>
^
compilation terminated.
configure:4776: $? = 1
configure: failed program was:
| /
confdefs.h /
| #define PACKAGE_NAME "click"
| #define PACKAGE_TARNAME "click"
| #define PACKAGE_VERSION "2.1"
| #define PACKAGE_STRING "click 2.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define CLICK_VERSION "2.1"
| #define CLICK_VERSION_CODE CLICK_MAKE_VERSION_CODE(2,1,0)
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_TIME_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_NETDB_H 1
| #define HAVE_PWD_H 1
| #define HAVE_GRP_H 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_POLL_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_IFADDRS_H 1
| #define HAVE_LINUX_IF_TUN_H 1
| /
end confdefs.h. /
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| # include <stdlib.h>
| # endif
| #endif
configure:4776: result: no
configure:4776: checking for net/if_tun.h
configure:4776: gcc -c -g -O2 conftest.c >&5
conftest.c:75:24: fatal error: net/if_tun.h: No such file or directory
#include <net/if_tun.h>
^
compilation terminated.
configure:4776: $? = 1
configure: failed program was:
| /
confdefs.h /
| #define PACKAGE_NAME "click"
| #define PACKAGE_TARNAME "click"
| #define PACKAGE_VERSION "2.1"
| #define PACKAGE_STRING "click 2.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define CLICK_VERSION "2.1"
| #define CLICK_VERSION_CODE CLICK_MAKE_VERSION_CODE(2,1,0)
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
...
configure:4776: result: no
configure:4776: checking for net/if_types.h
configure:4776: gcc -c -g -O2 conftest.c >&5
conftest.c:75:26: fatal error: net/if_types.h: No such file or directory
#include <net/if_types.h>
^
compilation terminated.
configure:4776: $? = 1
configure: failed program was:
| /
confdefs.h */
| #define PACKAGE_NAME "click"
| #define PACKAGE_TARNAME "click"
| #define PACKAGE_VERSION "2.1"
| #define PACKAGE_STRING "click 2.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define CLICK_VERSION "2.1"
| #define CLICK_VERSION_CODE CLICK_MAKE_VERSION_CODE(2,1,0)
| #define STDC_HEADERS 1

-----------------

Output variables.

-----------------

AR='ar'
AR_CREATEFLAGS='cru'
AUTOCONF=''
AWK=''
BUILD_AR=''
BUILD_CC=''
BUILD_CXX=''
BUILD_DL_LDFLAGS=''
BUILD_DL_LIBS=''
BUILD_RANLIB=''
CC='gcc'
CFLAGS=''
CLEAN_TARGETS=''
CLICKINSTALL=''
CLICKLINUX_FIXINCLUDES_PROGRAM='| sed -e s,/lib/modules/3.16.0-31-generic/build/include,${clickbuild_prefix}/include/click-linuxmodule/include1
, -e s,/lib/modules/3.16.0-31-generic/build/include/generated/uapi,${clickbuild_prefix}/include/click-linuxmodule/include3, -e s,/lib/modules/3
.16.0-31-generic/build/arch/x86/include/generated,${clickbuild_prefix}/include/click-linuxmodule/include0, -e s,/lib/modules/3.16.0-31-generic/
build/arch/x86/include/generated/uapi,${clickbuild_prefix}/include/click-linuxmodule/include2, -e s,\ -I,\ -isystem\ ,g'
CLICK_BUILD_INSTALL=''
CLICK_BUILD_INSTALL_IF_CHANGED=''
CLICK_VERSION='2.1'
CPP='gcc -E'
CPPFLAGS=' -I./arch/x86/include -I/home/router1/click/include/click-linuxmodule/include0 -I/home/router1/click/include/click-linuxmodule/include1 -I./arch/x86/include/uapi -I/home/router1/click/include/click-linuxmodule/include2 -I./include/uapi -I/home/router1/click/include/click-linuxmodule/include3 -include ./include/linux/kconfig.h -Iubuntu/include -I./arch/x86/include -I/home/router1/click/include/click-linuxmodule/include0 -I/home/router1/click/include/click-linuxmodule/include1 -I./arch/x86/include/uapi -I/home/router1/click/include/click-linuxmodule/include2 -I./include/uapi -I/home/router1/click/include/click-linuxmodule/include3 -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -D__KERNEL__ -Wall -Wundef -Wno-trigraphs -fno-strict-aliasing -Wno-format-security -m64 -mno-mmx -mno-sse -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fstack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -fno-strict-overflow -fconserve-stack -Werror=implicit-int -DCC_HAVE_ASM_GOTO -Wall -Wundef -Wno-trigraphs -fno-strict-aliasing -Wno-format-security -m64 -mno-mmx -mno-sse -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fstack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO -w'
CXX='g++'
CXXCPP='g++ -E'
CXXFLAGS=' -O2 -fno-exceptions -fno-rtti -fpermissive -Wno-undef -Wno-pointer-arith'
DEFS=''
DEPCFLAGS='-MD -MP'
DEPDIRFLAG='-MF $(DEPDIR)/$*.d'
DL_LDFLAGS='-rdynamic'
DL_LIBS='-ldl'
DRIVERS=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
EXEEXT=''
EXPAT_INCLUDES=''
EXPAT_LIBS=''
EXTRA_DRIVER_OBJS=''
EXTRA_TOOL_OBJS=''
FINDELEMFLAGS=''
GMAKE=''
GREP='/bin/grep'
HAVE_BSDMODULE_DRIVER='0'
HAVE_LINUXMODULE_DRIVER='0'
HAVE_MINIOS_DRIVER='0'
HAVE_USERLEVEL_DRIVER='0'
HOST_TOOLS='host'
INCLUDE_KSYMS='yes'
INSTALL_DATA=''
INSTALL_IF_CHANGED=''
INSTALL_INFO=''
INSTALL_PROGRAM=''
INSTALL_SCRIPT=''
INSTALL_TARGETS=''
KERNEL_CC='gcc'
KERNEL_CFLAGS=' -O2 -Wno-undef'
KERNEL_CXX='g++'
KERNEL_CXXFLAGS=' -O2 -fno-exceptions -fno-rtti -fpermissive -Wno-undef -Wno-pointer-arith'
LD='ld'
LDFLAGS=''
LDMODULEFLAGS='-shared'
LIBOBJS=''
LIBS=''
LINUXMODULE_2_6='1'
LINUXMODULE_FIXINCLUDES='1'
LINUX_DEBUG_FLAGS=''
LINUX_FIXINCLUDES_PROGRAM='| sed -e s,/lib/modules/3.16.0-31-generic/build/include,/home/router1/click/include/click-linuxmodule/include1, -e s,/lib/modules/3.16.0-31-generic/build/include/generated/uapi,/home/router1/click/include/click-linuxmodule/include3, -e s,/lib/modules/3.16.0-31-generic/build/arch/x86/include/generated,/home/router1/click/include/click-linuxmodule/include0, -e s,/lib/modules/3.16.0-31-generic/build/arch/x86/include/generated/uapi,/home/router1/click/include/click-linuxmodule/include2, -e s,\ -I,\ -isystem\ ,g'
LTLIBOBJS=''
MAKEINFO=''
MD5SUM=''
NETMAP_INCLUDES=''
NM='nm'
OBJCOPY='objcopy'
OBJEXT='o'
OTHER_TARGETS=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME='click'
PACKAGE_STRING='click 2.1'
PACKAGE_TARNAME='click'
PACKAGE_URL=''
PACKAGE_VERSION='2.1'
PATH_SEPARATOR=':'
PCAP_INCLUDES=''
PCAP_LIBS=''
PERL=''
POD2MAN=''
POSIX_CLOCK_LIBS=''
POSSIBLE_DRIVERS=' bsdmodule linuxmodule ns userlevel minios'
PROPER_INCLUDES=''
PROPER_LIBS=''
PTHREAD_LIBS=''
RANLIB='ranlib'
SHELL='/bin/bash'
SOCKET_LIBS=''
SOSUFFIX='so'
STRIP='strip'
SUBMAKE=''
TEXI2DVI=''
TOOLDIRS=' click-align click-check click-combine click-devirtualize click-fastclassifier click-flatten click-mkmindriver click-pretty click-undead click-xform click2xml click-install'
TOOL_CLEAN_TARGETS=''
TOOL_INSTALL_TARGETS=''
TOOL_TARGETS=' click-align click-check click-combine click-devirtualize click-fastclassifier click-flatten click-mkmindriver click-pretty click-undead click-xform click2xml'
XML2CLICK=''
ac_configure_args=' '''--enable-linuxmodule''' '''--disable-userlevel''''
ac_ct_CC='gcc'
ac_ct_CXX='g++'
bindir='/usr/local/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
clickbuild_bindir='${clickbuild_prefix}/bin'
clickbuild_clickdatadir='${clickbuild_prefix}/share/click'
clickbuild_datadir='${clickbuild_prefix}/share'
clickbuild_includedir='${clickbuild_prefix}/include'
clickbuild_libdir='${clickbuild_prefix}/lib'
clickbuild_sbindir='${clickbuild_prefix}/sbin'
clickdatadir='/usr/local/share/click'
conf_auxdir='$(top_srcdir)'
datadir='/usr/local/share'
datarootdir='/usr/local/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
element_groups=' analysis app aqm ethernet icmp ip simple standard tcpudp test threads'
exec_prefix='${prefix}'
freebsd_includedir='/usr/include'
freebsd_srcdir='NONE'
host='x86_64-unknown-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
htmldir='${docdir}'
includedir='/usr/local/include'
infodir='${datarootdir}/info'
libdir='/usr/local/lib'
libexecdir='${exec_prefix}/libexec'
linux_builddir='/lib/modules/3.16.0-31-generic/build'
linux_makeargs=''
linux_srcdir='/lib/modules/3.16.0-31-generic/build/'
localedir='${datarootdir}/locale'
localperl5=''
localstatedir='${prefix}/var'
lwip_dir=''
mandir='${datarootdir}/man'
minios_dir=''
newlib_dir=''
oldincludedir='/usr/include'
pdfdir='${docdir}'
perl5=''
prefix='/usr/local'
program_transform_name='s,x,x,'
provisions=''
psdir='${docdir}'
sbindir='/usr/local/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target='x86_64-unknown-linux-gnu'
target_alias=''
target_cpu='x86_64'
target_os='linux-gnu'
target_vendor='unknown'
xen_dir=''

-----------

confdefs.h.

-----------

/* confdefs.h */

define PACKAGE_NAME "click"

define PACKAGE_TARNAME "click"

define PACKAGE_VERSION "2.1"

define PACKAGE_STRING "click 2.1"

define PACKAGE_BUGREPORT ""

define PACKAGE_URL ""

define CLICK_VERSION "2.1"

define CLICK_VERSION_CODE CLICK_MAKE_VERSION_CODE(2,1,0)

define STDC_HEADERS 1

define HAVE_SYS_TYPES_H 1

define HAVE_SYS_STAT_H 1

define HAVE_STDLIB_H 1

define HAVE_STRING_H 1

define HAVE_MEMORY_H 1

define HAVE_STRINGS_H 1

define HAVE_INTTYPES_H 1

define HAVE_STDINT_H 1

define HAVE_UNISTD_H 1

define HAVE_SYS_TYPES_H 1

define HAVE_UNISTD_H 1

define HAVE_STDINT_H 1

define HAVE_INTTYPES_H 1

define HAVE_ENDIAN_H 1

define HAVE_BYTESWAP_H 1

...
efine HAVE___BUILTIN_CLZL 1

define HAVE___BUILTIN_CLZLL 1

define HAVE___BUILTIN_FFS 1

define HAVE___BUILTIN_FFSL 1

define HAVE___BUILTIN_FFSLL 1

define HAVE___SYNC_SYNCHRONIZE 1

define HAVE___HAS_TRIVIAL_COPY 1

define HAVE___THREAD_STORAGE_CLASS 1

define HAVE_FFS 1

define HAVE_FFSL 1

define HAVE_FFSLL 1

define SIZEOF_STRUCT_TIMEVAL 16

define HAVE_STRUCT_TIMESPEC 1

define SIZEOF_STRUCT_TIMESPEC 16

define HAVE_DECL_CLOCK_GETTIME 1

define HAVE_CLOCK_GETTIME 1

define HAVE_NANOTIMESTAMP_ENABLED 1

define HAVE_POLL_H 1

define HAVE_PSELECT 1

define HAVE_SIGACTION 1

define HAVE_DYNAMIC_LINKING 1

define HAVE_LARGE_FILE_SUPPORT 1

define SIZEOF_OFF_T 8

define HAVE_GETPAGESIZE 1

define HAVE_MMAP 1

define HAVE_MADVISE 1

define HAVE_DECL_MADVISE 1

define HAVE_LINUXMODULE_2_6 1

define HAVE_LINUX_STRLEN_EXPOSED 1

define HAVE_LINUX_INET_IOCTL 1

define HAVE_LINUX_INET_CTL_SOCK_CREATE 1

define HAVE_LINUX_KTIME_H 1

define CLICK_STATS 0

define HAVE_STRIDE_SCHED 1

configure: exit 1

NULL dereference on click unload

On an SMP platform, I sometimes see a NULL dereference after clearing out the click config my writing "" to /click/config. The backtrace is below and the issue appears to occur in Task::add_pending() when thread->_pending_lock becomes invalid.

<5>[ 33.070000] brain: unloading click config
<1>[ 33.430000] Unable to handle kernel NULL pointer dereference at virtual address 0000009c
<1>[ 33.430000] pgd = c0004000
<1>[ 33.430000] [0000009c] *pgd=00000000
<0>[ 33.430000] Internal error: Oops: 17 [#1] SMP ARM
<0>[ 33.430000] Modules linked in: ramoops phram elts_meraki(PO) merakiclick(O) proclikefs(O) dummy wl(PO)
<0>[ 33.430000] CPU: 0 Not tainted (3.4.80+ #3)
<0>[ 33.430000] PC is at _raw_spin_lock_irqsave+0xc/0x30
<0>[ 33.430000] mkp_lg: _raw_spin_lock_irqsave+0xc/0x30
<0>[ 33.430000] LR is at _ZN4Task11add_pendingEv+0x18/0x88 [merakiclick]
<0>[ 33.430000] pc : [<c02295fc>] lr : [<bf4f5eb0>] psr: a0000093
<0>[ 33.430000] sp : c7b11f50 ip : 00000000 fp : c7113c90
<0>[ 33.430000] r10: 00010000 r9 : c7113c8c r8 : c7113c00
<0>[ 33.430000] r7 : c7113c9c r6 : c576506c r5 : 0000009c r4 : 00000000
<0>[ 33.430000] r3 : a0000013 r2 : 00000001 r1 : c7113c00 r0 : 0000009c
<0>[ 33.430000] Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
<0>[ 33.430000] Control: 10c5387d Table: 069d804a DAC: 00000015
<0>[ 33.430000] Process kclick (pid: 654, stack limit = 0xc7b10270)
<0>[ 33.430000] Stack: (0xc7b11f50 to 0xc7b12000)
<0>[ 33.430000] 1f40: fffffffe 00000001 00000000 001cc111
<0>[ 33.430000] 1f60: c7113c9c bf5163a0 0f3be576 00000000 00000000 0da7dac6 c7b10000 0147ae12
<0>[ 33.430000] 1f80: b55a2e5d 00000007 00000000 c7b10000 bf5cca6c c7113c00 00000013 00000000
<0>[ 33.430000] 1fa0: 00000000 00000000 00000000 bf5660f8 c7113c00 c78bcdc0 c7a65e30 c7113c00
<0>[ 33.430000] 1fc0: bf566010 00000013 00000000 c0030f6c 00000000 c7113c00 00000001 00000000
<0>[ 33.430000] 1fe0: c7b11fe0 c7b11fe0 c7a65e30 c0030ee8 c0009af0 c0009af0 0000a888 0000a802
<0>[ 33.430000] [<c02295fc>] (_raw_spin_lock_irqsave+0xc/0x30) from [<bf4f5eb0>] (_ZN4Task11add_pendingEv+0x18/0x88 [merakiclick])
<0>[ 33.430000] [<bf4f5eb0>] (_ZN4Task11add_pendingEv+0x18/0x88 [merakiclick]) from [<bf5163a0>] (_ZN12RouterThread6driverEv+0x3ac/0x610 [merakiclick])
<0>[ 33.430000] [<bf5163a0>] (_ZN12RouterThread6driverEv+0x3ac/0x610 [merakiclick]) from [<bf5660f8>] (_ZL11click_schedPv+0xe8/0x234 [merakiclick])
<0>[ 33.430000] [<bf5660f8>] (_ZL11click_schedPv+0xe8/0x234 [merakiclick]) from [<c0030f6c>] (kthread+0x84/0x94)
<0>[ 33.430000] [<c0030f6c>] (kthread+0x84/0x94) from [<c0009af0>] (kernel_thread_exit+0x0/0x8)
<0>[ 33.430000] Code: e12fff1e e10f3000 f10c0080 e3a02001 (e1901f9f)
<4>[ 33.430000] ---[ end trace 5417ca981394cd0c ]---

Multiple it_present fields in radiotap header

the RadioTapDecap module has a problem if the Wi-Fi driver is using multiple it_present fields.

If the Wi-Fi card has multiple antennas there may be several it_present fields. I recognized it by looking in a wireshark trace. I had for example four RSSI fields in the radiotap header.

The current RadioTapDecap module is assuming that there is just one and therefore accesses a wrong position in the radiotap header to read e.g. the signal strength.

Unable make linux module on linux 3.13.0-48

gmake[1]: Entering directory /home/chaitu/click/linuxmodule' gmake -C /lib/modules/3.13.0-48-generic/build M=/home/chaitu/click/linuxmodule modules gmake[2]: Entering directory/usr/src/linux-headers-3.13.0-48-generic'
CC [M] /home/chaitu/click/linuxmodule/proclikefsmod.o
In file included from include/linux/cache.h:4:0,
from include/linux/time.h:4,
from include/linux/stat.h:18,
from include/linux/module.h:10,
from /home/chaitu/click/linuxmodule/proclikefs.c:33:
/home/chaitu/click/linuxmodule/proclikefs.c: In function ‘proclikefs_kill_super’:
/home/chaitu/click/linuxmodule/proclikefs.c:262:64: error: ‘union ’ has no member named ‘d_child’
struct dentry child = list_entry(next, struct dentry, d_u.d_child);
^
include/linux/kernel.h:793:29: note: in definition of macro ‘container_of’
const typeof( ((type *)0)->member ) *__mptr = (ptr);
^
/home/chaitu/click/linuxmodule/proclikefs.c:262:29: note: in expansion of macro ‘list_entry’
struct dentry *child = list_entry(next, struct dentry, d_u.d_child);
^
include/linux/kernel.h:793:48: warning: initialization from incompatible pointer type [enabled by default]
const typeof( ((type *)0)->member ) *__mptr = (ptr);
^
include/linux/list.h:351:2: note: in expansion of macro ‘container_of’
container_of(ptr, type, member)
^
/home/chaitu/click/linuxmodule/proclikefs.c:262:29: note: in expansion of macro ‘list_entry’
struct dentry *child = list_entry(next, struct dentry, d_u.d_child);
^
include/linux/kernel.h:793:48: warning: (near initialization for ‘child’) [enabled by default]
const typeof( ((type *)0)->member ) *__mptr = (ptr);
^
include/linux/list.h:351:2: note: in expansion of macro ‘container_of’
container_of(ptr, type, member)
^
/home/chaitu/click/linuxmodule/proclikefs.c:262:29: note: in expansion of macro ‘list_entry’
struct dentry *child = list_entry(next, struct dentry, d_u.d_child);
^
In file included from include/linux/compiler-gcc.h:106:0,
from include/linux/compiler.h:54,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from /usr/src/linux-headers-3.13.0-48-generic/include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from /home/chaitu/click/linuxmodule/proclikefs.c:33:
include/linux/compiler-gcc4.h:14:34: error: ‘union ’ has no member named ‘d_child’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
^
include/linux/stddef.h:17:31: note: in expansion of macro ‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
^
include/linux/kernel.h:794:29: note: in expansion of macro ‘offsetof’
(type *)( (char *)__mptr - offsetof(type,member) );})
^
include/linux/list.h:351:2: note: in expansion of macro ‘container_of’
container_of(ptr, type, member)
^
/home/chaitu/click/linuxmodule/proclikefs.c:262:29: note: in expansion of macro ‘list_entry’
struct dentry *child = list_entry(next, struct dentry, d_u.d_child);
^
gmake[3]: *
* [/home/chaitu/click/linuxmodule/proclikefsmod.o] Error 1
gmake[2]: *** [module/home/chaitu/click/linuxmodule] Error 2
gmake[2]: Leaving directory /usr/src/linux-headers-3.13.0-48-generic' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory/home/chaitu/click/linuxmodule'
gmake: *** [install-linuxmodule] Error 2

Crash in kernel mode with 10 Gbps IXGBE driver on amd64

Hello,

I tried to use Click in linuxmodule mode for various kernels between 2.6.32 and 3.16 with 10 Gbps IXGBE cards, and it always crashes with a page fault in ixgbe_xmit_frame_ring() after sending a few packets (only 144 in my last test with only 2 packets per second). Our server is an Intel-based amd64 platform, using Debian jessie (except for the 3.16 kernel try, which used sid).

The relevant part of the kernel panic stack trace is as follows:

panic
oops_end
no_context
__do_page_fault
KernelErrorHandler::buffer_store
KernelErrorHandler::log_line
click_lfree
KernelErrorHandler::emit
page_fault
ixgbe_xmit_frame_ring
ToDevice::queue_packet
ToDevice::run_task

Investigating ToDevice::queue_packet() with the help of added click_chatter() and early return, I think the problem occurs in the call to dev->netdev_ops->ndo_start_xmit(skb1, dev).

I can reproduce the problem even with the trimmed-down configuration that follows:

// Echoes back any packet arriving on eth2 without any processing
FromDevice(eth2, PROMISC 1) -> Queue() -> ToDevice(eth2)

For completeness, I had to take the following steps to compile kernel-mode Click (most of them suggested in the other issues).

  • Merge /usr/src/linux-headers-VERSION-amd64 and /usr/src/linux-headers-VERSION-common.
  • Copy /boot/config-VERSION and /boot/Sytem.map-VERSION to the source directory as .config and System.map, respectively.
  • Symlink /usr/src/linux-headers-VERSION-merged/include/generated/autoconf.h to /usr/src/linux-headers-VERSION-merged/include/linux/autoconf.h.
  • Add an #undef DEPRECATED in include/click/handler.hh (as it is defined in linux/printk.h, which is apparently included by handler.hh).
  • ./configure --disable-userlevel --enable-linux-module --with-linux=/usr/src/linux-headers-VERSION-merged (I tried first with other options like multithread but the problem also occurs with this simpler configuration).
  • Fix minor headers issues depending on kernel version.

ToDevice calls Element::pull, which might block, inside the tx_lock spinlock

This can lead to deadlock. I noticed this on a lock-checking kernel with driver preemption enabled, but it can still happen with preempt disabled (since in_atomic is wrong in that config unless you specifically disable_preempt, confusing the lock-checker). In my setup, a custom Element schedules a timer in the pull path, which should be allowed but which also acquires a mutex in order to update the timer set. It doesn't need to be that complicated though; any pull path from ToDevice that calls a sleepy kmalloc can deadlock.

Either the tx_lock needs to be unlocked and relocked around Element::pull or we need to pre-fill a deque with burst packets and then attempt to drain that inside the tx_lock. The former solution is messy with the current code and the latter adds an extra layer of buffering.

We do currently buffer up to one packet but under ideal circumstances the driver will let us know it is about to be busy before we try to pull that packet.

I talked to Eddie and he prefers the pre-filled-deque solution, so that's what I'm going to work on. This is mostly for record keeping.

Will Clicky be porting to more platforms?

Do you believe that the following is useful in the future? Thanks!

I am getting the following error during the ./configure for clicky.

configure: error: Package requirements (glib-2.0 >= 2.43.0 atk >= 2.12.0 pango >= 1.36.7 cairo >= 1.12.0 cairo-gobject >= 1.12.0 gdk-pixbuf-2.0 >= 2.30.0) were not met:

What should I do?

ToUserDevice+FromUserDevice unsafe across /click/config changes

With the following program, slow_read,

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main(int, char*[]) {
  char c;
  while (1 == read(STDIN_FILENO, &c, sizeof c)) {
    if (write(STDOUT_FILENO, &c, sizeof c) < 0)
      return EXIT_FAILURE;
    sleep(1);
  }
  return EXIT_SUCCESS;
}

install the /click/config

InfiniteSource(LIMIT -1, LENGTH 1, ACTIVE true)
-> ToUserDevice(0, ENCAP none);

and then

mknod /dev/click0 c 241 0
slow_read < /dev/click0 &
sleep 5
echo "" > /click/config

and watch the kernel crashes.

The issue is that the methods of ToUserDevice are not synchronized with the click config in any way, so while they are using elem it might disappear out from under them. It seems like clickfs might need to export the read versions of lock_config and unlock_config in order to prevent this from happening while elem is live.

I can implement that solution @kohler, but I wanted to get your take first. It also is not clear to me whether the router should be blocked + unblocked as well.

NS3 Make error with --enable-all-elements

./configure --disable-linuxmodule --enable-nsclick --enable-wifi --enable-all-elements
make

Does not build properly.

[ec2-user@ip-172-30-0-16 click]$ make
make[1]: Entering directory `/home/ec2-user/ns-allinone-3.23/click/userlevel'
  FINDELEMENTS elements.conf
  CREATE elements.mk
make[1]: Leaving directory `/home/ec2-user/ns-allinone-3.23/click/userlevel'
make[1]: Entering directory `/home/ec2-user/ns-allinone-3.23/click/userlevel'
  AR libclick.a
  RANLIB libclick.a
  CREATE elements.cc
  CXX elements.cc
  LINK click
ln: failed to create symbolic link ‘../bin/click’: File exists
make[1]: [click] Error 1 (ignored)
make[1]: Leaving directory `/home/ec2-user/ns-allinone-3.23/click/userlevel'
make[1]: Entering directory `/home/ec2-user/ns-allinone-3.23/click/ns'
echo "ns userlevel  analysis app aqm ethernet etherswitch grid icmp ip ip6 ipsec json local radio simple standard tcpudp test threads wifi" | ../bin/click-buildtool findelem -r ns -p .. -X ./elements.exclude --checksum elements.csmk > elements.conf
../bin/click-buildtool elem2make -x "addressinfo.o alignmentinfo.o errorelement.o portinfo.o scheduleinfo.o" < elements.conf > elements.mk
make[1]: Leaving directory `/home/ec2-user/ns-allinone-3.23/click/ns'
make[1]: Entering directory `/home/ec2-user/ns-allinone-3.23/click/ns'
  CXX ../elements/ipsec/hmacsha1.cc
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc: In function ‘void Click::HMAC_Init_ex(HMAC_CTX*, const void*, int)’:
../elements/ipsec/hmac.cc:80:26: error: call of overloaded ‘SHA1_init(SHA1_ctx*)’ is ambiguous
    SHA1_init(&ctx->md_ctx);
                          ^
../elements/ipsec/hmac.cc:80:26: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:285:1: note: void Click::SHA1_init(SHA1_ctx*)
 SHA1_init (SHA1_ctx * c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:79:6: note: void SHA1_init(SHA1_ctx*)
 void SHA1_init (SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:81:52: error: call of overloaded ‘SHA1_update(SHA1_ctx*, unsigned char*, int&)’ is ambiguous
    SHA1_update(&ctx->md_ctx,(unsigned char*)key,len);
                                                    ^
../elements/ipsec/hmac.cc:81:52: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:298:1: note: void Click::SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 SHA1_update (SHA1_ctx * c, register unsigned char *data, unsigned long len)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:80:6: note: void SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 void SHA1_update (SHA1_ctx * c, unsigned char *data, unsigned long len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:82:38: error: call of overloaded ‘SHA1_final(unsigned char [128], SHA1_ctx*)’ is ambiguous
    SHA1_final(ctx->key,&(ctx->md_ctx));
                                      ^
../elements/ipsec/hmac.cc:82:38: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:601:1: note: void Click::SHA1_final(unsigned char*, SHA1_ctx*)
 SHA1_final (unsigned char *md, SHA1_ctx *c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:81:6: note: void SHA1_final(unsigned char*, SHA1_ctx*)
 void SHA1_final (unsigned char *md, SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:99:24: error: call of overloaded ‘SHA1_init(SHA1_ctx*)’ is ambiguous
   SHA1_init(&ctx->i_ctx);
                        ^
../elements/ipsec/hmac.cc:99:24: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:285:1: note: void Click::SHA1_init(SHA1_ctx*)
 SHA1_init (SHA1_ctx * c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:79:6: note: void SHA1_init(SHA1_ctx*)
 void SHA1_init (SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:100:41: error: call of overloaded ‘SHA1_update(SHA1_ctx*, unsigned char [128], int)’ is ambiguous
   SHA1_update(&ctx->i_ctx,pad,SHA_CBLOCK);
                                         ^
../elements/ipsec/hmac.cc:100:41: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:298:1: note: void Click::SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 SHA1_update (SHA1_ctx * c, register unsigned char *data, unsigned long len)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:80:6: note: void SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 void SHA1_update (SHA1_ctx * c, unsigned char *data, unsigned long len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:104:24: error: call of overloaded ‘SHA1_init(SHA1_ctx*)’ is ambiguous
   SHA1_init(&ctx->o_ctx);
                        ^
../elements/ipsec/hmac.cc:104:24: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:285:1: note: void Click::SHA1_init(SHA1_ctx*)
 SHA1_init (SHA1_ctx * c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:79:6: note: void SHA1_init(SHA1_ctx*)
 void SHA1_init (SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:105:41: error: call of overloaded ‘SHA1_update(SHA1_ctx*, unsigned char [128], int)’ is ambiguous
   SHA1_update(&ctx->o_ctx,pad,SHA_CBLOCK);
                                         ^
../elements/ipsec/hmac.cc:105:41: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:298:1: note: void Click::SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 SHA1_update (SHA1_ctx * c, register unsigned char *data, unsigned long len)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:80:6: note: void SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 void SHA1_update (SHA1_ctx * c, unsigned char *data, unsigned long len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc: In function ‘void Click::HMAC_Init(HMAC_CTX*, const void*, int)’:
../elements/ipsec/hmac.cc:114:30: error: call of overloaded ‘HMAC_Init_ex(HMAC_CTX*&, const void*&, int&)’ is ambiguous
      HMAC_Init_ex(ctx,key,len);
                              ^
../elements/ipsec/hmac.cc:114:30: note: candidates are:
../elements/ipsec/hmac.cc:68:6: note: void Click::HMAC_Init_ex(HMAC_CTX*, const void*, int)
 void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len)
      ^
In file included from ../elements/ipsec/hmacsha1.cc:31:0:
../elements/ipsec/hmac.hh:85:6: note: void HMAC_Init_ex(HMAC_CTX*, const void*, int)
 void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc: In function ‘void Click::HMAC_Update(HMAC_CTX*, unsigned char*, size_t)’:
../elements/ipsec/hmac.cc:119:38: error: call of overloaded ‘SHA1_update(SHA1_ctx*, unsigned char*&, size_t&)’ is ambiguous
     SHA1_update(&ctx->md_ctx,data,len);
                                      ^
../elements/ipsec/hmac.cc:119:38: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:298:1: note: void Click::SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 SHA1_update (SHA1_ctx * c, register unsigned char *data, unsigned long len)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:80:6: note: void SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 void SHA1_update (SHA1_ctx * c, unsigned char *data, unsigned long len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc: In function ‘void Click::HMAC_Final(HMAC_CTX*, unsigned char*, unsigned int*)’:
../elements/ipsec/hmac.cc:128:30: error: call of overloaded ‘SHA1_final(unsigned char [64], SHA1_ctx*)’ is ambiguous
   SHA1_final(buf,&ctx->md_ctx);
                              ^
../elements/ipsec/hmac.cc:128:30: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:601:1: note: void Click::SHA1_final(unsigned char*, SHA1_ctx*)
 SHA1_final (unsigned char *md, SHA1_ctx *c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:81:6: note: void SHA1_final(unsigned char*, SHA1_ctx*)
 void SHA1_final (unsigned char *md, SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:130:51: error: call of overloaded ‘SHA1_update(SHA1_ctx*, unsigned char [64], long unsigned int)’ is ambiguous
   SHA1_update(&ctx->md_ctx,buf,(unsigned long)*len);
                                                   ^
../elements/ipsec/hmac.cc:130:51: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:298:1: note: void Click::SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 SHA1_update (SHA1_ctx * c, register unsigned char *data, unsigned long len)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:80:6: note: void SHA1_update(SHA1_ctx*, unsigned char*, long unsigned int)
 void SHA1_update (SHA1_ctx * c, unsigned char *data, unsigned long len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:131:29: error: call of overloaded ‘SHA1_final(unsigned char*&, SHA1_ctx*)’ is ambiguous
   SHA1_final(md,&ctx->md_ctx);
                             ^
../elements/ipsec/hmac.cc:131:29: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:601:1: note: void Click::SHA1_final(unsigned char*, SHA1_ctx*)
 SHA1_final (unsigned char *md, SHA1_ctx *c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:81:6: note: void SHA1_final(unsigned char*, SHA1_ctx*)
 void SHA1_final (unsigned char *md, SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc: In function ‘void Click::HMAC_CTX_init(HMAC_CTX*)’:
../elements/ipsec/hmac.cc:136:24: error: call of overloaded ‘SHA1_init(SHA1_ctx*)’ is ambiguous
   SHA1_init(&ctx->i_ctx);
                        ^
../elements/ipsec/hmac.cc:136:24: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:285:1: note: void Click::SHA1_init(SHA1_ctx*)
 SHA1_init (SHA1_ctx * c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:79:6: note: void SHA1_init(SHA1_ctx*)
 void SHA1_init (SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:137:24: error: call of overloaded ‘SHA1_init(SHA1_ctx*)’ is ambiguous
   SHA1_init(&ctx->o_ctx);
                        ^
../elements/ipsec/hmac.cc:137:24: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:285:1: note: void Click::SHA1_init(SHA1_ctx*)
 SHA1_init (SHA1_ctx * c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:79:6: note: void SHA1_init(SHA1_ctx*)
 void SHA1_init (SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:138:25: error: call of overloaded ‘SHA1_init(SHA1_ctx*)’ is ambiguous
   SHA1_init(&ctx->md_ctx);
                         ^
../elements/ipsec/hmac.cc:138:25: note: candidates are:
In file included from ../elements/ipsec/hmacsha1.cc:111:0:
../elements/ipsec/sha1_impl.cc:285:1: note: void Click::SHA1_init(SHA1_ctx*)
 SHA1_init (SHA1_ctx * c)
 ^
In file included from ../elements/ipsec/hmac.hh:63:0,
                 from ../elements/ipsec/hmacsha1.cc:31:
../elements/ipsec/sha1_impl.hh:79:6: note: void SHA1_init(SHA1_ctx*)
 void SHA1_init (SHA1_ctx * c);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc: In function ‘unsigned char* Click::HMAC(void*, int, unsigned char*, size_t, unsigned char*, unsigned int*)’:
../elements/ipsec/hmac.cc:152:19: error: call of overloaded ‘HMAC_CTX_init(HMAC_CTX*)’ is ambiguous
   HMAC_CTX_init(&c);
                   ^
../elements/ipsec/hmac.cc:152:19: note: candidates are:
../elements/ipsec/hmac.cc:134:6: note: void Click::HMAC_CTX_init(HMAC_CTX*)
 void HMAC_CTX_init(HMAC_CTX *ctx)
      ^
In file included from ../elements/ipsec/hmacsha1.cc:31:0:
../elements/ipsec/hmac.hh:81:6: note: void HMAC_CTX_init(HMAC_CTX*)
 void HMAC_CTX_init(HMAC_CTX *ctx);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:153:27: error: call of overloaded ‘HMAC_Init(HMAC_CTX*, void*&, int&)’ is ambiguous
   HMAC_Init(&c,key,key_len);
                           ^
../elements/ipsec/hmac.cc:153:27: note: candidates are:
../elements/ipsec/hmac.cc:110:6: note: void Click::HMAC_Init(HMAC_CTX*, const void*, int)
 void HMAC_Init(HMAC_CTX *ctx, const void *key, int len)
      ^
In file included from ../elements/ipsec/hmacsha1.cc:31:0:
../elements/ipsec/hmac.hh:84:6: note: void HMAC_Init(HMAC_CTX*, const void*, int)
 void HMAC_Init(HMAC_CTX *ctx, const void *key, int len); /* deprecated */
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:154:21: error: call of overloaded ‘HMAC_Update(HMAC_CTX*, unsigned char*&, size_t&)’ is ambiguous
   HMAC_Update(&c,d,n);
                     ^
../elements/ipsec/hmac.cc:154:21: note: candidates are:
../elements/ipsec/hmac.cc:117:6: note: void Click::HMAC_Update(HMAC_CTX*, unsigned char*, size_t)
 void HMAC_Update(HMAC_CTX *ctx, unsigned char *data, size_t len)
      ^
In file included from ../elements/ipsec/hmacsha1.cc:31:0:
../elements/ipsec/hmac.hh:86:6: note: void HMAC_Update(HMAC_CTX*, unsigned char*, size_t)
 void HMAC_Update(HMAC_CTX *ctx, unsigned char *data, size_t len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:155:26: error: call of overloaded ‘HMAC_Final(HMAC_CTX*, unsigned char*&, unsigned int*&’ is ambiguous
   HMAC_Final(&c,md,md_len);
                          ^
../elements/ipsec/hmac.cc:155:26: note: candidates are:
../elements/ipsec/hmac.cc:122:6: note: void Click::HMAC_Final(HMAC_CTX*, unsigned char*, unsigned int*)
 void HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
      ^
In file included from ../elements/ipsec/hmacsha1.cc:31:0:
../elements/ipsec/hmac.hh:87:6: note: void HMAC_Final(HMAC_CTX*, unsigned char*, unsigned int*)
 void HMAC_Final(HMAC_CTX *ctx, unsigned char * md, unsigned int *len);
      ^
In file included from ../elements/ipsec/hmacsha1.cc:112:0:
../elements/ipsec/hmac.cc:156:22: error: call of overloaded ‘HMAC_CTX_cleanup(HMAC_CTX*)’ is ambiguous
   HMAC_CTX_cleanup(&c);
                      ^
../elements/ipsec/hmac.cc:156:22: note: candidates are:
../elements/ipsec/hmac.cc:141:6: note: void Click::HMAC_CTX_cleanup(HMAC_CTX*)
 void HMAC_CTX_cleanup(HMAC_CTX *ctx)
      ^
In file included from ../elements/ipsec/hmacsha1.cc:31:0:
../elements/ipsec/hmac.hh:82:6: note: void HMAC_CTX_cleanup(HMAC_CTX*)
 void HMAC_CTX_cleanup(HMAC_CTX *ctx);
      ^
make[1]: *** [hmacsha1.o] Error 1
make[1]: Leaving directory `/home/ec2-user/ns-allinone-3.23/click/ns'
make: *** [ns] Error 2

Hang on unspecified input to top-level connection

This showed up for me originally when I mistakenly added an extra semicolon to a top-level bit of click-config, like so:

some_element;
-> some_other_element;
....
Script(...write stop);

A minimal way to reproduce the issue is:

$CLICK_CHECKOUT/userlevel/click -e "-> Null; Script(print \"script_started\", write stop)"

In both cases, the click process seems to be stuck in a loop (it shows up in top as taking 100% CPU, but reasonable amounts of memory (in the minimal version, about 5K)), and active Script elements never start ("script_started" is not printed).

Omitting only the element after the arrow (Null -> ;) gives a syntax error, as expected; omitting both has the same effect as omitting only the first (hangs).

linux/preempt.h undefine preempt_enable_no_resched since 3.14

Hi all,

Since kernel 3.14, "preempt_enable_no_resched" is undefined in linux/preempt.h to prevent modules from playing with preemption. But "preempt_enable_no_resched()" is called in lib/master.cc .

I do not understand fixlinuxmodules.pl enough, but these undefine should probably be removed by that script...

Also, the problem about DEPRECATED mentioned in #136 is still there.

Thanks

Problem while installing kernel module in ubuntu 12.04 and ubuntu 14.04

Hi I am new to Click router. I am trying to install kernel modules in ubuntu 12.04 or later on xen virtual machine. I tried even gmake and also used different configuration options like build, with system linux, etc but ends with same error. Can you please help me...
./configure --enable-linuxmodule
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking for g++... g++
checking for gcc... (cached) gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
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 ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/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 whether the C compiler accepts -W -Wall... yes
checking whether the C compiler accepts -Werror... yes
checking for sys/types.h... (cached) yes
checking for unistd.h... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for inline... inline
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether works... yes
checking whether the C++ compiler understands constexpr... no
checking whether the C++ compiler understands rvalue references... no
checking whether the C++ compiler understands static_assert... no
checking whether the C++ compiler understands template alias... no
checking whether the C++ compiler understands #pragma interface... yes
checking how to run the C++ preprocessor... g++ -E
checking for ar... ar
checking for ld... ld
checking for nm... nm
checking for objcopy... objcopy
checking for ranlib... ranlib
checking for strip... strip
checking whether we are compiling for Linux... yes
checking for strerror... yes
checking for random... yes
checking for snprintf... yes
checking for strnlen... yes
checking for strtof... yes
checking for strtold... yes
checking for strtoul... yes
checking for tcgetpgrp... yes
checking for vsnprintf... yes
checking size of int... 4
checking size of long... 8
checking size of size_t... 8
checking size of ptrdiff_t... 8
checking size of void ... 8
checking whether char is unsigned... no
checking for inttypes.h... (cached) yes
checking whether machine is indifferent to alignment... yes
checking size of long long... 8
checking for long long... yes
checking for int64_t... yes
checking for uint64_t... yes
checking whether long and int64_t are the same type... yes
checking whether long long and int64_t are the same type... no
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 whether signed right shift is arithmetic... yes
checking for addressable va_list type... no
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 __sync_synchronize... yes
checking whether __sync_synchronize supports arguments... no
checking for __has_trivial_copy... yes
checking for __thread storage class support... yes
checking for strings.h... (cached) yes
checking for ffs... yes
checking for ffsl... yes
checking for ffsll... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking size of struct timeval... 16
checking for struct timespec... yes
checking size of struct timespec... 16
checking whether clock_gettime is declared... yes
checking for library containing clock_gettime... -lrt
checking for clock_gettime... 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 execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.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 pselect... yes
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... no
checking for dlopen in -ldl... yes
checking whether linker accepts the -rdynamic flag... 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 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 sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... yes
checking for madvise... yes
checking whether madvise is declared... yes
checking for Linux System.map... /boot/System.map-3.13.0-39-generic
checking Linux version... 3.13.11
checking for Click Linux kernel extensions... no
checking for Click Linux kernel extensions for transmit notification... no
checking for read_net_skbcount kernel extension... no
checking for strlen kernel symbol... yes
checking for tulip_interrupt_hook kernel symbol... no
checking for files_lock kernel symbol... no
checking for files_lglock kernel symbol... no
checking for sb_lock kernel symbol... no
checking for dev_ioctl kernel symbol... no
checking for devinet_ioctl kernel symbol... no
checking for inet_ioctl kernel symbol... yes
checking for inet_ctl_sock_create kernel symbol... yes
checking for <linux/ktime.h>... yes
checking ifaddrs.h usability... yes
checking ifaddrs.h presence... yes
checking for ifaddrs.h... yes
checking linux/if_tun.h usability... yes
checking linux/if_tun.h presence... yes
checking for linux/if_tun.h... yes
checking net/if_dl.h usability... no
checking net/if_dl.h presence... no
checking for net/if_dl.h... no
checking net/if_tap.h usability... no
checking net/if_tap.h presence... no
checking for net/if_tap.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/if_types.h usability... no
checking net/if_types.h presence... no
checking for net/if_types.h... no
checking net/bpf.h usability... no
checking net/bpf.h presence... no
checking for net/bpf.h... no
checking netpacket/packet.h usability... yes
checking netpacket/packet.h presence... yes
checking for netpacket/packet.h... yes
checking for pcap.h... not found
checking for net/netmap.h... not found
checking whether struct if_data has ifi_datalen... no
checking whether struct sockaddr_in has sin_len... no
checking expat.h usability... no
checking expat.h presence... no
checking for expat.h... no
checking for XML_ParserCreateNS in -lexpat... no
checking for Linux kernel compilation flags... -I/usr/src/linux-headers-3.13.0-39-generic/arch/x86/include -I/lib/modules/3.13.0-39-generic/build/arch/x86/include/generated -I/lib/modules/3.13.0-39-generic/build/include -I/usr/src/linux-headers-3.13.0-39-generic/arch/x86/include/uapi -I/lib/modules/3.13.0-39-generic/build/arch/x86/include/generated/uapi -I/usr/src/linux-headers-3.13.0-39-generic/include/uapi -I/lib/modules/3.13.0-39-generic/build/include/generated/uapi -include /usr/src/linux-headers-3.13.0-39-generic/include/linux/kconfig.h -Iubuntu/include
-I/usr/src/linux-headers-3.13.0-39-generic/arch/x86/include -I/lib/modules/3.13.0-39-generic/build/arch/x86/include/generated -I/lib/modules/3.13.0-39-generic/build/include -I/usr/src/linux-headers-3.13.0-39-generic/arch/x86/include/uapi -I/lib/modules/3.13.0-39-generic/build/arch/x86/include/generated/uapi -I/usr/src/linux-headers-3.13.0-39-generic/include/uapi -I/lib/modules/3.13.0-39-generic/build/include/generated/uapi -include /usr/src/linux-headers-3.13.0-39-generic/include/linux/kconfig.h -Iubuntu/include -D__KERNEL

-D__KERNEL
_ -Wall -Wundef -Wno-trigraphs -fno-strict-aliasing -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mno-mmx -mno-sse -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wframe-larger-than=1024 -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO
-Wall -Wundef -Wno-trigraphs -fno-strict-aliasing -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mno-mmx -mno-sse -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wframe-larger-than=1024 -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO
configure: making C++-safe versions of Linux kernel headers (may take a while)
sed: -e expression #1, char 9: unknown option to s' checking for C++-includable kernel header files... yes checking whether long and int64_t are the same type in the Linux kernel... no 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... yes checking whether atomic_cmpxchg is declared... yes checking whether atomic_set_mask is declared... yes checking whether atomic_add_return is declared... yes checking for <asm/alternative.h>... yes checking for <asm/system.h>... no checking whether struct sk_buff has a security member... no checking whether struct sk_buff has an fclone member... yes checking whether skb_shinfo has a tso_size member... no checking whether skb_shinfo has a gso_size member... yes checking whether skb_shinfo has a ufo_size member... no checking whether skb_shinfo has an ip6_frag_id member... yes checking whether skb_shinfo has tx_flags defining SKBTX_DEV_ZEROCOPY... yes checking whether skb_shinfo has tx_flags.flags... no checking for device polling kernel extension... no checking whether skb_dst_drop is declared... yes checking whether skb_recycle is declared... no checking whether skb_recycle returns an sk_buff... no checking whether skb_linearize is declared... yes checking whether netif_receive_skb has been extended... no checking whether net_enable_timestamp is declared... yes checking whether netif_tx_lock is declared... yes checking whether netdev_get_tx_queue is declared... yes checking whether netif_tx_queue_frozen is declared... no checking whether netdev_uses_dsa_tags is declared... yes checking whether netdev_uses_trailer_tags is declared... yes checking for netdev_rx_handler_register kernel symbol... yes checking for get_monotonic_coarse kernel symbol... no checking for getboottime kernel symbol... yes checking whether struct super_block has an s_d_op member... yes checking whether d_make_root is declared... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether install accepts -C... yes checking for GNU make... make checking for working autoconf... found checking for perl5... no checking for perl... perl checking for gawk... no checking for mawk... mawk checking for grep that handles long lines and -e... (cached) /bin/grep checking for egrep... (cached) /bin/grep -E checking for md5sum... md5sum checking for working makeinfo... missing checking for working texi2dvi... missing checking for install-info... /usr/sbin/install-info checking for working install-info... found checking for working pod2man... 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 minios/Makefile config.status: creating minios/config.mk 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: include/click/config.h is unchanged config.status: creating include/click/pathvars.h config.status: include/click/pathvars.h is unchanged config.status: creating include/click/config-bsdmodule.h config.status: include/click/config-bsdmodule.h is unchanged config.status: creating include/click/config-linuxmodule.h config.status: include/click/config-linuxmodule.h is unchanged config.status: creating include/click/config-ns.h config.status: include/click/config-ns.h is unchanged config.status: creating include/click/config-userlevel.h config.status: include/click/config-userlevel.h is unchanged config.status: creating include/click/config-minios.h config.status: include/click/config-minios.h is unchanged config.status: executing default-1 commands root@router1-HVM:/home/router1/click# make install make[1]: Entering directory/home/router1/click/userlevel'
CXX ../lib/element.cc
CXX ../lib/confparse.cc
CXX ../lib/args.cc
CXX ../lib/variableenv.cc
CXX ../lib/lexer.cc
CXX ../lib/elemfilter.cc
CXX ../lib/routervisitor.cc
CXX ../lib/routerthread.cc
CXX ../lib/router.cc
CXX ../lib/master.cc
CXX ../lib/timerset.cc
CXX ../lib/selectset.cc
CXX ../lib/handlercall.cc
CXX ../lib/notifier.cc
CXX ../lib/integers.cc
CXX ../lib/md5.cc
CC ../lib/crc32.c
CC ../lib/in_cksum.c
CXX ../lib/iptable.cc
CXX ../lib/archive.cc
CXX ../lib/userutils.cc
CXX ../lib/driver.cc
CXX ../elements/standard/addressinfo.cc
CXX ../elements/standard/alignmentinfo.cc
CXX ../elements/standard/errorelement.cc
CXX ../elements/standard/portinfo.cc
CXX ../elements/standard/scheduleinfo.cc
CC ../lib/clp.c
CXX ../lib/exportstub.cc
AR libclick.a
RANLIB libclick.a
CXX ../elements/analysis/adjusttimestamp.cc
CXX ../elements/analysis/aggcounter.cc
CXX ../elements/analysis/aggpktcounter.cc
CXX ../elements/analysis/aggregatefilter.cc
CXX ../elements/analysis/aggregatefirst.cc
CXX ../elements/analysis/aggregateip.cc
CXX ../elements/analysis/aggregateipaddrpair.cc
CXX ../elements/analysis/aggregateipflows.cc
CXX ../elements/analysis/aggregatelast.cc
CXX ../elements/analysis/aggregatelen.cc
CXX ../elements/analysis/aggregatenotifier.cc
CXX ../elements/analysis/aggregatepaint.cc
CXX ../elements/analysis/anonipaddr.cc
CXX ../elements/analysis/eraseippayload.cc
CXX ../elements/analysis/fromcapdump.cc
CXX ../elements/analysis/fromdagdump.cc
CXX ../elements/analysis/fromipsumdump.cc
CXX ../elements/analysis/fromnetflowsumdump.cc
CXX ../elements/analysis/fromnlanrdump.cc
CXX ../elements/analysis/fromtcpdump.cc
CXX ../elements/analysis/ipsumdump_anno.cc
CXX ../elements/analysis/ipsumdump_icmp.cc
CXX ../elements/analysis/ipsumdump_ip.cc
CXX ../elements/analysis/ipsumdump_link.cc
CXX ../elements/analysis/ipsumdump_payload.cc
CXX ../elements/analysis/ipsumdump_tcp.cc
CXX ../elements/analysis/ipsumdump_udp.cc
CXX ../elements/analysis/ipsumdumpinfo.cc
CXX ../elements/analysis/settimestampdelta.cc
CXX ../elements/analysis/storetimestamp.cc
CXX ../elements/analysis/storeudptimeseqrecord.cc
CXX ../elements/analysis/timefilter.cc
CXX ../elements/analysis/timerange.cc
CXX ../elements/analysis/timesortedsched.cc
CXX ../elements/analysis/timestampaccum.cc
CXX ../elements/analysis/toipflowdumps.cc
CXX ../elements/analysis/toipsumdump.cc
CXX ../elements/app/ftpportmapper.cc
CXX ../elements/aqm/adaptivered.cc
CXX ../elements/aqm/red.cc
CXX ../elements/ethernet/arpfaker.cc
CXX ../elements/ethernet/arpprint.cc
CXX ../elements/ethernet/arpquerier.cc
CXX ../elements/ethernet/arpresponder.cc
CXX ../elements/ethernet/arptable.cc
CXX ../elements/ethernet/checkarpheader.cc
CXX ../elements/ethernet/ensureether.cc
CXX ../elements/ethernet/etherencap.cc
CXX ../elements/ethernet/ethermirror.cc
CXX ../elements/ethernet/etherpausesource.cc
CXX ../elements/ethernet/ethervlanencap.cc
CXX ../elements/ethernet/getetheraddress.cc
CXX ../elements/ethernet/hostetherfilter.cc
CXX ../elements/ethernet/setetheraddress.cc
CXX ../elements/ethernet/setvlananno.cc
CXX ../elements/ethernet/storeetheraddress.cc
CXX ../elements/ethernet/stripethervlanheader.cc
CXX ../elements/ethernet/vlandecap.cc
CXX ../elements/ethernet/vlanencap.cc
CXX ../elements/icmp/checkicmpheader.cc
CXX ../elements/icmp/icmperror.cc
CXX ../elements/icmp/icmpipencap.cc
CXX ../elements/icmp/icmppingencap.cc
CXX ../elements/icmp/icmppingresponder.cc
CXX ../elements/icmp/icmppingrewriter.cc
CXX ../elements/icmp/icmprewriter.cc
CXX ../elements/icmp/icmpsendpings.cc
CXX ../elements/ip/checkipheader.cc
CXX ../elements/ip/checkipheader2.cc
CXX ../elements/ip/decipttl.cc
CXX ../elements/ip/directiplookup.cc
CXX ../elements/ip/fixipsrc.cc
CXX ../elements/ip/getipaddress.cc
CXX ../elements/ip/ipaddrpairrewriter.cc
CXX ../elements/ip/ipaddrrewriter.cc
CXX ../elements/ip/ipclassifier.cc
CXX ../elements/ip/ipencap.cc
CXX ../elements/ip/ipfieldinfo.cc
CXX ../elements/ip/ipfilter.cc
CXX ../elements/ip/ipfragmenter.cc
CXX ../elements/ip/ipgwoptions.cc
CXX ../elements/ip/ipinputcombo.cc
CXX ../elements/ip/ipmirror.cc
CXX ../elements/ip/ipnameinfo.cc
CXX ../elements/ip/ipoutputcombo.cc
CXX ../elements/ip/ipprint.cc
CXX ../elements/ip/ipratemon.cc
CXX ../elements/ip/ipreassembler.cc
CXX ../elements/ip/iprewriterbase.cc
CXX ../elements/ip/iproutetable.cc
CXX ../elements/ip/iprwmapping.cc
CXX ../elements/ip/iprwpattern.cc
CXX ../elements/ip/iprwpatterns.cc
CXX ../elements/ip/lineariplookup.cc
CXX ../elements/ip/lookupiproute.cc
CXX ../elements/ip/lookupiproutelinux.cc
CXX ../elements/ip/markipce.cc
CXX ../elements/ip/markipheader.cc
CXX ../elements/ip/radixiplookup.cc
CXX ../elements/ip/rangeiplookup.cc
CXX ../elements/ip/rfc2507c.cc
CXX ../elements/ip/rfc2507d.cc
CXX ../elements/ip/ripsend.cc
CXX ../elements/ip/rripmapper.cc
CXX ../elements/ip/setipaddress.cc
CXX ../elements/ip/setipchecksum.cc
CXX ../elements/ip/setipdscp.cc
CXX ../elements/ip/setipecn.cc
CXX ../elements/ip/setrandipaddress.cc
CXX ../elements/ip/siphmapper.cc
CXX ../elements/ip/sortediplookup.cc
CXX ../elements/ip/storeipaddress.cc
CXX ../elements/ip/stripipheader.cc
CXX ../elements/ip/truncateippayload.cc
CXX ../elements/ip/unstripipheader.cc
CXX ../elements/simple/simpleidle.cc
CXX ../elements/simple/simplepriosched.cc
CXX ../elements/simple/simplepullswitch.cc
CXX ../elements/simple/simplerrsched.cc
CXX ../elements/standard/align.cc
CXX ../elements/standard/annotationinfo.cc
CXX ../elements/standard/averagecounter.cc
CXX ../elements/standard/bandwidthmeter.cc
CXX ../elements/standard/bandwidthshaper.cc
CXX ../elements/standard/block.cc
CXX ../elements/standard/burster.cc
CXX ../elements/standard/bwratedsplitter.cc
CXX ../elements/standard/bwratedunqueue.cc
CXX ../elements/standard/bypass.cc
CXX ../elements/standard/checkcrc32.cc
CXX ../elements/standard/checklength.cc
CXX ../elements/standard/checkpaint.cc
CXX ../elements/standard/classification.cc
CXX ../elements/standard/classifier.cc
CXX ../elements/standard/clickyinfo.cc
CXX ../elements/standard/clipboard.cc
CXX ../elements/standard/compblock.cc
CXX ../elements/standard/counter.cc
CXX ../elements/standard/delayshaper.cc
CXX ../elements/standard/delayunqueue.cc
CXX ../elements/standard/devirtualizeinfo.cc
CXX ../elements/standard/discard.cc
CXX ../elements/standard/discardnofree.cc
CXX ../elements/standard/drivermanager.cc
CXX ../elements/standard/dropbroadcasts.cc
CXX ../elements/standard/drr.cc
CXX ../elements/standard/flowinfo.cc
CXX ../elements/standard/frontdropqueue.cc
CXX ../elements/standard/fullnotequeue.cc
CXX ../elements/standard/hashswitch.cc
CXX ../elements/standard/hub.cc
CXX ../elements/standard/idle.cc
CXX ../elements/standard/infinitesource.cc
CXX ../elements/standard/inputswitch.cc
CXX ../elements/standard/linkunqueue.cc
CXX ../elements/standard/markmacheader.cc
CXX ../elements/standard/messageelement.cc
CXX ../elements/standard/meter.cc
CXX ../elements/standard/mixedqueue.cc
CXX ../elements/standard/notifierqueue.cc
CXX ../elements/standard/nullelement.cc
CXX ../elements/standard/nulls.cc
CXX ../elements/standard/paint.cc
CXX ../elements/standard/paintswitch.cc
CXX ../elements/standard/painttee.cc
CXX ../elements/standard/print.cc
CXX ../elements/standard/priosched.cc
CXX ../elements/standard/pullswitch.cc
CXX ../elements/standard/quicknotequeue.cc
CXX ../elements/standard/quitwatcher.cc
CXX ../elements/standard/randomerror.cc
CXX ../elements/standard/randomsample.cc
CXX ../elements/standard/randomsource.cc
CXX ../elements/standard/randomswitch.cc
CXX ../elements/standard/ratedsource.cc
CXX ../elements/standard/ratedsplitter.cc
CXX ../elements/standard/ratedunqueue.cc
CXX ../elements/standard/resize.cc
CXX ../elements/standard/rrsched.cc
CXX ../elements/standard/rrswitch.cc
CXX ../elements/standard/script.cc
CXX ../elements/standard/setannobyte.cc
CXX ../elements/standard/setcrc32.cc
CXX ../elements/standard/setpackettype.cc
CXX ../elements/standard/settimestamp.cc
CXX ../elements/standard/shaper.cc
CXX ../elements/standard/simplequeue.cc
CXX ../elements/standard/staticpullswitch.cc
CXX ../elements/standard/staticswitch.cc
CXX ../elements/standard/storedata.cc
CXX ../elements/standard/stridesched.cc
CXX ../elements/standard/strideswitch.cc
CXX ../elements/standard/strip.cc
CXX ../elements/standard/striptonet.cc
CXX ../elements/standard/suppressor.cc
CXX ../elements/standard/switch.cc
CXX ../elements/standard/tee.cc
CXX ../elements/standard/threadsafequeue.cc
CXX ../elements/standard/timedsink.cc
CXX ../elements/standard/timedsource.cc
CXX ../elements/standard/timedunqueue.cc
CXX ../elements/standard/truncate.cc
CXX ../elements/standard/unqueue.cc
CXX ../elements/standard/unqueue2.cc
CXX ../elements/standard/unstrip.cc
CXX ../elements/tcpudp/checktcpheader.cc
CXX ../elements/tcpudp/checkudpheader.cc
CXX ../elements/tcpudp/dynudpipencap.cc
CXX ../elements/tcpudp/iprewriter.cc
CXX ../elements/tcpudp/settcpchecksum.cc
CXX ../elements/tcpudp/setudpchecksum.cc
CXX ../elements/tcpudp/tcpfragmenter.cc
CXX ../elements/tcpudp/tcpipsend.cc
CXX ../elements/tcpudp/tcprewriter.cc
CXX ../elements/tcpudp/udpipencap.cc
CXX ../elements/tcpudp/udprewriter.cc
CXX ../elements/test/bhmtest.cc
CXX ../elements/test/biginttest.cc
CXX ../elements/test/bitvectortest.cc
CXX ../elements/test/blockthread.cc
CXX ../elements/test/checkpacket.cc
CXX ../elements/test/clptest.cc
CXX ../elements/test/comparepackets.cc
CXX ../elements/test/confparsetest.cc
CXX ../elements/test/cryptotest.cc
CXX ../elements/test/dequetest.cc
CXX ../elements/test/errortest.cc
CXX ../elements/test/functiontest.cc
CXX ../elements/test/handlertask.cc
CXX ../elements/test/hashtabletest.cc
CXX ../elements/test/heaptest.cc
CXX ../elements/test/listtest.cc
CXX ../elements/test/neighborhoodtest.cc
CXX ../elements/test/notifierdebug.cc
CXX ../elements/test/notifiertest.cc
CXX ../elements/test/nulltask.cc
CXX ../elements/test/packettest.cc
CXX ../elements/test/queueyanktest.cc
CXX ../elements/test/randomseed.cc
CXX ../elements/test/schedordertest.cc
CXX ../elements/test/sorttest.cc
CXX ../elements/test/timertest.cc
CXX ../elements/test/tokenbuckettest.cc
CXX ../elements/test/upstreamnotifier.cc
CXX ../elements/test/vectortest.cc
CXX ../elements/threads/spinlockacquire.cc
CXX ../elements/threads/spinlockinfo.cc
CXX ../elements/threads/spinlockrelease.cc
CXX ../elements/threads/staticthreadsched.cc
CXX ../elements/userlevel/changeuid.cc
CXX ../elements/userlevel/chattersocket.cc
CXX ../elements/userlevel/controlsocket.cc
CXX ../elements/userlevel/fakepcap.cc
CXX ../elements/userlevel/fromdevice.cc
CXX ../elements/userlevel/fromdump.cc
CXX ../elements/userlevel/fromhost.cc
CXX ../elements/userlevel/fromrawsocket.cc
CXX ../elements/userlevel/fromsocket.cc
CXX ../elements/userlevel/handlerproxy.cc
CXX ../elements/userlevel/kernelfilter.cc
CXX ../elements/userlevel/kerneltap.cc
CXX ../elements/userlevel/kerneltun.cc
CXX ../elements/userlevel/khandlerproxy.cc
CXX ../elements/userlevel/netmapinfo.cc
CXX ../elements/userlevel/progressbar.cc
CXX ../elements/userlevel/rawsocket.cc
CXX ../elements/userlevel/socket.cc
CXX ../elements/userlevel/todevice.cc
CXX ../elements/userlevel/todump.cc
CXX ../elements/userlevel/tohost.cc
CXX ../elements/userlevel/torawsocket.cc
CXX ../elements/userlevel/tosocket.cc
CXX ../elements/userlevel/umlswitch.cc
CREATE elements.cc
CXX elements.cc
CXX click.cc
LINK click
INSTALL /usr/local/lib/libclick.a
INSTALL /usr/local/bin/click
make[1]: Leaving directory /home/router1/click/userlevel' make[1]: Entering directory/home/router1/click/linuxmodule'
../click-buildtool elem2make --linux -x "addressinfo.o alignmentinfo.o errorelement.o portinfo.o scheduleinfo.o" < elements.conf > elements.mk
../click-buildtool elem2export < elements.conf > elements.cc
make -C /lib/modules/3.13.0-39-generic/build M=/home/router1/click/linuxmodule modules
make[2]: Entering directory /usr/src/linux-headers-3.13.0-39-generic' CC [M] crc32.o CC [M] in_cksum.o CXX [M] string.o CXX [M] straccum.o CXX [M] nameinfo.o CXX [M] bitvector.o CXX [M] bighashmap_arena.o CXX [M] hashallocator.o CXX [M] ipaddress.o CXX [M] ipflowid.o CXX [M] etheraddress.o CXX [M] packet.o CXX [M] error.o CXX [M] timestamp.o CXX [M] glue.o /home/router1/click/linuxmodule/../lib/glue.cc: In function ‘int click_qsort(void_, size_t, size_t, int (_)(const void_, const void_, void_), void_)’: /home/router1/click/linuxmodule/../lib/glue.cc:668:1: warning: the frame size of 1168 bytes is larger than 1024 bytes [-Wframe-larger-than=] CXX [M] task.o CXX [M] timer.o CXX [M] atomic.o CXX [M] gaprate.o CXX [M] element.o CXX [M] confparse.o CXX [M] args.o CXX [M] variableenv.o CXX [M] lexer.o CXX [M] elemfilter.o CXX [M] routervisitor.o CXX [M] routerthread.o CXX [M] router.o CXX [M] master.o CXX [M] timerset.o CXX [M] handlercall.o CXX [M] notifier.o CXX [M] integers.o CXX [M] iptable.o CXX [M] driver.o CXX [M] ino.o CXX [M] addressinfo.o CXX [M] alignmentinfo.o CXX [M] errorelement.o CXX [M] portinfo.o CXX [M] scheduleinfo.o CXX [M] adjusttimestamp.o CXX [M] aggregateipflows.o CXX [M] aggregatenotifier.o CXX [M] anonipaddr.o CXX [M] eraseippayload.o CXX [M] settimestampdelta.o CXX [M] storetimestamp.o CXX [M] storeudptimeseqrecord.o CXX [M] timefilter.o CXX [M] timerange.o CXX [M] timesortedsched.o CXX [M] ftpportmapper.o CXX [M] adaptivered.o CXX [M] red.o CXX [M] arpfaker.o CXX [M] arpprint.o CXX [M] arpquerier.o CXX [M] arpresponder.o CXX [M] arptable.o CXX [M] checkarpheader.o CXX [M] ensureether.o CXX [M] etherencap.o CXX [M] ethermirror.o CXX [M] etherpausesource.o CXX [M] ethervlanencap.o CXX [M] getetheraddress.o CXX [M] hostetherfilter.o CXX [M] setetheraddress.o CXX [M] setvlananno.o CXX [M] storeetheraddress.o CXX [M] stripethervlanheader.o CXX [M] vlandecap.o CXX [M] vlanencap.o CXX [M] checkicmpheader.o CXX [M] icmperror.o CXX [M] icmpipencap.o CXX [M] icmppingencap.o CXX [M] icmppingresponder.o CXX [M] icmppingrewriter.o CXX [M] icmprewriter.o CXX [M] icmpsendpings.o CXX [M] checkipheader.o CXX [M] checkipheader2.o CXX [M] decipttl.o CXX [M] fixipsrc.o CXX [M] getipaddress.o CXX [M] ipaddrpairrewriter.o CXX [M] ipaddrrewriter.o CXX [M] ipclassifier.o CXX [M] ipencap.o CXX [M] ipfieldinfo.o CXX [M] ipfilter.o CXX [M] ipfragmenter.o CXX [M] ipgwoptions.o CXX [M] ipinputcombo.o CXX [M] ipmirror.o CXX [M] ipnameinfo.o CXX [M] ipoutputcombo.o CXX [M] ipprint.o CXX [M] ipreassembler.o CXX [M] iprewriterbase.o CXX [M] iproutetable.o CXX [M] iprwmapping.o CXX [M] iprwpattern.o CXX [M] iprwpatterns.o CXX [M] lineariplookup.o CXX [M] lookupiproute.o CXX [M] lookupiproutemp.o CXX [M] markipce.o CXX [M] markipheader.o CXX [M] radixiplookup.o CXX [M] rfc2507c.o CXX [M] rfc2507d.o CXX [M] ripsend.o CXX [M] rripmapper.o CXX [M] setipaddress.o CXX [M] setipchecksum.o CXX [M] setipdscp.o CXX [M] setipecn.o CXX [M] setrandipaddress.o CXX [M] siphmapper.o /home/router1/click/linuxmodule/../elements/ip/siphmapper.cc: In constructor ‘SourceIPHashMapper::SourceIPHashMapper()’: /home/router1/click/linuxmodule/../elements/ip/siphmapper.cc:31:18: warning: invalid conversion from ‘void_’ to ‘chash_t<int>_’ [-fpermissive] In file included from /home/router1/click/linuxmodule/../elements/ip/siphmapper.cc:27:0: /home/router1/click/linuxmodule/../elements/ip/siphmapper.hh: In member function ‘C_ jvtree_t<C, K, key>::search(K) const [with C = chash_node_t<int>, K = int, K C::\* key = &chash_node_t<int>::key]’: /home/router1/click/linuxmodule/../elements/ip/siphmapper.hh:172:66: instantiated from ‘short unsigned int chash_t<K>::hash2ind(K) const [with K = int]’ /home/router1/click/linuxmodule/../elements/ip/siphmapper.cc:148:35: instantiated from here /home/router1/click/linuxmodule/../elements/ip/siphmapper.hh:90:14: warning: invalid conversion from ‘void_’ to ‘chash_node_t<int>_’ [-fpermissive] CXX [M] sortediplookup.o CXX [M] storeipaddress.o CXX [M] stripipheader.o CXX [M] truncateippayload.o CXX [M] unstripipheader.o CXX [M] anydevice.o CXX [M] cpuqueue.o CXX [M] cpuswitch.o CXX [M] cyclecountaccum.o CXX [M] fasttcpflows.o /home/router1/click/linuxmodule/../elements/linuxmodule/fasttcpflows.cc: In member function ‘virtual int FastTCPFlows::initialize(ErrorHandler_)’: /home/router1/click/linuxmodule/../elements/linuxmodule/fasttcpflows.cc:168:52: warning: invalid conversion from ‘const void_’ to ‘void_’ [-fpermissive] CXX [M] fastudpflows.o CXX [M] fastudpsrc.o CXX [M] fromdevice.o CXX [M] fromhost.o /home/router1/click/linuxmodule/../elements/linuxmodule/fromhost.cc: In member function ‘int FromHost::set_device_addresses(ErrorHandler_)’: /home/router1/click/linuxmodule/../elements/linuxmodule/fromhost.cc:296:32: warning: invalid conversion from ‘ifreq_’ to ‘long unsigned int’ [-fpermissive] /home/router1/click/linuxmodule/../elements/linuxmodule/fromhost.cc:300:32: warning: invalid conversion from ‘ifreq_’ to ‘long unsigned int’ [-fpermissive] /home/router1/click/linuxmodule/../elements/linuxmodule/fromhost.cc: In function ‘int dev_updown(net_device_, int, ErrorHandler_)’: /home/router1/click/linuxmodule/../elements/linuxmodule/fromhost.cc:320:14: warning: unused variable ‘flags’ [-Wunused-variable] CXX [M] fromuserdevice.o CXX [M] polldevice.o CXX [M] rtcycles.o CXX [M] schedulelinux.o CXX [M] setcyclecount.o CXX [M] todevice.o /home/router1/click/linuxmodule/../elements/linuxmodule/todevice.cc: In member function ‘virtual bool ToDevice::run_task(Task_)’: /home/router1/click/linuxmodule/../elements/linuxmodule/todevice.cc:308:29: warning: unused variable ‘ok’ [-Wunused-variable] /home/router1/click/linuxmodule/../elements/linuxmodule/todevice.cc: In member function ‘int ToDevice::queue_packet(Packet_, netdev_queue_)’: /home/router1/click/linuxmodule/../elements/linuxmodule/todevice.cc:548:2: warning: label ‘enqueued’ defined but not used [-Wunused-label] CXX [M] tohost.o CXX [M] tohostsniffers.o CXX [M] touserdevice.o /home/router1/click/linuxmodule/../elements/linuxmodule/touserdevice.cc: In member function ‘virtual int ToUserDevice::configure(Vector<String>&, ErrorHandler_)’: /home/router1/click/linuxmodule/../elements/linuxmodule/touserdevice.cc:358:12: warning: unused variable ‘dev’ [-Wunused-variable] CXX [M] simpleidle.o CXX [M] simplepriosched.o CXX [M] simplepullswitch.o CXX [M] simplerrsched.o CXX [M] align.o CXX [M] annotationinfo.o CXX [M] averagecounter.o CXX [M] bandwidthmeter.o CXX [M] bandwidthshaper.o CXX [M] block.o CXX [M] burster.o CXX [M] bwratedsplitter.o CXX [M] bwratedunqueue.o CXX [M] bypass.o CXX [M] checkcrc32.o CXX [M] checklength.o CXX [M] checkpaint.o CXX [M] classification.o CXX [M] classifier.o CXX [M] clickyinfo.o CXX [M] clipboard.o /home/router1/click/linuxmodule/../elements/standard/clipboard.cc: In member function ‘virtual Packet\* Clipboard::pull(int)’: /home/router1/click/linuxmodule/../elements/standard/clipboard.cc:59:20: warning: invalid conversion from ‘void_’ to ‘Packet_’ [-fpermissive] /home/router1/click/linuxmodule/../elements/standard/clipboard.cc: In member function ‘Packet\* Clipboard::paste(Packet_)’: /home/router1/click/linuxmodule/../elements/standard/clipboard.cc:98:20: warning: invalid conversion from ‘void_’ to ‘Packet_’ [-fpermissive] CXX [M] compblock.o CXX [M] counter.o CXX [M] delayshaper.o CXX [M] delayunqueue.o CXX [M] devirtualizeinfo.o CXX [M] discard.o CXX [M] discardnofree.o CXX [M] drivermanager.o CXX [M] dropbroadcasts.o CXX [M] drr.o CXX [M] flowinfo.o CXX [M] frontdropqueue.o CXX [M] fullnotequeue.o CXX [M] hashswitch.o CXX [M] hub.o CXX [M] idle.o CXX [M] infinitesource.o CXX [M] inputswitch.o CXX [M] linkunqueue.o CXX [M] markmacheader.o CXX [M] messageelement.o CXX [M] meter.o CXX [M] mixedqueue.o CXX [M] notifierqueue.o CXX [M] nullelement.o CXX [M] nulls.o CXX [M] paint.o CXX [M] paintswitch.o CXX [M] painttee.o CXX [M] print.o CXX [M] priosched.o CXX [M] pullswitch.o CXX [M] quicknotequeue.o CXX [M] quitwatcher.o CXX [M] randomerror.o CXX [M] randomsample.o CXX [M] randomsource.o CXX [M] randomswitch.o CXX [M] ratedsource.o CXX [M] ratedsplitter.o CXX [M] ratedunqueue.o CXX [M] resize.o /home/router1/click/linuxmodule/../elements/standard/resize.cc: In member function ‘virtual Packet_ Resize::simple_action(Packet_)’: /home/router1/click/linuxmodule/../elements/standard/resize.cc:43:24: warning: invalid conversion from ‘void_’ to ‘Packet_’ [-fpermissive] /home/router1/click/linuxmodule/../elements/standard/resize.cc:50:24: warning: invalid conversion from ‘void_’ to ‘Packet_’ [-fpermissive] CXX [M] rrsched.o CXX [M] rrswitch.o CXX [M] script.o CXX [M] setannobyte.o CXX [M] setcrc32.o CXX [M] setpackettype.o CXX [M] settimestamp.o CXX [M] shaper.o CXX [M] simplequeue.o CXX [M] staticpullswitch.o CXX [M] staticswitch.o CXX [M] storedata.o CXX [M] stridesched.o CXX [M] strideswitch.o CXX [M] strip.o CXX [M] striptonet.o CXX [M] suppressor.o CXX [M] switch.o CXX [M] tee.o CXX [M] threadsafequeue.o CXX [M] timedsink.o CXX [M] timedsource.o CXX [M] timedunqueue.o CXX [M] truncate.o CXX [M] unqueue.o CXX [M] unqueue2.o CXX [M] unstrip.o CXX [M] checktcpheader.o CXX [M] checkudpheader.o CXX [M] dynudpipencap.o CXX [M] iprewriter.o CXX [M] settcpchecksum.o CXX [M] setudpchecksum.o CXX [M] tcpfragmenter.o CXX [M] tcpipsend.o CXX [M] tcprewriter.o CXX [M] udpipencap.o CXX [M] udprewriter.o CXX [M] bhmtest.o CXX [M] bitvectortest.o CXX [M] checkpacket.o CXX [M] comparepackets.o CXX [M] confparsetest.o /home/router1/click/linuxmodule/../elements/test/confparsetest.cc: In member function ‘int ConfParseTest::_ZN13ConfParseTest10initializeEP12ErrorHandler.part.52(ErrorHandler_)’: /home/router1/click/linuxmodule/../elements/test/confparsetest.cc:571:1: warning: the frame size of 5600 bytes is larger than 1024 bytes [-Wframe-larger-than=] CXX [M] cryptotest.o CXX [M] dequetest.o CXX [M] errortest.o CXX [M] functiontest.o CXX [M] handlertask.o CXX [M] hashtabletest.o /home/router1/click/linuxmodule/../elements/test/hashtabletest.cc: In member function ‘virtual int HashTableTest::initialize(ErrorHandler_)’: /home/router1/click/linuxmodule/../elements/test/hashtabletest.cc:578:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=] CXX [M] heaptest.o CXX [M] listtest.o CXX [M] neighborhoodtest.o CXX [M] notifierdebug.o CXX [M] notifiertest.o CXX [M] nulltask.o CXX [M] packettest.o CXX [M] queueyanktest.o CXX [M] randomseed.o CXX [M] schedordertest.o CXX [M] sorttest.o CXX [M] timertest.o CXX [M] tokenbuckettest.o CXX [M] upstreamnotifier.o CXX [M] vectortest.o CXX [M] spinlockacquire.o CXX [M] spinlockinfo.o CXX [M] spinlockrelease.o CXX [M] staticthreadsched.o CC [M] kernelversion.o CC [M] read-pmc.o CXX [M] config.o CXX [M] sched.o CXX [M] module.o CXX [M] clickfs.o CXX [M] skbmgr.o CXX [M] elements.o CREATE /home/router1/click/linuxmodule/ksyms.c CC [M] ksyms.o CC [M] /home/router1/click/linuxmodule/proclikefsmod.o /home/router1/click/linuxmodule/proclikefs.c: In function ‘proclikefs_unregister_filesystem’: /home/router1/click/linuxmodule/proclikefs.c:335:1: warning: the frame size of 1792 bytes is larger than 1024 bytes [-Wframe-larger-than=] LD [M] /home/router1/click/linuxmodule/click.o LD [M] /home/router1/click/linuxmodule/proclikefs.o Building modules, stage 2. MODPOST 2 modules CC /home/router1/click/linuxmodule/click.mod.o LD [M] /home/router1/click/linuxmodule/click.ko CC /home/router1/click/linuxmodule/proclikefs.mod.o LD [M] /home/router1/click/linuxmodule/proclikefs.ko make[2]: Leaving directory /usr/src/linux-headers-3.13.0-39-generic'
../mkinstalldirs /usr/local/lib
for i in click.ko proclikefs.ko; do /usr/bin/install -c -m 644 $i /usr/local/lib/$i; done
/usr/bin/install -c -m 644 Module.symvers /usr/local/lib/click.symvers
../mkinstalldirs /usr/local/include/click-linuxmodule
INSTALLHEADERS /usr/local/include/click-linuxmodule
... done, 10566 files installed
make[1]: Leaving directory/home/router1/click/linuxmodule' make[1]: Entering directory /home/router1/click/tools'
make[2]: Entering directory/home/router1/click/tools/lib' CXX ../../lib/string.cc CXX ../../lib/straccum.cc CXX ../../lib/glue.cc CXX ../../lib/bitvector.cc CXX ../../lib/hashallocator.cc CXX ../../lib/ipaddress.cc CXX ../../lib/etheraddress.cc CXX ../../lib/timestamp.cc CXX ../../lib/error.cc CXX elementt.cc CXX eclasst.cc CXX routert.cc CXX runparse.cc CXX ../../lib/variableenv.cc CXX landmarkt.cc CXX lexert.cc CXX lexertinfo.cc CXX ../../lib/driver.cc CXX ../../lib/confparse.cc CXX ../../lib/args.cc CXX ../../lib/archive.cc CXX processingt.cc CXX etraits.cc CXX elementmap.cc CXX ../../lib/userutils.cc CXX ../../lib/md5.cc CXX toolutils.cc CC ../../lib/clp.c AR libclicktool.a RANLIB libclicktool.a make[2]: Leaving directory /home/router1/click/tools/lib'
make[2]: Entering directory/home/router1/click/tools/lib' INSTALLHEADERS /usr/local/include/clicktool INSTALL /usr/local/lib/libclicktool.a make[2]: Leaving directory /home/router1/click/tools/lib'
make[2]: Entering directory/home/router1/click/tools/click-align' CXX alignment.cc CXX alignclass.cc CXX click-align.cc LINK click-align INSTALL /usr/local/bin/click-align make[2]: Leaving directory /home/router1/click/tools/click-align'
make[2]: Entering directory/home/router1/click/tools/click-check' CXX click-check.cc LINK click-check INSTALL /usr/local/bin/click-check make[2]: Leaving directory /home/router1/click/tools/click-check'
make[2]: Entering directory/home/router1/click/tools/click-combine' CXX click-combine.cc LINK click-combine CXX click-uncombine.cc LINK click-uncombine INSTALL /usr/local/bin/click-combine INSTALL /usr/local/bin/click-uncombine make[2]: Leaving directory /home/router1/click/tools/click-combine'
make[2]: Entering directory/home/router1/click/tools/click-devirtualize' CXX cxxclass.cc CXX specializer.cc CXX signature.cc CXX click-devirtualize.cc LINK click-devirtualize INSTALL /usr/local/bin/click-devirtualize make[2]: Leaving directory /home/router1/click/tools/click-devirtualize'
make[2]: Entering directory/home/router1/click/tools/click-fastclassifier' CXX click-fastclassifier.cc CXX fc_classifier.cc CXX fc_ipclassifier.cc LINK click-fastclassifier INSTALL /usr/local/bin/click-fastclassifier make[2]: Leaving directory /home/router1/click/tools/click-fastclassifier'
make[2]: Entering directory/home/router1/click/tools/click-flatten' CXX click-flatten.cc LINK click-flatten INSTALL /usr/local/bin/click-flatten make[2]: Leaving directory /home/router1/click/tools/click-flatten'
make[2]: Entering directory/home/router1/click/tools/click-mkmindriver' CXX click-mkmindriver.cc LINK click-mkmindriver INSTALL /usr/local/bin/click-mkmindriver make[2]: Leaving directory /home/router1/click/tools/click-mkmindriver'
make[2]: Entering directory/home/router1/click/tools/click-pretty' CXX click-pretty.cc CXX html.cc LINK click-pretty INSTALL /usr/local/bin/click-pretty make[2]: Leaving directory /home/router1/click/tools/click-pretty'
make[2]: Entering directory/home/router1/click/tools/click-undead' CXX click-undead.cc LINK click-undead INSTALL /usr/local/bin/click-undead make[2]: Leaving directory /home/router1/click/tools/click-undead'
make[2]: Entering directory/home/router1/click/tools/click-xform' CXX adjacency.cc CXX click-xform.cc LINK click-xform INSTALL /usr/local/bin/click-xform make[2]: Leaving directory /home/router1/click/tools/click-xform'
make[2]: Entering directory/home/router1/click/tools/click2xml' CXX click2xml.cc LINK click2xml INSTALL /usr/local/bin/click2xml make[2]: Leaving directory /home/router1/click/tools/click2xml'
make[2]: Entering directory/home/router1/click/tools/click-install' CXX common.cc CXX click-install.cc LINK click-install CXX click-uninstall.cc LINK click-uninstall INSTALL /usr/local/sbin/click-install INSTALL /usr/local/sbin/click-uninstall make[2]: Leaving directory /home/router1/click/tools/click-install'
make[1]: Leaving directory/home/router1/click/tools' echo userlevel linuxmodule analysis app aqm ethernet icmp ip simple standard tcpudp test threads | ./click-buildtool findelem -r "x86_64 analysis int64 linux userlevel linuxmodule" -p . | perl ./click-mkelemmap -r "x86_64 analysis int64 linux " -t "userlevel linuxmodule" -p . -Iinclude -s "cd . && pwd" > elementmap.xml ./mkinstalldirs /usr/local/bin /usr/bin/install -c -C click-buildtool /usr/local/bin/click-buildtool /usr/bin/install -c -C click-compile /usr/local/bin/click-compile /usr/bin/install -c -C ./click-mkelemmap /usr/local/bin/click-mkelemmap /usr/bin/install -c -C ./test/testie /usr/local/bin/testie ./mkinstalldirs /usr/local/share/click /usr/bin/install -c ./mkinstalldirs /usr/local/share/click/mkinstalldirs /usr/bin/install -c -m 644 elementmap.xml /usr/local/share/click/elementmap.xml /usr/bin/install -c -C -m 644 config.mk /usr/local/share/click/config.mk /usr/bin/install -c -C -m 644 etc/pkg-config.mk /usr/local/share/click/pkg-config.mk /usr/bin/install -c -C -m 644 ./etc/pkg-Makefile /usr/local/share/click/pkg-Makefile /usr/bin/install -c -C -m 644 ./etc/pkg-userlevel.mk /usr/local/share/click/pkg-userlevel.mk /usr/bin/install -c -C -m 644 ./etc/pkg-linuxmodule.mk /usr/local/share/click/pkg-linuxmodule.mk /usr/bin/install -c -C -m 644 ./etc/pkg-linuxmodule-26.mk /usr/local/share/click/pkg-linuxmodule-26.mk /usr/bin/install -c -C -m 644 ./etc/pkg-bsdmodule.mk /usr/local/share/click/pkg-bsdmodule.mk (cd .; pwd) > /usr/local/share/click/srcdir /bin/rm -rf /usr/local/share/click/src /bin/ln -s "cd .; pwd" /usr/local/share/click/src make[1]: Entering directory /home/router1/click/doc'
INSTALLMANPAGES /usr/local/share/man
CLICK-ELEM2MAN -m /usr/local/share/man
click-elem2man: ../elements/linuxmodule/touserdevice.hh:13: warning: multiple '=d' sections; some may be ignored
click-elem2man: warning: unknown category shorthand 'devices' in UMLSwitch
INSTALL /usr/local/bin/click-elem2man
make[1]: Leaving directory`/home/router1/click/doc'
./mkinstalldirs /usr/local/include/click
mkdir -p -- /usr/local/include/click
/usr/bin/install -c -C -m 644 ./include/click/.h /usr/local/include/click
/usr/bin/install -c -C -m 644 ./include/click/
.hh /usr/local/include/click
/usr/bin/install -c -C -m 644 ./include/click/.cc /usr/local/include/click
/usr/bin/install -c -C -m 644 ./include/click/
.h /usr/local/include/click
./mkinstalldirs /usr/local/include/click/standard
mkdir -p -- /usr/local/include/click/standard
/usr/bin/install -c -C -m 644 ./include/click/standard/_.hh /usr/local/include/click/standard
./mkinstalldirs /usr/local/include/clicknet
mkdir -p -- /usr/local/include/clicknet
/usr/bin/install -c -C -m 644 ./include/clicknet/*.h /usr/local/include/clicknet
root@router1-HVM:/home/router1/click# lsmod~
No command 'lsmod~' found, did you mean:
Command 'lsmod' from package 'module-init-tools' (main)
lsmod~: command not found
root@router1-HVM:/home/router1/click# lsmod
Module Size Used by
click 2462490 0
proclikefs 14574 2 click
nls_utf8 12557 1
isofs 40287 1
rfcomm 74748 0
bnep 19884 2
bluetooth 411194 10 rfcomm,bnep
parport_pc 32866 0
ppdev 17711 0
cirrus 25286 0
ttm 90169 1 cirrus
drm_kms_helper 59668 1 cirrus
drm 308868 3 cirrus,ttm,drm_kms_helper
psmouse 113331 0
xen_kbdfront 12797 0
joydev 17575 0
sysimgblt 12806 1 cirrus
mac_hid 13253 0
serio_raw 13462 0
sysfillrect 12901 1 cirrus
syscopyarea 12633 1 cirrus
i2c_piix4 22299 0
lp 17799 0
parport 42481 3 parport_pc,ppdev,lp
hid_generic 12548 0
usbhid 53111 0
hid 106605 2 hid_generic,usbhid
floppy 70207 0
root@router1-HVM:/home/router1/click# click conf/test.click
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
root@router1-HVM:/home/router1/click# click conf/test.click
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
ok: 40 | 45000028 00000000 401177c3 01000001 02000002 13691369
root@router1-HVM:/home/router1/click# click-install conf/test.click
insmod: error inserting '/usr/local/lib/click.ko': -1 File exists
click-install: '/sbin/insmod /usr/local/lib/click.ko' failed

Low limit on SNAPLEN

The size limit on _snaplen in elements/userlevel/fromdevice.cc (line 108) seems low (8190) and inconsistent with pcap's recommended limit (65535). I consistently encountered CheckIPHeader issues because of "bad IP length" as a result of big IP packets that were not being fully captured (even when I set SNAPLEN to the current maximum of 8190). Increasing the limit solved all my issues.

packaging click for debian and derivatives

hi,
i'm packaging click for debian as it will be used in many installations of a project, i builded the packages without problem, but lintian(the linter for debian packages) give me a series of errors for the position of the manpages.
it's nothing that breaks functionality, but it's still an annoying bug during packaging.
i'm packaging the last version from git as for 20130719

Now running lintian...
E: click: manpage-in-wrong-directory usr/share/man/mann/ARPFaker.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ARPPrint.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ARPQuerier.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ARPResponder.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ARPTable.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AdaptiveRED.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AddressInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AdjustTimestamp.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/AggregateCounter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AggregateFilter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AggregateFirst.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AggregateIP.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/AggregateIPAddrPair.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/AggregateIPFlows.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AggregateLast.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AggregateLength.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/AggregatePacketCounter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AggregatePaint.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Align.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AlignmentInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AnnotationInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AnonymizeIPAddr.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/AverageCounter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/BandwidthMeter.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/BandwidthRatedSplitter.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/BandwidthRatedUnqueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/BandwidthShaper.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/BigHashMapTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/BigintTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/BitvectorTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Block.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/BlockThread.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Burster.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Bypass.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CLPTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ChangeUID.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ChatterSocket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckARPHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckCRC32.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckICMPHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckIPHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckIPHeader2.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckLength.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckPacket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckPaint.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckTCPHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CheckUDPHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Classifier.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ClickyInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CompareBlock.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ComparePackets.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ConfParseTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ControlSocket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Counter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/CryptoTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DRRSched.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DecIPTTL.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DelayShaper.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DelayUnqueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DequeTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DirectIPLookup.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Discard.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DiscardNoFree.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DriverManager.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/DropBroadcasts.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/DynamicUDPIPEncap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/EnsureEther.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/EraseIPPayload.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Error.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ErrorTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/EtherEncap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/EtherMirror.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/EtherPauseSource.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/EtherSpanTree.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/EtherSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/EtherVLANEncap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FTPPortMapper.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FixIPSrc.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FlowInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromCapDump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromDAGDump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromDevice.u.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromDump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromHost.u.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/FromIPSummaryDump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromNLANRDump.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/FromNetFlowSummaryDump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromRawSocket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromSocket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FromTcpdump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FrontDropQueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/FunctionTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/GetEtherAddress.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/GetIPAddress.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/HandlerTask.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/HashSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/HashTableTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/HeapTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/HostEtherFilter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Hub.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ICMPError.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ICMPIPEncap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ICMPPingEncap.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/ICMPPingResponder.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/ICMPPingRewriter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ICMPPingSource.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ICMPRewriter.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/IPAddrPairRewriter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPAddrRewriter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPClassifier.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPEncap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPFilter.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/IPFlowRawSockets.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPFragmenter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPGWOptions.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPInputCombo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPMirror.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPNameInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPOutputCombo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPPrint.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPRateMonitor.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPReassembler.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPRewriter.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/IPRewriterPatterns.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/IPRouteTable.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Idle.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/InfiniteSource.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/InputSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/KernelFilter.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/KernelHandlerProxy.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/KernelTap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/KernelTun.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/LinearIPLookup.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/LinkUnqueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/LinuxIPLookup.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ListTest.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/ListenEtherSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/MarkIPCE.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/MarkIPHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/MarkMACHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Message.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Meter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/MixedQueue.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/NeighborhoodTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/NotifierDebug.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/NotifierQueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/NotifierTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Null.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Null1.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/NullTask.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PacketTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Paint.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PaintSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PaintTee.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PortInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Print.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PrioSched.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ProgressBar.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PullNull.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PullSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PullTee.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/PushNull.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Queue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/QueueYankTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/QuickNoteQueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/QuitWatcher.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RED.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RFC2507Comp.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RFC2507Decomp.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RIPSend.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RadixIPLookup.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RandomBitErrors.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RandomSample.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RandomSeed.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RandomSource.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RandomSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RangeIPLookup.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RatedSource.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RatedSplitter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RatedUnqueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RawSocket.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/RoundRobinIPMapper.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/RoundRobinSched.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/RoundRobinSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SchedOrderTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ScheduleInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Script.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetAnnoByte.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetCRC32.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetEtherAddress.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetIPAddress.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetIPChecksum.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetIPDSCP.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetIPECN.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetPacketType.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/SetRandIPAddress.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetTCPChecksum.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetTimestamp.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/SetTimestampDelta.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetUDPChecksum.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SetVLANAnno.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Shaper.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SimpleIdle.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SimplePrioSched.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/SimplePullSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SimpleQueue.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/SimpleRoundRobinSched.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Socket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SortTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SortedIPLookup.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/SourceIPHashMapper.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SpinlockAcquire.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SpinlockInfo.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/SpinlockRelease.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StaticIPLookup.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/StaticPullSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StaticSwitch.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/StaticThreadSched.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StoreData.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/StoreEtherAddress.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StoreIPAddress.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StoreTimestamp.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/StoreUDPTimeSeqRecord.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StrideSched.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StrideSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Strip.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/StripEtherVLANHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/StripIPHeader.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/StripToNetworkHeader.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Suppressor.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Switch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TCPFragmenter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TCPIPSend.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TCPRewriter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Tee.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ThreadSafeQueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimeFilter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimeRange.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimeSortedSched.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimedSink.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimedSource.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimedUnqueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimerTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TimestampAccum.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ToDevice.u.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ToDump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ToHost.u.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ToIPFlowDumps.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ToIPSummaryDump.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ToRawSocket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/ToSocket.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/TokenBucketTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Truncate.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/TruncateIPPayload.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/UDPIPEncap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/UDPRewriter.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/UMLSwitch.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Unqueue.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Unqueue2.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/Unstrip.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/UnstripIPHeader.n.gz
E: click: manpage-in-wrong-directory
usr/share/man/mann/UpstreamNotifier.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/VLANDecap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/VLANEncap.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/VectorTest.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/elements-click.n.gz
E: click: manpage-in-wrong-directory usr/share/man/mann/elements.n.gz
W: click: binary-without-manpage usr/bin/click-buildtool
W: click: binary-without-manpage usr/bin/click-check
W: click: binary-without-manpage usr/bin/click-compile
W: click: binary-without-manpage usr/bin/click-elem2man
W: click: binary-without-manpage usr/bin/click-mkelemmap
W: click: binary-without-manpage usr/bin/click2xml
W: click: binary-without-manpage usr/bin/xml2click
Finished running lintian.

these are my debian/rules:

#!/usr/bin/make -f                                                                                                                                                                                                                                                                               
%:
    dh $@


override_dh_auto_configure:
    dh_auto_configure -- --disable-linuxmodule --enable-etherswitch --prefix=/usr

override_dh_auto_install:
     $(MAKE) DESTDIR=$$(pwd)/debian/click prefix=/usr install

Unable to use fake ip router program to work

Hi,
I doing my thesis on click with kernel mode and I cannot foward packets within two interfaces (eth0, eth1). I also tried to use Infinite source to generate packets from one source (eth0) to another interface. Nothing works. Whenever I use dmesg I can see packets are created but if I use tcpdump or wireshark like programs I have no packets to my other device (eth1). Do anyone have any suggestions. I tried different sources for tutoring me about Click but I end up at http://www.read.cs.ucla.edu/click/ as root source. I dont understand why there is only a single source for tutorials. Also I request Kohler or developers to make more detailed manual pages. Any programmer new (like me) to kernel programming cannot understand the manual pages.

Cannot compile click linux module

I am trying to compile the click linux module on ubuntu set up on virtual box

but i am getting the error:

Your Linux kernel header files cause errors when included by a C++ program.

Click modifies the Linux kernel's header files to make them work with
C++, using the program 'linuxmodule/fixincludes.pl'. It looks like
your kernel header files have features that 'linuxmodule/fixincludes.pl'
doesn't know how to fix. You can report this error to us on the Click
mailing list, or, even better, try to fix the error. See the config.log
file for more information on the error.

I tried to run the following command
sudo ./configure --with-linux=/usr/src/linux-headers-3.16.0-30-generic --with-linux-map=/boot/System.map-3.16.0-30-generic --enable-linuxmodule

and based on devious posts I also do ln -s ../generated/autoconf.h inside /usr/src/linux-headers-3.16.0-30-generic/include/linux.

Please help me

caplen annotation ignored in FromDump element for PCAP files

Attempting to replay a PCAP trace in which only the first caplen bytes have been recorded and len contains the actual packet length, generates packets which only have a length of caplen.

It seem that the line
SET_EXTRA_LENGTH_ANNO(p, len - caplen);

in elements/userlevel/fromdump.cc does not have any effect.

Configure script doesn't find Linux headers - Debian Wheezy

Trying to configure Click on the present stable Debian (Wheezy) I get the following error:

=========================================
Can't find include/linux/skbuff.h in /lib/modules/3.2.0-4-686-pae/build.
Are you sure /lib/modules/3.2.0-4-686-pae/build contains Linux kernel source?
=========================================

I assume that the problem is connected with a (not so) recent (2009) change in kernel headers packages in Debian. Symbolic links for the common headers are no longer included in the flavour-specific headers directory. Click configure script tries to find headers in /lib/modules/VERSION/build directory, which links to the the flavour-specific headers directory. However, these headers are located under /lib/modules/VERSION/source. It is shown below.

root@router:/click-src# ls -la /lib/modules/3.2.0-4-686-pae/
total 3012
drwxr-xr-x  3 root root   4096 Dec 30 01:29 .
drwxr-xr-x  3 root root   4096 Dec 30 00:17 ..
lrwxrwxrwx  1 root root     38 Sep 20 14:39 build -> /usr/src/linux-headers-3.2.0-4-686-pae
drwxr-xr-x 10 root root   4096 Dec 30 00:17 kernel
-rw-r--r--  1 root root 722637 Dec 30 00:17 modules.alias
-rw-r--r--  1 root root 703931 Dec 30 00:17 modules.alias.bin
-rw-r--r--  1 root root   3034 Sep 20 14:30 modules.builtin
-rw-r--r--  1 root root   4158 Dec 30 00:17 modules.builtin.bin
-rw-r--r--  1 root root 351952 Dec 30 00:17 modules.dep
-rw-r--r--  1 root root 488548 Dec 30 00:17 modules.dep.bin
-rw-r--r--  1 root root    325 Dec 30 00:17 modules.devname
-rw-r--r--  1 root root 117483 Sep 20 14:30 modules.order
-rw-r--r--  1 root root    131 Dec 30 00:17 modules.softdep
-rw-r--r--  1 root root 287376 Dec 30 00:17 modules.symbols
-rw-r--r--  1 root root 365247 Dec 30 00:17 modules.symbols.bin
lrwxrwxrwx  1 root root     37 Sep 20 14:39 source -> /usr/src/linux-headers-3.2.0-4-common

I've found a similar bug filled against Debian kernel headers, but it was closed as wontfix: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521515

Basing on the discussion above, I assume that it should be fixed on the Click side rather than Debian. However I am not enough fluent in configure/kbuild/make things to fix it myself.

PrintWifi and 802.11ac

Hi all,

I'am trying to use click on top of an ath10k compliant card in monitor mode.
Wireshark is able to decode (radiotap header) my incoming frames transmitted from a station to an AP (two other devices).
My click script looks like this
FromDevice(wlan1, PROMISC 1) -> RadiotapDecap() -> PrintWifi() -> Discard();

Some parts look ok like tods, data,... but some values like rate, rssi,.. are not being decoded.

2008 | 0Mb + 0/ 0 | data tods
2008 | 0Mb + 0/ 0 | data tods
....

radiotap.h and RadiotapDecap.cc seems to be changed recently.

Can you suggest how I can try to fix this?

Thanks a lot in advance,

Bart

clickfs handler thread safety

On an SMP system, I installed the following click config.

elementclass Idles {
    Idle -> Discard;
    Idle -> Discard;
    // 20x
    Idle -> Discard;
}

Idles;
Idles;
// 20x
Idles;

Then I do

for i in $(seq 1 100) ; do
   md5sum /click/flatconfig & true
done
wait

a few times and I get slab corruption or a panic. I believe that handler_strings is not thread safe and am looking for guidance on possible ways to write a fix.

Question: print value of counter

Sorry if this is an obvious thing, I have read through the examples and documentation with no luck. But how do I print a value of a counter? Is is possible to do any if/else conditions on the counter value, eg. trigger some action when a counter reaches a certain threshold?

click-install not working

Hi everyone,
I have a serious problem which i spent some days to fix. Please help me solve this problem. When i run some file *.click under linuxmodule mode, I got a report:

oneclick@oneclick:~/click/conf$ click-install mazu-nat.click
insmod: error inserting '/usr/local/lib/proclikefs.ko': -1 Operation not permitted
click-install: '/sbin/insmod /usr/local/lib/proclikefs.ko' failed

My ubuntu version is 10.04 (Kernel version: 2.6.32-38-generic). How can I fix this?
I wish all you have a nice day!

Kernel BUG when setting Priority Level in click-install

Hi,
I am encoutering a problem when trying to install a click configuration with click-install and setting a priority level. For example, running "click-install --priority=19 configuration.click" gives me the following error while "click-install configuration.click" goes through with no problems. (Any number, not necessarily 19 gives me an error)

TRACE FROM dmesg:

[ 142.612110] click: starting router thread pid 2477 (ffff8800a3c9db00)
[ 142.612583] BUG: unable to handle kernel NULL pointer dereference at 0000000000000060
[ 142.612670] IP: [] handler_do_write.isra.25+0x4b8/0xb90 [click]
[ 142.612855] PGD 9dd29067 PUD 9dd28067 PMD 0
[ 142.612893] Oops: 0000 [#1] SMP
[ 142.612924] Modules linked in: click(OF) proclikefs(OF) ctr ccm snd_hda_codec_hdmi btusb rfcomm bnep bluetooth acer_wmi sparse_keymap uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core videodev arc4 snd_hda_codec_realtek iwldvm mac80211 coretemp snd_hda_intel snd_hda_codec snd_hwdep snd_pcm joydev snd_seq_midi serio_raw snd_seq_midi_event snd_rawmidi lpc_ich iwlwifi cfg80211 radeon snd_seq snd_page_alloc wmi ttm drm_kms_helper drm snd_seq_device snd_timer video snd i2c_algo_bit soundcore mac_hid parport_pc ppdev lp parport hid_generic usbhid hid psmouse ahci libahci tg3 ptp pps_core
[ 142.613439] CPU: 0 PID: 2471 Comm: click-install Tainted: GF O 3.13.0-32-generic #57-Ubuntu
[ 142.613487] Hardware name: Acer Aspire 5738 /JV50 , BIOS V1.21 10/23/2009
[ 142.613543] task: ffff8800a5cedfc0 ti: ffff880099e10000 task.ti: ffff880099e10000
[ 142.613576] RIP: 0010:[] [] handler_do_write.isra.25+0x4b8/0xb90 [click]
[ 142.613710] RSP: 0018:ffff880099e11df0 EFLAGS: 00010202
[ 142.613740] RAX: 0000000000000000 RBX: ffff8800afea2290 RCX: ffff8800aeb26a58
[ 142.613772] RDX: 0000000240000051 RSI: 00000000ffffffff RDI: 0000000000000000
[ 142.613804] RBP: ffff880099e11f00 R08: 0000000000952100 R09: 00007f3ac2221780
[ 142.613837] R10: 00007f3ac15f26a0 R11: 0000000000000246 R12: 00000000fffffffb
[ 142.613869] R13: ffff88009ddce680 R14: 0000000000000000 R15: 000000000094c9a0
[ 142.613901] FS: 00007f3ac2221780(0000) GS:ffff88013fc00000(0000) knlGS:0000000000000000
[ 142.613944] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 142.613971] CR2: 0000000000000060 CR3: 00000000aa674000 CR4: 00000000000407f0
[ 142.614003] Stack:
[ 142.614017] ffffffff811a170e 0000000000000000 0000000000000000 0000000000000000
[ 142.614067] 0000000000000000 ffff880099e11e28 ffffffff8101b773 ffff880099e11e38
[ 142.614116] ffff880099e11e40 ffffffff8101b773 ffff880099e11e50 ffffffff8101b7e9
[ 142.614167] Call Trace:
[ 142.614185] [] ? __kmalloc+0x2e/0x230
[ 142.614217] [] ? native_sched_clock+0x13/0x80
[ 142.614250] [] ? native_sched_clock+0x13/0x80
[ 142.614283] [] ? sched_clock+0x9/0x10
[ 142.614315] [] ? sched_clock_local+0x1d/0x80
[ 142.614345] [] ? acct_account_cputime+0x1c/0x20
[ 142.614379] [] ? account_user_time+0x8b/0xa0
[ 142.614492] [] handler_flush+0x56/0x60 [click]
[ 142.614524] [] filp_close+0x2f/0x70
[ 142.614559] [] __close_fd+0x7b/0xa0
[ 142.614591] [] SyS_close+0x23/0x50
[ 142.614619] [] tracesys+0xe1/0xe6
[ 142.614650] Code: 76 a0 c7 85 48 ff ff ff 00 00 00 00 48 c7 85 50 ff ff ff 00 00 00 00 0f 84 b4 fc ff ff 45 8b 7d 08 e9 c5 fc ff ff 0f 1f 44 00 00 <48> 8b 40 60 48 89 85 f8 fe ff ff f0 ff 40 18 48 c7 c7 40 f6 7a
[ 142.615027] RIP [] handler_do_write.isra.25+0x4b8/0xb90 [click]
[ 142.615159] RSP
[ 142.615176] CR2: 0000000000000060
[ 142.621134] ---[ end trace 4687a48300bce60d ]---

I am not using anything apart from the normal elements, the configuration file is :

define($server 143.205.176.132);
phyint :: FromDevice(wlan0);
EtherClassify :: Classifier (12/0800,-); // 0800 in the 12th-13th byte,means its an IP Frame
EtherClassify[1] -> ToHost(wlan0);
NtwClassify :: IPClassifier($server/32 tcp,-);
NtwClassify[1] -> Unstrip(14) -> ToHost(wlan0);

phyint -> EtherClassify[0] -> Strip(14) //Manual strip of ETHER Header (no Element)
-> CheckIPHeader() -> NtwClassify[0]
-> Unstrip(14) -> ToHost(wlan0);

How do I fix this ?

P.S. : I am actually trying to give my click kernel thread a higher priority to get delay accuracy in DelayUnqueue with less than 50microseconds error.

Userlevel FromDevice with PCAP on Ubuntu does not work

Click team,

Running userlevel Click inside Ubuntu VM and using FromDevice(METHOD PCAP) results in ~99 - 100% packet drops. Using METHOD LINUX works 100%.

Tcpdump on this same VM works fine, so I'm assuming there is an issue on the async IO side.

The issue seems to be only on Ubuntu (tested with 14.04.1 and 14.10 on virtual machine), testing with CentOS using the exact same Click setup and config everything works fine.

Has anyone else experienced this as well?
Any pointers how to debug this further?
Could there be some kernel setting that affects PCAPs async processing on Ubuntu?

Click not compiling on version 12.04

I am trying to install click. This is where it is getting stuck:

CC [M] ksyms.o
CC [M] /home/user/click/linuxmodule/proclikefsmod.o
/home/user/click/linuxmodule/proclikefs.c: In function ‘proclikefs_unregister_filesystem’:
/home/user/click/linuxmodule/proclikefs.c:335:1: warning: the frame size of 1152 bytes is larger than 1024 bytes [-Wframe-larger-than=]
LD [M] /home/user/click/linuxmodule/click.o
.text._ZN7Storage8set_headEj' referenced in section.altinstructions' of /home/user/click/linuxmodule/fromhost.o: defined in discarded section .text._ZN7Storage8set_headEj[_ZN7Storage8set_headEj]' of /home/user/click/linuxmodule/fromhost.o make[3]: *** [/home/user/click/linuxmodule/click.o] Error 1 make[2]: *** [_module_/home/user/click/linuxmodule] Error 2 make[2]: Leaving directory/usr/src/linux-headers-3.13.0-49-generic'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/user/click/linuxmodule'
make: *** [install-linuxmodule] Error 2

Manually adding mappings to iprewriter element?

I've looked over the documentation and it appears that there currently isn't a handler/method to manually write mappings to an iprewriter element. Is this the case, or have I missed something?

I'm interested because I'm currently trying to instantiate click instances with some rewriter mappings pre-installed, but this is proving more difficult than I initially thought. Can anyone point me in the right direction? Thanks.

Replace Click mailing list with Github Issues?

I'd like to propose that Click's Github Issues replace the Click mailing list. Apart from the fact that I (and presumably others) are having major issues subscribing to and staying on the Click librelist, as it keeps dropping me off the list for some reason, Github Issues just seems like a more modern approach.

Also I see some people are still using the old mailing list, been trying to forward to librelist but again I find it impossible to stay on the list.

What are your feelings around this?

Can Click in userspace handle large TCP packets?

This is related to my previous issue with running maz-nat config file in userspace. Since we believe the problem is more related to Click itself not maz config file, I am decided to open a new issue for it.

As mentioned before, we are interested on running maz_nat in user space. We made some changes as shown below to switch from linuxmode to usermode. We can run tcp connection through Click NAT and stream small packets. I cleaned up the ARP handling and I can see that Click successfully responses to ARP guiries with the right MAC address.

We believe the problem raises when it comes to stream packers larger than 400 Bytes through Click (we tested with iperf, netperf, and i-dtg). Click in userspace seems to have a bug/unable to handle packets above 400 bytes and misses up checksum and IP header check. Resulting with packets have actual length that is different than what its stated in the header, thus resulting Click to drop the packets when its checks IP header and produce the previous error mentioned "CheckIPHeader@37: IP header check failed: bad IP length".

We tried to change the behavior to not drop the packets even if the checksome failed. But ToDevice element did not like the packet when it arrived to it and produced "Message too long" error.

Please advise,

Murad

Userlevel multithreading support for hotswap

Currently hotswap in multithread userlevel Click is not supported. After the hotswap config only the first thread runs. See http://librelist.com/browser/click/2014/10/3/userlevel-hotswap-with-multithreading/ post for more info.

To replicate:

click -j2 -R -p 41900 -e "s1::Script(print 'A'); s2::Script(print 'B'); StaticThreadSched(s1 0, s2 1);" &
echo "write hotconfig s1::Script(print 'A'); s2::Script(print 'B'); StaticThreadSched(s1 0, s2 1);" | telnet localhost 41900

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.