5 #ifndef vnsw_agent_interface_uve_table_h
6 #define vnsw_agent_interface_uve_table_h
12 #include <boost/scoped_ptr.hpp>
13 #include <boost/shared_ptr.hpp>
14 #include <interface_types.h>
20 #include <vnsw/agent/uve/uve_types.h>
54 fip_list_(intf->floating_ip_list().list_) {}
87 uint64_t in_p, uint64_t out_b, uint64_t out_p)
108 if (lhs.get()->fip_ != rhs.get()->fip_) {
109 return lhs.get()->fip_ < rhs.get()->fip_;
111 return (lhs.get()->vn_ < rhs.get()->vn_);
128 struct UveInterfaceEntry;
157 const std::string &rprefix,
158 const std::string &rvn,
const std::string &lvn,
159 const std::string &action_str) :
171 if (lhs->local_vn.compare(rhs->local_vn) != 0) {
172 return lhs->local_vn < rhs->local_vn;
174 if (lhs->remote_vn.compare(rhs->remote_vn) != 0) {
175 return lhs->remote_vn < rhs->remote_vn;
177 if (lhs->local_tagset != rhs->local_tagset) {
178 return lhs->local_tagset < rhs->local_tagset;
180 if (lhs->remote_tagset != rhs->remote_tagset) {
181 return lhs->remote_tagset < rhs->remote_tagset;
183 return lhs->remote_prefix < rhs->remote_prefix;
186 typedef std::set<UveSecurityPolicyStatsPtr, PolicyCmp>
199 typedef std::map<std::string, EndpointStatsContainer>
201 typedef std::pair<std::string, EndpointStatsContainer>
240 vector<VmFloatingIPStats> &diff_list,
241 bool &diff_list_send);
242 void SetStats(VmFloatingIPStats &fip, uint64_t in_bytes,
243 uint64_t in_pkts, uint64_t out_bytes, uint64_t out_pkts)
const;
244 void SetDiffStats(VmFloatingIPStats &fip, uint64_t in_bytes,
245 uint64_t in_pkts, uint64_t out_bytes, uint64_t out_pkts,
246 bool &diff_list_send)
const;
250 const std::string &vn);
252 UveVMInterfaceAgent *s_intf)
const;
258 std::string &gw)
const;
278 std::vector<SandeshUveTagInfo> *rts)
const;
282 std::vector<SecurityPolicyFlowStats> *ol);
285 std::vector<SandeshUveRemoteEndpoint> *olist)
const;
boost::asio::ip::address IpAddress
std::vector< int > TagList
bool operator()(const FloatingIpPtr &lhs, const FloatingIpPtr &rhs) const
virtual ~InterfaceUveTable()
void SendInterfaceMsg(const std::string &name, UveInterfaceEntry *entry)
DISALLOW_COPY_AND_ASSIGN(InterfaceUveTable)
virtual void DispatchVMIStatsMsg(const VMIStats &uve)
DBTableBase::ListenerId intf_listener_id_
virtual void DispatchInterfaceObjectLog(EndpointSecurityStats *obj)
void SendInterfaceDeleteMsg(const std::string &config_name)
virtual UveInterfaceEntryPtr Allocate(const VmInterface *vm)
std::set< AceStats > AceStatsSet
boost::shared_ptr< UveInterfaceEntry > UveInterfaceEntryPtr
void InterfaceDeleteHandler(const std::string &name)
std::map< std::string, UveInterfaceEntryPtr > InterfaceMap
std::map< std::string, EndpointStatsContainer > SecurityPolicyStatsMap
void DispatchVMITagsMsg(const VMITags &uve) const
std::pair< std::string, UveInterfaceEntryPtr > InterfacePair
std::set< UveSecurityPolicyStatsPtr, PolicyCmp > SecurityPolicyStatsSet
void InterfaceNotify(DBTablePartBase *partition, DBEntryBase *e)
std::set< FloatingIpPtr, FloatingIpCmp > FloatingIpSet
std::string timer_last_visited_
boost::shared_ptr< UveSecurityPolicyStats > UveSecurityPolicyStatsPtr
virtual void DispatchInterfaceMsg(const UveVMInterfaceAgent &uve)
void set_expiry_time(int time)
std::pair< std::string, EndpointStatsContainer > SecurityPolicyStatsPair
InterfaceUveTable(Agent *agent, uint32_t default_intvl)
void InterfaceAddHandler(const VmInterface *intf, const VmInterface::FloatingIpSet &old_list)
virtual void SendInterfaceAceStats(const string &name, UveInterfaceEntry *entry)
tbb::mutex interface_tree_mutex_
InterfaceMap interface_tree_
boost::shared_ptr< FloatingIp > FloatingIpPtr
void HandleVmiTagListChange(const std::string &name)
std::set< FloatingIp, FloatingIp > FloatingIpSet
std::string remote_prefix
AceStats(const std::string &ace)
bool operator<(const AceStats &rhs) const
const std::string ace_uuid
SecurityPolicyStatsSet server_list
SecurityPolicyStatsSet & ToList(bool client)
SecurityPolicyStatsSet client_list
FloatingIp(const IpAddress &ip, const std::string &vn, uint64_t in_b, uint64_t in_p, uint64_t out_b, uint64_t out_p)
FloatingIp(const IpAddress &ip, const std::string &vn)
void UpdateFloatingIpStats(const FipInfo &fip_info)
bool operator()(const UveSecurityPolicyStatsPtr &lhs, const UveSecurityPolicyStatsPtr &rhs) const
void UpdateCounters(const FlowUveFwPolicyInfo &info, UveSecurityPolicyStats *obj)
bool OutBandChanged(uint64_t out_band) const
virtual ~UveInterfaceEntry()
FloatingIpSet prev_fip_tree_
void HandleTagListChange()
bool PortBitmapChanged(const PortBucketBitmap &bmap) const
SecurityPolicyStatsMap security_policy_stats_map_
bool FrameTagsUveMsg(Agent *agent, const std::string &name, VMITags *uve)
void FillEndpointStats(Agent *agent, EndpointSecurityStats *obj)
void UpdateSecurityPolicyStatsInternal(const EndpointStatsInfo &info, UveSecurityPolicyStats *stats)
bool FrameInterfaceMsg(const std::string &name, UveVMInterfaceAgent *s_intf) const
bool FrameInterfaceAceStatsMsg(const std::string &name, VMIStats *s_intf)
L4PortBitmap port_bitmap_
void RemoveFloatingIp(const VmInterface::FloatingIp &fip)
void BuildInterfaceUveSecurityPolicyList(const SecurityPolicyStatsSet &ilist, std::vector< SandeshUveRemoteEndpoint > *olist) const
void UpdateInterfaceAceStats(const std::string &ace_uuid)
void UpdateSecurityPolicyStats(const EndpointStatsInfo &info)
bool FillFloatingIpStats(vector< VmFloatingIPStats > &result, vector< VmFloatingIPStats > &diff_list, bool &diff_list_send)
void BuildSandeshUveTagList(const TagList &list, std::vector< SandeshUveTagInfo > *rts) const
const VmInterface * intf_
void FillTagSetAndPolicyList(VMIStats *obj)
bool FipAggStatsChanged(const vector< VmFloatingIPStats > &list) const
void SetStats(VmFloatingIPStats &fip, uint64_t in_bytes, uint64_t in_pkts, uint64_t out_bytes, uint64_t out_pkts) const
void FillSecurityPolicyList(Agent *agent, const SecurityPolicyStatsSet &ilist, std::vector< SecurityPolicyFlowStats > *ol)
InterfaceUveTable::FloatingIp * FipEntry(uint32_t ip, const std::string &vn)
void BuildInterfaceUveInfo(InterfaceUveInfo *r) const
void SetVMIStatsVnVm(VMIStats *uve) const
void SetVnVmInfo(UveVMInterfaceAgent *uve) const
void SetDiffStats(VmFloatingIPStats &fip, uint64_t in_bytes, uint64_t in_pkts, uint64_t out_bytes, uint64_t out_pkts, bool &diff_list_send) const
void AddFloatingIp(const VmInterface::FloatingIp &fip)
void UpdateInterfaceFwPolicyStats(const FlowUveFwPolicyInfo &info)
bool InBandChanged(uint64_t in_band) const
void UpdateFloatingIpStats(const FipInfo &fip_info)
bool GetVmInterfaceGateway(const VmInterface *vm_intf, std::string &gw) const
std::string GetVmName() const
void UpdatePortBitmap(uint8_t proto, uint16_t sport, uint16_t dport)
UveInterfaceEntry(const VmInterface *i)
VmInterface::FloatingIpSet fip_list_
UveInterfaceState(const VmInterface *intf)
UveSecurityPolicyStats(const TagList <set, const TagList &rtset, const std::string &rprefix, const std::string &rvn, const std::string &lvn, const std::string &action_str)
std::string remote_prefix