1*8044SWilliam.Kucharski@Sun.COM #ifndef _IP_H 2*8044SWilliam.Kucharski@Sun.COM #define _IP_H 3*8044SWilliam.Kucharski@Sun.COM 4*8044SWilliam.Kucharski@Sun.COM /* We need 'uint16_t' */ 5*8044SWilliam.Kucharski@Sun.COM #include "types.h" 6*8044SWilliam.Kucharski@Sun.COM /* We need 'in_addr' */ 7*8044SWilliam.Kucharski@Sun.COM #include "in.h" 8*8044SWilliam.Kucharski@Sun.COM 9*8044SWilliam.Kucharski@Sun.COM struct iphdr { 10*8044SWilliam.Kucharski@Sun.COM uint8_t verhdrlen; 11*8044SWilliam.Kucharski@Sun.COM uint8_t service; 12*8044SWilliam.Kucharski@Sun.COM uint16_t len; 13*8044SWilliam.Kucharski@Sun.COM uint16_t ident; 14*8044SWilliam.Kucharski@Sun.COM uint16_t frags; 15*8044SWilliam.Kucharski@Sun.COM uint8_t ttl; 16*8044SWilliam.Kucharski@Sun.COM uint8_t protocol; 17*8044SWilliam.Kucharski@Sun.COM uint16_t chksum; 18*8044SWilliam.Kucharski@Sun.COM in_addr src; 19*8044SWilliam.Kucharski@Sun.COM in_addr dest; 20*8044SWilliam.Kucharski@Sun.COM }; 21*8044SWilliam.Kucharski@Sun.COM 22*8044SWilliam.Kucharski@Sun.COM extern void build_ip_hdr(unsigned long __destip, int __ttl, int __protocol, 23*8044SWilliam.Kucharski@Sun.COM int __option_len, int __len, const void * __buf); 24*8044SWilliam.Kucharski@Sun.COM 25*8044SWilliam.Kucharski@Sun.COM extern int ip_transmit(int __len, const void * __buf); 26*8044SWilliam.Kucharski@Sun.COM 27*8044SWilliam.Kucharski@Sun.COM extern uint16_t ipchksum(const void * __data, unsigned long __length); 28*8044SWilliam.Kucharski@Sun.COM 29*8044SWilliam.Kucharski@Sun.COM extern uint16_t add_ipchksums(unsigned long __offset, uint16_t __sum, 30*8044SWilliam.Kucharski@Sun.COM uint16_t __new); 31*8044SWilliam.Kucharski@Sun.COM 32*8044SWilliam.Kucharski@Sun.COM 33*8044SWilliam.Kucharski@Sun.COM 34*8044SWilliam.Kucharski@Sun.COM 35*8044SWilliam.Kucharski@Sun.COM 36*8044SWilliam.Kucharski@Sun.COM #endif /* _IP_H */ 37