Max OS 0.3
Loading...
Searching...
No Matches
MaxOS::net::EthernetFramePayloadHandler Class Reference

Handles a specific type of Ethernet Frame payload. More...

#include <ethernetframe.h>

Inheritance diagram for MaxOS::net::EthernetFramePayloadHandler:
MaxOS::net::AddressResolutionProtocol MaxOS::net::InternetProtocolHandler

Public Member Functions

 EthernetFramePayloadHandler (EthernetFrameHandler *frame_handler, uint16_t handled_type)
 Construct a new Ether Frame Payload Handler object.
 
 ~EthernetFramePayloadHandler ()
 Destroy the EtherFrameHandler:: EtherFrameHandler object, Removes it from the handler list.
 
virtual bool handle_ethernetframe_payload (uint8_t *ethernetframe_payload, uint32_t size)
 Handle the received ethernet frame payload.
 
void send (uint64_t destination, uint8_t *data, uint32_t size)
 send an packet via the backend driver
 

Protected Attributes

EthernetFrameHandlerframe_handler
 The Ethernet frame handler this payload handler is connected to.
 
uint16_t handled_type
 The Ethernet frame type this handler handles.
 

Friends

class EthernetFrameHandler
 

Detailed Description

Handles a specific type of Ethernet Frame payload.

Definition at line 57 of file ethernetframe.h.

Constructor & Destructor Documentation

◆ EthernetFramePayloadHandler()

EthernetFramePayloadHandler::EthernetFramePayloadHandler ( EthernetFrameHandler frame_handler,
uint16_t  handled_type 
)

Construct a new Ether Frame Payload Handler object.

Parameters
frame_handlerthe handler for the ethernet frame
handled_typethe type of the protocol, which will be handled by this handler

Definition at line 24 of file ethernetframe.cpp.

24 {
25
26 this->handled_type = handled_type;
27 this->frame_handler = frame_handler;
29
30
31}
void connect_handler(EthernetFramePayloadHandler *handler)
connect a handler to the frame handler
uint16_t handled_type
The Ethernet frame type this handler handles.
EthernetFrameHandler * frame_handler
The Ethernet frame handler this payload handler is connected to.

References MaxOS::net::EthernetFrameHandler::connect_handler(), frame_handler, and handled_type.

Member Function Documentation

◆ handle_ethernetframe_payload()

bool EthernetFramePayloadHandler::handle_ethernetframe_payload ( uint8_t ethernetframe_payload,
uint32_t  size 
)
virtual

Handle the received ethernet frame payload.

Parameters
ethernetframe_payloadthe payload of the ethernet frame
sizethe size of the payload
Returns
True if the data is to be sent back, false otherwise

Reimplemented in MaxOS::net::AddressResolutionProtocol, and MaxOS::net::InternetProtocolHandler.

Definition at line 48 of file ethernetframe.cpp.

48 {
49
50 //By default, don't handle it, will be handled in the override
51 return false;
52
53}

◆ send()

void EthernetFramePayloadHandler::send ( uint64_t  destination,
uint8_t data,
uint32_t  size 
)

send an packet via the backend driver

Parameters
destinationthe destination MAC address
datathe data to send
sizethe size of the payload

Definition at line 62 of file ethernetframe.cpp.

62 {
63
64 frame_handler->send_ethernet_frame(destination, handled_type, data, size);
65}
void send_ethernet_frame(uint64_t destination_mac, uint16_t frame_type, uint8_t *data, uint32_t size)
send an packet via the backend driver

References frame_handler, handled_type, and MaxOS::net::EthernetFrameHandler::send_ethernet_frame().

Referenced by MaxOS::net::AddressResolutionProtocol::request_mac_address().

Friends And Related Symbol Documentation

◆ EthernetFrameHandler

friend class EthernetFrameHandler
friend

Definition at line 58 of file ethernetframe.h.

Member Data Documentation

◆ frame_handler

EthernetFrameHandler* MaxOS::net::EthernetFramePayloadHandler::frame_handler
protected

◆ handled_type

uint16_t MaxOS::net::EthernetFramePayloadHandler::handled_type
protected

The Ethernet frame type this handler handles.

Definition at line 62 of file ethernetframe.h.

Referenced by EthernetFramePayloadHandler(), send(), and MaxOS::net::InternetProtocolHandler::send_internet_protocol_packet().


The documentation for this class was generated from the following files: