OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
igmp_handler.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef vnsw_agent_igmp_handler_h_
6 #define vnsw_agent_igmp_handler_h_
7 
8 #include "pkt/proto_handler.h"
10 
11 // IGMP protocol handler
12 class IgmpHandler : public ProtoHandler {
13 public:
14  IgmpHandler(Agent *agent, boost::shared_ptr<PktInfo> info,
15  boost::asio::io_context &io);
16  virtual ~IgmpHandler();
17 
18  bool Run();
19 
20 private:
21  bool HandleVmIgmpPacket();
22  bool CheckPacket() const;
23  void SendPacket(const VmInterface *vm_itf, const VrfEntry *vrf,
24  const IpAddress& gmp_addr, GmpPacket *packet);
25 
26  struct igmp *igmp_;
27  uint16_t igmp_len_;
28 
29  friend class IgmpProto;
30 
32 };
33 
34 #endif // vnsw_agent_igmp_handler_h_
bool HandleVmIgmpPacket()
Definition: igmp_handler.cc:38
Definition: vrf.h:86
DISALLOW_COPY_AND_ASSIGN(IgmpHandler)
boost::asio::ip::address IpAddress
Definition: address.h:13
void SendPacket(const VmInterface *vm_itf, const VrfEntry *vrf, const IpAddress &gmp_addr, GmpPacket *packet)
Agent * agent() const
Definition: proto_handler.h:80
Definition: agent.h:358
virtual ~IgmpHandler()
Definition: igmp_handler.cc:25
struct igmp * igmp_
Definition: igmp_handler.h:26
IgmpHandler(Agent *agent, boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)
Definition: igmp_handler.cc:15
bool CheckPacket() const
uint16_t igmp_len_
Definition: igmp_handler.h:27