libnl  3.6.0
flower.h
1 /* SPDX-License-Identifier: LGPL-2.1-only */
2 /*
3  * Copyright (c) 2018 Volodymyr Bendiuga <volodymyr.bendiuga@westermo.se>
4  */
5 
6 #ifndef NETLINK_FLOWER_H_
7 #define NETLINK_FLOWER_H_
8 
9 #include <netlink/netlink.h>
10 #include <netlink/cache.h>
11 #include <netlink/route/classifier.h>
12 #include <netlink/route/action.h>
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 extern int rtnl_flower_set_proto(struct rtnl_cls *cls, uint16_t);
19 extern int rtnl_flower_get_proto(struct rtnl_cls *cls, uint16_t *);
20 
21 extern int rtnl_flower_set_vlan_id(struct rtnl_cls *, uint16_t);
22 extern int rtnl_flower_get_vlan_id(struct rtnl_cls *, uint16_t *);
23 
24 extern int rtnl_flower_set_vlan_prio(struct rtnl_cls *, uint8_t);
25 extern int rtnl_flower_get_vlan_prio(struct rtnl_cls *, uint8_t *);
26 
27 extern int rtnl_flower_set_vlan_ethtype(struct rtnl_cls *, uint16_t);
28 
29 extern int rtnl_flower_set_dst_mac(struct rtnl_cls *, unsigned char *,
30  unsigned char *);
31 extern int rtnl_flower_get_dst_mac(struct rtnl_cls *, unsigned char *,
32  unsigned char *);
33 
34 extern int rtnl_flower_set_src_mac(struct rtnl_cls *, unsigned char *,
35  unsigned char *);
36 extern int rtnl_flower_get_src_mac(struct rtnl_cls *, unsigned char *,
37  unsigned char *);
38 
39 extern int rtnl_flower_set_ip_dscp(struct rtnl_cls *, uint8_t, uint8_t);
40 extern int rtnl_flower_get_ip_dscp(struct rtnl_cls *, uint8_t *, uint8_t *);
41 
42 extern int rtnl_flower_set_flags(struct rtnl_cls *, int);
43 
44 extern int rtnl_flower_append_action(struct rtnl_cls *, struct rtnl_act *);
45 extern int rtnl_flower_del_action(struct rtnl_cls *, struct rtnl_act *);
46 extern struct rtnl_act* rtnl_flower_get_action(struct rtnl_cls *);
47 
48 #ifdef __cplusplus
49 }
50 #endif
51 
52 #endif