]>
Commit | Line | Data |
---|---|---|
aba5acdf SH |
1 | #ifndef __LIBNETLINK_H__ |
2 | #define __LIBNETLINK_H__ 1 | |
3 | ||
4 | #include <asm/types.h> | |
5 | #include <linux/netlink.h> | |
6 | #include <linux/rtnetlink.h> | |
7 | ||
8 | struct rtnl_handle | |
9 | { | |
10 | int fd; | |
11 | struct sockaddr_nl local; | |
12 | struct sockaddr_nl peer; | |
13 | __u32 seq; | |
14 | __u32 dump; | |
15 | }; | |
16 | ||
17 | extern int rtnl_open(struct rtnl_handle *rth, unsigned subscriptions); | |
c7699875 | 18 | extern int rtnl_open_byproto(struct rtnl_handle *rth, unsigned subscriptions, int protocol); |
aba5acdf SH |
19 | extern void rtnl_close(struct rtnl_handle *rth); |
20 | extern int rtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type); | |
21 | extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len); | |
6dc9f016 SH |
22 | |
23 | typedef int (*rtnl_filter_t)(const struct sockaddr_nl *, const struct nlmsghdr *n, void *); | |
24 | extern int rtnl_dump_filter(struct rtnl_handle *rth, rtnl_filter_t filter, | |
aba5acdf | 25 | void *arg1, |
6dc9f016 | 26 | rtnl_filter_t junk, |
aba5acdf SH |
27 | void *arg2); |
28 | extern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, | |
29 | unsigned groups, struct nlmsghdr *answer, | |
6dc9f016 | 30 | rtnl_filter_t junk, |
aba5acdf | 31 | void *jarg); |
6dc9f016 | 32 | extern int rtnl_send(struct rtnl_handle *rth, const char *buf, int); |
aba5acdf SH |
33 | |
34 | ||
35 | extern int addattr32(struct nlmsghdr *n, int maxlen, int type, __u32 data); | |
6dc9f016 | 36 | extern int addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, int alen); |
aba5acdf | 37 | extern int rta_addattr32(struct rtattr *rta, int maxlen, int type, __u32 data); |
6dc9f016 | 38 | extern int rta_addattr_l(struct rtattr *rta, int maxlen, int type, const void *data, int alen); |
aba5acdf SH |
39 | |
40 | extern int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len); | |
c7699875 | 41 | extern int parse_rtattr_byindex(struct rtattr *tb[], int max, struct rtattr *rta, int len); |
aba5acdf | 42 | |
6dc9f016 | 43 | extern int rtnl_listen(struct rtnl_handle *, rtnl_filter_t handler, |
aba5acdf | 44 | void *jarg); |
6dc9f016 | 45 | extern int rtnl_from_file(FILE *, rtnl_filter_t handler, |
aba5acdf SH |
46 | void *jarg); |
47 | ||
48 | #endif /* __LIBNETLINK_H__ */ | |
49 |