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;
331 #endif // vnsw_agent_interface_uve_table_h
void SetStats(VmFloatingIPStats &fip, uint64_t in_bytes, uint64_t in_pkts, uint64_t out_bytes, uint64_t out_pkts) const
bool FrameTagsUveMsg(Agent *agent, const std::string &name, VMITags *uve)
void UpdatePortBitmap(uint8_t proto, uint16_t sport, uint16_t dport)
void UpdateInterfaceAceStats(const std::string &ace_uuid)
std::pair< std::string, EndpointStatsContainer > SecurityPolicyStatsPair
void SetVMIStatsVnVm(VMIStats *uve) const
const VmInterface * intf_
void set_expiry_time(int time)
AceStats(const std::string &ace)
InterfaceMap interface_tree_
bool FipAggStatsChanged(const vector< VmFloatingIPStats > &list) const
std::map< std::string, EndpointStatsContainer > SecurityPolicyStatsMap
virtual ~InterfaceUveTable()
std::set< AceStats > AceStatsSet
SecurityPolicyStatsSet client_list
void UpdateSecurityPolicyStats(const EndpointStatsInfo &info)
FloatingIpSet prev_fip_tree_
boost::asio::ip::address IpAddress
DBTableBase::ListenerId intf_listener_id_
FloatingIp(const IpAddress &ip, const std::string &vn)
FloatingIp(const IpAddress &ip, const std::string &vn, uint64_t in_b, uint64_t in_p, uint64_t out_b, uint64_t out_p)
UveSecurityPolicyStats(const TagList <set, const TagList &rtset, const std::string &rprefix, const std::string &rvn, const std::string &lvn, const std::string &action_str)
void FillTagSetAndPolicyList(VMIStats *obj)
void DispatchVMITagsMsg(const VMITags &uve) const
tbb::mutex interface_tree_mutex_
void InterfaceAddHandler(const VmInterface *intf, const VmInterface::FloatingIpSet &old_list)
virtual void DispatchInterfaceObjectLog(EndpointSecurityStats *obj)
VmInterface::FloatingIpSet fip_list_
std::set< UveSecurityPolicyStatsPtr, PolicyCmp > SecurityPolicyStatsSet
InterfaceUveTable(Agent *agent, uint32_t default_intvl)
L4PortBitmap port_bitmap_
void UpdateInterfaceFwPolicyStats(const FlowUveFwPolicyInfo &info)
void RemoveFloatingIp(const VmInterface::FloatingIp &fip)
SecurityPolicyStatsSet server_list
boost::shared_ptr< FloatingIp > FloatingIpPtr
void UpdateFloatingIpStats(const FipInfo &fip_info)
virtual void DispatchInterfaceMsg(const UveVMInterfaceAgent &uve)
virtual ~UveInterfaceEntry()
virtual UveInterfaceEntryPtr Allocate(const VmInterface *vm)
void HandleVmiTagListChange(const std::string &name)
bool OutBandChanged(uint64_t out_band) const
bool operator()(const UveSecurityPolicyStatsPtr &lhs, const UveSecurityPolicyStatsPtr &rhs) const
bool InBandChanged(uint64_t in_band) const
void UpdateSecurityPolicyStatsInternal(const EndpointStatsInfo &info, UveSecurityPolicyStats *stats)
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
std::pair< std::string, UveInterfaceEntryPtr > InterfacePair
void InterfaceNotify(DBTablePartBase *partition, DBEntryBase *e)
bool GetVmInterfaceGateway(const VmInterface *vm_intf, std::string &gw) const
bool operator()(const FloatingIpPtr &lhs, const FloatingIpPtr &rhs) const
std::string remote_prefix
SecurityPolicyStatsSet & ToList(bool client)
void UpdateCounters(const FlowUveFwPolicyInfo &info, UveSecurityPolicyStats *obj)
void AddFloatingIp(const VmInterface::FloatingIp &fip)
bool PortBitmapChanged(const PortBucketBitmap &bmap) const
bool FillFloatingIpStats(vector< VmFloatingIPStats > &result, vector< VmFloatingIPStats > &diff_list, bool &diff_list_send)
void FillEndpointStats(Agent *agent, EndpointSecurityStats *obj)
void SendInterfaceDeleteMsg(const std::string &config_name)
bool operator<(const AceStats &rhs) const
void FillSecurityPolicyList(Agent *agent, const SecurityPolicyStatsSet &ilist, std::vector< SecurityPolicyFlowStats > *ol)
UveInterfaceState(const VmInterface *intf)
virtual void DispatchVMIStatsMsg(const VMIStats &uve)
void SetVnVmInfo(UveVMInterfaceAgent *uve) const
InterfaceUveTable::FloatingIp * FipEntry(uint32_t ip, const std::string &vn)
std::string timer_last_visited_
bool FrameInterfaceAceStatsMsg(const std::string &name, VMIStats *s_intf)
const std::string ace_uuid
void UpdateFloatingIpStats(const FipInfo &fip_info)
void BuildSandeshUveTagList(const TagList &list, std::vector< SandeshUveTagInfo > *rts) const
void HandleTagListChange()
SecurityPolicyStatsMap security_policy_stats_map_
std::set< FloatingIp, FloatingIp > FloatingIpSet
void SendInterfaceMsg(const std::string &name, UveInterfaceEntry *entry)
boost::shared_ptr< UveInterfaceEntry > UveInterfaceEntryPtr
void BuildInterfaceUveInfo(InterfaceUveInfo *r) const
std::set< FloatingIpPtr, FloatingIpCmp > FloatingIpSet
void InterfaceDeleteHandler(const std::string &name)
boost::shared_ptr< UveSecurityPolicyStats > UveSecurityPolicyStatsPtr
virtual void SendInterfaceAceStats(const string &name, UveInterfaceEntry *entry)
void BuildInterfaceUveSecurityPolicyList(const SecurityPolicyStatsSet &ilist, std::vector< SandeshUveRemoteEndpoint > *olist) const
std::map< std::string, UveInterfaceEntryPtr > InterfaceMap
std::string GetVmName() const
DISALLOW_COPY_AND_ASSIGN(InterfaceUveTable)
bool FrameInterfaceMsg(const std::string &name, UveVMInterfaceAgent *s_intf) const
std::string remote_prefix
UveInterfaceEntry(const VmInterface *i)
std::vector< int > TagList