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