blob: 496134e1e512e134f3b4830d1380628bc48ec5bd [file] [log] [blame] [raw]
#ifndef _IP_H
#define _IP_H
/* We need 'uint16_t' */
#include "types.h"
/* We need 'in_addr' */
#include "in.h"
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;
in_addr src;
in_addr dest;
};
extern void build_ip_hdr(unsigned long __destip, int __ttl, int __protocol,
int __option_len, int __len, const void * __buf);
extern int ip_transmit(int __len, const void * __buf);
extern uint16_t ipchksum(const void * __data, unsigned long __length);
extern uint16_t add_ipchksums(unsigned long __offset, uint16_t __sum,
uint16_t __new);
#endif /* _IP_H */