sitara_depot/components/free_rtos/ethernet_ip/eth_ip_iface.hpp

40 lines
960 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* eth_ip_iface.hpp
*
* Created on: 15 мар. 2023 г.
* Author: sychev
*/
#ifndef FREE_RTOS_ETHERNET_IP_ETH_IP_IFACE_HPP_
#define FREE_RTOS_ETHERNET_IP_ETH_IP_IFACE_HPP_
#include <cstdint>
#include "free_rtos/ethernet/eth_types.h"
#include "free_rtos/ethernet/eth_frame.h"
#include "free_rtos/ethernet_ip/eth_ip_types.h"
#include "free_rtos/ethernet_ip/eth_stack_iface.hpp"
struct IpHandlerArgs : public EthStackHandlerArgs {
uint16_t ip_header_len;
uint16_t ip_data_len;
uint32_t dest_ip;
uint64_t dest_mac;
uint8_t ip_prot_id;
Handler* ip_handler;
};
class EthIpIface {
public:
/**
* Передача пакета
*/
virtual bool send(TEthMacPorts port_id, uint32_t dest_ip, uint8_t prot_id, TEthPkt& pkt) = 0;
virtual bool send(IpHandlerArgs& handlerArgs) = 0;
virtual uint32_t getSelfIpAddr() = 0;
virtual ~EthIpIface() {};
};
#endif /* FREE_RTOS_ETHERNET_IP_ETH_IP_IFACE_HPP_ */