1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 Copyright 2014-2015 Tom Gundersen <teg@jklm.no>
8 #include <linux/if_link.h>
11 #include "netdev/netdev.h"
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
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
29 typedef struct IPVlan
{
36 DEFINE_NETDEV_CAST(IPVLAN
, IPVlan
);
37 extern const NetDevVTable ipvlan_vtable
;
39 const char *ipvlan_mode_to_string(IPVlanMode d
) _const_
;
40 IPVlanMode
ipvlan_mode_from_string(const char *d
) _pure_
;
42 const char *ipvlan_flags_to_string(IPVlanFlags d
) _const_
;
43 IPVlanFlags
ipvlan_flags_from_string(const char *d
) _pure_
;
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
);