eal: add and use unaligned integer types
[dpdk.git] / app / test-pmd / flowgen.c
index b091b6d..174c003 100644 (file)
@@ -52,7 +52,6 @@
 #include <rte_memcpy.h>
 #include <rte_memzone.h>
 #include <rte_launch.h>
-#include <rte_tailq.h>
 #include <rte_eal.h>
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
@@ -102,7 +101,7 @@ tx_mbuf_alloc(struct rte_mempool *mp)
 
 
 static inline uint16_t
-ip_sum(const uint16_t *hdr, int hdr_len)
+ip_sum(const unaligned_uint16_t *hdr, int hdr_len)
 {
        uint32_t sum = 0;
 
@@ -175,7 +174,7 @@ pkt_burst_flow_gen(struct fwd_stream *fs)
                pkt->next = NULL;
 
                /* Initialize Ethernet header. */
-               eth_hdr = (struct ether_hdr *)pkt->data;
+               eth_hdr = rte_pktmbuf_mtod(pkt, struct ether_hdr *);
                ether_addr_copy(&cfg_ether_dst, &eth_hdr->d_addr);
                ether_addr_copy(&cfg_ether_src, &eth_hdr->s_addr);
                eth_hdr->ether_type = rte_cpu_to_be_16(ETHER_TYPE_IPv4);
@@ -194,7 +193,7 @@ pkt_burst_flow_gen(struct fwd_stream *fs)
                                                           next_flow);
                ip_hdr->total_length    = RTE_CPU_TO_BE_16(pkt_size -
                                                           sizeof(*eth_hdr));
-               ip_hdr->hdr_checksum    = ip_sum((uint16_t *)ip_hdr,
+               ip_hdr->hdr_checksum    = ip_sum((unaligned_uint16_t *)ip_hdr,
                                                 sizeof(*ip_hdr));
 
                /* Initialize UDP header. */