OpenSDN source code
|
#include <gmp_proto.h>
Classes | |
struct | GmpStats |
Public Types | |
typedef boost::function< bool(const VrfEntry *, IpAddress, GmpPacket *)> | Callback |
Public Member Functions | |
GmpProto (GmpType::Type type, Agent *agent, const std::string &task_name, int instance, boost::asio::io_context &io) | |
~GmpProto () | |
GmpIntf * | CreateIntf () |
bool | DeleteIntf (GmpIntf *gif) |
void | Register (Callback cb) |
bool | Start () |
bool | Stop () |
void | GmpIntfSGClear (VnGmpDBState *state, VnGmpDBState::VnGmpIntfState *gmp_intf_state) |
DBTableBase::ListenerId | vn_listener_id () |
DBTableBase::ListenerId | itf_listener_id () |
bool | GmpProcessPkt (const VmInterface *vm_itf, void *rcv_pkt, uint32_t packet_len, IpAddress ip_saddr, IpAddress ip_daddr) |
uint8_t * | GmpBufferGet () |
void | GmpBufferFree (uint8_t *pkt) |
bool | GmpNotificationHandler () |
bool | GmpNotificationTimer () |
void | GmpNotificationReady () |
void | GroupNotify (GmpIntf *gif, IpAddress source, IpAddress group, int group_action) |
void | ResyncNotify (GmpIntf *gif, IpAddress source, IpAddress group) |
void | UpdateHostInSourceGroup (GmpIntf *gif, bool join, IpAddress host, IpAddress source, IpAddress group) |
void | TriggerMvpnNotification (const VmInterface *vm_intf, bool join, IpAddress source, IpAddress group) |
void | TriggerEvpnNotification (const VmInterface *vm_intf, bool join, IpAddress source, IpAddress group) |
bool | MulticastPolicyCheck (GmpIntf *gif, IpAddress source, IpAddress group) |
bool | SendPacket (GmpIntf *gif, uint8_t *pkt, uint32_t pkt_len, IpAddress dest) |
const GmpStats & | GetStats () const |
void | ClearStats () |
Static Public Attributes | |
static const int | kGmpTriggerRestartTimer = 100 |
Private Types | |
typedef std::map< IpAddress, boost::uuids::uuid > | VmIpInterfaceMap |
Private Member Functions | |
void | GmpVnNotify (DBTablePartBase *part, DBEntryBase *entry) |
void | GmpVrfNotify (DBTablePartBase *part, DBEntryBase *entry) |
void | GmpItfNotify (DBTablePartBase *part, DBEntryBase *entry) |
Private Attributes | |
GmpType::Type | type_ |
Agent * | agent_ |
const std::string & | name_ |
int | instance_ |
boost::asio::io_context & | io_ |
DBTableBase::ListenerId | vn_listener_id_ |
DBTableBase::ListenerId | itf_listener_id_ |
TaskMap * | task_map_ |
Timer * | gmp_trigger_timer_ |
TaskTrigger * | gmp_notif_trigger_ |
mgm_global_data * | gd_ |
Callback | cb_ |
GmpStats | stats_ |
int | itf_attach_count_ |
VmIpInterfaceMap | vm_ip_to_vmi_ |
Friends | |
class | GmpIntf |
Definition at line 120 of file gmp_proto.h.
typedef boost::function<bool(const VrfEntry *, IpAddress, GmpPacket *)> GmpProto::Callback |
Definition at line 123 of file gmp_proto.h.
|
private |
Definition at line 204 of file gmp_proto.h.
GmpProto::GmpProto | ( | GmpType::Type | type, |
Agent * | agent, | ||
const std::string & | task_name, | ||
int | instance, | ||
boost::asio::io_context & | io | ||
) |
Definition at line 76 of file gmp_proto.cc.
GmpProto::~GmpProto | ( | ) |
Definition at line 94 of file gmp_proto.cc.
|
inline |
GmpIntf * GmpProto::CreateIntf | ( | ) |
bool GmpProto::DeleteIntf | ( | GmpIntf * | gif | ) |
|
inline |
Definition at line 178 of file gmp_proto.h.
void GmpProto::GmpBufferFree | ( | uint8_t * | pkt | ) |
Definition at line 487 of file gmp_proto.cc.
uint8_t * GmpProto::GmpBufferGet | ( | ) |
Definition at line 483 of file gmp_proto.cc.
void GmpProto::GmpIntfSGClear | ( | VnGmpDBState * | state, |
VnGmpDBState::VnGmpIntfState * | gmp_intf_state | ||
) |
|
private |
bool GmpProto::GmpNotificationHandler | ( | ) |
void GmpProto::GmpNotificationReady | ( | ) |
bool GmpProto::GmpNotificationTimer | ( | ) |
bool GmpProto::GmpProcessPkt | ( | const VmInterface * | vm_itf, |
void * | rcv_pkt, | ||
uint32_t | packet_len, | ||
IpAddress | ip_saddr, | ||
IpAddress | ip_daddr | ||
) |
|
private |
|
private |
DBTableBase::ListenerId GmpProto::itf_listener_id | ( | ) |
|
inline |
Definition at line 147 of file gmp_proto.h.
Definition at line 649 of file gmp_proto.cc.
bool GmpProto::Start | ( | ) |
bool GmpProto::Stop | ( | ) |
void GmpProto::TriggerEvpnNotification | ( | const VmInterface * | vm_intf, |
bool | join, | ||
IpAddress | source, | ||
IpAddress | group | ||
) |
void GmpProto::TriggerMvpnNotification | ( | const VmInterface * | vm_intf, |
bool | join, | ||
IpAddress | source, | ||
IpAddress | group | ||
) |
DBTableBase::ListenerId GmpProto::vn_listener_id | ( | ) |
|
friend |
Definition at line 207 of file gmp_proto.h.
|
private |
Definition at line 187 of file gmp_proto.h.
|
private |
Definition at line 199 of file gmp_proto.h.
|
private |
Definition at line 198 of file gmp_proto.h.
|
private |
Definition at line 197 of file gmp_proto.h.
|
private |
Definition at line 196 of file gmp_proto.h.
|
private |
Definition at line 189 of file gmp_proto.h.
|
private |
Definition at line 190 of file gmp_proto.h.
|
private |
Definition at line 202 of file gmp_proto.h.
|
private |
Definition at line 193 of file gmp_proto.h.
|
static |
Definition at line 122 of file gmp_proto.h.
|
private |
Definition at line 188 of file gmp_proto.h.
|
private |
Definition at line 201 of file gmp_proto.h.
|
private |
Definition at line 195 of file gmp_proto.h.
|
private |
Definition at line 186 of file gmp_proto.h.
|
private |
Definition at line 205 of file gmp_proto.h.
|
private |
Definition at line 192 of file gmp_proto.h.