#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.
◆ PktHandlerQueue
◆ PktTraceCallback
◆ RcvQueueFunc
◆ PktModuleName
| 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()
| PktHandler::~PktHandler |
( |
| ) |
|
|
virtual |
◆ AddPktTrace()
◆ agent()
| Agent* PktHandler::agent |
( |
| ) |
const |
|
inline |
◆ CalculatePortIP()
| void PktHandler::CalculatePortIP |
( |
PktInfo * |
pkt_info | ) |
|
◆ ClearStats()
| void PktHandler::ClearStats |
( |
| ) |
|
|
inline |
◆ ComputeForwardingMode()
| bool PktHandler::ComputeForwardingMode |
( |
PktInfo * |
pkt_info, |
|
|
const Interface * |
intf |
|
) |
| const |
|
private |
◆ DISALLOW_COPY_AND_ASSIGN()
| PktHandler::DISALLOW_COPY_AND_ASSIGN |
( |
PktHandler |
| ) |
|
|
private |
◆ EncapHeaderLen()
| uint32_t PktHandler::EncapHeaderLen |
( |
| ) |
const |
◆ Enqueue()
◆ GetBfdKaEnqueueCount()
| uint64_t PktHandler::GetBfdKaEnqueueCount |
( |
| ) |
|
|
inline |
◆ GetPktEnqueueCount()
| uint64_t PktHandler::GetPktEnqueueCount |
( |
| ) |
|
|
inline |
◆ GetStats()
| const PktStats& PktHandler::GetStats |
( |
| ) |
const |
|
inline |
◆ HandleRcvPkt()
◆ IgnoreFragmentedPacket()
| bool PktHandler::IgnoreFragmentedPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
◆ IsBFDHealthCheckPacket()
| bool PktHandler::IsBFDHealthCheckPacket |
( |
const PktInfo * |
pkt_info, |
|
|
const Interface * |
interface |
|
) |
| |
◆ IsDHCPPacket()
| bool PktHandler::IsDHCPPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
◆ IsDiagPacket()
| bool PktHandler::IsDiagPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
◆ IsFlowPacket() [1/2]
| bool PktHandler::IsFlowPacket |
( |
const AgentHdr & |
agent_hdr | ) |
|
|
private |
◆ IsFlowPacket() [2/2]
| bool PktHandler::IsFlowPacket |
( |
PktInfo * |
pkt_info | ) |
|
◆ IsGwPacket()
◆ IsManagedTORPacket()
◆ IsSegmentHealthCheckPacket()
| bool PktHandler::IsSegmentHealthCheckPacket |
( |
const PktInfo * |
pkt_info, |
|
|
const Interface * |
interface |
|
) |
| |
◆ IsToRDevice()
| bool PktHandler::IsToRDevice |
( |
uint32_t |
vrf_id, |
|
|
const IpAddress & |
ip |
|
) |
| |
|
private |
◆ IsValidInterface()
| bool PktHandler::IsValidInterface |
( |
uint32_t |
ifindex, |
|
|
Interface ** |
interface |
|
) |
| |
|
private |
◆ ParseBfdDataPacket()
◆ ParseControlWord()
| int PktHandler::ParseControlWord |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt, |
|
|
const MplsLabel * |
mpls |
|
) |
| |
|
private |
◆ ParseEthernetHeader()
| int PktHandler::ParseEthernetHeader |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ ParseIpPacket()
◆ ParseMplsHdr()
| int PktHandler::ParseMplsHdr |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ ParseMPLSoGRE()
| int PktHandler::ParseMPLSoGRE |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ ParseMPLSoUDP()
| int PktHandler::ParseMPLSoUDP |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ ParsePacket()
◆ ParseUdp()
| int PktHandler::ParseUdp |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ ParseUDPTunnels()
| int PktHandler::ParseUDPTunnels |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ ParseUserPkt()
◆ ParseVxlan()
| int PktHandler::ParseVxlan |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ pkt_module()
◆ PktModuleEnqueue()
◆ PktTraceBuffers() [1/2]
◆ PktTraceBuffers() [2/2]
| void PktHandler::PktTraceBuffers |
( |
PktModuleName |
mod, |
|
|
uint32_t |
buffers |
|
) |
| |
|
inline |
◆ PktTraceClear()
◆ PktTraceIterate()
◆ PktTraceSize()
◆ ProcessBfdDataPacket()
◆ ProcessPacket()
◆ Register() [1/2]
◆ Register() [2/2]
◆ Send()
◆ SendMessage()
◆ SetOuterIp()
| void PktHandler::SetOuterIp |
( |
PktInfo * |
pkt_info, |
|
|
uint8_t * |
pkt |
|
) |
| |
|
private |
◆ SetOuterMac()
| void PktHandler::SetOuterMac |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
◆ ValidateIpPacket()
| bool PktHandler::ValidateIpPacket |
( |
PktInfo * |
pkt_info | ) |
|
|
private |
◆ work_queue()
◆ agent_
| Agent* PktHandler::agent_ |
|
private |
◆ bfd_keepalive_proto_
| Proto* PktHandler::bfd_keepalive_proto_ |
|
private |
◆ iid_
◆ kMulticastControlWord
| const uint32_t PktHandler::kMulticastControlWord = 0 |
|
static |
◆ kMulticastControlWordSize
| const uint32_t PktHandler::kMulticastControlWordSize = 4 |
|
static |
◆ pkt_module_
◆ pkt_trace_
◆ proto_list_
◆ stats_
◆ work_queue_
◆ work_queue_bfd_ka_
The documentation for this class was generated from the following files: