constcast / click Goto Github PK
View Code? Open in Web Editor NEWThis project forked from kohler/click
The Click modular router: fast modular packet processing and analysis
Home Page: http://www.read.cs.ucla.edu/click/
License: Other
This project forked from kohler/click
The Click modular router: fast modular packet processing and analysis
Home Page: http://www.read.cs.ucla.edu/click/
License: Other
THE CLICK MODULAR ROUTER RELEASE 1.8.0 ====================================== This is the README file for the source release for the Click modular software router. More recent information may be available on the Web at http://www.read.cs.ucla.edu/click/ 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, available from the Web site, 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 -------- CLICKDIR this directory CLICKDIR/apps Click-related applications CLICKDIR/apps/clicky ... GTK program for displaying configurations and interacting with drivers CLICKDIR/apps/ClickController ... Java program for interacting with drivers CLICKDIR/bsdmodule FreeBSD 4.5 kernel module driver [NOT WORKING] CLICKDIR/conf configuration files CLICKDIR/doc documentation CLICKDIR/drivers polling device drivers CLICKDIR/elements element source code CLICKDIR/elements/analysis ... for trace analysis and manipulation CLICKDIR/elements/app ... for application-level protocol elements CLICKDIR/elements/aqm ... for active queue management (RED, etc.) CLICKDIR/elements/bsdmodule ... for FreeBSD kernel-specific elements CLICKDIR/elements/ethernet ... for Ethernet elements CLICKDIR/elements/etherswitch ... for Ethernet-switch elements CLICKDIR/elements/grid ... for Grid elements (experimental) CLICKDIR/elements/icmp ... for ICMP elements CLICKDIR/elements/ip ... for IP, ICMP, and TCP/UDP elements CLICKDIR/elements/ip6 ... for IPv6 elements CLICKDIR/elements/ipsec ... for IPsec elements CLICKDIR/elements/linuxmodule ... for Linux kernel-specific elements CLICKDIR/elements/local ... for your own elements (empty) CLICKDIR/elements/ns ... for 'ns'-specific elements CLICKDIR/elements/radio ... for communicating with wireless radios CLICKDIR/elements/standard ... for generic elements CLICKDIR/elements/tcpudp ... for TCP and UDP elements CLICKDIR/elements/test ... for regression test elements CLICKDIR/elements/threads ... for thread management elements CLICKDIR/elements/userlevel ... for user-level-specific elements CLICKDIR/elements/wifi ... for 802.11-specific 'WiFi' elements CLICKDIR/etc Linux and NS patches and other files 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 ... handles 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 'click' driver DOCUMENTATION ------------- The 'INSTALL' file in this directory contains installation instructions. User documentation is in the 'doc' subdirectory. This directory 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' 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 ................... You must patch your Linux kernel first. See 'INSTALL' for more information. 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 Simulator ............ See 'INSTALL' for more information. Once a Click-enabled version of NS is installed, the 'ns' command is able to run Click scripts as part of a normal NS simulation. Configurations .............. A few 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 pattern optimizer, click-xform ('conf/ip.clickpat'). Please check back to our Web site for more up-to-date configurations. 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 a version of the "MIT License", which is a BSD-like license. See the 'LICENSE' file for details. 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 at <http://www.gnu.org/licenses/gpl.html>, or in the COPYING file in this directory. The GPL applies to the source files in drivers/e1000*, to the files etc/linux-*-patch, linuxmodule/clickfs.cc, linuxmodule/proclikefs.c, linuxmodule/sched.cc, and linuxmodule/skbmgr.cc, and some of the files in elements/linuxmodule. Portions of the Click software are derived from the GNU Multiple Precision Arithmetic Library, and are thus distributed under the GNU Lesser General Public License, version 3. This license is available via the Web at <http://www.gnu.org/licenses/lgpl.html>. The LGPL applies to the source file include/click/bigint.hh. Element code that uses only Click's interfaces will *not* be derived from the Linux kernel, so the BSD-like 'LICENSE' will apply, not the GPL or the LGPL. BUGS, QUESTIONS, ETC. --------------------- We welcome bug reports, questions, comments, code, whatever you'd like to give us. We also have a mailing list for software announcements, and an anonymous Git repository (also accessible via CVS) where you can access our latest source code. Write us at [email protected] - The Click maintainers: Eddie Kohler and others
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.