xref: /aosp_15_r20/external/libnl/include/netlink/route/link/vlan.h (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
1*4dc78e53SAndroid Build Coastguard Worker /* SPDX-License-Identifier: LGPL-2.1-only */
2*4dc78e53SAndroid Build Coastguard Worker /*
3*4dc78e53SAndroid Build Coastguard Worker  * Copyright (c) 2003-2013 Thomas Graf <[email protected]>
4*4dc78e53SAndroid Build Coastguard Worker  */
5*4dc78e53SAndroid Build Coastguard Worker 
6*4dc78e53SAndroid Build Coastguard Worker #ifndef NETLINK_LINK_VLAN_H_
7*4dc78e53SAndroid Build Coastguard Worker #define NETLINK_LINK_VLAN_H_
8*4dc78e53SAndroid Build Coastguard Worker 
9*4dc78e53SAndroid Build Coastguard Worker #include <netlink/netlink.h>
10*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link.h>
11*4dc78e53SAndroid Build Coastguard Worker 
12*4dc78e53SAndroid Build Coastguard Worker #ifdef __cplusplus
13*4dc78e53SAndroid Build Coastguard Worker extern "C" {
14*4dc78e53SAndroid Build Coastguard Worker #endif
15*4dc78e53SAndroid Build Coastguard Worker 
16*4dc78e53SAndroid Build Coastguard Worker struct vlan_map
17*4dc78e53SAndroid Build Coastguard Worker {
18*4dc78e53SAndroid Build Coastguard Worker 	uint32_t		vm_from;
19*4dc78e53SAndroid Build Coastguard Worker 	uint32_t		vm_to;
20*4dc78e53SAndroid Build Coastguard Worker };
21*4dc78e53SAndroid Build Coastguard Worker 
22*4dc78e53SAndroid Build Coastguard Worker #define VLAN_PRIO_MAX 7
23*4dc78e53SAndroid Build Coastguard Worker 
24*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *rtnl_link_vlan_alloc(void);
25*4dc78e53SAndroid Build Coastguard Worker 
26*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_is_vlan(struct rtnl_link *);
27*4dc78e53SAndroid Build Coastguard Worker 
28*4dc78e53SAndroid Build Coastguard Worker extern char *		rtnl_link_vlan_flags2str(int, char *, size_t);
29*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_str2flags(const char *);
30*4dc78e53SAndroid Build Coastguard Worker 
31*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_set_protocol(struct rtnl_link *link, uint16_t);
32*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_get_protocol(struct rtnl_link *link);
33*4dc78e53SAndroid Build Coastguard Worker 
34*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_set_id(struct rtnl_link *, uint16_t);
35*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_get_id(struct rtnl_link *);
36*4dc78e53SAndroid Build Coastguard Worker 
37*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_set_flags(struct rtnl_link *,
38*4dc78e53SAndroid Build Coastguard Worker 						 unsigned int);
39*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_unset_flags(struct rtnl_link *,
40*4dc78e53SAndroid Build Coastguard Worker 						   unsigned int);
41*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_get_flags(struct rtnl_link *);
42*4dc78e53SAndroid Build Coastguard Worker 
43*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_set_ingress_map(struct rtnl_link *,
44*4dc78e53SAndroid Build Coastguard Worker 						       int, uint32_t);
45*4dc78e53SAndroid Build Coastguard Worker extern uint32_t *	rtnl_link_vlan_get_ingress_map(struct rtnl_link *);
46*4dc78e53SAndroid Build Coastguard Worker 
47*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_vlan_set_egress_map(struct rtnl_link *,
48*4dc78e53SAndroid Build Coastguard Worker 						      uint32_t, int);
49*4dc78e53SAndroid Build Coastguard Worker extern struct vlan_map *rtnl_link_vlan_get_egress_map(struct rtnl_link *,
50*4dc78e53SAndroid Build Coastguard Worker 						      int *);
51*4dc78e53SAndroid Build Coastguard Worker 
52*4dc78e53SAndroid Build Coastguard Worker #ifdef __cplusplus
53*4dc78e53SAndroid Build Coastguard Worker }
54*4dc78e53SAndroid Build Coastguard Worker #endif
55*4dc78e53SAndroid Build Coastguard Worker 
56*4dc78e53SAndroid Build Coastguard Worker #endif
57