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