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 |