Add frame descriptor structure

This commit is contained in:
logicog
2026-04-22 22:36:26 +02:00
parent e2df95ba90
commit 946e80cebe
+17 -4
View File
@@ -70,10 +70,20 @@ struct vlan_tag {
#define RTL_TAG_SIZE (sizeof (struct rtl_tag)) #define RTL_TAG_SIZE (sizeof (struct rtl_tag))
#define VLAN_TAG_SIZE (sizeof (struct vlan_tag)) #define VLAN_TAG_SIZE (sizeof (struct vlan_tag))
#define RTL_FRAME_TAG_ID 0x8899 #define RTL_FRAME_TAG_ID 0x8899
#define RTL_FRAME_TAG_VERSION 0x04
// For RX and TX, an 8 byte header describing the frame to be moved to the Asic struct rtl_frame_desc {
// and received from the Asic is used uint8_t padding[VLAN_TAG_SIZE]; // Pad to the size of a RTL-VLAN tag or dot1q-tag
#define RTL_FRAME_HEADER_SIZE 8 uint8_t tx_seq;
uint8_t chksum_flags; // 0x7 enables Checksums for frame header, L2 and L3
uint8_t reserved_1 [2];
uint16_t len; // Length is Little Endian
uint8_t reserved_2 [2];
};
// For TX, an 8 byte (plus 4 byte padding when when VLAN is enabled)
// header describing the frame to be moved to the Asic is used
#define RTL_FRAME_DESC_SIZE (sizeof (struct rtl_frame_desc))
// This is the standard size of an Ethernet frame header // This is the standard size of an Ethernet frame header
#define ETHER_HEADER_SIZE 14 #define ETHER_HEADER_SIZE 14
@@ -152,5 +162,8 @@ void read_reg_timer(__xdata uint32_t * tmr);
void sfp_print_info(uint8_t sfp); void sfp_print_info(uint8_t sfp);
bool gpio_pin_test(uint8_t pin); bool gpio_pin_test(uint8_t pin);
void set_sys_led_state(uint8_t state); void set_sys_led_state(uint8_t state);
void sds_read(uint8_t sds_id, uint8_t page, uint8_t reg);
void sds_write_v(uint8_t sds_id, uint8_t page, uint8_t reg, uint16_t v);
void sds_config_mac(uint8_t sds, uint8_t mode);
void sds_config(uint8_t sds, uint8_t mode);
#endif #endif