OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vrouter_uve_entry.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef vnsw_agent_vrouter_uve_entry_h
6 #define vnsw_agent_vrouter_uve_entry_h
7 
9 #include <uve/agent_uve_stats.h>
10 
11 //The class that defines data-structures to store VRouter information
12 //required for sending VRouter UVE.
14 public:
15  typedef std::map<std::string, RouteTableSize> RouteTableSizeMap;
16  typedef std::pair<std::string, RouteTableSize> RouteTableSizePair;
17  typedef boost::shared_ptr<RouteTableSizeMap> RouteTableSizeMapPtr;
18 
19  VrouterUveEntry(Agent *agent);
20  virtual ~VrouterUveEntry();
22 
23  virtual bool SendVrouterMsg();
25  void UpdateBitmap(uint8_t proto, uint16_t sport, uint16_t dport);
26 
27 protected:
31 private:
32  void DispatchVrouterControlStats(const VrouterControlStats &uve) const;
33  void InitPrevStats() const;
34  void FetchDropStats(AgentDropStats &ds) const;
35  bool SetVrouterPortBitmap(VrouterStatsAgent &vr_stats);
36  uint64_t CalculateBandwitdh(uint64_t bytes, int speed_mbps,
37  int diff_seconds, double *utilization_bps) const;
39  bool dir_in, int mins, double *util) const;
40  bool BuildPhysicalInterfaceBandwidth(std::vector<AgentIfBandwidth> &list,
41  uint8_t mins) const;
42  bool BuildPhysicalInterfaceBandwidth(map<string,uint64_t> &imp,
43  map<string,uint64_t> &omp,
44  uint8_t mins, double &in_util,
45  double &out_util) const;
46  bool BuildPhysicalInterfaceList(std::map<std::string, PhyIfStats> &list,
47  std::map<std::string, PhyIfInfo> &info,
48  std::map<std::string, AgentDropStats> &dsmap) const;
49  std::string GetMacAddress(const MacAddress &mac) const;
50  void BuildXmppStatsList(std::map<std::string, AgentXmppStats> *stats) const;
53  bool AppendVrf(DBTablePartBase *part, DBEntryBase *entry,
55  bool StartVrfWalk();
57 
58  uint64_t start_time_;
61 };
62 
63 #endif // vnsw_agent_vrouter_uve_entry_h
void FetchIFMapStats(AgentUve::DerivedStatsMap *ds) const
FlowRateComputeInfo flow_info_
uint64_t GetBandwidthUsage(StatsManager::InterfaceStats *s, bool dir_in, int mins, double *util) const
std::string GetMacAddress(const MacAddress &mac) const
void UpdateBitmap(uint8_t proto, uint16_t sport, uint16_t dport)
void VrfWalkDone(DBTableBase *base, RouteTableSizeMapPtr list)
bool AppendVrf(DBTablePartBase *part, DBEntryBase *entry, RouteTableSizeMapPtr list)
VrouterUveEntry(Agent *agent)
L4PortBitmap port_bitmap()
uint64_t CalculateBandwitdh(uint64_t bytes, int speed_mbps, int diff_seconds, double *utilization_bps) const
void DispatchVrouterControlStats(const VrouterControlStats &uve) const
std::map< string, uint64_t > DerivedStatsMap
Definition: agent_uve.h:18
std::pair< std::string, RouteTableSize > RouteTableSizePair
virtual bool SendVrouterMsg()
DBTableWalker::WalkId vrf_walk_id_
Definition: agent.h:358
bool SetVrouterPortBitmap(VrouterStatsAgent &vr_stats)
void BuildAndSendVrouterControlStats(RouteTableSizeMapPtr list)
bool BuildPhysicalInterfaceBandwidth(std::vector< AgentIfBandwidth > &list, uint8_t mins) const
virtual ~VrouterUveEntry()
boost::shared_ptr< RouteTableSizeMap > RouteTableSizeMapPtr
DISALLOW_COPY_AND_ASSIGN(VrouterUveEntry)
std::map< std::string, RouteTableSize > RouteTableSizeMap
L4PortBitmap port_bitmap_
void FetchDropStats(AgentDropStats &ds) const
void BuildXmppStatsList(std::map< std::string, AgentXmppStats > *stats) const
void InitPrevStats() const
bool BuildPhysicalInterfaceList(std::map< std::string, PhyIfStats > &list, std::map< std::string, PhyIfInfo > &info, std::map< std::string, AgentDropStats > &dsmap) const