libnetlink.h revision 50772dc51ac02239958e1ebcdb21277fcdf133a7
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 2350772dc51ac02239958e1ebcdb21277fcdf133a7osdl.net!shemmingertypedef int (*rtnl_filter_t)(const struct sockaddr_nl *, 2450772dc51ac02239958e1ebcdb21277fcdf133a7osdl.net!shemminger struct nlmsghdr *n, void *); 256dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_dump_filter(struct rtnl_handle *rth, rtnl_filter_t filter, 26aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *arg1, 276dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemminger rtnl_filter_t junk, 28aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *arg2); 29aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, 30aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger unsigned groups, struct nlmsghdr *answer, 316dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemminger rtnl_filter_t junk, 32aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *jarg); 336dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_send(struct rtnl_handle *rth, const char *buf, int); 34aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 35aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 36aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int addattr32(struct nlmsghdr *n, int maxlen, int type, __u32 data); 376dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, int alen); 38aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int rta_addattr32(struct rtattr *rta, int maxlen, int type, __u32 data); 396dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rta_addattr_l(struct rtattr *rta, int maxlen, int type, const void *data, int alen); 40aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 41aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len); 42c7699875bee00fbcd057fc62c30d6560b044e007net[shemminger]!shemmingerextern int parse_rtattr_byindex(struct rtattr *tb[], int max, struct rtattr *rta, int len); 43aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 446dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_listen(struct rtnl_handle *, rtnl_filter_t handler, 45aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *jarg); 466dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int rtnl_from_file(FILE *, rtnl_filter_t handler, 47aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger void *jarg); 48aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 49aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#endif /* __LIBNETLINK_H__ */ 50aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 51