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...
#include <bddbtable.h>
Static Public Member Functions | |
static BDDBTable * | create () |
create and initialize a BDDBTable. | |
Additional Inherited Members | |
Public Member Functions inherited from siena::AttributesFIB | |
virtual void | ifconfig (InterfaceId, const Predicate &)=0 |
Associates a predicate to an interface. More... | |
virtual void | match (const Message &, MatchHandler &) const =0 |
Processes a message, calling the output() function on the given MatchHandler object for each matching interface. More... | |
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.
The idea behind this algorithm is to represent each encoded predicate as a BDD. An encoded predicate is constructed as an M-by-N bit matrix, where M is the chosen size of the Bloom filter, and N is the number of Bloom filters, each one representing a conjunction of constraints. Therefore, each one of the M bits of the Bloom filters becomes a variable in the BDD (or ZDD).