libnetlink.h revision 6dc9f016347441fbf94cf851c054b0f45ba32c1c
1aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#ifndef __LIBNETLINK_H__ 2aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#define __LIBNETLINK_H__ 1 3aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 4aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#include <asm/types.h> 5aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#include <linux/netlink.h> 6aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#include <linux/rtnetlink.h> 7aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 8aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerstruct rtnl_handle 9aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger{ 10aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger int fd; 11aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger struct sockaddr_nl local; 12aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger struct sockaddr_nl peer; 13aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger __u32 seq; 14aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger __u32 dump; 15aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger}; 16aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 17aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int rtnl_open(struct rtnl_handle *rth, unsigned subscriptions); 18c7699875bee00fbcd057fc62c30d6560b044e007net[shemminger]!shemmingerextern int rtnl_open_byproto(struct rtnl_handle *rth, unsigned subscriptions, int protocol); 19aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void rtnl_close(struct rtnl_handle *rth); 20aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int rtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type); 21aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len); 226dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemminger 236dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingertypedef int (*rtnl_filter_t)(const struct sockaddr_nl *, const struct nlmsghdr *n, void *); 246dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_dump_filter(struct rtnl_handle *rth, rtnl_filter_t filter, 25aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *arg1, 266dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemminger rtnl_filter_t junk, 27aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *arg2); 28aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, 29aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger unsigned groups, struct nlmsghdr *answer, 306dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemminger rtnl_filter_t junk, 31aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *jarg); 326dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_send(struct rtnl_handle *rth, const char *buf, int); 33aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 34aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 35aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int addattr32(struct nlmsghdr *n, int maxlen, int type, __u32 data); 366dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, int alen); 37aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int rta_addattr32(struct rtattr *rta, int maxlen, int type, __u32 data); 386dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rta_addattr_l(struct rtattr *rta, int maxlen, int type, const void *data, int alen); 39aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 40aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len); 41c7699875bee00fbcd057fc62c30d6560b044e007net[shemminger]!shemmingerextern int parse_rtattr_byindex(struct rtattr *tb[], int max, struct rtattr *rta, int len); 42aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 436dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_listen(struct rtnl_handle *, rtnl_filter_t handler, 44aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *jarg); 456dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_from_file(FILE *, rtnl_filter_t handler, 46aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *jarg); 47aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 48aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#endif /* __LIBNETLINK_H__ */ 49aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 50