1*4dc78e53SAndroid Build Coastguard Worker /* SPDX-License-Identifier: LGPL-2.1-only */ 2*4dc78e53SAndroid Build Coastguard Worker /* 3*4dc78e53SAndroid Build Coastguard Worker * Copyright (c) 2010 Thomas Graf <[email protected]> 4*4dc78e53SAndroid Build Coastguard Worker */ 5*4dc78e53SAndroid Build Coastguard Worker 6*4dc78e53SAndroid Build Coastguard Worker #ifndef NETLINK_PKTLOC_H_ 7*4dc78e53SAndroid Build Coastguard Worker #define NETLINK_PKTLOC_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/tc.h> 12*4dc78e53SAndroid Build Coastguard Worker 13*4dc78e53SAndroid Build Coastguard Worker #include <linux/tc_ematch/tc_em_cmp.h> 14*4dc78e53SAndroid Build Coastguard Worker 15*4dc78e53SAndroid Build Coastguard Worker #ifdef __cplusplus 16*4dc78e53SAndroid Build Coastguard Worker extern "C" { 17*4dc78e53SAndroid Build Coastguard Worker #endif 18*4dc78e53SAndroid Build Coastguard Worker 19*4dc78e53SAndroid Build Coastguard Worker struct rtnl_pktloc 20*4dc78e53SAndroid Build Coastguard Worker { 21*4dc78e53SAndroid Build Coastguard Worker char * name; 22*4dc78e53SAndroid Build Coastguard Worker uint8_t layer; 23*4dc78e53SAndroid Build Coastguard Worker uint8_t shift; 24*4dc78e53SAndroid Build Coastguard Worker uint16_t offset; 25*4dc78e53SAndroid Build Coastguard Worker uint16_t align; 26*4dc78e53SAndroid Build Coastguard Worker uint32_t mask; 27*4dc78e53SAndroid Build Coastguard Worker uint32_t refcnt; 28*4dc78e53SAndroid Build Coastguard Worker 29*4dc78e53SAndroid Build Coastguard Worker struct nl_list_head list; 30*4dc78e53SAndroid Build Coastguard Worker }; 31*4dc78e53SAndroid Build Coastguard Worker 32*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_pktloc_lookup(const char *, struct rtnl_pktloc **); 33*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_pktloc *rtnl_pktloc_alloc(void); 34*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_pktloc_put(struct rtnl_pktloc *); 35*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_pktloc_add(struct rtnl_pktloc *); 36*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_pktloc_foreach(void (*cb)(struct rtnl_pktloc *, void *), 37*4dc78e53SAndroid Build Coastguard Worker void *); 38*4dc78e53SAndroid Build Coastguard Worker 39*4dc78e53SAndroid Build Coastguard Worker #ifdef __cplusplus 40*4dc78e53SAndroid Build Coastguard Worker } 41*4dc78e53SAndroid Build Coastguard Worker #endif 42*4dc78e53SAndroid Build Coastguard Worker 43*4dc78e53SAndroid Build Coastguard Worker #endif 44