Added ipv4_pseudo_header structure
[gpxe.git] / src / include / gpxe / ip.h
1 #ifndef _GPXE_IP_H
2 #define _GPXE_IP_H
3
4 /** @file
5  *
6  * IP protocol
7  *
8  */
9
10 #include <ip.h>
11
12 /* IP constants */
13
14 #define IP_VER          4
15 #define IP_MASK_VER     0xf0
16 #define IP_MASK_HLEN    0x0f
17 #define IP_PSHLEN       12
18
19 /* IP header defaults */
20 #define IP_TOS          0
21 #define IP_TTL          64
22
23 /* IP4 pseudo header */
24 struct ipv4_pseudo_header {
25         struct in_addr src;
26         struct in_addr dest;
27         uint8_t zero_padding;
28         uint8_t protocol;
29         uint16_t len;
30 };
31
32 struct pk_buff;
33 struct net_device;
34 struct net_protocol;
35
36 extern struct net_protocol ipv4_protocol;
37
38 extern int add_ipv4_address ( struct net_device *netdev,
39                               struct in_addr address, struct in_addr netmask,
40                               struct in_addr gateway );
41 extern void del_ipv4_address ( struct net_device *netdev );
42
43 extern int ipv4_uip_tx ( struct pk_buff *pkb );
44 extern int ipv4_tx ( struct pk_buff *pkb, uint16_t trans_proto, struct in_addr *dest );
45
46 #endif /* _GPXE_IP_H */