All Projects → sysml → clickos

sysml / clickos

Licence: other
The Click modular router: fast modular packet processing and analysis

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
hack
652 projects
shell
77523 projects
perl
6916 projects
Click
5 projects

Projects that are alternatives of or similar to clickos

mini-os
Minimalistic Operating System for Xen
Stars: ✭ 65 (-48.82%)
Mutual labels:  xen, unikernel, mini-os
uniprof
A stack tracer/profiler for Xen domains
Stars: ✭ 29 (-77.17%)
Mutual labels:  xen, unikernel
Mirage
MirageOS is a library operating system that constructs unikernels
Stars: ✭ 1,707 (+1244.09%)
Mutual labels:  xen, unikernel
spot price machine learning
Machine Learning for Spot Prices
Stars: ✭ 25 (-80.31%)
Mutual labels:  click
ansible-taskrunner
Ansible Taskrunner - ansible-playbook wrapper with YAML-abstracted python click cli options!
Stars: ✭ 14 (-88.98%)
Mutual labels:  click
ops-examples
A repository of basic and advanced examples using Ops
Stars: ✭ 68 (-46.46%)
Mutual labels:  unikernel
cloup
Library to build command line interfaces (CLIs) based on Click. Cloup = Click + option groups, constraints, command aliases, command sections, help themes, "did you mean ...?" suggestions ...
Stars: ✭ 44 (-65.35%)
Mutual labels:  click
mirage-xen
Xen core platform libraries for MirageOS
Stars: ✭ 17 (-86.61%)
Mutual labels:  xen
three-onEvent
Add an EventListener for Object3d in your three.js project.(support click,hover or gaze)
Stars: ✭ 55 (-56.69%)
Mutual labels:  click
website
Website for the Pallets projects
Stars: ✭ 126 (-0.79%)
Mutual labels:  click
ocaml-dns
OCaml implementation of the DNS protocol
Stars: ✭ 93 (-26.77%)
Mutual labels:  unikernel
metronome
An elementary OS app
Stars: ✭ 16 (-87.4%)
Mutual labels:  click
export-dynamodb
Export Amazon DynamoDb to CSV or JSON
Stars: ✭ 52 (-59.06%)
Mutual labels:  click
nautilus
Nautilus Aerokernel
Stars: ✭ 30 (-76.38%)
Mutual labels:  unikernel
xen-orchestra-ce
🐳 Docker & docker-compose files to deploy Xen Orchestra Community Edition (ie: from sources)
Stars: ✭ 70 (-44.88%)
Mutual labels:  xen
arp
Address resolution protocol (ARP) implementation in OCaml targeting MirageOS
Stars: ✭ 20 (-84.25%)
Mutual labels:  unikernel
pyGinit
A simple github automation cli
Stars: ✭ 15 (-88.19%)
Mutual labels:  click
crawler click tutorial
click tutorial ( crawler ) use python
Stars: ✭ 15 (-88.19%)
Mutual labels:  click
script
same script
Stars: ✭ 13 (-89.76%)
Mutual labels:  xen
configmanager
Forget about configparser, YAML, or JSON parsers. Focus on configuration. NOT RECOMMENDED FOR USE (2019-01-26)
Stars: ✭ 15 (-88.19%)
Mutual labels:  click
THE CLICK MODULAR ROUTER
========================

    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
...................

    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' for more information on how to enable the NS-3 Click
Integration. Further information on ns-3-click is available in the ns-3
manual: http://www.nsnam.org/docs/models/html/click.html

NS-2 Simulator
..............

    See 'INSTALL' 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.

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 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 at
<http://www.gnu.org/licenses/gpl.html>, or in the COPYING file in this
directory.

    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 at
<http://www.gnu.org/licenses/lgpl.html>. The LGPL specifically permits
direct linking with code with other licenses.

    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. We also have a mailing list for software
announcements. Write us at

	[email protected]

	- The Click maintainers:
	  Eddie Kohler
	  and others
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].