name space for Siena. More...
Classes | |
class | MatchHandler |
hook for the output function for matching interfaces. More... | |
class | FIB |
Basic services of a forwarding table. More... | |
class | AttributesFIB |
A forwarding table for the attribute-based, single-tree model. More... | |
class | TagsFIB |
A forwarding table for the tag-based, single-tree model. More... | |
class | String |
binary string type. More... | |
class | Value |
interface of a generic value in the attribute-based data model. More... | |
class | Attribute |
interface of a generic attribute in the attribute-based data model. More... | |
class | Constraint |
interface of a generic constraint in the attribute-based data model. More... | |
class | BadConstraint |
error condition for an invalid constraint. More... | |
class | Message |
interface of a generic message in the attribute-based data model. More... | |
class | Filter |
interface of a generic filter in the attribute-based data model. More... | |
class | Predicate |
interface of a generic predicate in the attribute-based data model. More... | |
class | FwdTable |
implementation of a forwarding table based on an improved "counting" algorithm. More... | |
class | BTable |
implementation of the forwarding table based on Bloom filters. More... | |
class | SortedBTable |
implementation of the forwarding table based on Bloom filters. More... | |
class | BCTable |
implementation of the forwarding table based on Bloom filters and counting algorithm. More... | |
class | BVTable |
implementation of the forwarding table based on Bloom filters and a data structure used for matching called XDD. More... | |
class | BXTable |
implementation of the forwarding table based on Bloom filters and a data structure used for matching called XDD. More... | |
class | BDDBTable |
implementation of the forwarding table based on Bloom filters. This implementation consolidates each predicate into a binary decision diagram (BDD) that is then used for matching. More... | |
class | ZDDBTable |
implementation of the forwarding table based on Bloom filters. This implementation consolidates each predicate into a zero-suppressed decision diagram (ZDD), which is then used for matching. More... | |
class | BTrieTable |
Implementation of TagsFIB based on an encoding of tag sets as Bloom filters represented as a trie. More... | |
class | Tag |
interface of a generic tag in the Siena data model. More... | |
class | TagSet |
interface of a generic tag set in the tag-based data model. More... | |
class | TagSetList |
interface of a generic predicate in the "tagset" Siena data model. More... | |
class | TagsTable |
Implementation of TagsFIB based on an encoding of tag sets as Bloom filters represented as a trie. More... | |
class | TTable |
a very simple implementation of a TagsFIB. More... | |
Typedefs | |
typedef unsigned int | InterfaceId |
Interface type. More... | |
typedef long int | Int |
typedef double | Double |
typedef bool | Bool |
Enumerations | |
enum | OperatorId { EQ = 1, LT = 2, GT = 3, SF = 4, PF = 5, SS = 6, ANY = 7, NE = 8, RE = 9 } |
operator identifier for the attributes-based data model. More... | |
enum | TypeId { STRING = 1, INT = 2, DOUBLE = 3, BOOL = 4, ANYTYPE = 5 } |
type dentifiers in the attributes-based data model. More... | |
name space for Siena.
This namespace groups all the types and functionalities associated with the Siena system, including:
The attributes data model, including its atomic types, attributes, constraints, messages, filters, and predicates.
The tags data model, including tags, tag sets, and lists of tag sets.
The forwarding modules, including all forwarding schemes and algorithms.
typedef bool siena::Bool |
boolean type.
typedef double siena::Double |
double type.
typedef long int siena::Int |
integer type.
typedef unsigned int siena::InterfaceId |
Interface type.
For simplicity, an interface is represented by a number. This is an explicit design choice. More information can be associated with an interface through a secondary data structure (a vector or anything else).
enum siena::OperatorId |
operator identifier for the attributes-based data model.
Siena defines some of the most common operators (or binary relations) for the atomic types (strings, numbers, etc.) of the attributes data model. OperatorId is the type of operator identifiers.
Enumerator | |
---|---|
EQ |
equals. Ordinary equality relation for basic types. |
LT |
less than. Less-than ordering relation. Integers and doubles are ordered as usual, strings are ordered lexicographically. For booleans, false is less-than true. |
GT |
greater than.
|
SF |
suffix. suffix. x |
PF |
prefix prefix. x |
SS |
contains substring contains substring. x |
ANY |
any value Tests only the existence of a given attribute. |
NE |
not equal Matches different values. Notice, however, that a constraint with this operator would still require that the attribute exist, and that the values be of compatible types. |
RE |
matches regular expression Matches a regular expression. <em>x</em> <code>RE</code> <em>y</em> is true if <em>y</em> is a regular expression that matches <em>x</em>. For example, <code>"software" RE "([ot][fw])+a" == true</code>, while <code>"software" SS "o.{1,2}are$" == false</code>. <code>RE</code> is defined for strings only. GNU extended regular expressions are completely supported except for backreferences – that is, these are regular expression that can be described with a finite-state automaton or, equivalently, by a Chomsky type-3 grammars. |
enum siena::TypeId |
type dentifiers in the attributes-based data model.
Siena defines some common basic data types, including numbers, booleans, and strings. TypeId defines identifiers for these types.
Enumerator | |
---|---|
STRING |
string identifier. |
INT |
integer identifier. |
DOUBLE |
double identifier. |
BOOL |
bool identifier. |
ANYTYPE |
generic type identifier |