networkd-netdev-vxlan.h revision 71d35b6b5563817dfbe757ab9e3b9f018b2db491
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering/***
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering This file is part of systemd.
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering Copyright 2014 Tom Gundersen <teg@jklm.no>
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering systemd is free software; you can redistribute it and/or modify it
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering under the terms of the GNU Lesser General Public License as published by
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering the Free Software Foundation; either version 2.1 of the License, or
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering (at your option) any later version.
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering systemd is distributed in the hope that it will be useful, but
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering Lesser General Public License for more details.
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering You should have received a copy of the GNU Lesser General Public License
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering***/
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering#pragma once
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poetteringtypedef struct VxLan VxLan;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering#include "in-addr-util.h"
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering#include "networkd-netdev.h"
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering#define VXLAN_VID_MAX (1u << 24) - 1
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
7fd1b19bc9e9f5574f2877936b8ac267c7706947Harald Hoyerstruct VxLan {
7fd1b19bc9e9f5574f2877936b8ac267c7706947Harald Hoyer NetDev meta;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering uint64_t id;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering int family;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering union in_addr_union group;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering unsigned tos;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering unsigned ttl;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering unsigned max_fdb;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering usec_t fdb_ageing;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool learning;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool arp_proxy;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool route_short_circuit;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool l2miss;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool l3miss;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool udpcsum;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool udp6zerocsumtx;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool udp6zerocsumrx;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering bool group_policy;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering};
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poetteringextern const NetDevVTable vxlan_vtable;
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyerint config_parse_vxlan_group_address(const char *unit,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer const char *filename,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer unsigned line,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer const char *section,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer unsigned section_line,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer const char *lvalue,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer int ltype,
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering const char *rvalue,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer void *data,
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer void *userdata);
cd34b3c6670df8a3fd49179131fe762b2dd86b01Harald Hoyer