OpenSDN source code
IgmpProto Class Reference

#include <igmp_proto.h>

Inheritance diagram for IgmpProto:
Collaboration diagram for IgmpProto:

Classes

struct  IgmpStats
 

Public Member Functions

void Shutdown ()
 
 IgmpProto (Agent *agent, boost::asio::io_context &io)
 
virtual ~IgmpProto ()
 
ProtoHandler * AllocProtoHandler (boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)
 
void IgmpProtoInit (void)
 
void IncrStatsBadLength ()
 
void IncrStatsBadCksum ()
 
void IncrStatsBadInterface ()
 
void IncrStatsNotLocal ()
 
void IncrStatsRxUnknown ()
 
void IncrStatsRejectedPkt ()
 
void IncrStatsIpPktLen ()
 
const IgmpStats & GetStats () const
 
void ClearStats ()
 
GmpProto * GetGmpProto ()
 
bool SendIgmpPacket (const VrfEntry *vrf, IpAddress gmp_addr, GmpPacket *packet)
 
const bool GetItfStats (const VnEntry *vn, IpAddress gateway, IgmpInfo::IgmpItfStats &stats)
 
void ClearItfStats (const VnEntry *vn, IpAddress gateway)
 
void IncrSendStats (const VmInterface *vm_itf, bool tx_done)
 
DBTableBase::ListenerId vn_listener_id ()
 
- Public Member Functions inherited from Proto
 Proto (Agent *agent, const char *task_name, PktHandler::PktModuleName mod, boost::asio::io_context &io)
 
virtual ~Proto ()
 
virtual bool Validate (PktInfo *msg)
 
virtual bool Enqueue (boost::shared_ptr< PktInfo > msg)
 
virtual void ProcessStats (PktStatsType::Type type)
 
void FreeBuffer (PktInfo *msg)
 
bool ProcessProto (boost::shared_ptr< PktInfo > msg_info)
 
bool RunProtoHandler (ProtoHandler *handler)
 
void set_trace (bool val)
 
void set_free_buffer (bool val)
 
boost::asio::io_context & get_io_service () const
 
Agent * agent () const
 
const ProtoWorkQueue * work_queue () const
 
virtual void TokenAvailable (TokenPool *pool)
 

Private Member Functions

void VnNotify (DBTablePartBase *part, DBEntryBase *entry)
 
void Inet4McRouteTableNotify (DBTablePartBase *part, DBEntryBase *entry)
 
void AsyncRead ()
 
void ReadHandler (const boost::system::error_code &error, std::size_t len)
 
 DISALLOW_COPY_AND_ASSIGN (IgmpProto)
 

Private Attributes

const std::string task_name_
 
boost::asio::io_context & io_
 
DBTableBase::ListenerId vn_listener_id_
 
GmpProto * gmp_proto_
 
IgmpStats stats_
 

Additional Inherited Members

- Public Types inherited from Proto
typedef WorkQueue< boost::shared_ptr< PktInfo > > ProtoWorkQueue
 
- Protected Attributes inherited from Proto
Agent * agent_
 
PktHandler::PktModuleName module_
 
bool trace_
 
bool free_buffer_
 
boost::asio::io_context & io_
 
ProtoWorkQueue work_queue_
 

Detailed Description

Definition at line 117 of file igmp_proto.h.

Constructor & Destructor Documentation

◆ IgmpProto()

IgmpProto::IgmpProto ( Agent *  agent,
boost::asio::io_context &  io 
)

Definition at line 12 of file igmp_proto.cc.

Here is the call graph for this function:

◆ ~IgmpProto()

IgmpProto::~IgmpProto ( )
virtual

Definition at line 19 of file igmp_proto.cc.

Member Function Documentation

◆ AllocProtoHandler()

ProtoHandler * IgmpProto::AllocProtoHandler ( boost::shared_ptr< PktInfo >  info,
boost::asio::io_context &  io 
)
virtual

Implements Proto.

Definition at line 52 of file igmp_proto.cc.

Here is the call graph for this function:

◆ AsyncRead()

void IgmpProto::AsyncRead ( )
private

◆ ClearItfStats()

void IgmpProto::ClearItfStats ( const VnEntry *  vn,
IpAddress  gateway 
)

