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