[Click] Bigint, List, packet annotations

Eddie Kohler kohler at cs.ucla.edu
Mon Jul 7 19:47:43 EDT 2008


Hi all,

Some notable updates to Click's core.

* The Bigint class provides access to some simple multiple-precision integer 
arithmetic functions, including multiply and divide.

http://www.read.cs.ucla.edu/click/doxygen/classBigint.html

* The List template is a doubly-linked list (as requested a while ago by 
Joonwoo Park and others; Joonwoo also had a patch).  See ARPQuerier for an 
example of its use.

http://www.read.cs.ucla.edu/click/doxygen/classList.html

* Click's annotation system has been updated to allow named annotations and 
runtime-specified annotation offsets.  For example:

     AnnotationInfo(PAINT2 17 1);   // define a 1-byte "PAINT2" annotation
                                    // at annotation byte 17
     AnnotationInfo(CHECK_OVERLAP PAINT PAINT2 DST_IP);
                 // check that the named annotations don't overlap

     ... -> Paint(2) -> ...                     // sets PAINT anno to 2
     ... -> Paint(ANNO PAINT, COLOR 2) -> ...   // also sets PAINT anno to 2
     ... -> Paint(ANNO PAINT2, COLOR 10) -> ... // sets PAINT2 anno to 10

See the Paint family for some examples of how this is used.

As part of this change, the Packet::user_anno() functions have been deprecated 
in favor of new Packet::anno() functions.  The new versions take byte offset 
arguments uniformly.

http://www.read.cs.ucla.edu/click/doxygen/classPacket.html

Thanks very much to Cliff Frey.

Eddie


More information about the click mailing list