Line data Source code
1 : /* 2 : * Copyright (c) 2020 Juniper Networks, Inc. All rights reserved. 3 : */ 4 : 5 : #ifndef SRC_VNSW_AGENT_MAC_IP_LEARNING_MAC_LEARNING_PROTO_HANDLER_H_ 6 : #define SRC_VNSW_AGENT_MAC_IP_LEARNING_MAC_LEARNING_PROTO_HANDLER_H_ 7 : 8 : #include <net/if.h> 9 : #include "cmn/agent.h" 10 : #include "cmn/agent_cmn.h" 11 : #include "base/queue_task.h" 12 : #include "pkt/proto.h" 13 : #include "pkt/proto_handler.h" 14 : #include "mac_learning/mac_ip_learning.h" 15 : 16 : class MacIpLearningProtoHandler : public ProtoHandler { 17 : public: 18 : MacIpLearningProtoHandler(Agent *agent, 19 : boost::shared_ptr<PktInfo> info, 20 : boost::asio::io_context &io); 21 0 : virtual ~MacIpLearningProtoHandler() {} 22 : bool Run(); 23 : private: 24 : void PktHandler(); 25 : void Log(std::string str); 26 : const Interface *intf_; 27 : const VrfEntry *vrf_; 28 : MacIpLearningTable *table_; 29 : MacLearningEntryPtr entry_; 30 : DISALLOW_COPY_AND_ASSIGN(MacIpLearningProtoHandler); 31 : }; 32 : #endif