Line data Source code
1 : /* 2 : * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved. 3 : */ 4 : 5 : #ifndef SRC_VNSW_AGENT_MAC_LEARNING_MAC_LEARNING_PROTO_HANDLER_H_ 6 : #define SRC_VNSW_AGENT_MAC_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_learning.h" 15 : 16 : class MacLearningProtoHandler : public ProtoHandler { 17 : public: 18 : MacLearningProtoHandler(Agent *agent, 19 : boost::shared_ptr<PktInfo> info, 20 : boost::asio::io_context &io); 21 0 : virtual ~MacLearningProtoHandler() {} 22 : bool Run(); 23 : private: 24 : void IngressPktHandler(); 25 : void EgressPktHandler(); 26 : void Log(std::string str); 27 : const Interface *intf_; 28 : const VrfEntry *vrf_; 29 : MacLearningPartition *table_; 30 : MacLearningEntryPtr entry_; 31 : DISALLOW_COPY_AND_ASSIGN(MacLearningProtoHandler); 32 : }; 33 : #endif