]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/network/netdev/ipvlan.h
tree-wide: drop 'This file is part of systemd' blurb
[thirdparty/systemd.git] / src / network / netdev / ipvlan.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5 Copyright 2014-2015 Tom Gundersen <teg@jklm.no>
6 ***/
7
8 #include <linux/if_link.h>
9
10 #include "missing.h"
11 #include "netdev/netdev.h"
12
13 typedef enum IPVlanMode {
14 NETDEV_IPVLAN_MODE_L2 = IPVLAN_MODE_L2,
15 NETDEV_IPVLAN_MODE_L3 = IPVLAN_MODE_L3,
16 NETDEV_IPVLAN_MODE_L3S = IPVLAN_MODE_L3S,
17 _NETDEV_IPVLAN_MODE_MAX,
18 _NETDEV_IPVLAN_MODE_INVALID = -1
19 } IPVlanMode;
20
21 typedef enum IPVlanFlags {
22 NETDEV_IPVLAN_FLAGS_BRIGDE,
23 NETDEV_IPVLAN_FLAGS_PRIVATE = IPVLAN_F_PRIVATE,
24 NETDEV_IPVLAN_FLAGS_VEPA = IPVLAN_F_VEPA,
25 _NETDEV_IPVLAN_FLAGS_MAX,
26 _NETDEV_IPVLAN_FLAGS_INVALID = -1
27 } IPVlanFlags;
28
29 typedef struct IPVlan {
30 NetDev meta;
31
32 IPVlanMode mode;
33 IPVlanFlags flags;
34 } IPVlan;
35
36 DEFINE_NETDEV_CAST(IPVLAN, IPVlan);
37 extern const NetDevVTable ipvlan_vtable;
38
39 const char *ipvlan_mode_to_string(IPVlanMode d) _const_;
40 IPVlanMode ipvlan_mode_from_string(const char *d) _pure_;
41
42 const char *ipvlan_flags_to_string(IPVlanFlags d) _const_;
43 IPVlanFlags ipvlan_flags_from_string(const char *d) _pure_;
44
45 int config_parse_ipvlan_mode(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
46 int config_parse_ipvlan_flags(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);