15 add_tokens_(
"Add Tokens", this, agent->params()->mac_learning_add_tokens()),
16 change_tokens_(
"Change tokens", this,
17 agent->params()->mac_learning_update_tokens()),
18 delete_tokens_(
"Delete tokens", this,
19 agent->params()->mac_learning_delete_tokens()) {
25 boost::asio::io_context &io) {
35 uint8_t mac_array[ETH_ALEN];
37 boost::hash_combine(val, vrf_id);
38 mac.
ToArray(mac_array,
sizeof(mac_array));
40 for (uint32_t i = 0; i < ETH_ALEN; i++) {
41 boost::hash_combine(val, mac_array[i]);
54 uint32_t table_index =
Hash(msg->agent_hdr.vrf, msg->smac);
bool ToArray(u_int8_t *p, size_t s) const
MacIpLearningTablePtr mac_ip_learning_tbl_
MacLearningPartition * Find(uint32_t index)
virtual ProtoHandler * AllocProtoHandler(boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)
MacLearningPartitionList mac_learning_partition_list_
MacIpLearningTable * GetMacIpLearningTable()
TokenPtr GetToken(MacLearningEntryRequest::Event event)
virtual void TokenAvailable(TokenPool *pool)
bool Enqueue(PktInfoPtr msg)
boost::shared_ptr< MacLearningEntryRequest > MacLearningEntryRequestPtr
AgentParam * params() const
boost::shared_ptr< MacLearningPartition > MacLearningPartitionPtr
virtual TokenPtr GetToken()
uint32_t mac_learning_thread_count() const
boost::shared_ptr< Token > TokenPtr
uint32_t Hash(uint32_t vrf_id, const MacAddress &mac)
MacLearningProto(Agent *agent, boost::asio::io_context &io)
void Enqueue(MacLearningEntryRequestPtr req)
boost::shared_ptr< PktInfo > PktInfoPtr