[IPv4] Tidy up some header files.
[gpxe.git] / src / include / gpxe / ip.h
index 0a23565..b1b0c48 100644 (file)
@@ -7,9 +7,15 @@
  *
  */
 
-#include <ip.h>
+#include <stdint.h>
+#include <gpxe/in.h>
+#include <gpxe/list.h>
 #include <gpxe/retry.h>
 
+struct io_buffer;
+struct net_device;
+struct net_protocol;
+
 /* IP constants */
 
 #define IP_VER                 0x40U
 #define IP_FRAG_IOB_SIZE       1500
 #define IP_FRAG_TIMEOUT                50
 
-/* IP4 pseudo header */
+/** An IPv4 packet header */
+struct iphdr {
+       uint8_t  verhdrlen;
+       uint8_t  service;
+       uint16_t len;
+       uint16_t ident;
+       uint16_t frags;
+       uint8_t  ttl;
+       uint8_t  protocol;
+       uint16_t chksum;
+       struct in_addr src;
+       struct in_addr dest;
+} __attribute__ (( packed ));
+
+/** An IPv4 pseudo header */
 struct ipv4_pseudo_header {
        struct in_addr src;
        struct in_addr dest;
@@ -68,11 +88,6 @@ struct frag_buffer {
        struct list_head list;
 };
 
-struct io_buffer;
-struct net_device;
-struct net_protocol;
-struct tcpip_protocol;
-
 extern struct list_head ipv4_miniroutes;
 
 extern struct net_protocol ipv4_protocol;