5 #ifndef _VNSW_AGENT_PORT_IPC_PORT_SUBSCRIBE_TABLE_H_
6 #define _VNSW_AGENT_PORT_IPC_PORT_SUBSCRIBE_TABLE_H_
13 #include <boost/uuid/uuid.hpp>
14 #include <boost/shared_ptr.hpp>
18 #include <tbb/mutex.h>
21 #include <vnc_cfg_types.h>
181 typedef std::map<boost::uuids::uuid, PortSubscribeEntryPtr, Cmp>
VmiTree;
240 typedef std::map<VmVnUuidEntry, boost::uuids::uuid, VmVnUuidEntryCmp>
242 typedef std::map<VmVnUuidEntry, PortSubscribeEntryPtr, VmVnUuidEntryCmp>
279 std::set<boost::uuids::uuid> &vmi_uuid_set)
const;
281 std::set<boost::uuids::uuid> &vmi_uuid_set)
const;
308 #endif // _VNSW_AGENT_PORT_IPC_PORT_SUBSCRIBE_TABLE_H_
virtual const boost::uuids::uuid & vm_uuid() const
virtual ~PortSubscribeEntry()
bool operator()(const VmVnUuidEntry &lhs, const VmVnUuidEntry &rhs) const
VmVnToVmiTree vmvn_to_vmi_tree_
std::string vm_namespace_
boost::uuids::uuid vm_uuid_
const std::string & vm_identifier() const
bool VmVnToVmiSet(const boost::uuids::uuid &vm_uuid, std::set< boost::uuids::uuid > &vmi_uuid_set) const
void OnAdd(Agent *agent, PortSubscribeTable *table) const
const boost::uuids::uuid & vm_uuid() const
void OnDelete(Agent *agent, PortSubscribeTable *table) const
VNController * controller_
virtual bool MatchVn(const boost::uuids::uuid &u) const
void DeleteVmVnPort(const boost::uuids::uuid &vm_uuid, const boost::uuids::uuid &vn_uuid, const boost::uuids::uuid &vmi_uuid)
void set_vmi_uuid(const boost::uuids::uuid &u)
DISALLOW_COPY_AND_ASSIGN(VmiSubscribeEntry)
void OnDelete(Agent *agent, PortSubscribeTable *table) const
boost::uuids::uuid vn_uuid_
boost::uuids::uuid vn_uuid_
DBTableBase::ListenerId vmi_config_listener_id_
const boost::uuids::uuid & project_uuid() const
virtual const boost::uuids::uuid & vm_uuid() const =0
std::string vm_identifier_
void DeleteVmi(const boost::uuids::uuid &u)
boost::uuids::uuid vmi_uuid_
VmiToVmVnTree vmi_to_vmvn_tree_
uint8_t vhostuser_mode() const
virtual void OnDelete(Agent *agent, PortSubscribeTable *table) const =0
const boost::uuids::uuid & vmi_uuid() const
bool VmVnToVmiSetNoLock(const boost::uuids::uuid &vm_uuid, std::set< boost::uuids::uuid > &vmi_uuid_set) const
PortSubscribeTable(Agent *agent)
void AddVmVnPort(const boost::uuids::uuid &vm_uuid, const boost::uuids::uuid &vn_uuid, const boost::uuids::uuid &vmi_uuid, PortSubscribeEntryPtr entry)
void OnAdd(Agent *agent, PortSubscribeTable *table) const
virtual const boost::uuids::uuid & vn_uuid() const =0
virtual bool MatchVn(const boost::uuids::uuid &u) const =0
uint16_t rx_vlan_id() const
DISALLOW_COPY_AND_ASSIGN(VmVnPortSubscribeEntry)
virtual ~PortSubscribeTable()
DISALLOW_COPY_AND_ASSIGN(PortSubscribeEntry)
IFMapNode * UuidToIFNode(const boost::uuids::uuid &u) const
std::map< boost::uuids::uuid, IFMapNode * > UuidToIFNodeTree
void AddVmi(const boost::uuids::uuid &u, PortSubscribeEntryPtr entry)
~VmVnPortSubscribeEntry()
boost::uuids::uuid vn_uuid_
static const char * TypeToString(Type type)
boost::uuids::uuid vmi_uuid_
virtual bool MatchVm(const boost::uuids::uuid &u) const
PortSubscribeEntryPtr GetVmVnPort(const boost::uuids::uuid &vm_uuid, const boost::uuids::uuid &vn_uuid, const boost::uuids::uuid &vmi_uuid)
const std::string & vm_ifname() const
const std::string & mac_addr() const
void UpdateVmiIfnodeInfo(const boost::uuids::uuid &vmi_uuid, const VmInterfaceConfigData *data)
UuidToIFNodeTree uuid_ifnode_tree_
std::map< VmVnUuidEntry, boost::uuids::uuid, VmVnUuidEntryCmp > VmVnToVmiTree
boost::asio::ip::address_v6 Ip6Address
bool operator()(const boost::uuids::uuid &lhs, const boost::uuids::uuid &rhs) const
VmiSubscribeEntry(PortSubscribeEntry::Type type, const std::string &ifname, uint32_t version, const boost::uuids::uuid &vmi_uuid, const boost::uuids::uuid vm_uuid, const std::string &vm_name, const boost::uuids::uuid &vn_uuid, const boost::uuids::uuid &project_uuid, const Ip4Address &ip4_addr, const Ip6Address &ip6_addr, const std::string &mac_addr, uint16_t tx_vlan_id, uint16_t rx_vlan_id, uint8_t vhostuser_mode, uint8_t link_state)
boost::uuids::uuid vm_uuid_
virtual bool MatchVn(const boost::uuids::uuid &u) const
const std::string & vm_name() const
const std::string & ifname() const
PortSubscribeEntryPtr Get(const boost::uuids::uuid &vmi_uuid, const boost::uuids::uuid &vm_uuid, const boost::uuids::uuid &vn_uuid) const
DISALLOW_COPY_AND_ASSIGN(PortSubscribeTable)
boost::shared_ptr< PortSubscribeEntry > PortSubscribeEntryPtr
boost::uuids::uuid parent_vmi_
virtual void OnAdd(Agent *agent, PortSubscribeTable *table) const =0
virtual bool MatchVm(const boost::uuids::uuid &u) const =0
VmVnTree vmvn_subscribe_tree_
boost::asio::ip::address_v4 Ip4Address
const boost::uuids::uuid & vn_uuid() const
boost::uuids::uuid vm_uuid_
boost::uuids::uuid vm_uuid_
virtual void Update(const PortSubscribeEntry *rhs)
const std::string & vm_namespace() const
const std::string & vm_name() const
autogen::VirtualMachineInterface * vmi_cfg
void HandleVmiIfnodeDelete(const boost::uuids::uuid &vmi_uuid)
virtual const boost::uuids::uuid & vn_uuid() const
void HandleVmiIfnodeAdd(const boost::uuids::uuid &vmi_uuid, const VmInterfaceConfigData *data)
void set_link_state(uint8_t value)
boost::uuids::uuid vmi_uuid_
void DeleteVmiIfnodeInfo(const boost::uuids::uuid &vmi_uuid)
const boost::uuids::uuid & vmi_uuid() const
void StaleWalk(uint64_t version)
uint8_t link_state() const
const VmiEntry * VmiToEntry(const boost::uuids::uuid &vmi_uuid) const
PortSubscribeEntry(Type type, const std::string &ifname, int32_t version)
virtual void Update(const PortSubscribeEntry *rhs)
VmVnUuidEntry(const boost::uuids::uuid &vm_uuid, const boost::uuids::uuid &vn_uuid, const boost::uuids::uuid &vmi_uuid)
std::map< boost::uuids::uuid, VmiEntry > VmiToVmVnTree
boost::uuids::uuid project_uuid_
boost::uuids::uuid vn_uuid_
PortSubscribeEntryPtr GetVmi(const boost::uuids::uuid &u) const
PortSubscribeEntryPtr GetVmVnPortNoLock(const boost::uuids::uuid &vm_uuid, const boost::uuids::uuid &vn_uuid, const boost::uuids::uuid &vmi_uuid)
InterfaceTable * interface_table_
virtual void Update(const PortSubscribeEntry *rhs)
IFMapAgentTable * vmi_config_table_
const Ip6Address & ip6_addr() const
uint16_t tx_vlan_id() const
std::map< VmVnUuidEntry, PortSubscribeEntryPtr, VmVnUuidEntryCmp > VmVnTree
const Ip4Address & ip4_addr() const
VmVnPortSubscribeEntry(PortSubscribeEntry::Type type, const std::string &ifname, uint32_t version, const boost::uuids::uuid &vm_uuid, const boost::uuids::uuid &vn_uuid, const boost::uuids::uuid &vmi_uuid, const std::string &vm_name, const std::string &vm_identifier, const std::string &vm_ifname, const std::string &vm_namespace)
std::map< boost::uuids::uuid, PortSubscribeEntryPtr, Cmp > VmiTree
virtual bool MatchVm(const boost::uuids::uuid &u) const
void Notify(DBTablePartBase *partition, DBEntryBase *e)