libnl  3.2.24-rc1
pktloc.h
1 /*
2  * netlink/route/pktloc.h Packet Location Aliasing
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation version 2.1
7  * of the License.
8  *
9  * Copyright (c) 2010 Thomas Graf <tgraf@suug.ch>
10  */
11 
12 #ifndef NETLINK_PKTLOC_H_
13 #define NETLINK_PKTLOC_H_
14 
15 #include <netlink/netlink.h>
16 #include <netlink/cache.h>
17 #include <netlink/route/tc.h>
18 
19 #include <linux/tc_ematch/tc_em_cmp.h>
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
26 {
27  char * name;
28  uint8_t layer;
29  uint8_t shift;
30  uint16_t offset;
31  uint16_t align;
32  uint32_t mask;
33  uint32_t refcnt;
34 
35  struct nl_list_head list;
36 };
37 
38 extern int rtnl_pktloc_lookup(const char *, struct rtnl_pktloc **);
39 extern struct rtnl_pktloc *rtnl_pktloc_alloc(void);
40 extern void rtnl_pktloc_put(struct rtnl_pktloc *);
41 extern int rtnl_pktloc_add(struct rtnl_pktloc *);
42 extern void rtnl_pktloc_foreach(void (*cb)(struct rtnl_pktloc *, void *),
43  void *);
44 
45 #ifdef __cplusplus
46 }
47 #endif
48 
49 #endif