5 #ifndef __AGENT_PKT_FLOW_MGMT_TREE_H__
6 #define __AGENT_PKT_FLOW_MGMT_TREE_H__
17 typedef std::map<FlowMgmtKey *, FlowMgmtKeyNode *, FlowMgmtKeyCmp>
FlowMgmtKeyTree;
21 typedef std::map<FlowMgmtKey *, FlowMgmtEntry *, FlowMgmtKeyCmp>
Tree;
24 assert(
tree_.size() == 0);
103 uint32_t *ingress_flow_count,
104 uint32_t *egress_flow_count);
123 uint64_t *aged, uint32_t *active_flows);
195 if (rt_key != NULL) {
248 typedef std::map<uint32_t, const VrfEntry *>
VrfIdMap;
290 #endif // __AGENT_PKT_FLOW_MGMT_TREE_H__
virtual bool OperEntryDelete(const FlowMgmtRequest *req, FlowMgmtKey *key)
virtual ~BgpAsAServiceFlowMgmtTree()
virtual ~AclFlowMgmtTree()
NhFlowMgmtTree(FlowMgmtManager *mgr)
virtual ~InetRouteFlowMgmtTree()
bool BgpAsAServiceHealthCheckUpdate(Agent *agent, BgpAsAServiceFlowMgmtKey &key, BgpAsAServiceFlowMgmtRequest *req)
DISALLOW_COPY_AND_ASSIGN(BridgeRouteFlowMgmtTree)
DISALLOW_COPY_AND_ASSIGN(VrfFlowMgmtTree)
virtual FlowMgmtEntry * Allocate(const FlowMgmtKey *key)=0
FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
void VnFlowCounters(const VnEntry *vn, uint32_t *ingress_flow_count, uint32_t *egress_flow_count)
void SetDBEntry(const FlowMgmtRequest *req, FlowMgmtKey *key)
FlowMgmtEntry * Locate(FlowMgmtKey *key)
DISALLOW_COPY_AND_ASSIGN(FlowMgmtTree)
FlowMgmtEntry * Find(FlowMgmtKey *key)
virtual bool HasVrfFlows(uint32_t vrf_id, Agent::RouteTableType type)=0
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree, uint32_t vrf, const IpAddress &ip, uint8_t plen)
DISALLOW_COPY_AND_ASSIGN(NhFlowMgmtTree)
virtual ~InterfaceFlowMgmtTree()
boost::asio::ip::address IpAddress
virtual bool Delete(FlowMgmtKey *key, FlowEntry *flow, FlowMgmtKeyNode *node)
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree)
DISALLOW_COPY_AND_ASSIGN(InetRouteFlowMgmtTree)
static int GetCNIndex(const FlowEntry *flow)
DISALLOW_COPY_AND_ASSIGN(AclFlowMgmtTree)
bool Add(FlowMgmtKey *key, FlowEntry *flow, FlowMgmtKey *old_key, FlowMgmtKeyNode *node)
virtual void FreeNotify(FlowMgmtKey *key, uint32_t gen_id)
AclFlowMgmtTree(FlowMgmtManager *mgr)
virtual FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
void InsertEntry(FlowMgmtKey *key, FlowMgmtEntry *entry)
virtual bool Delete(FlowMgmtKey *key, FlowEntry *flow, FlowMgmtKeyNode *node)
bool HasVrfFlows(uint32_t vrf_id, Agent::RouteTableType type)
void RetryDelete(uint32_t vrf_id)
bool TryDelete(FlowMgmtKey *key, FlowMgmtEntry *entry)
bool RouteNHChangeEvent(const FlowMgmtRequest *req, FlowMgmtKey *key)
virtual void FreeNotify(FlowMgmtKey *key, uint32_t gen_id)
virtual void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree)=0
virtual bool OperEntryChange(const FlowMgmtRequest *req, FlowMgmtKey *key)
FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree)
bool HasVrfFlows(uint32_t vrf_id, Agent::RouteTableType type)
FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
virtual ~BridgeRouteFlowMgmtTree()
FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
InetRouteFlowMgmtTree(FlowMgmtManager *mgr)
static bool AddFlowMgmtKey(FlowMgmtKeyTree *tree, FlowMgmtKey *key)
virtual void RemoveEntry(Tree::iterator it)
FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
virtual bool OperEntryDelete(const FlowMgmtRequest *req, FlowMgmtKey *key)
DISALLOW_COPY_AND_ASSIGN(BgpAsAServiceFlowMgmtTree)
void AddToLPMTree(InetRouteFlowMgmtKey *key)
void DeleteDefaultRoute(const VrfEntry *vrf)
map< int, int > FlowRouteRefMap
virtual bool OperEntryDelete(const FlowMgmtRequest *req, FlowMgmtKey *key)
static const int kInvalidCnIndex
std::map< FlowMgmtKey *, FlowMgmtKeyNode *, FlowMgmtKeyCmp > FlowMgmtKeyTree
void RemoveEntry(Tree::iterator it)
bool BgpAsAServiceDelete(BgpAsAServiceFlowMgmtKey &key, const FlowMgmtRequest *req)
void InterfaceFlowCount(const Interface *itf, uint64_t *created, uint64_t *aged, uint32_t *active_flows)
virtual void InsertEntry(FlowMgmtKey *key, FlowMgmtEntry *entry)
D * LPMFind(const D *data)
FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
VrfFlowMgmtTree(FlowMgmtManager *mgr)
virtual bool OperEntryAdd(const FlowMgmtRequest *req, FlowMgmtKey *key)
BgpAsAServiceFlowMgmtTree(FlowMgmtManager *mgr, int index)
virtual bool OperEntryAdd(const FlowMgmtRequest *req, FlowMgmtKey *key)
FlowMgmtKey * LowerBound(FlowMgmtKey *key)
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree)
RouteFlowMgmtTree(FlowMgmtManager *mgr)
Patricia::Tree< InetRouteFlowMgmtKey,&InetRouteFlowMgmtKey::node_, InetRouteFlowMgmtKey::KeyCmp > LpmTree
virtual ~NhFlowMgmtTree()
DISALLOW_COPY_AND_ASSIGN(VnFlowMgmtTree)
void RemoveEntry(Tree::iterator it)
virtual ~VnFlowMgmtTree()
InetRouteFlowMgmtKey * LPM(const InetRouteFlowMgmtKey *key)
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree, const MatchAclParamsList *acl_list)
DISALLOW_COPY_AND_ASSIGN(RouteFlowMgmtTree)
void DelFromLPMTree(InetRouteFlowMgmtKey *key)
virtual bool Add(FlowMgmtKey *key, FlowEntry *flow, FlowMgmtKeyNode *node)
virtual ~VrfFlowMgmtTree()
void InsertEntry(FlowMgmtKey *key, FlowMgmtEntry *entry)
InterfaceFlowMgmtTree(FlowMgmtManager *mgr)
VnFlowMgmtTree(FlowMgmtManager *mgr)
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree)
virtual void FreeNotify(FlowMgmtKey *key, uint32_t gen_id)
virtual bool RetryDelete(FlowMgmtKey *key)
std::list< MatchAclParams > MatchAclParamsList
FlowMgmtEntry * Allocate(const FlowMgmtKey *key)
virtual bool OperEntryAdd(const FlowMgmtRequest *req, FlowMgmtKey *key)
virtual ~RouteFlowMgmtTree()
std::map< uint32_t, const VrfEntry * > VrfIdMap
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree)
BridgeRouteFlowMgmtTree(FlowMgmtManager *mgr)
std::map< FlowMgmtKey *, FlowMgmtEntry *, FlowMgmtKeyCmp > Tree
DISALLOW_COPY_AND_ASSIGN(InterfaceFlowMgmtTree)
virtual bool OperEntryDelete(const FlowMgmtRequest *req, FlowMgmtKey *key)
FlowMgmtManager * mgr() const
bool Delete(FlowMgmtKey *key, FlowEntry *flow, FlowMgmtKeyNode *node)
virtual bool OperEntryAdd(const FlowMgmtRequest *req, FlowMgmtKey *key)
void ExtractKeys(FlowEntry *flow, FlowMgmtKeyTree *tree)
bool RecomputeCoveringRoute(InetRouteFlowMgmtKey *covering_route, InetRouteFlowMgmtKey *key)
FlowMgmtTree(FlowMgmtManager *mgr)