1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 This file is part of systemd.
7 Copyright 2014-2015 Tom Gundersen <teg@jklm.no>
10 #include <linux/if_link.h>
13 #include "netdev/netdev.h"
16 typedef enum IPVlanMode
{
17 NETDEV_IPVLAN_MODE_L2
= IPVLAN_MODE_L2
,
18 NETDEV_IPVLAN_MODE_L3
= IPVLAN_MODE_L3
,
19 NETDEV_IPVLAN_MODE_L3S
= IPVLAN_MODE_L3S
,
20 _NETDEV_IPVLAN_MODE_MAX
,
21 _NETDEV_IPVLAN_MODE_INVALID
= -1
24 typedef enum IPVlanFlags
{
25 NETDEV_IPVLAN_FLAGS_BRIGDE
,
26 NETDEV_IPVLAN_FLAGS_PRIVATE
= IPVLAN_F_PRIVATE
,
27 NETDEV_IPVLAN_FLAGS_VEPA
= IPVLAN_F_VEPA
,
28 _NETDEV_IPVLAN_FLAGS_MAX
,
29 _NETDEV_IPVLAN_FLAGS_INVALID
= -1
32 typedef struct IPVlan
{
39 DEFINE_NETDEV_CAST(IPVLAN
, IPVlan
);
40 extern const NetDevVTable ipvlan_vtable
;
42 const char *ipvlan_mode_to_string(IPVlanMode d
) _const_
;
43 IPVlanMode
ipvlan_mode_from_string(const char *d
) _pure_
;
45 const char *ipvlan_flags_to_string(IPVlanFlags d
) _const_
;
46 IPVlanFlags
ipvlan_flags_from_string(const char *d
) _pure_
;
48 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
);
49 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
);