libnl 3.5.0

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
25 struct rtnl_pktloc
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
rtnl_pktloc
Definition: pktloc.h:25
rtnl_pktloc_alloc
struct rtnl_pktloc * rtnl_pktloc_alloc(void)
Allocate packet location object.
Definition: pktloc.c:187
rtnl_pktloc_put
void rtnl_pktloc_put(struct rtnl_pktloc *)
Return reference of a packet location.
Definition: pktloc.c:204
rtnl_pktloc_lookup
int rtnl_pktloc_lookup(const char *, struct rtnl_pktloc **)
Lookup packet location alias.
Definition: pktloc.c:174
nl_list_head
Definition: list.h:17
rtnl_pktloc_add
int rtnl_pktloc_add(struct rtnl_pktloc *)
Add a packet location to the hash table.
Definition: pktloc.c:220