#include <pkt_handler.h>
|
enum | PktModuleName {
INVALID,
FLOW,
ARP,
DHCP,
DHCPV6,
DNS,
ICMP,
ICMPV6,
DIAG,
ICMP_ERROR,
ICMPV6_ERROR,
RX_PACKET,
MAC_LEARNING,
BFD,
IGMP,
MAC_IP_LEARNING,
MAX_MODULES
} |
|
typedef boost::function< bool(boost::shared_ptr
< PktInfo >)> | RcvQueueFunc |
|
typedef boost::function< void(PktTrace::Pkt &)> | PktTraceCallback |
|
typedef WorkQueue
< boost::shared_ptr
< PacketBufferEnqueueItem > > | PktHandlerQueue |
|
|
| PktHandler (Agent *, PktModule *pkt_module) |
|
virtual | ~PktHandler () |
|
void | Register (PktModuleName type, RcvQueueFunc cb) |
|
void | Register (PktModuleName type, Proto *proto) |
|
void | Send (const AgentHdr &hdr, const PacketBufferPtr &buff) |
|
PktModuleName | ParsePacket (const AgentHdr &hdr, PktInfo *pkt_info, uint8_t *pkt) |
|
PktModuleName | ParseBfdDataPacket (const AgentHdr &hdr, PktInfo *pkt_info, uint8_t *pkt) |
|
int | ParseUserPkt (PktInfo *pkt_info, Interface *intf, PktType::Type &pkt_type, uint8_t *pkt) |
|
bool | ProcessPacket (boost::shared_ptr< PacketBufferEnqueueItem > item) |
|
bool | ProcessBfdDataPacket (boost::shared_ptr< PacketBufferEnqueueItem > item) |
|
void | HandleRcvPkt (const AgentHdr &hdr, const PacketBufferPtr &buff) |
|
void | SendMessage (PktModuleName mod, InterTaskMsg *msg) |
|
bool | IsGwPacket (const Interface *intf, const IpAddress &dst_ip) |
|
const PktStats & | GetStats () const |
|
void | ClearStats () |
|
void | PktTraceIterate (PktModuleName mod, PktTraceCallback cb) |
|
void | PktTraceClear (PktModuleName mod) |
|
void | PktTraceBuffers (PktModuleName mod, uint32_t buffers) |
|
uint32_t | PktTraceBuffers (PktModuleName mod) const |
|
uint32_t | PktTraceSize (PktModuleName mod) const |
|
void | AddPktTrace (PktModuleName module, PktTrace::Direction dir, const PktInfo *pkt) |
|
uint32_t | EncapHeaderLen () const |
|
Agent * | agent () const |
|
PktModule * | pkt_module () const |
|
void | Enqueue (PktModuleName module, boost::shared_ptr< PktInfo > pkt_info) |
|
bool | IsFlowPacket (PktInfo *pkt_info) |
|
void | CalculatePortIP (PktInfo *pkt_info) |
|
const PktHandlerQueue * | work_queue () const |
|
bool | IsBFDHealthCheckPacket (const PktInfo *pkt_info, const Interface *interface) |
|
bool | IsSegmentHealthCheckPacket (const PktInfo *pkt_info, const Interface *interface) |
|
uint64_t | GetBfdKaEnqueueCount () |
|
uint64_t | GetPktEnqueueCount () |
|
|
void | PktModuleEnqueue (PktModuleName mod, const AgentHdr &hdr, boost::shared_ptr< PktInfo > pkt_info, uint8_t *pkt) |
|
int | ParseEthernetHeader (PktInfo *pkt_info, uint8_t *pkt) |
|
int | ParseMplsHdr (PktInfo *pkt_info, uint8_t *pkt) |
|
int | ParseIpPacket (PktInfo *pkt_info, PktType::Type &pkt_type, uint8_t *ptr) |
|
int | ParseMPLSoGRE (PktInfo *pkt_info, uint8_t *pkt) |
|
int | ParseMPLSoUDP (PktInfo *pkt_info, uint8_t *pkt) |
|
int | ParseControlWord (PktInfo *pkt_info, uint8_t *pkt, const MplsLabel *mpls) |
|
int | ParseUDPTunnels (PktInfo *pkt_info, uint8_t *pkt) |
|
int | ParseVxlan (PktInfo *pkt_info, uint8_t *pkt) |
|
int | ParseUdp (PktInfo *pkt_info, uint8_t *pkt) |
|
bool | ComputeForwardingMode (PktInfo *pkt_info, const Interface *intf) const |
|
void | SetOuterIp (PktInfo *pkt_info, uint8_t *pkt) |
|
void | SetOuterMac (PktInfo *pkt_info) |
|
bool | IgnoreFragmentedPacket (PktInfo *pkt_info) |
|
bool | IsDHCPPacket (PktInfo *pkt_info) |
|
bool | IsValidInterface (uint32_t ifindex, Interface **interface) |
|
bool | IsToRDevice (uint32_t vrf_id, const IpAddress &ip) |
|
bool | IsManagedTORPacket (Interface *intf, PktInfo *pkt_info, PktType::Type &pkt_type, uint8_t *pkt, bool *pkt_ok) |
|
bool | IsFlowPacket (const AgentHdr &agent_hdr) |
|
bool | IsDiagPacket (PktInfo *pkt_info) |
|
bool | ValidateIpPacket (PktInfo *pkt_info) |
|
| DISALLOW_COPY_AND_ASSIGN (PktHandler) |
|
Definition at line 224 of file pkt_handler.h.
Enumerator |
---|
INVALID |
|
FLOW |
|
ARP |
|
DHCP |
|
DHCPV6 |
|
DNS |
|
ICMP |
|
ICMPV6 |
|
DIAG |
|
ICMP_ERROR |
|
ICMPV6_ERROR |
|
RX_PACKET |
|
MAC_LEARNING |
|
BFD |
|
IGMP |
|
MAC_IP_LEARNING |
|
MAX_MODULES |
|
Definition at line 231 of file pkt_handler.h.
PktHandler::~PktHandler |
( |
| ) |
|
|
virtual |
Agent* PktHandler::agent |
( |
| ) |
const |
|
inline |
void PktHandler::CalculatePortIP |
( |
PktInfo * |
pkt_info | ) |
|
void PktHandler::ClearStats |
( |
| ) |
|
|
inline |
bool PktHandler::ComputeForwardingMode |
( |
PktInfo * |
pkt_info, |
|
|
const Interface * |
intf |
|
) |
| const |
|
private |
PktHandler::DISALLOW_COPY_AND_ASSIGN |
( |
PktHandler |
| ) |
|
|
private |
uint32_t PktHandler::EncapHeaderLen |
( |
| ) |
const |
uint64_t PktHandler::GetBfdKaEnqueueCount |
( |
| ) |
|
|
inline |
uint64_t PktHandler::GetPktEnqueueCount |
( |
| ) |
|
|
inline |
const PktStats& PktHandler::GetStats |
( |
| ) |
const |
|
inline |
bool PktHandler::IgnoreFragmentedPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
bool PktHandler::IsBFDHealthCheckPacket |
( |
const PktInfo * |
pkt_info, |
|
|
const Interface * |
interface |
|
) |
| |
bool PktHandler::IsDHCPPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
bool PktHandler::IsDiagPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
bool PktHandler::IsFlowPacket |
( |
PktInfo * |
pkt_info | ) |
|
bool PktHandler::IsFlowPacket |
( |
const AgentHdr & |
agent_hdr | ) |
|
|
private |
bool PktHandler::IsSegmentHealthCheckPacket |
( |
const PktInfo * |
pkt_info, |
|
|
const Interface * |
interface |
|
) |
| |
bool PktHandler::IsToRDevice |
( |
uint32_t |
vrf_id, |
|
|
const IpAddress & |
ip |
|
) |
| |
|
private |
bool PktHandler::IsValidInterface |
( |
uint32_t |
ifindex, |
|
|
Interface ** |
interface |
|
) |
| |
|
private |
int PktHandler::ParseControlWord |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt, |
|
|
const MplsLabel * |
mpls |
|
) |
| |
|
private |
int PktHandler::ParseEthernetHeader |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
int PktHandler::ParseMplsHdr |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
int PktHandler::ParseMPLSoGRE |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
int PktHandler::ParseMPLSoUDP |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
int PktHandler::ParseUdp |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
int PktHandler::ParseUDPTunnels |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
int PktHandler::ParseVxlan |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
void PktHandler::PktTraceBuffers |
( |
PktModuleName |
mod, |
|
|
uint32_t |
buffers |
|
) |
| |
|
inline |
void PktHandler::SetOuterIp |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
void PktHandler::SetOuterMac |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
bool PktHandler::ValidateIpPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
Agent* PktHandler::agent_ |
|
private |
Proto* PktHandler::bfd_keepalive_proto_ |
|
private |
const uint32_t PktHandler::kMulticastControlWord = 0 |
|
static |
const uint32_t PktHandler::kMulticastControlWordSize = 4 |
|
static |
The documentation for this class was generated from the following files: