5 #ifndef __AGENT_PKT_FLOW_MGMT_ENTRY_H__
6 #define __AGENT_PKT_FLOW_MGMT_ENTRY_H__
10 #include <boost/intrusive/list.hpp>
28 class AclFlowCountResp;
41 boost::intrusive::list_member_hook<>,
43 typedef boost::intrusive::list<FlowMgmtKeyNode, Node>
FlowList;
95 const int last_count,
Agent *agent);
97 const std::string &ace_id);
106 const std::string &ace_id);
108 const int last_count)
const;
std::vector< AclEntryID > AclEntryIDList
void FillAclFlowSandeshInfo(const AclDBEntry *acl, AclFlowResp &data, const int last_count, Agent *agent)
AceIdFlowCntMap aceid_cnt_map_
std::string GetAclFlowSandeshDataKey(const AclDBEntry *acl, const int last_count) const
std::map< std::string, int > AceIdFlowCntMap
std::string GetAceSandeshDataKey(const AclDBEntry *acl, const std::string &ace_id)
bool Add(const AclEntryIDList *ace_id_list, FlowEntry *flow, const AclEntryIDList *old_id_list, FlowMgmtKeyNode *node)
void FillAceFlowSandeshInfo(const AclDBEntry *acl, AclFlowCountResp &data, const std::string &ace_id)
void DecrementAceIdCountMap(const AclEntryIDList *id_list)
DISALLOW_COPY_AND_ASSIGN(AclFlowMgmtEntry)
virtual ~AclFlowMgmtEntry()
bool Delete(const AclEntryIDList *ace_id_list, FlowEntry *flow, FlowMgmtKeyNode *node)
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge,...
virtual bool HealthCheckUpdate(Agent *agent, FlowMgmtManager *mgr, BgpAsAServiceFlowMgmtKey &key, BgpAsAServiceFlowMgmtRequest *req)
virtual ~BgpAsAServiceFlowMgmtEntry()
DISALLOW_COPY_AND_ASSIGN(BgpAsAServiceFlowMgmtEntry)
virtual bool NonOperEntryDelete(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
BgpAsAServiceFlowMgmtEntry()
virtual ~BridgeRouteFlowMgmtEntry()
BridgeRouteFlowMgmtEntry()
DISALLOW_COPY_AND_ASSIGN(BridgeRouteFlowMgmtEntry)
DISALLOW_COPY_AND_ASSIGN(FlowMgmtEntry)
virtual bool OperEntryAdd(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
virtual bool CanDelete() const
boost::intrusive::member_hook< FlowMgmtKeyNode, boost::intrusive::list_member_hook<>, &FlowMgmtKeyNode::hook_ > Node
virtual bool Add(FlowEntry *flow, FlowMgmtKeyNode *node)
virtual bool NonOperEntryDelete(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
static const int MaxResponses
virtual bool OperEntryChange(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
boost::intrusive::list< FlowMgmtKeyNode, Node > FlowList
const FlowList & flow_list() const
void set_oper_state(State state)
virtual bool Delete(FlowEntry *flow, FlowMgmtKeyNode *node)
virtual bool OperEntryDelete(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
boost::intrusive::list_member_hook hook_
virtual ~InetRouteFlowMgmtEntry()
bool HandleNhChange(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
bool RecomputeCoveringRouteEntry(FlowMgmtManager *mgr, InetRouteFlowMgmtKey *covering_route, InetRouteFlowMgmtKey *key)
DISALLOW_COPY_AND_ASSIGN(InetRouteFlowMgmtEntry)
bool Delete(FlowEntry *flow, FlowMgmtKeyNode *node)
virtual ~InterfaceFlowMgmtEntry()
uint64_t flow_created() const
bool Add(FlowEntry *flow, FlowMgmtKeyNode *node)
DISALLOW_COPY_AND_ASSIGN(InterfaceFlowMgmtEntry)
uint64_t flow_aged() const
DISALLOW_COPY_AND_ASSIGN(NhFlowMgmtEntry)
virtual ~NhFlowMgmtEntry()
virtual ~RouteFlowMgmtEntry()
DISALLOW_COPY_AND_ASSIGN(RouteFlowMgmtEntry)
DISALLOW_COPY_AND_ASSIGN(VnFlowMgmtEntry)
void UpdateCounterOnDel(FlowEntry *flow, bool local_flow, bool old_ingress)
virtual ~VnFlowMgmtEntry()
void UpdateCounterOnAdd(FlowEntry *flow, bool add_flow, bool local_flow, bool old_ingress)
uint32_t ingress_flow_count_
uint32_t ingress_flow_count() const
uint32_t egress_flow_count_
uint32_t egress_flow_count() const
virtual ~VrfFlowMgmtEntry()
VrfFlowMgmtTree * vrf_tree() const
DISALLOW_COPY_AND_ASSIGN(VrfFlowMgmtEntry)
VrfFlowMgmtEntry(VrfFlowMgmtTree *vrf_tree, const VrfEntry *vrf)
VrfFlowMgmtTree * vrf_tree_
LifetimeRef< Data > table_ref_
Data(VrfFlowMgmtEntry *vrf_mgmt_entry, const VrfEntry *vrf, AgentRouteTable *table)
VrfFlowMgmtEntry * vrf_mgmt_entry_