mirror of
				https://git.proxmox.com/git/mirror_iproute2
				synced 2025-10-31 18:39:30 +00:00 
			
		
		
		
	 b096fa5f3b
			
		
	
	
		b096fa5f3b
		
	
	
	
	
		
			
			Fix typo in ss manpage. Make the backslash visible in ip manpage (http://bugs.debian.org/285507). Strict syntax for ip addr advice in error message. Fix typo in libnetlink(3) manpage (writen -> written). Fix typos in tc-prio(8) manpage. Fix typo in tc-htb(8) manpage (mininum -> minimum). Fix typo in tc-cbq-details(8) manpage (occured -> occurred). Signed-off-by: Andreas Henriksson <andreas@fatal.se> Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
		
			
				
	
	
		
			198 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .TH libnetlink 3
 | |
| .SH NAME
 | |
| libnetlink \- A library for accessing the netlink service
 | |
| .SH SYNOPSIS
 | |
| .nf
 | |
| #include <asm/types.h>
 | |
| .br
 | |
| #include <libnetlink.h>
 | |
| .br
 | |
| #include <linux/netlink.h>
 | |
| .br
 | |
| #include <linux/rtnetlink.h>
 | |
| .sp
 | |
| int rtnl_open(struct rtnl_handle *rth, unsigned subscriptions)
 | |
| .sp
 | |
| int rtnl_wilddump_request(struct rtnl_handle *rth, int family, int type)
 | |
| .sp
 | |
| int rtnl_send(struct rtnl_handle *rth, char *buf, int len)
 | |
| .sp
 | |
| int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len)
 | |
| .sp
 | |
| int rtnl_dump_filter(struct rtnl_handle *rth,
 | |
| 		     int (*filter)(struct sockaddr_nl *, struct nlmsghdr *n, void *),
 | |
| 		     void *arg1,
 | |
| 		     int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
 | |
| 		     void *arg2)
 | |
| .sp
 | |
| int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer,
 | |
| 	      unsigned groups, struct nlmsghdr *answer,
 | |
| .br
 | |
| 	      int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
 | |
| .br
 | |
| 	      void *jarg)
 | |
| .sp
 | |
| int rtnl_listen(struct rtnl_handle *rtnl, 
 | |
| 	      int (*handler)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
 | |
| 	      void *jarg)
 | |
| .sp
 | |
| int rtnl_from_file(FILE *rtnl, 
 | |
| 	      int (*handler)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
 | |
| 	      void *jarg)
 | |
| .sp
 | |
| int addattr32(struct nlmsghdr *n, int maxlen, int type, __u32 data)
 | |
| .sp
 | |
| int addattr_l(struct nlmsghdr *n, int maxlen, int type, void *data, int alen)
 | |
| .sp
 | |
| int rta_addattr32(struct rtattr *rta, int maxlen, int type, __u32 data)
 | |
| .sp
 | |
| int rta_addattr_l(struct rtattr *rta, int maxlen, int type, void *data, int alen)
 | |
| .SH DESCRIPTION
 | |
| libnetlink provides a higher level interface to 
 | |
| .BR rtnetlink(7). 
 | |
| The read functions return 0 on success and a negative errno on failure.
 | |
| The send functions return the amount of data sent, or -1 on error.
 | |
| .TP 
 | |
| rtnl_open
 | |
| Open a rtnetlink socket and save the state into the
 | |
| .B rth
 | |
| handle. This handle is passed to all subsequent calls. 
 | |
| .B subscriptions
 | |
| is a bitmap of the rtnetlink multicast groups the socket will be
 | |
| a member of.
 | |
| 
 | |
| .TP
 | |
| rtnl_wilddump_request
 | |
| Request a full dump of the 
 | |
| .B type
 | |
| database for
 | |
| .B family
 | |
| addresses.
 | |
| .B type
 | |
| is a rtnetlink message type. 
 | |
| .\" XXX
 | |
| 
 | |
| .TP
 | |
| rtnl_dump_request
 | |
| Request a full dump of the 
 | |
| .B type 
 | |
