OpenSDN source code
|
#include <session_stats_collector.h>
Classes | |
class | SessionTask |
Public Types | |
typedef std::map< const SessionEndpointKey, SessionEndpointInfo, SessionEndpointKeyCmp > | SessionEndpointMap |
typedef WorkQueue < boost::shared_ptr < SessionStatsReq > > | Queue |
typedef std::map< FlowEntryPtr, FlowToSessionMap > | FlowSessionMap |
typedef std::map< std::string, SessionSloRuleEntry > | SessionSloRuleMap |
![]() | |
enum | StatsInstance { FlowStatsCollector, AgentStatsCollector } |
Public Member Functions | |
uint32_t | RunSessionEndpointStats (uint32_t max_count) |
SessionStatsCollector (boost::asio::io_context &io, AgentUveBase *uve, uint32_t instance_id, FlowStatsManager *fsm, SessionStatsCollectorObject *obj) | |
virtual | ~SessionStatsCollector () |
bool | Run () |
int | task_id () const |
uint32_t | instance_id () const |
const Queue * | queue () const |
size_t | Size () const |
![]() | |
StatsCollector (int task_id, int32_t instance, boost::asio::io_service &io, int exp, std::string timer_name) | |
virtual | ~StatsCollector () |
void | InitDone () |
void | Shutdown () |
void | TestStartStopTimer (bool stop) |
int | expiry_time () const |
void | set_expiry_time (int time) |
void | RescheduleTimer (int time) |
Static Public Attributes | |
static const uint32_t | kSessionStatsTimerInterval = 1000 |
static const uint32_t | kSessionsPerTask = 256 |
Protected Member Functions | |
virtual void | DispatchSessionMsg (const std::vector< SessionEndpoint > &lst) |
Private Member Functions | |
int | ComputeSloRate (int rate, SecurityLoggingObject *slo) const |
bool | FetchFlowStats (SessionFlowStatsInfo *info, SessionFlowStatsParams *params) const |
uint64_t | threshold () const |
bool | IsSamplingEnabled () const |
bool | SampleSession (SessionPreAggInfo::SessionMap::iterator session_map_iter, SessionStatsParams *params) const |
bool | SessionStatsChangedLocked (SessionPreAggInfo::SessionMap::iterator session_map_iter, SessionStatsParams *params) const |
bool | SessionStatsChangedUnlocked (SessionPreAggInfo::SessionMap::iterator session_map_iter, SessionStatsParams *params) const |
bool | ProcessSessionEndpoint (const SessionEndpointMap::iterator &it) |
uint64_t | GetUpdatedSessionFlowBytes (uint64_t info_bytes, uint64_t k_flow_bytes) const |
uint64_t | GetUpdatedSessionFlowPackets (uint64_t info_packets, uint64_t k_flow_pkts) const |
void | FillSessionEvictStats (SessionPreAggInfo::SessionMap::iterator session_map_iter, SessionInfo *session_info, bool is_sampling, bool is_logging) const |
void | FillSessionFlowStats (const SessionFlowStatsParams &stats, SessionFlowInfo *flow_info, bool is_sampling, bool is_logging) const |
void | FillSessionFlowInfo (const SessionFlowStatsInfo &session_flow, const SessionStatsInfo &sinfo, const SessionFlowExportInfo &einfo, SessionFlowInfo *flow_info) const |
void | CopyFlowInfoInternal (SessionFlowExportInfo *info, const boost::uuids::uuid &u, FlowEntry *fe) const |
void | CopyFlowInfo (SessionStatsInfo &session, const RevFlowDepParams *params) |
void | UpdateAggregateStats (const SessionInfo &sinfo, SessionAggInfo *agg_info, bool is_sampling, bool is_logging) const |
void | FillSessionInfoLocked (SessionPreAggInfo::SessionMap::iterator session_map_iter, const SessionStatsParams &stats, SessionInfo *session_info, SessionIpPort *session_key, bool is_sampling, bool is_logging) const |
void | FillSessionInfoUnlocked (SessionPreAggInfo::SessionMap::iterator session_map_iter, const SessionStatsParams &stats, SessionInfo *session_info, SessionIpPort *session_key, const RevFlowDepParams *params, bool read_flow, bool is_sampling, bool is_logging) const |
void | FillSessionAggInfo (SessionEndpointInfo::SessionAggMap::iterator it, SessionIpPortProtocol *session_agg_key) const |
void | FillSessionEndpoint (SessionEndpointMap::iterator it, SessionEndpoint *session_ep) const |
void | FillSessionTags (const TagList &list, SessionEndpoint *ep) const |
void | FillSessionRemoteTags (const TagList &list, SessionEndpoint *ep) const |
void | UpdateSessionFlowStatsInfo (FlowEntry *fe, SessionFlowStatsInfo *session_flow) const |
void | UpdateSessionStatsInfo (FlowEntry *fe, uint64_t setup_time, SessionStatsInfo *session) const |
void | AddSession (FlowEntry *fe, uint64_t setup_time) |
void | DeleteSession (FlowEntry *fe, const boost::uuids::uuid &del_uuid, uint64_t teardown_time, const RevFlowDepParams *params) |
void | EvictedSessionStatsUpdate (const FlowEntryPtr &flow, uint32_t bytes, uint32_t packets, uint32_t oflow_bytes, const boost::uuids::uuid &u) |
bool | GetSessionKey (FlowEntry *fe, SessionAggKey &session_agg_key, SessionKey &session_key, SessionEndpointKey &session_endpoint_key) |
void | AddFlowToSessionMap (FlowEntry *fe, SessionKey session_key, SessionAggKey session_agg_key, SessionEndpointKey session_endpoint_key) |
void | DeleteFlowToSessionMap (FlowEntry *fe) |
void | Shutdown () |
void | RegisterDBClients () |
void | AddEvent (const FlowEntryPtr &flow) |
void | DeleteEvent (const FlowEntryPtr &flow, const RevFlowDepParams ¶ms) |
void | UpdateSessionStatsEvent (const FlowEntryPtr &flow, uint32_t bytes, uint32_t packets, uint32_t oflow_bytes, const boost::uuids::uuid &u) |
bool | RequestHandlerEntry () |
void | RequestHandlerExit (bool done) |
bool | RequestHandler (boost::shared_ptr< SessionStatsReq > req) |
void | EnqueueSessionMsg () |
void | DispatchPendingSessionMsg () |
uint8_t | GetSessionMsgIdx () |
bool | UpdateSloMatchRuleEntry (const boost::uuids::uuid &slo_uuid, const std::string &match_uuid, bool *match) |
bool | CheckPolicyMatch (const SessionSloRuleMap &map, const std::string &policy_uuid, const bool &deleted_flag, bool *match, const bool &exported_once) |
bool | FindSloMatchRule (const SessionSloRuleMap &map, const std::string &fw_policy_uuid, const std::string &nw_policy_uuid, const std::string &sg_policy_uuid, const bool &deleted_flag, bool *match, const bool &exported_once) |
void | GetPolicyIdFromFlow (const FlowEntry *fe, std::string &fw_policy_uuid, std::string &nw_policy_uuid, std::string &sg_policy_uuid) |
void | GetPolicyIdFromDeletedFlow (const SessionFlowExportInfo &flow_info, std::string &fw_policy_uuid, std::string &nw_policy_uuid, std::string &sg_policy_uuid) |
bool | MatchSloForFlow (const SessionStatsInfo &stats_info, const FlowEntry *fe, const std::string &fw_policy_uuid, const std::string &nw_policy_uuid, const std::string &sg_policy_uuid, const bool &deleted_flag, bool *logged, const bool &exported_once) |
void | BuildSloList (const SessionStatsInfo &stats_info, const FlowEntry *fe, SessionSloRuleMap *global_session_slo_rule_map, SessionSloRuleMap *vmi_session_slo_rule_map, SessionSloRuleMap *vn_session_slo_rule_map) |
void | MakeSloList (const FlowEntry *fe, SessionSloRuleMap *vmi_session_slo_rule_map, SessionSloRuleMap *vn_session_slo_rule_map) |
bool | FlowLogging (const SessionStatsInfo &stats_info, const FlowEntry *fe, bool *logged, const bool &exported_once) |
bool | DeletedFlowLogging (const SessionStatsInfo &stats_info, const SessionFlowExportInfo &flow_info, bool *logged, const bool &exported_once) |
bool | HandleDeletedFlowLogging (const SessionStatsInfo &stats_info) |
bool | HandleFlowLogging (const SessionStatsInfo &stats_info) |
bool | CheckSessionLogging (const SessionStatsInfo &stats_info) |
void | AddSloList (const UuidList &slo_list, SessionSloRuleMap *slo_rule_map) |
void | AddSloEntry (const boost::uuids::uuid &uuid, SessionSloRuleMap *slo_rule_map) |
void | AddSloEntryRules (SecurityLoggingObject *slo, SessionSloRuleMap *slo_rule_map) |
void | AddSloFirewallPolicies (SecurityLoggingObject *slo, SessionSloRuleMap *r_map) |
void | AddSloFirewallRules (SecurityLoggingObject *slo, SessionSloRuleMap *rule_map) |
void | AddSloRules (const std::vector< autogen::SecurityLoggingObjectRuleEntryType > &list, SecurityLoggingObject *slo, SessionSloRuleMap *slo_rule_map) |
void | AddSessionSloRuleEntry (const std::string &uuid, int rate, SecurityLoggingObject *slo, SessionSloRuleMap *slo_rule_map) |
void | SloNotify (DBTablePartBase *partition, DBEntryBase *e) |
void | UpdateSloStateRules (SecurityLoggingObject *slo, SessionSloState *state) |
bool | CheckAndDeleteSessionStatsFlow (SessionPreAggInfo::SessionMap::iterator session_map_iter) |
DISALLOW_COPY_AND_ASSIGN (SessionStatsCollector) | |
Static Private Member Functions | |
static uint64_t | GetCurrentTime () |
Private Attributes | |
AgentUveBase * | agent_uve_ |
int | task_id_ |
SessionEndpointKey | session_ep_iteration_key_ |
SessionAggKey | session_agg_iteration_key_ |
SessionKey | session_iteration_key_ |
SessionEndpointMap | session_endpoint_map_ |
FlowSessionMap | flow_session_map_ |
Queue | request_queue_ |
std::vector< SessionEndpoint > | session_msg_list_ |
uint8_t | session_msg_index_ |
uint32_t | instance_id_ |
FlowStatsManager * | flow_stats_manager_ |
SessionStatsCollectorObject * | parent_ |
SessionTask * | session_task_ |
uint64_t | current_time_ |
uint64_t | session_task_starts_ |
uint32_t | session_ep_visited_ |
DBTable::ListenerId | slo_listener_id_ |
Friends | |
class | FlowStatsManager |
class | SessionStatsCollectorObject |
Additional Inherited Members | |
![]() | |
int | run_counter_ |
Definition at line 166 of file session_stats_collector.h.
typedef std::map<FlowEntryPtr, FlowToSessionMap> SessionStatsCollector::FlowSessionMap |
Definition at line 171 of file session_stats_collector.h.
typedef WorkQueue<boost::shared_ptr<SessionStatsReq> > SessionStatsCollector::Queue |
Definition at line 170 of file session_stats_collector.h.
typedef std::map<const SessionEndpointKey, SessionEndpointInfo, SessionEndpointKeyCmp> SessionStatsCollector::SessionEndpointMap |
Definition at line 169 of file session_stats_collector.h.
typedef std::map<std::string, SessionSloRuleEntry> SessionStatsCollector::SessionSloRuleMap |
Definition at line 172 of file session_stats_collector.h.
SessionStatsCollector::SessionStatsCollector | ( | boost::asio::io_context & | io, |
AgentUveBase * | uve, | ||
uint32_t | instance_id, | ||
FlowStatsManager * | fsm, | ||
SessionStatsCollectorObject * | obj | ||
) |
|
virtual |
|
private |
Definition at line 186 of file session_stats_collector.cc.
|
private |
Definition at line 813 of file session_stats_collector.cc.
|
private |
Definition at line 558 of file session_stats_collector.cc.
|
private |
Definition at line 904 of file session_stats_collector.cc.
|
private |
Definition at line 966 of file session_stats_collector.cc.
|
private |
Definition at line 959 of file session_stats_collector.cc.
|
private |
Definition at line 926 of file session_stats_collector.cc.
|
private |
Definition at line 948 of file session_stats_collector.cc.
|
private |
Definition at line 978 of file session_stats_collector.cc.
|
private |
Definition at line 914 of file session_stats_collector.cc.
|
private |
Definition at line 1008 of file session_stats_collector.cc.
|
private |
Definition at line 1467 of file session_stats_collector.cc.
|
private |
Definition at line 1053 of file session_stats_collector.cc.
|
private |
Definition at line 1293 of file session_stats_collector.cc.
|
private |
Definition at line 835 of file session_stats_collector.cc.
|
private |
Definition at line 1360 of file session_stats_collector.cc.
|
private |
Definition at line 1344 of file session_stats_collector.cc.
|
private |
Definition at line 1217 of file session_stats_collector.cc.
|
private |
Definition at line 193 of file session_stats_collector.cc.
|
private |
Definition at line 827 of file session_stats_collector.cc.
|
private |
Definition at line 652 of file session_stats_collector.cc.
|
private |
|
private |
Definition at line 227 of file session_stats_collector.cc.
|
protectedvirtual |
Definition at line 212 of file session_stats_collector.cc.
|
private |
Definition at line 218 of file session_stats_collector.cc.
|
private |
Definition at line 743 of file session_stats_collector.cc.
|
private |
Definition at line 1501 of file session_stats_collector.cc.
|
private |
Definition at line 1701 of file session_stats_collector.cc.
|
private |
Definition at line 1759 of file session_stats_collector.cc.
|
private |
Definition at line 1569 of file session_stats_collector.cc.
|
private |
Definition at line 1426 of file session_stats_collector.cc.
|
private |
Definition at line 1408 of file session_stats_collector.cc.
|
private |
Definition at line 1558 of file session_stats_collector.cc.
|
private |
Definition at line 1596 of file session_stats_collector.cc.
|
private |
Definition at line 1735 of file session_stats_collector.cc.
|
private |
Definition at line 1711 of file session_stats_collector.cc.
|
private |
Definition at line 1077 of file session_stats_collector.cc.
|
private |
Definition at line 1191 of file session_stats_collector.cc.
|
staticprivate |
|
private |
Definition at line 1169 of file session_stats_collector.cc.
|
private |
Definition at line 1180 of file session_stats_collector.cc.
|
private |
Definition at line 412 of file session_stats_collector.cc.
|
private |
Definition at line 240 of file session_stats_collector.cc.
|
private |
Definition at line 1323 of file session_stats_collector.cc.
|
private |
Definition at line 1333 of file session_stats_collector.cc.
|
private |
Definition at line 1243 of file session_stats_collector.cc.
|
private |
Definition at line 1267 of file session_stats_collector.cc.
|
inline |
Definition at line 197 of file session_stats_collector.h.
|
private |
Definition at line 1995 of file session_stats_collector.cc.
|
private |
Definition at line 987 of file session_stats_collector.cc.
|
private |
Definition at line 1107 of file session_stats_collector.cc.
|
private |
Definition at line 1784 of file session_stats_collector.cc.
|
inline |
Definition at line 198 of file session_stats_collector.h.
|
private |
|
private |
Definition at line 254 of file session_stats_collector.cc.
|
private |
Definition at line 246 of file session_stats_collector.cc.
|
private |
Definition at line 251 of file session_stats_collector.cc.
|
virtual |
Implements StatsCollector.
Definition at line 86 of file session_stats_collector.cc.
uint32_t SessionStatsCollector::RunSessionEndpointStats | ( | uint32_t | max_count | ) |
Definition at line 1924 of file session_stats_collector.cc.
|
private |
Definition at line 2005 of file session_stats_collector.cc.
|
private |
Definition at line 1481 of file session_stats_collector.cc.
|
private |
Definition at line 1490 of file session_stats_collector.cc.
|
private |
|
inline |
Definition at line 199 of file session_stats_collector.h.
|
private |
Definition at line 883 of file session_stats_collector.cc.
|
inline |
Definition at line 196 of file session_stats_collector.h.
|
private |
Definition at line 2087 of file session_stats_collector.cc.
|
private |
Definition at line 1674 of file session_stats_collector.cc.
|
private |
Definition at line 507 of file session_stats_collector.cc.
|
private |
Definition at line 201 of file session_stats_collector.cc.
|
private |
Definition at line 517 of file session_stats_collector.cc.
|
private |
Definition at line 1034 of file session_stats_collector.cc.
|
private |
Definition at line 845 of file session_stats_collector.cc.
|
friend |
Definition at line 200 of file session_stats_collector.h.
|
friend |
Definition at line 201 of file session_stats_collector.h.
|
private |
Definition at line 380 of file session_stats_collector.h.
|
private |
Definition at line 397 of file session_stats_collector.h.
|
private |
Definition at line 386 of file session_stats_collector.h.
|
private |
Definition at line 391 of file session_stats_collector.h.
|
private |
Definition at line 390 of file session_stats_collector.h.
|
static |
Definition at line 175 of file session_stats_collector.h.
|
static |
Definition at line 174 of file session_stats_collector.h.
|
private |
Definition at line 392 of file session_stats_collector.h.
|
private |
Definition at line 387 of file session_stats_collector.h.
|
private |
Definition at line 383 of file session_stats_collector.h.
|
private |
Definition at line 385 of file session_stats_collector.h.
|
private |
Definition at line 382 of file session_stats_collector.h.
|
private |
Definition at line 399 of file session_stats_collector.h.
|
private |
Definition at line 384 of file session_stats_collector.h.
|
private |
Definition at line 389 of file session_stats_collector.h.
|
private |
Definition at line 388 of file session_stats_collector.h.
|
private |
Definition at line 393 of file session_stats_collector.h.
|
private |
Definition at line 398 of file session_stats_collector.h.
|
private |
Definition at line 400 of file session_stats_collector.h.
|
private |
Definition at line 381 of file session_stats_collector.h.