整理了TCP/IP协议中用到的各种header, 方便大家使用
package type_defs;
typedef logic [3:0] u4_t;
typedef logic [7:0] u8_t;
typedef logic [15:0] u16_t;
typedef logic [31:0] u32_t;
typedef logic [63:0] u64_t;
typedef struct packed {<span style="white-space:pre"> </span>//MAC头
u16_t padding;
logic [47:0] dst_addr;
logic [47:0] src_addr;
u16_t mac_type;
} mac_header_t;
typedef struct packed { //ARP头
u16_t hardware_type;
u16_t protocol_type;
u8_t hardware_addr_len;
u8_t protocol_addr_len;
u16_t operation_type;
logic [47:0] src_addr;
u32_t src_ip_addr;
logic [47:0] dst_addr;
u32_t dst_ip_addr;
} arp_header_t;
parameter PROTO_ICMP = 8'd1,
PROTO_TCP = 8'd6,
PROTO_UDP = 8'd17;
typedef struct packed{ //IP头
u4_t version;
u4_t header_len;
u8_t tos;
u16_t len;
u16_t ipid;
logic reserved;
logic b_no_fragment;
logic [5:0] reserved1;
u8_t ipoffset;
u8_t ttl;
u8_t proto;
u16_t checksum;