5 #ifndef SRC_VNSW_AGENT_MAC_IP_LEARNING_MAC_LEARNING_H_
6 #define SRC_VNSW_AGENT_MAC_IP_LEARNING_MAC_LEARNING_H_
14 #include <tbb/mutex.h>
boost::asio::ip::address IpAddress
boost::intrusive_ptr< const Interface > InterfaceConstRef
boost::intrusive_ptr< const VnEntry > VnEntryConstRef
void UpdateHealthCheckService()
MacIpLearningEntry(MacIpLearningTable *table, uint32_t vrf_id_, const IpAddress &ip, const MacAddress &mac, InterfaceConstRef intf)
void AddHealthCheckService(HealthCheckService *service)
DISALLOW_COPY_AND_ASSIGN(MacIpLearningEntry)
const HealthCheckInstanceBase * HcInstance()
const MacIpLearningKey & key() const
HealthCheckService * hc_service_
virtual ~MacIpLearningEntry()
MacIpLearningTable * mac_ip_learning_table() const
void EnqueueToTable(MacLearningEntryRequestPtr req)
HealthCheckInstanceBase * hc_instance_
MacIpLearningTable * mac_ip_learning_table_
const HealthCheckService * HcService()
HealthCheckService * GetHealthCheckService(const VnEntry *vn)
void SetQueueDisable(bool disable)
MacAddress GetPairedMacAddress(uint32_t vrf_id, const IpAddress &ip)
void Add(MacLearningEntryPtr ptr)
virtual ~MacIpLearningTable()
void Enqueue(MacLearningEntryRequestPtr req)
void DetectIpMove(MacLearningEntryRequestPtr ptr)
bool RequestHandler(MacLearningEntryRequestPtr ptr)
void SetQueueDisable(bool disable)
void EnqueueMgmtReq(MacLearningEntryPtr ptr, bool add)
MacIpLearningEntryMap mac_ip_learning_entry_map_
MacIpLearningTable(Agent *agent, MacLearningProto *proto)
std::map< MacIpLearningKey, MacLearningEntryPtr, MacIpLearningKeyCmp > MacIpLearningEntryMap
MacIpLearningRequestQueue work_queue_
void Delete(MacLearningEntryPtr ptr)
std::pair< MacIpLearningKey, MacLearningEntryPtr > MacIpLearningEntryPair
void MacIpEntryUnreachable(MacLearningEntryRequestPtr ptr)
void Resync(MacLearningEntryPtr ptr)
MacIpLearningEntry * Find(const MacIpLearningKey &key)
tbb::mutex macip_map_mutex_
DISALLOW_COPY_AND_ASSIGN(MacIpLearningTable)
void MacIpEntryHcNotify(const HealthCheckInstanceService *instance_service)
boost::shared_ptr< MacLearningEntry > MacLearningEntryPtr
boost::shared_ptr< MacLearningEntryRequest > MacLearningEntryRequestPtr