summaryrefslogtreecommitdiff
path: root/datapath/linux-2.6/compat-2.6/include/linux/rtnetlink.h
blob: 8bc51560f12c5645b07083be541d44cf4877012a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef __RTNETLINK_WRAPPER_H
#define __RTNETLINK_WRAPPER_H 1

#include_next <linux/rtnetlink.h>

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
static inline int rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid,
			      u32 group, struct nlmsghdr *nlh, gfp_t flags)
{
	BUG_ON(nlh);		/* not implemented */
	if (group) {
		/* errors reported via destination sk->sk_err */
		nlmsg_multicast(rtnl, skb, 0, group);
	}
	return 0;
}

static inline void rtnl_set_sk_err(struct net *net, u32 group, int error)
{
	netlink_set_err(rtnl, 0, group, error);
}
#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
#define rtnl_notify(skb, net, pid, group, nlh, flags) \
	((void) (net), rtnl_notify(skb, pid, group, nlh, flags))
#define rtnl_set_sk_err(net, group, error) \
	((void) (net), rtnl_set_sk_err(group, error))
#endif /* linux kernel < 2.6.25 */

#endif /* linux/rtnetlink.h wrapper */