00001 #ifndef UTIL_H 00002 #define UTIL_H 00003 00004 #include <linux/module.h> 00005 #include <linux/kernel.h> 00006 #include <linux/netfilter_ipv4.h> 00007 #include <linux/socket.h> 00008 #include <linux/types.h> 00009 #include <linux/skbuff.h> 00010 #include <linux/time.h> 00011 #include <linux/net.h> 00012 #include <net/sock.h> 00013 #include <linux/fs.h> 00014 #include <linux/wireless.h> 00015 #include <linux/if_arp.h> 00016 #include <linux/sockios.h> 00017 #include <linux/ioctl.h> 00018 #include <asm/div64.h> 00019 #include <asm/uaccess.h> 00020 #include <linux/fcntl.h> 00021 00022 #ifdef ARM 00023 #include <linux/route.h> 00024 #include <linux/ip.h> 00025 #include <linux/udp.h> 00026 #else 00027 #include <linux/ip.h> 00028 #include <net/route.h> 00029 #include <net/udp.h> 00030 #include <net/protocol.h> 00031 #include <net/inet_common.h> 00032 #endif 00033 00034 00035 00036 #include "aodv.h" 00037 #include "timer_queue.h" 00038 #include "interface_list.h" 00039 00040 00041 00042 int seq_valid(u_int32_t current_seq,u_int32_t seq); 00043 int seq_greater(u_int32_t seq_one,u_int32_t seq_two); 00044 int seq_less_or_equal(u_int32_t seq_one,u_int32_t seq_two); 00045 int inet_aton(const char *cp, __u32 *addr); 00046 char *inet_ntoa(__u32 ina); 00047 int rebroadcast(u_int32_t dst,u_int16_t datalen, void *data, u_int8_t ttl); 00048 int send_message(u_int32_t dst_ip,u_int8_t ttl, void *data, int datalen); 00049 int local_broadcast(u_int8_t ttl,void *data, int datalen); 00050 u_int64_t getcurrtime(); 00051 int init_sock(struct socket *sock, u_int32_t ip, char *dev_name); 00052 void close_sock(); 00053 int read_stats_proc(char *buffer, char **buffer_location, off_t offset, int buffer_length,int *eof,void *data); 00054 00055 #ifdef AODV_SIGNAL 00056 void init_iw_sock(void); 00057 void close_iw_sock(void); 00058 int set_spy(); 00059 void get_wireless_stats(); 00060 int read_signal_proc(char *buffer, char **buffer_location, off_t offset, int buffer_length,int *eof,void *data); 00061 #endif 00062 00063 #ifdef AODV_GATEWAY 00064 int adhoc_subnet_test( u_int32_t ina); 00065 #endif 00066 00067 #ifdef AODV_MULTICAST 00068 int multicast_test( u_int32_t ina); 00069 int init_multicast_sock(void); 00070 #endif 00071 00072 #endif 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096