[Click] ANNOUNCE: Click-1.7.0rc1

Eddie Kohler kohler at cs.ucla.edu
Sat Mar 7 20:29:15 EST 2009


Hi all,

This announces the first release candidate of click-1.7.0.

http://www.read.cs.ucla.edu/click/download

I would appreciate feedback on this release candidate.  Has your patch not 
made it in?  Please resent let me know -- even if you just sent the patch last 
week.  The full release will be in a week's time if I hear nothing further.

The draft NEWS for this release is attached below.  If I forgot you, please 
speak up!

I'd also like to remind people about the Clicky GUI; it would be great to see 
this get more use and even maybe to get some extensions.

http://www.read.cs.ucla.edu/click/clicky  (has screencast!)

Thanks all for making Click as successful as it is, and special thanks to 
Meraki, Inc. for supporting recent work.

Eddie


Version 1.7.0

* Clicky GUI

** Include clicky, a new Click GUI using the GTK+ toolkit.  To compile,
    install the GTK+ development package for your OS, then install Click.
    Finally, "cd apps/clicky; autoreconf -i; ./configure
    --prefix=CLICKPREFIX; make install".  Clicky is capable of interacting
    live with Click routers, either in the kernel or using the ControlSocket
    protocol for user-level configurations.  It displays a configuration as
    text, highlights configuration errors, and displays handlers.  It can
    also display an automatically-created configuration diagram.  A powerful
    Cascading Style Sheets-like language can be used to control the diagram.
    For instance, elements on the diagram can display live counter values.

* Drivers

** Support Linux 2.6.24.7.  Major thanks to Joonwoo Park and
    NemeanNetworks, and Adam Greenhalgh.

** Many soft lockup fixes to the kernel driver, for both multithreading and
    uniprocessor scenarios.  Problems reported especially by Joonwoo Park
    and Kevin Springborn.

** Add support for user-level multithreading.

** Improve atomic operations and multithreading support for notifiers.

** ThreadSafeQueue is a completely thread-safe queue, allowing multiple
    simultaneous pushers and/or pullers.

** Linux kernel device elements support carrier check.

** Major improvements in parsing and initialization time for large
    configurations.

** The Timestamp class supports any timestamp layout used by Linux,
    including various types of 64-bit scalar values.

** Linuxmodule Click file system: Prefer element names to handler names --
    "/click/ELEMENTNAME" always matches an element of that name.  To
    reliably find a handler, use "/click/ELEMENTNAME/.h/HANDLERNAME".
    Similarly for global handlers.

* Elements

** New AnnotationInfo element adds support for named packet annotations.
    Use this support in other elements, such as Paint, which now allows
    users to name which annotation to paint.  Required refactoring of Packet
    annotation area.

** ControlSocket: add READDATA, READUNTIL, and WRITEUNTIL commands, add
    LOCALHOST keyword argument, fix LLRPC support.

** Script: support "goto label CONDITION", add printn, error, returnq,
    setq, and initq commands, add PROXY and PACKET types, add many handlers.

** Queue: add second output for rejected packets.

** IPSummaryDump elements: support ICMP, FromIPSummaryDump supports more
    data types, fix MD5 checksums.

** Add handlers to Counter, TimedSink, others.

** New elements, including ARPTable, EtherPauseSource, FlowInfo,
    KernelFilter, StoreEtherAddress, TimedUnqueue, TruncateIPPayload.

** Bug fixes and other improvements to click-align, click-devirtualize,
    ARPFaker, ARPQuerier, ARPResponder, AddressInfo, AggregateIPFlows,
    AnyDevice, CheckIPHeader, DirectIPLookup, FromDevice, FromHost,
    FromUserDevice, IPFilter, IPPrint, IPReassembler, IPRouteTable,
    KernelTun, Print, ProgressBar, Queue, RadixIPLookup, SpinlockInfo,
    StoreIPAddress, StrideSched, StrideSwitch, Suppressor, TimeFilter,
    TimeRange, ToDevice, ToHost, ToUserDevice, and others.

* Internals

** New HashTable template is preferred over HashMap.  It is documented.

** Improve Timer scheduling precision by dynamically adjusting the expiry
    time.  Improve Timer fairness as well; a Timer cannot starve Task
    processing or other Timers.

** New cp_va_kparse functions replace cp_va_parse.  The cp_va_kparse
    functions assign a keyword to *every* argument, facilitating better
    error messages.

** Element::add_data_handlers() is an easy way to provide handler access to
    element data members.  Element::read/reconfigure_keyword_handler can
    handle optionaly-positional handlers.

** New Handler class features handler flags that act as hints to GUI
    displays.

** New List template for doubly-linked lists.

** New Bigint template for simple multiple-precision integer arithmetic.
    Code derived from GNU MP.

** Timestamp refactoring required by newer Linux drivers.

** The number of supported Notifiers is possibly infinite.  Additionally,
    Notifiers better support combinations of large numbers of basic signals,
    so a RoundRobinSched downstream of more than 32 Queues won't pin the
    CPU.

** testie regression test framework improvements.

** 64-bit platform fixes.

** Improved error message subsystem (documented in error.hh/error.cc).

** Improved sort function is faster and robust to bad comparators.

** Use click_random() for random numbers.

** UTF-8 support in command line arguments and ErrorHandler.

** "./configure --enable-valgrind" turns on extra support for memory
    debugging with Valgrind.

** Remove the "connectiontunnel" primitive.

** Much documentation, including to Task, Timer, NameDB, NameInfo,
    ErrorHandler, CLP.

** Other bug fixes, including to String and StringAccum.

* Special thanks to Joonwoo Park, Cliff Frey, Roman Chertov, Kevin
   Springborn, and Adam Greenhalgh for their extraordinary contributions.

* Thanks to Alexander Afanasyev, Damien Ancelin, Johan Bergs, Lorenzo
   Bianconi, Bart Braem, Lars Bro, Marco Canini, Remi Clavier, Beyers
   Cronje, Lionel Debroux, Giovanni Di Stasi, Norbert Egi, Megan Leigh
   Elmore, Ulf Hermann, Bob Keyes, Brian Kim, Klocwork for code analysis,
   Nikola Knežević, Hashimoto Kouki, John Russell Lane, Jinyang Li, Mustafa
   Mohammad, Jim Mott-Smith, Tom Parker, Vern Paxson, Matthias Petschick,
   Stephen Pink, Pavlin Radoslavov, Manuel Requena, Barret Rhoden, Roberto
   Riggio, Robert Ross, Javier Sánchez, Harald Schiöberg, Robert Sombrutzki,
   Seiichi Tatsukawa, Neil Viberg, Vivek Vijayan, Michael Voorhaen, Nicholas
   Weaver, Marco Wenzel, Christopher White, Pieter Wuytens, Xiao Yu, and
   anyone else we inadvertently left off the list.



More information about the click mailing list