5#ifndef _RTE_NET_PTYPE_H_
6#define _RTE_NET_PTYPE_H_
25 uint16_t inner_l3_len;
53rte_net_skip_ip6_ext(uint16_t proto,
const struct rte_mbuf *m, uint32_t *off,
87uint32_t rte_net_get_ptype(
const struct rte_mbuf *m,
111rte_net_intel_cksum_flags_prepare(
struct rte_mbuf *m, uint64_t ol_flags)
118 struct rte_ipv4_hdr *ipv4_hdr = NULL;
119 struct rte_ipv6_hdr *ipv6_hdr;
122 uint64_t inner_l3_offset = m->l2_len;
129 if (!(ol_flags & (inner_requests | outer_requests)))
133 inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
140 struct rte_ipv4_hdr *, m->outer_l2_len);
141 ipv4_hdr->hdr_checksum = 0;
147 udp_hdr = (
struct rte_udp_hdr *)((
char *)ipv4_hdr +
150 udp_hdr->
dgram_cksum = rte_ipv4_phdr_cksum(ipv4_hdr,
152 else if (ipv4_hdr->next_proto_id == IPPROTO_UDP)
158 m->outer_l2_len + m->outer_l3_len);
160 udp_hdr->
dgram_cksum = rte_ipv6_phdr_cksum(ipv6_hdr,
162 else if (ipv6_hdr->proto == IPPROTO_UDP)
174 inner_l3_offset + m->l3_len + m->l4_len))
182 ipv4_hdr->hdr_checksum = 0;
188 udp_hdr = (
struct rte_udp_hdr *)((
char *)ipv4_hdr +
190 udp_hdr->
dgram_cksum = rte_ipv4_phdr_cksum(ipv4_hdr,
194 struct rte_ipv6_hdr *, inner_l3_offset);
198 inner_l3_offset + m->l3_len);
199 udp_hdr->
dgram_cksum = rte_ipv6_phdr_cksum(ipv6_hdr,
206 tcp_hdr = (
struct rte_tcp_hdr *)((
char *)ipv4_hdr +
208 tcp_hdr->
cksum = rte_ipv4_phdr_cksum(ipv4_hdr,
212 struct rte_ipv6_hdr *, inner_l3_offset);
216 inner_l3_offset + m->l3_len);
217 tcp_hdr->
cksum = rte_ipv6_phdr_cksum(ipv6_hdr,
244rte_net_intel_cksum_prepare(
struct rte_mbuf *m)
246 return rte_net_intel_cksum_flags_prepare(m, m->
ol_flags);
#define rte_pktmbuf_data_len(m)
#define RTE_MBUF_F_TX_OUTER_UDP_CKSUM
#define RTE_MBUF_F_TX_OUTER_IP_CKSUM
#define RTE_MBUF_F_TX_UDP_SEG
#define RTE_MBUF_F_TX_IP_CKSUM
#define RTE_MBUF_F_TX_OUTER_IPV6
#define RTE_MBUF_F_TX_TCP_SEG
#define RTE_MBUF_F_TX_L4_MASK
#define RTE_MBUF_F_TX_OUTER_IPV4
#define RTE_MBUF_F_TX_TCP_CKSUM
#define RTE_MBUF_F_TX_IPV4
#define rte_pktmbuf_mtod_offset(m, t, o)
#define RTE_MBUF_F_TX_UDP_CKSUM