Definition at line 293 of file igmp_proto.cc.

Here is the call graph for this function:

◆ ClearStats()

void IgmpProto::ClearStats ( )
inline

Definition at line 152 of file igmp_proto.h.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

IgmpProto::DISALLOW_COPY_AND_ASSIGN ( IgmpProto  )
private

◆ GetGmpProto()

GmpProto* IgmpProto::GetGmpProto ( )
inline

Definition at line 153 of file igmp_proto.h.

◆ GetItfStats()

const bool IgmpProto::GetItfStats ( const VnEntry *  vn,
IpAddress  gateway,
IgmpInfo::IgmpItfStats &  stats 
)

Definition at line 265 of file igmp_proto.cc.

Here is the call graph for this function:

◆ GetStats()

const IgmpStats& IgmpProto::GetStats ( ) const
inline

Definition at line 151 of file igmp_proto.h.

◆ IgmpProtoInit()

void IgmpProto::IgmpProtoInit ( void  )

Definition at line 22 of file igmp_proto.cc.

Here is the call graph for this function:

◆ IncrSendStats()

void IgmpProto::IncrSendStats ( const VmInterface *  vm_itf,
bool  tx_done 
)

Definition at line 233 of file igmp_proto.cc.

Here is the call graph for this function:

◆ IncrStatsBadCksum()

void IgmpProto::IncrStatsBadCksum ( )
inline

Definition at line 145 of file igmp_proto.h.

◆ IncrStatsBadInterface()

void IgmpProto::IncrStatsBadInterface ( )
inline

Definition at line 146 of file igmp_proto.h.

◆ IncrStatsBadLength()

void IgmpProto::IncrStatsBadLength ( )
inline

Definition at line 144 of file igmp_proto.h.

◆ IncrStatsIpPktLen()

void IgmpProto::IncrStatsIpPktLen ( )
inline

Definition at line 150 of file igmp_proto.h.

◆ IncrStatsNotLocal()

void IgmpProto::IncrStatsNotLocal ( )
inline

Definition at line 147 of file igmp_proto.h.

◆ IncrStatsRejectedPkt()

void IgmpProto::IncrStatsRejectedPkt ( )
inline

Definition at line 149 of file igmp_proto.h.

◆ IncrStatsRxUnknown()

void IgmpProto::IncrStatsRxUnknown ( )
inline

Definition at line 148 of file igmp_proto.h.

◆ Inet4McRouteTableNotify()

void IgmpProto::Inet4McRouteTableNotify ( DBTablePartBase *  part,
DBEntryBase *  entry 
)
private

◆ ReadHandler()

void IgmpProto::ReadHandler ( const boost::system::error_code &  error,
std::size_t  len 
)
private

◆ SendIgmpPacket()

bool IgmpProto::SendIgmpPacket ( const VrfEntry *  vrf,
IpAddress  gmp_addr,
GmpPacket *  packet 
)

Definition at line 161 of file igmp_proto.cc.

Here is the call graph for this function:

◆ Shutdown()

void IgmpProto::Shutdown ( )

Definition at line 42 of file igmp_proto.cc.

Here is the call graph for this function:

◆ vn_listener_id()

DBTableBase::ListenerId IgmpProto::vn_listener_id ( )

Definition at line 156 of file igmp_proto.cc.

◆ VnNotify()

void IgmpProto::VnNotify ( DBTablePartBase *  part,
DBEntryBase *  entry 
)
private

Definition at line 57 of file igmp_proto.cc.

Here is the call graph for this function:

Member Data Documentation

◆ gmp_proto_

GmpProto* IgmpProto::gmp_proto_
private

Definition at line 174 of file igmp_proto.h.

◆ io_

boost::asio::io_context& IgmpProto::io_
private

Definition at line 170 of file igmp_proto.h.

◆ stats_

IgmpStats IgmpProto::stats_
private

Definition at line 175 of file igmp_proto.h.

◆ task_name_

const std::string IgmpProto::task_name_
private

Definition at line 169 of file igmp_proto.h.

◆ vn_listener_id_

DBTableBase::ListenerId IgmpProto::vn_listener_id_
private

Definition at line 172 of file igmp_proto.h.


The documentation for this class was generated from the following files: