预备知识
dpdk中一些关键宏定义与结构体定义
以太网帧相关
宏RTE_ETHER_ADDR_LEN mac地址长度,6字节48位
宏RTE_ETHER_TYPE_IPV4 代表ipv4
struct rte_ether_hdr 以太网帧头结构体,包含了三个成员变量,目的地址,源地址,IP类型。
ip相关
struct rte_ipv4_hdr ipv4头结构体, 包含版本,ttl,next_proto_id,源地址,目标地址等字段
rte_ipv4_cksum()计算校验和的函数
tcp/udp相关
宏IPPROTO_UDP 代表udp协议
IPPROTO_TCP 代表udp协议
struct rte_udp_hdr udp头结构体,包含源端口,目的端口,数据长度以及校验和
rte_ipv4_udptcp_cksum(ip头地址,udp头地址)计算校验和的函数
udp头
struct rte_udp_hdr {
rte_be16_t src_port; /**< 源端口 (16位,大端格式) */
rte_be16_t dst_port; /**< 目标端口 (16位,大端格式) */
rte_be16_t dgram_len; /**< UDP数据报总长度 (16位,大端格式,包括头部) */
rte_be16_t dgram_cksum;/**< 校验和 (16位,大端格式) */
};
tcp头