]> git.proxmox.com Git - systemd.git/blob - src/network/networkd-netdev-vxlan.h
Merge tag 'upstream/229'
[systemd.git] / src / network / networkd-netdev-vxlan.h
1 /***
2 This file is part of systemd.
3
4 Copyright 2014 Tom Gundersen <teg@jklm.no>
5
6 systemd is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or
9 (at your option) any later version.
10
11 systemd is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with systemd; If not, see <http://www.gnu.org/licenses/>.
18 ***/
19
20 #pragma once
21
22 typedef struct VxLan VxLan;
23
24 #include "in-addr-util.h"
25 #include "networkd-netdev.h"
26
27 #define VXLAN_VID_MAX (1u << 24) - 1
28
29 struct VxLan {
30 NetDev meta;
31
32 uint64_t id;
33
34 int family;
35 union in_addr_union group;
36
37 unsigned tos;
38 unsigned ttl;
39 unsigned max_fdb;
40
41 uint16_t dest_port;
42
43 usec_t fdb_ageing;
44
45 bool learning;
46 bool arp_proxy;
47 bool route_short_circuit;
48 bool l2miss;
49 bool l3miss;
50 bool udpcsum;
51 bool udp6zerocsumtx;
52 bool udp6zerocsumrx;
53 bool group_policy;
54
55 struct ifla_vxlan_port_range port_range;
56 };
57
58 extern const NetDevVTable vxlan_vtable;
59
60 int config_parse_vxlan_group_address(const char *unit,
61 const char *filename,
62 unsigned line,
63 const char *section,
64 unsigned section_line,
65 const char *lvalue,
66 int ltype,
67 const char *rvalue,
68 void *data,
69 void *userdata);
70 int config_parse_port_range(const char *unit,
71 const char *filename,
72 unsigned line,
73 const char *section,
74 unsigned section_line,
75 const char *lvalue,
76 int ltype,
77 const char *rvalue,
78 void *data,
79 void *userdata);
80
81 int config_parse_destination_port(const char *unit,
82 const char *filename,
83 unsigned line,
84 const char *section,
85 unsigned section_line,
86 const char *lvalue,
87 int ltype,
88 const char *rvalue,
89 void *data,
90 void *userdata);