]>
Commit | Line | Data |
---|---|---|
53e1b683 | 1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
0ef6f454 LP |
2 | #pragma once |
3 | ||
d384826f SS |
4 | #include <linux/if_link.h> |
5 | ||
441e9ae4 | 6 | #include "netdev/netdev.h" |
c4a5ddc9 TG |
7 | |
8 | typedef enum IPVlanMode { | |
9 | NETDEV_IPVLAN_MODE_L2 = IPVLAN_MODE_L2, | |
10 | NETDEV_IPVLAN_MODE_L3 = IPVLAN_MODE_L3, | |
d384826f | 11 | NETDEV_IPVLAN_MODE_L3S = IPVLAN_MODE_L3S, |
c4a5ddc9 TG |
12 | _NETDEV_IPVLAN_MODE_MAX, |
13 | _NETDEV_IPVLAN_MODE_INVALID = -1 | |
14 | } IPVlanMode; | |
15 | ||
d384826f SS |
16 | typedef enum IPVlanFlags { |
17 | NETDEV_IPVLAN_FLAGS_BRIGDE, | |
18 | NETDEV_IPVLAN_FLAGS_PRIVATE = IPVLAN_F_PRIVATE, | |
19 | NETDEV_IPVLAN_FLAGS_VEPA = IPVLAN_F_VEPA, | |
20 | _NETDEV_IPVLAN_FLAGS_MAX, | |
21 | _NETDEV_IPVLAN_FLAGS_INVALID = -1 | |
22 | } IPVlanFlags; | |
23 | ||
634f0f98 | 24 | typedef struct IPVlan { |
c4a5ddc9 TG |
25 | NetDev meta; |
26 | ||
27 | IPVlanMode mode; | |
d384826f | 28 | IPVlanFlags flags; |
634f0f98 | 29 | } IPVlan; |
c4a5ddc9 | 30 | |
634f0f98 | 31 | DEFINE_NETDEV_CAST(IPVLAN, IPVlan); |
c4a5ddc9 TG |
32 | extern const NetDevVTable ipvlan_vtable; |
33 | ||
34 | const char *ipvlan_mode_to_string(IPVlanMode d) _const_; | |
35 | IPVlanMode ipvlan_mode_from_string(const char *d) _pure_; | |
36 | ||
d384826f SS |
37 | const char *ipvlan_flags_to_string(IPVlanFlags d) _const_; |
38 | IPVlanFlags ipvlan_flags_from_string(const char *d) _pure_; | |
39 | ||
538f15cf YW |
40 | CONFIG_PARSER_PROTOTYPE(config_parse_ipvlan_mode); |
41 | CONFIG_PARSER_PROTOTYPE(config_parse_ipvlan_flags); |