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