/* * eth_frame.h * * Created on: 7 ���. 2023 �. * Author: sychev */ #ifndef FREE_RTOS_ETHERNET_ETH_FRAME_H_ #define FREE_RTOS_ETHERNET_ETH_FRAME_H_ #include #define ETH_FRAME_MAC_ADDR_LEN_BYTES (6u) #define ETH_FRAME_MAC_ADDR_MASK (0xFFFFFFFFFFFFul) /// 6 ���� #define ETH_FRAME_MAC_ADDR_BROADCAST (0xFFFFFFFFFFFFul) /// ����������������� ����� #define ETH_FRAME_MIN_LEN (14u) /// ����������� ����� ������ #define ETH_FRAME_MAX_LEN (1518u) /// ������������ ����� ������ typedef union { uint64_t addr; uint8_t bytes[8]; } __attribute__ ((packed)) TEthFrameMacAddr; typedef struct { uint8_t mac_dest[ETH_FRAME_MAC_ADDR_LEN_BYTES]; uint8_t mac_src[ETH_FRAME_MAC_ADDR_LEN_BYTES]; uint16_t prot_id; } __attribute__ ((packed)) TEthFrameHeader; typedef struct { uint8_t data[ETH_FRAME_MAX_LEN]; //__attribute__ ((aligned(32))) uint32_t length; }TEthPkt; #endif /* FREE_RTOS_ETHERNET_ETH_FRAME_H_ */