8681288391e29135421a2dbe37077afc73de9182
[tinc] / src / route.h
1 #ifndef TINC_ROUTE_H
2 #define TINC_ROUTE_H
3
4 /*
5     route.h -- header file for route.c
6     Copyright (C) 2000-2005 Ivo Timmermans
7                   2000-2012 Guus Sliepen <guus@tinc-vpn.org>
8
9     This program is free software; you can redistribute it and/or modify
10     it under the terms of the GNU General Public License as published by
11     the Free Software Foundation; either version 2 of the License, or
12     (at your option) any later version.
13
14     This program is distributed in the hope that it will be useful,
15     but WITHOUT ANY WARRANTY; without even the implied warranty of
16     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17     GNU General Public License for more details.
18
19     You should have received a copy of the GNU General Public License along
20     with this program; if not, write to the Free Software Foundation, Inc.,
21     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 */
23
24 #include "net.h"
25 #include "node.h"
26
27 typedef enum rmode_t {
28         RMODE_HUB = 0,
29         RMODE_SWITCH,
30         RMODE_ROUTER,
31 } rmode_t;
32
33 typedef enum fmode_t {
34         FMODE_OFF = 0,
35         FMODE_INTERNAL,
36         FMODE_KERNEL,
37 } fmode_t;
38
39 typedef enum bmode_t {
40         BMODE_NONE = 0,
41         BMODE_MST,
42         BMODE_DIRECT,
43 } bmode_t;
44
45 extern rmode_t routing_mode;
46 extern fmode_t forwarding_mode;
47 extern bmode_t broadcast_mode;
48 extern bool decrement_ttl;
49 extern bool directonly;
50 extern bool overwrite_mac;
51 extern bool priorityinheritance;
52 extern int macexpire;
53
54 extern mac_t mymac;
55
56 extern void age_subnets(void);
57 extern void route(struct node_t *, struct vpn_packet_t *);
58
59 #endif