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;
240 #endif // __AGENT_PKT_FLOW_MGMT_ENTRY_H__
uint32_t ingress_flow_count() const
uint64_t flow_aged() const
boost::intrusive::member_hook< FlowMgmtKeyNode, boost::intrusive::list_member_hook<>,&FlowMgmtKeyNode::hook_ > Node
uint32_t egress_flow_count_
DISALLOW_COPY_AND_ASSIGN(VrfFlowMgmtEntry)
virtual bool OperEntryChange(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
Data(VrfFlowMgmtEntry *vrf_mgmt_entry, const VrfEntry *vrf, AgentRouteTable *table)
virtual bool OperEntryDelete(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
bool HandleNhChange(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
virtual bool HealthCheckUpdate(Agent *agent, FlowMgmtManager *mgr, BgpAsAServiceFlowMgmtKey &key, BgpAsAServiceFlowMgmtRequest *req)
virtual ~BridgeRouteFlowMgmtEntry()
virtual bool OperEntryAdd(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge, EVPN (Type2/Type5). This base class contains common code for all types of route tables.
bool Delete(const AclEntryIDList *ace_id_list, FlowEntry *flow, FlowMgmtKeyNode *node)
std::vector< AclEntryID > AclEntryIDList
DISALLOW_COPY_AND_ASSIGN(NhFlowMgmtEntry)
void set_oper_state(State state)
virtual ~InetRouteFlowMgmtEntry()
DISALLOW_COPY_AND_ASSIGN(BridgeRouteFlowMgmtEntry)
virtual ~AclFlowMgmtEntry()
DISALLOW_COPY_AND_ASSIGN(InetRouteFlowMgmtEntry)
void UpdateCounterOnDel(FlowEntry *flow, bool local_flow, bool old_ingress)
static const int MaxResponses
bool Delete(FlowEntry *flow, FlowMgmtKeyNode *node)
virtual bool Delete(FlowEntry *flow, FlowMgmtKeyNode *node)
virtual ~BgpAsAServiceFlowMgmtEntry()
virtual bool CanDelete() const
DISALLOW_COPY_AND_ASSIGN(RouteFlowMgmtEntry)
boost::intrusive::list< FlowMgmtKeyNode, Node > FlowList
virtual ~VnFlowMgmtEntry()
boost::intrusive::list_member_hook hook_
virtual ~NhFlowMgmtEntry()
VrfFlowMgmtEntry(VrfFlowMgmtTree *vrf_tree, const VrfEntry *vrf)
const FlowList & flow_list() const
DISALLOW_COPY_AND_ASSIGN(VnFlowMgmtEntry)
virtual ~InterfaceFlowMgmtEntry()
DISALLOW_COPY_AND_ASSIGN(FlowMgmtEntry)
std::string GetAceSandeshDataKey(const AclDBEntry *acl, const std::string &ace_id)
std::string GetAclFlowSandeshDataKey(const AclDBEntry *acl, const int last_count) const
VrfFlowMgmtEntry * vrf_mgmt_entry_
virtual ~VrfFlowMgmtEntry()
VrfFlowMgmtTree * vrf_tree() const
virtual bool NonOperEntryDelete(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
virtual bool NonOperEntryDelete(FlowMgmtManager *mgr, const FlowMgmtRequest *req, FlowMgmtKey *key)
void UpdateCounterOnAdd(FlowEntry *flow, bool add_flow, bool local_flow, bool old_ingress)
virtual ~RouteFlowMgmtEntry()
LifetimeRef< Data > table_ref_
uint32_t ingress_flow_count_
uint32_t egress_flow_count() const
BgpAsAServiceFlowMgmtEntry()
DISALLOW_COPY_AND_ASSIGN(AclFlowMgmtEntry)
void FillAceFlowSandeshInfo(const AclDBEntry *acl, AclFlowCountResp &data, const std::string &ace_id)
bool RecomputeCoveringRouteEntry(FlowMgmtManager *mgr, InetRouteFlowMgmtKey *covering_route, InetRouteFlowMgmtKey *key)
std::map< std::string, int > AceIdFlowCntMap
void FillAclFlowSandeshInfo(const AclDBEntry *acl, AclFlowResp &data, const int last_count, Agent *agent)
void DecrementAceIdCountMap(const AclEntryIDList *id_list)
DISALLOW_COPY_AND_ASSIGN(InterfaceFlowMgmtEntry)
virtual bool Add(FlowEntry *flow, FlowMgmtKeyNode *node)
VrfFlowMgmtTree * vrf_tree_
AceIdFlowCntMap aceid_cnt_map_
DISALLOW_COPY_AND_ASSIGN(BgpAsAServiceFlowMgmtEntry)
BridgeRouteFlowMgmtEntry()
bool Add(FlowEntry *flow, FlowMgmtKeyNode *node)
bool Add(const AclEntryIDList *ace_id_list, FlowEntry *flow, const AclEntryIDList *old_id_list, FlowMgmtKeyNode *node)
uint64_t flow_created() const