From 0ca5945f6a6cc31e9434c709a22f942c253391fd Mon Sep 17 00:00:00 2001 From: eddietwo <eddietwo> Date: Sun, 16 Feb 2003 04:09:11 +0000 Subject: [PATCH] expand NEWS and the like for 1.3pre1; bump version number to 1.3pre1 --- AUTHORS | 13 ++- FAQ | 13 +-- NEWS | 144 ++++++++++++++++++++++++++++++++- README | 11 ++- configure.in | 2 +- test/handlers/kernel-01.testie | 37 +++++++++ 6 files changed, 203 insertions(+), 17 deletions(-) create mode 100644 test/handlers/kernel-01.testie diff --git a/AUTHORS b/AUTHORS index 4bc2e41c5..b613916b9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -15,7 +15,8 @@ Eddie Kohler kohler@icir.org design, core, language, Linux /proc interface, Linux kernel module, standard elements, tools, documentation, distribution, IP rewriting -elements, ClickController, other elements, Tasks, Linux 2.4, clickfs +elements, ClickController, other elements, Tasks, Linux 2.4, clickfs, +adaptive task scheduler Mazu Networks, Inc. http://www.mazunetworks.com/ @@ -26,6 +27,10 @@ rtm@lcs.mit.edu design, Ethernet, IP, Linux kernel module, radio elements, Linux kernel patches, IP router configuration, element documentation, other elements +Michael Neufeld +Michael.Neufeld@cs.colorado.edu +NS network simulator integration + Massimiliano Poletto maxp@mazunetworks.com IP rewriting elements, stride scheduling element, round robin scheduler @@ -38,6 +43,10 @@ Nickolai B. Zeldovich kolya@lcs.mit.edu Linux 2.4, BSD kernel module +Petros Zerfos +pzerfos@cs.ucla.edu +adaptive task scheduler + Thanks to: @@ -66,7 +75,7 @@ yipal@pdos.lcs.mit.edu IP reassembler, other changes -Thanks for patches and comments: +Thanks for patches and comments (not a complete list): Joe Elliott joe@inetd.com diff --git a/FAQ b/FAQ index ff2a95c5d..690517107 100644 --- a/FAQ +++ b/FAQ @@ -12,10 +12,8 @@ A. Yes. Q. The Click Linux patch does not apply cleanly. A. You need a specific version of Linux. We currently distribute pactches - for Linux 2.2.18, 2.2.19 [patch also works for 2.2.20 and 2.2.21], and - 2.4.4. Most of the patch will apply no matter what version of Linux 2.2 - you use. The problems are with device drivers, which seem to change a - lot between versions. + for Linux 2.2.18, 2.2.19 [patch also works for 2.2.20 and 2.2.21], + 2.4.18, and 2.4.20. These patches may also work for later versions. Q. How fast can Click route packets? @@ -44,13 +42,6 @@ A. As a kernel thread. It continually loops over a list of things to do, will get run, but not as often as on a machine without Click. -Q. Is there a version of Click for Linux 2.4? - -A. Click now compiles under a patched version of Linux 2.4! (We supply the - patch.) Your mileage may vary; we still use Linux 2.2 for most of our - work. - - SECTION 2: QUESTIONS ABOUT POLLING ---------------------------------- diff --git a/NEWS b/NEWS index 6e1911263..8b55c33d2 100644 --- a/NEWS +++ b/NEWS @@ -1,12 +1,154 @@ Click NEWS -Version 1.2.5 +Version 1.3pre1 + +* Incompatible changes + +** The 'Queue' element is now a NotifierQueue. To access a queue without + notification, use 'SimpleQueue'. + +** The semantics of IPFilter 'deny' arguments have changed. Now, 'deny' + means the same thing as 'drop'. The old behavior was inappropriately + surprising. + +** Deprecated KernelTap element in favor of KernelTun. + +** '--enable-clickfs' is the default. (Clickfs provides a symlink from + /proc/click to /click to make upgrading easier.) + +** Removed elements deprecated in 1.2.4. This includes LookupIPRoute, + LookupIPRouteLinux, FromLinux, ToLinux, ToLinuxSniffers, PeekHandlers, + ProbSplitter, and RandomLossage. + +** The 'void Element::run_scheduled()' method has been deprecated; use + 'bool Element::run_task()' or 'void Element::run_timer()' instead. + 'run_task()'s bool return value should be true iff the task managed to + do some useful work. (This helps the adaptive scheduler.) + +** HandlerCall's interface has changed. So have the raw functions for + accessing handlers from a Router object. + +** Element map files now use an XML format, and are called 'elementmap.xml' + or 'elementmap-PACKAGE.xml', not 'elementmap' or 'elementmap.PACKAGE'. + +** LLRPCs now explicitly encode the amount of data they transfer to and + from the caller, using the same mechanism as ioctl(). This made it + possible to remove the local_llrpc() virtual method. + +** Removed deprecated header files like <click/click_ip.h>. + +** Changed ICMP structure and macro names in <clicknet/icmp.h>. + +** Removed deprecated Element methods and method signatures, including + 'Element::uninitialize()', 'Element::configure(const Vector<String> &)', + and 'Element::live_reconfigure(const Vector<String> &)'. + +** Click declarations and definitions are now surrounded with CLICK_DECLS + and CLICK_ENDDECLS macros (see any source file for an example). These + macros normally do nothing. In the 'ns' driver, though, they drop all + Click declarations into a separate namespace. + +** Removed 'String::operator const char *()', which caused problems with + newer GCCs. + +* Drivers + +** Add an optional adaptive task scheduler, written initially by Petros + Zerfos <pzerfos@cs.ucla.edu>. Give 'configure' the '--enable-adaptive' + option to turn it on. The adaptive scheduler takes less CPU time when + Click isn't busy, and lets you control the minimum and maximum shares + that Click will take of the CPU. This is particularly useful for the + Linux kernel module, on a uniprocessor, for running user-level programs + (tcpdump, for instance) as well as Click. + +** Add support for Linux 2.4.20 and a newer Intel E1000 driver (4.3.15). + +** Linux kernel module driver notices when other processes are waiting to + access the task list (to unschedule a task, for example), and explicitly + waits to give them a chance. + +** Various Linux kernel module bug fixes, including a serious one in the + SKB manager (mismeasured packet sizes could cause a kernel crash + eventually). + +** Add 'Task::strong_unschedule()', which moves tasks to the quiescent + thread; that way, tasks will not run even if they are rescheduled. + Useful in the presence of notification. + +** Integrated the 'nsclick' driver from the University of Colorado, and + particularly by Michael Neufeld. This driver lets you integrate a Click + router with an ns simulation; Click can accept ns packets and return + packets to ns. See configure's '--enable-ns' option and the 'ns' + subdirectory. + +** Improve performance of add_select() and remove_select() at user level. + +* Elements + +** Add SetUDPChecksum, TimestampAccum, PaintSwitch, KernelTun, MixedQueue. + +** Added notification support to ToDevice, DelayUnqueue, Unqueue, + ToIPSummaryDump, ToDump. + +** FromIPSummaryDump and ToIPSummaryDump: Add optional binary format to + save space and speed processing. Add 'aggregate', 'tcp_opt', 'tcp_sack', + 'tcp_window', and 'first_timestamp' content types. FromIPSummaryDump + understands '!flowid' and '!aggregate' lines. + +** FromDump and friends support 802.11 link types and the IPv6 Ethernet type. + +** Extended or changed functionality for ToDump (optional output port), + Counter (different keyword argument names), CycleCountAccum and + PerfCountAccum (different handler names), ControlSocket (different + select() plan for writes reduces needless spinning; READONLY is a + keyword argument), DelayUnqueue (supports combination of long delays and + fast rates), IPFragmenter (HONOR_DF is a keyword argument), SetIPAddress + (supports live reconfiguration), UDPIPEncap (supports live + reconfiguration), IPGWOptions (lazy packet copying and better behavior + on bad options), ICMPError (accept mnemonic names for ICMP error types + and codes), IPReassembler (optionally emit dead fragments to output 1). + +** Bug fixes to FromIPSummaryDump, ToIPSummaryDump, IPReassembler, + FromDump, ICMPRewriter, ICMPPingRewriter, ProgressBar, TCPRewriter, + AddressInfo, ARPResponder, ToHost, ToHostSniffers, Classifier, + InfiniteSource. * Tools +** Add click2xml tool, for translating a Click configuration into an XML + format, and a preliminary version of xml2click, which goes the other + way. + ** Changed meaning of click-mkmindriver's `-e' option. Now `-e' means `--expression' for consistency. `-E' means `--elements'. +** click-install supports the BSD kernel module. + +** Bug fixes to click-devirtualize, click-install, click-xform, + click-buildtool. + +* Internals + +** Add 'typename' where required to support newer GCCs. + +** Add Packet::shrink_data(), Packet::icmp_header(), and some others. + +** Change interface to BigHashMap iterators and BigHashMap_Arenas. + +** At user-level, ErrorHandler supports '%[efgEFG]' conversions for + doubles. To print an element declaration, say '%{element}' (not '%e'). + +** Bug fixes to CLP, BigHashMap, + +** Compiles cleanly on machines with 64-bit longs. + +* Acknowledgements + +** Thanks to AUTHORS, and (in no particular order) to YongKang Zhu, Filip + Henderieckx, Vlemincx Koen, David Scott Page, Wang Po-Cheng, Adam Smith, + Ryan Menezes, Gordon Lee, Chip Coldwell, Xiao Phong, Jose Vasconcellos, + Tomasz Jaskolski, Bart Samwel, and anyone we've missed. + Version 1.2.4 21.May.2002 diff --git a/README b/README index f843ded16..9eb6d2de9 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ -THE CLICK MODULAR ROUTER RELEASE 1.2.4 -====================================== +THE CLICK MODULAR ROUTER RELEASE 1.3 +==================================== This is the README file for the source release for the Click modular software router. The first thing you should do is look for more recent @@ -38,6 +38,7 @@ 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 @@ -52,6 +53,7 @@ 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/tools Click tools CLICKDIR/tools/lib ... common code for tools CLICKDIR/tools/click-align ... handles alignment for non-x86 machines @@ -114,6 +116,11 @@ then install a configuration by hand with `cat CONFIGFILE > /proc/click/config'. If any errors occurred, they will appear in `/proc/click/errors'. But `click-install' is easier. +NS Simulator +............ + + Give `./configure' the `--enable-ns' option. XXXX. + Configurations .............. diff --git a/configure.in b/configure.in index 425763235..330f489eb 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(pathvars.h.in) AC_CONFIG_HEADER(include/click/config.h:config.h.in include/click/pathvars.h:pathvars.h.in include/click/config-bsdmodule.h:config-bsdmodule.h.in include/click/config-linuxmodule.h:config-linuxmodule.h.in include/click/config-ns.h:config-ns.h.in include/click/config-userlevel.h:config-userlevel.h.in) -CLICK_VERSION=1.2.4a +CLICK_VERSION=1.3pre1 AC_SUBST(ac_configure_args) AC_DEFINE_UNQUOTED(CLICK_VERSION, "$CLICK_VERSION") diff --git a/test/handlers/kernel-01.testie b/test/handlers/kernel-01.testie new file mode 100644 index 000000000..2d4141a73 --- /dev/null +++ b/test/handlers/kernel-01.testie @@ -0,0 +1,37 @@ +%info + +This test installs a configuration with conflicting handler names. + +%script +click-install KERNELCONFIG +ls -R /click >HANDLERS +click-uninstall + +%file KERNELCONFIG +config :: Idle; +i :: Idle; +i/i1 :: Idle; +i/name :: Idle; + +%expect HANDLERS +/click: +1 +2 +3 +4 +classes +config +config +cycles +errors +flatconfig +hotconfig +i +list +meminfo +packages +priority +requirements +stop +threads +version -- GitLab