OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 ()
 
ProtoHandlerAllocProtoHandler (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 IgmpStatsGetStats () const
 
void ClearStats ()
 
GmpProtoGetGmpProto ()
 
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
 
Agentagent () const
 
const ProtoWorkQueuework_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_
 
GmpProtogmp_proto_
 
IgmpStats stats_
 

Additional Inherited Members

- Public Types inherited from Proto
typedef WorkQueue
< boost::shared_ptr< PktInfo > > 
ProtoWorkQueue
 
- Protected Attributes inherited from Proto
Agentagent_
 
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 ( 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 ( )
virtual

Definition at line 19 of file igmp_proto.cc.

Member Function Documentation

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:

void IgmpProto::AsyncRead ( )
private
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:

void IgmpProto::ClearStats ( )
inline

Definition at line 152 of file igmp_proto.h.

Here is the call graph for this function:

IgmpProto::DISALLOW_COPY_AND_ASSIGN ( IgmpProto  )
private
GmpProto* IgmpProto::GetGmpProto ( )
inline

Definition at line 153 of file igmp_proto.h.

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:

const IgmpStats& IgmpProto::GetStats ( ) const
inline

Definition at line 151 of file igmp_proto.h.

void IgmpProto::IgmpProtoInit ( void  )

Definition at line 22 of file igmp_proto.cc.

Here is the call graph for this function:

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:

void IgmpProto::IncrStatsBadCksum ( )
inline

Definition at line 145 of file igmp_proto.h.

void IgmpProto::IncrStatsBadInterface ( )
inline

Definition at line 146 of file igmp_proto.h.

void IgmpProto::IncrStatsBadLength ( )
inline

Definition at line 144 of file igmp_proto.h.

void IgmpProto::IncrStatsIpPktLen ( )
inline

Definition at line 150 of file igmp_proto.h.

void IgmpProto::IncrStatsNotLocal ( )
inline

Definition at line 147 of file igmp_proto.h.

void IgmpProto::IncrStatsRejectedPkt ( )
inline

Definition at line 149 of file igmp_proto.h.

void IgmpProto::IncrStatsRxUnknown ( )
inline

Definition at line 148 of file igmp_proto.h.

void IgmpProto::Inet4McRouteTableNotify ( DBTablePartBase part,
DBEntryBase entry 
)
private
void IgmpProto::ReadHandler ( const boost::system::error_code &  error,
std::size_t  len 
)
private
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:

void IgmpProto::Shutdown ( )

Definition at line 42 of file igmp_proto.cc.

Here is the call graph for this function:

DBTableBase::ListenerId IgmpProto::vn_listener_id ( )

Definition at line 156 of file igmp_proto.cc.

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

GmpProto* IgmpProto::gmp_proto_
private

Definition at line 174 of file igmp_proto.h.

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

Definition at line 170 of file igmp_proto.h.

IgmpStats IgmpProto::stats_
private

Definition at line 175 of file igmp_proto.h.

const std::string IgmpProto::task_name_
private

Definition at line 169 of file igmp_proto.h.

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: