Replaced unik-olsrd with olsr.org
[olsrd.git] / src / net.h
1
2 /*
3  * OLSR ad-hoc routing table management protocol
4  * Copyright (C) 2003 Andreas T√łnnesen (andreto@ifi.uio.no)
5  *
6  * This file is part of olsr.org.
7  *
8  * olsr.org is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * olsr.org is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with olsr.org; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  *
22  */
23
24
25
26 #ifndef _OLSR_NET
27 #define _OLSR_NET
28
29 #include "defs.h"
30 #include "process_routes.h"
31 #include <arpa/inet.h>
32 #include <net/if.h>
33
34 /* Packet transform functions */
35
36 struct ptf
37 {
38   int (*function)(char *, int *);
39   struct ptf *next;
40 };
41
42 struct ptf *ptf_list;
43
44 void
45 init_net();
46
47 int
48 net_output(struct interface*);
49
50 int
51 net_forward();
52
53 int
54 net_sendroute(struct rt_entry *, struct sockaddr *);
55
56 int
57 olsr_prefix_to_netmask(union olsr_ip_addr *, olsr_u16_t);
58
59 olsr_u16_t
60 olsr_netmask_to_prefix(union olsr_ip_addr *);
61
62 char *
63 sockaddr_to_string(struct sockaddr *);
64
65 char *
66 ip_to_string(olsr_u32_t *);
67
68 char *
69 ip6_to_string(struct in6_addr *);
70
71 char *
72 olsr_ip_to_string(union olsr_ip_addr *);
73
74 int
75 join_mcast(struct interface *, int);
76
77 int
78 add_ptf(int (*)(char *, int *));
79
80 int
81 del_ptf(int (*f)(char *, int *));
82
83
84 /* OS dependent functions */
85
86 int
87 bind_socket_to_device(int, char *);
88
89 int
90 convert_ip_to_mac(union olsr_ip_addr *, struct sockaddr *, char *);
91
92 int
93 disable_redirects(char *, int, int);
94
95 int
96 deactivate_spoof(char *, int, int);
97
98 int
99 restore_settings(int);
100
101 int
102 enable_ip_forwarding(int);
103
104 int  
105 getsocket(struct sockaddr *, int, char *);
106
107 int  
108 getsocket6(struct sockaddr_in6 *, int, char *);
109
110
111 #endif