]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/network/networkd-netdev-vxlan.h
sd-lldp: simplify lldp_network_bind_raw_socket() a bit
[thirdparty/systemd.git] / src / network / networkd-netdev-vxlan.h
CommitLineData
3be1d7e0
TG
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
aa9f1140
TG
22typedef struct VxLan VxLan;
23
aa9f1140 24#include "in-addr-util.h"
71d35b6b 25#include "networkd-netdev.h"
aa9f1140 26
3be1d7e0
TG
27#define VXLAN_VID_MAX (1u << 24) - 1
28
aa9f1140
TG
29struct VxLan {
30 NetDev meta;
31
32 uint64_t id;
85a8eeee
SS
33
34 int family;
aa9f1140 35 union in_addr_union group;
85a8eeee 36
aa9f1140
TG
37 unsigned tos;
38 unsigned ttl;
3dbcf579 39 unsigned max_fdb;
85a8eeee 40
ea0288d1
SS
41 uint16_t dest_port;
42
85a8eeee
SS
43 usec_t fdb_ageing;
44
aa9f1140 45 bool learning;
85a8eeee
SS
46 bool arp_proxy;
47 bool route_short_circuit;
48 bool l2miss;
49 bool l3miss;
cffacc74
SS
50 bool udpcsum;
51 bool udp6zerocsumtx;
52 bool udp6zerocsumrx;
ea84fd5c 53 bool group_policy;
ea0288d1
SS
54
55 struct ifla_vxlan_port_range port_range;
aa9f1140
TG
56};
57
3be1d7e0 58extern const NetDevVTable vxlan_vtable;
a94d64d2
SS
59
60int 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);
ea0288d1
SS
70int 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
81int 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);