summaryrefslogtreecommitdiffstats
path: root/man/man3/netlink.3
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
commit3d08cd331c1adcf0d917392f7e527b3f00511748 (patch)
tree312f0d1e1632f48862f044b8bb87e602dcffb5f9 /man/man3/netlink.3
parentAdding debian version 6.7-2. (diff)
downloadmanpages-3d08cd331c1adcf0d917392f7e527b3f00511748.tar.xz
manpages-3d08cd331c1adcf0d917392f7e527b3f00511748.zip
Merging upstream version 6.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/man3/netlink.3')
-rw-r--r--man/man3/netlink.387
1 files changed, 87 insertions, 0 deletions
diff --git a/man/man3/netlink.3 b/man/man3/netlink.3
new file mode 100644
index 0000000..0722568
--- /dev/null
+++ b/man/man3/netlink.3
@@ -0,0 +1,87 @@
+.\" This manpage copyright 1998 by Andi Kleen.
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.\" Based on the original comments from Alexey Kuznetsov
+.\" $Id: netlink.3,v 1.1 1999/05/14 17:17:24 freitag Exp $
+.\"
+.TH netlink 3 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+netlink \- Netlink macros
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <asm/types.h>
+.B #include <linux/netlink.h>
+.P
+.BI "int NLMSG_ALIGN(size_t " len );
+.BI "int NLMSG_LENGTH(size_t " len );
+.BI "int NLMSG_SPACE(size_t " len );
+.BI "void *NLMSG_DATA(struct nlmsghdr *" nlh );
+.BI "struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *" nlh ", int " len );
+.BI "int NLMSG_OK(struct nlmsghdr *" nlh ", int " len );
+.BI "int NLMSG_PAYLOAD(struct nlmsghdr *" nlh ", int " len );
+.fi
+.SH DESCRIPTION
+.I <linux/netlink.h>
+defines several standard macros to access or create a netlink datagram.
+They are similar in spirit to the macros defined in
+.BR cmsg (3)
+for auxiliary data.
+The buffer passed to and from a netlink socket should
+be accessed using only these macros.
+.TP
+.BR NLMSG_ALIGN ()
+Round the length of a netlink message up to align it properly.
+.TP
+.BR NLMSG_LENGTH ()
+Given the payload length,
+.IR len ,
+this macro returns the aligned length to store in the
+.I nlmsg_len
+field of the
+.IR nlmsghdr .
+.TP
+.BR NLMSG_SPACE ()
+Return the number of bytes that a netlink message with payload of
+.I len
+would occupy.
+.TP
+.BR NLMSG_DATA ()
+Return a pointer to the payload associated with the passed
+.IR nlmsghdr .
+.TP
+.\" this is bizarre, maybe the interface should be fixed.
+.BR NLMSG_NEXT ()
+Get the next
+.I nlmsghdr
+in a multipart message.
+The caller must check if the current
+.I nlmsghdr
+didn't have the
+.B NLMSG_DONE
+set\[em]this function doesn't return NULL on end.
+The
+.I len
+argument is an lvalue containing the remaining length
+of the message buffer.
+This macro decrements it by the length of the message header.
+.TP
+.BR NLMSG_OK ()
+Return true if the netlink message is not truncated and
+is in a form suitable for parsing.
+.TP
+.BR NLMSG_PAYLOAD ()
+Return the length of the payload associated with the
+.IR nlmsghdr .
+.SH VERSIONS
+It is often better to use netlink via
+.I libnetlink
+than via the low-level kernel interface.
+.SH STANDARDS
+Linux.
+.SH SEE ALSO
+.BR libnetlink (3),
+.BR netlink (7)