| data buffer into 
 | |
| .B buf
 | |
| with maximum length of
 | |
| .B len.
 | |
| .B type
 | |
| is a rtnetlink message type.
 | |
| 
 | |
| .TP
 | |
| rtnl_dump_filter
 | |
| Receive netlink data after a request and filter it.
 | |
| The
 | |
| .B filter
 | |
| callback checks if the received message is wanted. It gets the source
 | |
| address of the message, the message itself and
 | |
| .B arg1 
 | |
| as arguments. 0 as return means that the filter passed, a negative
 | |
| value is returned
 | |
| by
 | |
| .I rtnl_dump_filter 
 | |
| in case of error. NULL for 
 | |
| .I filter
 | |
| means to not use a filter.
 | |
| .B junk
 | |
| is used to filter messages not destined to the local socket.
 | |
| Only one message bundle is received. Unless there is no message 
 | |
| pending, this function does not block.
 | |
| 
 | |
| .TP
 | |
| rtnl_listen
 | |
| Receive netlink data after a request and pass it to 
 | |
| .I handler.
 | |
| .B handler
 | |
| is a callback that gets the message source address, the message itself,
 | |
| and the
 | |
| .B jarg
 | |
| cookie as arguments. It will get called for all received messages.
 | |
| Only one message bundle is received. Unless there is no message 
 | |
| pending this function does not block.
 | |
| 
 | |
| .TP
 | |
| rtnl_from_file
 | |
| Works like 
 | |
| .I rtnl_listen, 
 | |
| but reads a netlink message bundle from the file
 | |
| .B file
 | |
| and passes the messages to
 | |
| .B handler
 | |
| for parsing. The file contains raw data as received from a rtnetlink socket.
 | |
| .PP
 | |
| The following functions are useful to construct custom rtnetlink messages. For
 | |
| simple database dumping with filtering it is better to use the higher level
 | |
| functions above. See
 | |
| .BR rtnetlink(3)
 | |
| and
 | |
| .BR netlink(3)
 | |
| on how to generate a rtnetlink message. The following utility functions
 | |
| require a continuous buffer that already contains a netlink message header
 | |
| and a rtnetlink request. 
 | |
| 
 | |
| .TP
 | |
| rtnl_send
 | |
| Send the rtnetlink message in
 | |
| .B buf
 | |
| of length
 | |
| .B len
 | |
| to handle
 | |
| .B rth.
 | |
| 
 | |
| .TP
 | |
| addattr32
 | |
| Add a __u32 attribute of type
 | |
| .B type
 | |
| and with value
 | |
| .B data
 | |
| to netlink message
 | |
| .B n,
 | |
| which is part of a buffer of length
 | |
| .B maxlen.
 | |
| 
 | |
| .TP
 | |
| addattr_l
 | |
| Add a variable length attribute of type
 | |
| .B type
 | |
| and with value
 | |
| .B data
 | |
| and
 | |
| .B alen
 | |
| length to netlink message
 | |
| .B n,
 | |
| which is part of a buffer of length
 | |
| .B maxlen.
 | |
| .B data 
 | |
| is copied.
 | |
| 
 | |
| .TP
 | |
| rta_addattr32
 | |
| Initialize the rtnetlink attribute
 | |
| .B rta
 | |
| with a __u32 data value.
 | |
| 
 | |
| .TP
 | |
| rta_addattr32
 | |
| Initialize the rtnetlink attribute
 | |
| .B rta
 | |
| with a variable length data value.
 | |
| 
 | |
| .SH BUGS
 | |
| The functions sometimes use fprintf and exit when a fatal error occurs.
 | |
| This library should be named librtnetlink.
 | |
| 
 | |
| .SH AUTHORS
 | |
| netlink/rtnetlink was designed and written by Alexey Kuznetsov.
 | |
| Andi Kleen wrote the man page.
 | |
| 
 | |
| .SH SEE ALSO
 | |
| .BR netlink(7),
 | |
| .BR rtnetlink(7)
 | |
| .br
 | |
| /usr/include/linux/rtnetlink.h
 |