#include <rte_string_fns.h>
 #include <rte_malloc.h>
 #include <rte_virtio_net.h>
+#include <rte_ip.h>
 
 #include "main.h"
 
        __be16          h_vlan_encapsulated_proto;
 };
 
-/* IPv4 Header */
-struct ipv4_hdr {
-       uint8_t  version_ihl;           /**< version and header length */
-       uint8_t  type_of_service;       /**< type of service */
-       uint16_t total_length;          /**< length of packet */
-       uint16_t packet_id;             /**< packet ID */
-       uint16_t fragment_offset;       /**< fragmentation offset */
-       uint8_t  time_to_live;          /**< time to live */
-       uint8_t  next_proto_id;         /**< protocol ID */
-       uint16_t hdr_checksum;          /**< header checksum */
-       uint32_t src_addr;              /**< source address */
-       uint32_t dst_addr;              /**< destination address */
-} __attribute__((__packed__));
-
 /* Header lengths. */
 #define VLAN_HLEN       4
 #define VLAN_ETH_HLEN   18