>Subject: [dpdk-dev] [PATCH v3 4/4] ipfrag: add unit test case > >Initial IP fragmentation unit test. > >Signed-off-by: Aaron Conole <acon...@redhat.com> >--- > MAINTAINERS | 1 + > app/test/meson.build | 2 + > app/test/test_ipfrag.c | 277 >+++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 280 insertions(+) > create mode 100644 app/test/test_ipfrag.c >
<snip> >+static int >+v4_allocate_packet_of(struct rte_mbuf *b, int fill, size_t s, int df, >+ uint8_t ttl, uint8_t proto, uint16_t pktid) >+{ >+ /* Create a packet, 2k bytes long */ >+ b->data_off = 0; >+ char *data = rte_pktmbuf_mtod(b, char *); >+ >+ memset(data, fill, sizeof(struct rte_ipv4_hdr) + s); >+ >+ struct rte_ipv4_hdr *hdr = (struct rte_ipv4_hdr *)data; >+ >+ hdr->version_ihl = 0x45; /* standard IP header... */ >+ hdr->type_of_service = 0; >+ b->pkt_len = s + sizeof(struct rte_ipv4_hdr); >+ b->data_len = b->pkt_len; >+ hdr->total_length = htonl(b->pkt_len); Minor nit, please use rte_cpu_to_be_xx() for byte order conversion across the file. >+ hdr->packet_id = htons(pktid); >+ hdr->fragment_offset = 0; >+ if (df) >+ hdr->fragment_offset = htons(0x4000); >+ >+ if (!ttl) >+ ttl = 64; /* default to 64 */ >+ >+ if (!proto) >+ proto = 1; /* icmp */ >+ >+ hdr->time_to_live = ttl; >+ hdr->next_proto_id = proto; >+ hdr->hdr_checksum = 0; >+ hdr->src_addr = htonl(0x8080808); >+ hdr->dst_addr = htonl(0x8080404); >+ >+ return 0; >+} >+