|
|
It manages sending the code and sets to the filters in the protocols. It also updates the policy-tag-map in the RIB.
It also keeps track if protocols die / come back to life, throw the process watch in order to re-send code to filters which were dead and are now back.
typedef map<string,Code*> CodeMap | CodeMap |
typedef map<string,string> ConfQueue | ConfQueue |
typedef set<uint32_t> TagSet | TagSet |
typedef map<string,TagSet*> TagMap | TagMap |
FMException (class) | FMException |
FilterManager (const CodeMap& imp, const CodeMap& sm,
const CodeMap& exp, const SetMap& sets,
const TagMap& tagmap, XrlStdRouter& rtr,
ProcessWatch& pw,
ProtocolMap& pmap)
| FilterManager |
The FilterManager closely works with the Configuration class. Maybe in the future holding a reference the Configuration class, instead of the internal components may be a better solution.
Parameters:
imp | import filter CodeMap to use. |
sm | source match filter CodeMap to use. |
exp | export filter CodeMap to use. |
sets | SetMap to use. |
tagmap | TagMap to use. |
rtr | the XRL router used by the policy process. |
pw | the process watcher. |
pmap | the protocol map. |
void update_filter (const Code::Target& t)
| update_filter |
Update the filter for a specific target. This will normally queue a filter configuration request.
Parameters:
t | target which should be updated. |
Reimplemented from FilterManagerBase.
void policy_backend_cb (const XrlError& e)
| policy_backend_cb |
Xrl callback for all XRL requests.
Parameters:
e | possible XRL error. |
void push_routes_now ()
| push_routes_now |
Flushes the route pushing queue.
void flush_updates_now ()
| flush_updates_now |
void flush_updates (uint32_t msec)
| flush_updates |
Flush all updates after msec milliseconds.
If a new update comes in before msec expires, only the new update will be performed.
Parameters:
msec | milliseconds after which all queues should be flushed. |
Reimplemented from FilterManagerBase.
void birth (const string& protocol)
| birth |
A protocol just came back to life.
Parameters:
protocol | name of protocol which is alive. |
Reimplemented from PWNotifier.
void death (const string& protocol)
| death |
A protocol just died.
Parameters:
protocol | name of protocol which died. |
Reimplemented from PWNotifier.