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