1054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart/*
2054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * netlink/route/action.h       Actions
3054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart *
4054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart *	This library is free software; you can redistribute it and/or
5054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart *	modify it under the terms of the GNU Lesser General Public
6054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart *	License as published by the Free Software Foundation version 2.1
7054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart *	of the License.
8054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart *
9054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart * Copyright (c) 2013 Cong Wang <xiyou.wangcong@gmail.com>
10054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart */
11054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart
12054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#ifndef NETLINK_ACTION_H_
13054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#define NETLINK_ACTION_H_
14054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart
15054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#include <netlink/netlink.h>
16054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#include <netlink/cache.h>
17054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#include <netlink/route/tc.h>
18054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#include <netlink/utils.h>
19054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart
20054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#ifdef __cplusplus
21054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern "C" {
22054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#endif
23054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart
24054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern struct rtnl_act *rtnl_act_alloc(void);
25054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern void		rtnl_act_get(struct rtnl_act *);
26054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern void		rtnl_act_put(struct rtnl_act *);
27054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_build_add_request(struct rtnl_act *, int,
28054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart						   struct nl_msg **);
29054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_add(struct nl_sock *, struct rtnl_act *, int);
30054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart
31054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_build_change_request(struct rtnl_act *, int,
32054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart						      struct nl_msg **);
33054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_build_delete_request(struct rtnl_act *, int,
34054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart						      struct nl_msg **);
35054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_delete(struct nl_sock *, struct rtnl_act *,
36054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart					int);
37054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_append(struct rtnl_act **, struct rtnl_act *);
38054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_remove(struct rtnl_act **, struct rtnl_act *);
39054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_fill(struct nl_msg *, int, struct rtnl_act *);
40054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern void		rtnl_act_put_all(struct rtnl_act **);
41054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewartextern int		rtnl_act_parse(struct rtnl_act **, struct nlattr *);
42054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#ifdef __cplusplus
43054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart}
44054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#endif
45054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart
46054c80d775f2ae9b8f50260bdfcb821e99c0da2aPaul Stewart#endif
47