2 * The olsr.org Optimized Link-State Routing daemon(olsrd)
3 * Copyright (c) 2004, Andreas Tønnesen(andreto@olsr.org)
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
16 * * Neither the name of olsr.org, olsrd nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
33 * Visit http://www.olsr.org for more information.
35 * If you find this software useful feel free to make a donation
36 * to the project. For more information see the website or contact
37 * the copyright holders.
39 * $Id: net_os.h,v 1.13 2007/02/04 23:36:35 bernd67 Exp $
44 * This file defines the OS dependent network related functions
45 * that MUST be available to olsrd.
46 * The implementations of the functions should be found in
47 * <OS>/net.c (e.g. linux/net.c)
51 #ifndef _OLSR_NET_OS_H
52 #define _OLSR_NET_OS_H
54 /* OS dependent functions */
61 const struct sockaddr *,
80 bind_socket_to_device(int, char *);
83 convert_ip_to_mac(union olsr_ip_addr *, struct sockaddr *, char *);
86 disable_redirects(const char *, struct interface *, int);
89 disable_redirects_global(int);
92 deactivate_spoof(const char *, struct interface *, int);
95 restore_settings(int);
98 enable_ip_forwarding(int);
101 gethemusocket(struct sockaddr_in *);
104 getsocket(struct sockaddr *, int, char *);
107 getsocket6(struct sockaddr_in6 *, int, char *);
110 get_ipv6_address(char *, struct sockaddr_in6 *, int);
113 calculate_if_metric(char *);
116 check_wireless_interface(char *);
119 is_if_link_up(char *);
122 join_mcast(struct interface *, int);