OpenSDN source code
|
#include <icmpv6_proto.h>
Classes | |
struct | Icmpv6Ipc |
struct | Icmpv6Stats |
struct | InterfaceNdpInfo |
Public Types | |
enum | Icmpv6MsgType { NDP_RESOLVE, NDP_DELETE, NDP_SEND_UNSOL_NA } |
typedef std::map< VmInterface *, Icmpv6Stats > | VmInterfaceMap |
typedef std::pair< VmInterface *, Icmpv6Stats > | VmInterfacePair |
typedef std::map< NdpKey, NdpEntry * > | NdpCache |
typedef std::pair< NdpKey, NdpEntry * > | NdpCachePair |
typedef std::map< NdpKey, NdpEntry * >::iterator | NdpIterator |
typedef std::set< NdpKey > | NdpKeySet |
typedef std::set< NdpEntry * > | NdpEntrySet |
typedef std::map< NdpKey, NdpEntrySet > | UnsolNaCache |
typedef std::pair< NdpKey, NdpEntrySet > | UnsolNaCachePair |
typedef std::map< NdpKey, NdpEntrySet >::iterator | UnsolNaIterator |
typedef std::map< uint32_t, InterfaceNdpInfo > | InterfaceNdpMap |
typedef std::pair< uint32_t, InterfaceNdpInfo > | InterfaceNdpPair |
![]() | |
typedef WorkQueue < boost::shared_ptr< PktInfo > > | ProtoWorkQueue |
Static Public Attributes | |
static const uint32_t | kRouterAdvertTimeout = 30000 |
static const uint16_t | kMaxRetries = 8 |
static const uint32_t | kRetryTimeout = 2000 |
static const uint32_t | kAgingTimeout = (5 * 60 * 1000) |
Private Member Functions | |
bool | HandlePacket () |
bool | HandleMessage () |
Icmpv6Proto::NdpIterator | DeleteNdpEntry (Icmpv6Proto::NdpIterator iter) |
void | SendIcmpv6Ipc (Icmpv6Proto::Icmpv6MsgType type, NdpKey &key, InterfaceConstRef itf) |
DISALLOW_COPY_AND_ASSIGN (Icmpv6Proto) | |
Additional Inherited Members | |
![]() | |
Agent * | agent_ |
PktHandler::PktModuleName | module_ |
bool | trace_ |
bool | free_buffer_ |
boost::asio::io_context & | io_ |
ProtoWorkQueue | work_queue_ |
Definition at line 32 of file icmpv6_proto.h.
typedef std::map<uint32_t, InterfaceNdpInfo> Icmpv6Proto::InterfaceNdpMap |
Definition at line 93 of file icmpv6_proto.h.
typedef std::pair<uint32_t, InterfaceNdpInfo> Icmpv6Proto::InterfaceNdpPair |
Definition at line 94 of file icmpv6_proto.h.
typedef std::map<NdpKey, NdpEntry *> Icmpv6Proto::NdpCache |
Definition at line 79 of file icmpv6_proto.h.
typedef std::pair<NdpKey, NdpEntry *> Icmpv6Proto::NdpCachePair |
Definition at line 80 of file icmpv6_proto.h.
typedef std::set<NdpEntry *> Icmpv6Proto::NdpEntrySet |
Definition at line 83 of file icmpv6_proto.h.
typedef std::map<NdpKey, NdpEntry *>::iterator Icmpv6Proto::NdpIterator |
Definition at line 81 of file icmpv6_proto.h.
typedef std::set<NdpKey> Icmpv6Proto::NdpKeySet |
Definition at line 82 of file icmpv6_proto.h.
typedef std::map<NdpKey, NdpEntrySet> Icmpv6Proto::UnsolNaCache |
Definition at line 84 of file icmpv6_proto.h.
typedef std::pair<NdpKey, NdpEntrySet> Icmpv6Proto::UnsolNaCachePair |
Definition at line 85 of file icmpv6_proto.h.
typedef std::map<NdpKey, NdpEntrySet>::iterator Icmpv6Proto::UnsolNaIterator |
Definition at line 86 of file icmpv6_proto.h.
typedef std::map<VmInterface *, Icmpv6Stats> Icmpv6Proto::VmInterfaceMap |
Definition at line 77 of file icmpv6_proto.h.
typedef std::pair<VmInterface *, Icmpv6Stats> Icmpv6Proto::VmInterfacePair |
Definition at line 78 of file icmpv6_proto.h.
Enumerator | |
---|---|
NDP_RESOLVE | |
NDP_DELETE | |
NDP_SEND_UNSOL_NA |
Definition at line 39 of file icmpv6_proto.h.
Icmpv6Proto::Icmpv6Proto | ( | Agent * | agent, |
boost::asio::io_context & | io | ||
) |
|
virtual |
Definition at line 40 of file icmpv6_proto.cc.
bool Icmpv6Proto::AddNdpEntry | ( | NdpEntry * | entry | ) |
void Icmpv6Proto::AddUnsolNaEntry | ( | NdpKey & | key | ) |
Definition at line 730 of file icmpv6_proto.cc.
|
virtual |
Implements Proto.
Definition at line 51 of file icmpv6_proto.cc.
|
inline |
Icmpv6VrfState * Icmpv6Proto::CreateAndSetVrfState | ( | VrfEntry * | vrf | ) |
bool Icmpv6Proto::DeleteNdpEntry | ( | NdpEntry * | entry | ) |
|
private |
Definition at line 825 of file icmpv6_proto.cc.
void Icmpv6Proto::DeleteUnsolNaEntry | ( | NdpEntry * | entry | ) |
|
private |
Definition at line 832 of file icmpv6_proto.cc.
Definition at line 722 of file icmpv6_proto.cc.
|
inline |
Definition at line 143 of file icmpv6_proto.h.
|
inline |
Definition at line 119 of file icmpv6_proto.h.
|
private |
|
private |
|
inline |
Definition at line 114 of file icmpv6_proto.h.
void Icmpv6Proto::IncrementStatsNeighborAdvertSolicited | ( | VmInterface * | vmi | ) |
void Icmpv6Proto::IncrementStatsNeighborAdvertUnSolicited | ( | VmInterface * | vmi | ) |
void Icmpv6Proto::IncrementStatsNeighborSolicit | ( | VmInterface * | vmi | ) |
void Icmpv6Proto::IncrementStatsNeighborSolicited | ( | VmInterface * | vmi | ) |
void Icmpv6Proto::IncrementStatsPingRequest | ( | VmInterface * | vmi | ) |
void Icmpv6Proto::IncrementStatsPingResponse | ( | VmInterface * | vmi | ) |
void Icmpv6Proto::IncrementStatsRouterAdvert | ( | VmInterface * | vmi | ) |
void Icmpv6Proto::IncrementStatsRouterSolicit | ( | VmInterface * | vmi | ) |
|
inline |
Definition at line 146 of file icmpv6_proto.h.
void Icmpv6Proto::InterfaceNotify | ( | DBEntryBase * | entry | ) |
|
inline |
Definition at line 125 of file icmpv6_proto.h.
|
inline |
Definition at line 126 of file icmpv6_proto.h.
|
inline |
Definition at line 129 of file icmpv6_proto.h.
|
inline |
Definition at line 144 of file icmpv6_proto.h.
void Icmpv6Proto::NexthopNotify | ( | DBEntryBase * | entry | ) |
void Icmpv6Proto::SendIcmpv6Ipc | ( | Icmpv6Proto::Icmpv6MsgType | type, |
Ip6Address | ip, | ||
const VrfEntry * | vrf, | ||
InterfaceConstRef | itf | ||
) |
|
private |
|
inline |
Definition at line 132 of file icmpv6_proto.h.
|
inline |
Definition at line 133 of file icmpv6_proto.h.
|
inline |
Definition at line 136 of file icmpv6_proto.h.
void Icmpv6Proto::Shutdown | ( | ) |
|
inline |
Definition at line 145 of file icmpv6_proto.h.
Icmpv6Proto::UnsolNaIterator Icmpv6Proto::UnsolNaEntryIterator | ( | const NdpKey & | key, |
bool * | key_valid | ||
) |
bool Icmpv6Proto::ValidateAndClearVrfState | ( | VrfEntry * | vrf, |
Icmpv6VrfState * | state | ||
) |
|
inline |
Definition at line 108 of file icmpv6_proto.h.
Icmpv6Proto::Icmpv6Stats * Icmpv6Proto::VmiToIcmpv6Stats | ( | VmInterface * | i | ) |
Definition at line 650 of file icmpv6_proto.cc.
void Icmpv6Proto::VnNotify | ( | DBEntryBase * | entry | ) |
|
inline |
Definition at line 155 of file icmpv6_proto.h.
void Icmpv6Proto::VrfNotify | ( | DBTablePartBase * | part, |
DBEntryBase * | entry | ||
) |
|
private |
Definition at line 172 of file icmpv6_proto.h.
|
private |
Definition at line 175 of file icmpv6_proto.h.
|
private |
Definition at line 165 of file icmpv6_proto.h.
|
private |
Definition at line 179 of file icmpv6_proto.h.
|
private |
Definition at line 177 of file icmpv6_proto.h.
|
private |
Definition at line 178 of file icmpv6_proto.h.
|
static |
Definition at line 37 of file icmpv6_proto.h.
|
static |
Definition at line 35 of file icmpv6_proto.h.
|
static |
Definition at line 36 of file icmpv6_proto.h.
|
static |
Definition at line 34 of file icmpv6_proto.h.
|
private |
Definition at line 163 of file icmpv6_proto.h.
|
private |
Definition at line 176 of file icmpv6_proto.h.
|
private |
Definition at line 161 of file icmpv6_proto.h.
|
private |
Definition at line 160 of file icmpv6_proto.h.
|
private |
Definition at line 164 of file icmpv6_proto.h.
|
private |
Definition at line 162 of file icmpv6_proto.h.
|
private |
Definition at line 173 of file icmpv6_proto.h.
|
private |
Definition at line 174 of file icmpv6_proto.h.