name space for Siena. More...
Classes | |
| class | MatchHandler |
| hook for the output function for matching interfaces. More... | |
| class | MatchMessageHandler |
| hook for the output function for matching interfaces. More... | |
| class | ForwardingTable |
| The heart of the forwarding table. More... | |
| class | string_t |
| string type. More... | |
| class | value |
| interface of a generic value in the Siena data model. More... | |
| class | attribute |
| interface of a generic attribute in the Siena data model. More... | |
| class | constraint |
| interface of a generic constraint in the Siena data model. More... | |
| class | message |
| interface of a generic message in the Siena data model. More... | |
| class | filter |
| interface of a generic filter in the Siena data model. More... | |
| class | predicate |
| interface of a generic predicate in the Siena 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 | BXTable |
| implementation of the forwarding table based on Bloom filters and a data structure used for matching called XDD. More... | |
| class | BDDBTableBase |
| implementation of the forwarding table based on Bloom filters and BDDs. This is the common structure of the BDD-based algorithm. More... | |
| class | BDDBTable |
| implementation of the forwarding table based on Bloom filters. This implementation consolidates each predicate into a BDD, which is then used for matching. More... | |
| class | ZDDBTable |
| implementation of the forwarding table based on Bloom filters. This implementation consolidates each predicate into a ZDD, which is then used for matching. More... | |
| class | BTrieTable |
| implementation of the forwarding table based on Bloom filters. More... | |
Typedefs | |
| typedef unsigned int | if_t |
| Interface type. More... | |
| typedef unsigned int | ifid_t |
| inteface identifier within the matching algorithm. More... | |
| typedef long long int | int_t |
| typedef double | double_t |
| typedef bool | bool_t |
Enumerations | |
| enum | operator_id { eq_id = 1, lt_id = 2, gt_id = 3, sf_id = 4, pf_id = 5, ss_id = 6, any_id = 7, ne_id = 8, re_id = 9 } |
| operator identifier for Siena. More... | |
| enum | type_id { string_id = 1, int_id = 2, double_id = 3, bool_id = 4, anytype_id = 5 } |
| type dentifiers in the Siena data model. More... | |
name space for Siena.
This namespace groups all the types and functionalities assiciated with Siena, including:
the basic Siena model that defines atomic types, attributes, constraints, messages, filters, and predicates
the forwarding module
| typedef bool siena::bool_t |
boolean type.
| typedef double siena::double_t |
double type.
| typedef unsigned int siena::if_t |
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).
| typedef unsigned int siena::ifid_t |
inteface identifier within the matching algorithm.
As opposed to if_t which identifies user-specified interface numbers, this is going to be used for the identification of interfaces within the matching algorithm, which may require a set of contiguous identifiers. So, for example, the user may specify interfaces 6, 78, and 200, while the internal identification would be 0, 1, and 2 respectively (or similar). I treat it as a different type (from if_t) because I don't want to mix them up (now that I write this, I'm not even sure the compiler would complain. Oh well.)
| typedef long long int siena::int_t |
integer type.
| enum siena::operator_id |
operator identifier for Siena.
Siena defines some of the most common operators (or binary relations). operator_id is the type of operator identifiers. The values for operator_id are those operators supported by the Siena Fast Forwarding algorithm.
| enum siena::type_id |
type dentifiers in the Siena data model.
Siena defines some common basic data types, including numbers, booleans, and strings. type_id defines identifiers for these types.
| Enumerator | |
|---|---|
| string_id |
string identifier. |
| int_id |
integer identifier. |
| double_id |
double identifier. |
| bool_id |
bool identifier. |
| anytype_id |
generic type identifier |