netlink (3)





NAME

       netlink - Netlink macros


SYNOPSIS

       #include <asm/types.h>
       #include <linux/netlink.h>
       int NLMSG_ALIGN(size_t len);
       int NLMSG_LENGTH(size_t len);
       int NLMSG_SPACE(size_t len);
       void *NLMSG_DATA(struct nlmsghdr *nlh);
       struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *nlh, int len);
       int NLMSG_OK(struct nlmsghdr *nlh, int len);
       int NLMSG_PAYLOAD(struct nlmsghdr *nlh, int len);


DESCRIPTION

       netlink.h defines several standard macros to access or create a netlink
       datagram.  They are similar in spirit to the macros defined in  cmsg(3)
       for  auxiliary  data.  The  buffer  passed to and from a netlink socket
       should be only accessed using these macros.

       NLMSG_ALIGN
              Round the length of a netlink  message  up  to  align  it
              properly.

       NLMSG_LENGTH
              Gets  the  payload  length  as  argument  and returns the
              aligned length to store in the  nlmsg_len  field  of  the
              nlmsghdr.

       NLMSG_SPACE
              Return the number of bytes a netlink message with payload
              of the passed length would occupy.

       NLMSG_DATA
              Return a pointer  to  the  payload  associated  with  the
              passed nlmsghdr.

       NLMSG_NEXT
              Get  the next nlmsghdr in a multipart message. The caller
              must check  if  the  current  nlmsghdr  didn't  have  the
              NLMSG_DONE  set  -  this  function doesn't return NULL on
              end. The length parameter is  an  lvalue  containing  the
              remaining length of the message buffer. This macro decre-
              ments it by the length of the message header.

       NLMSG_OK
              Return true if the netlink message is not  truncated  and
              ok to parse.

       NLMSG_PAYLOAD
              Return  the  length  of  the  payload associated with the
              nlmsghdr.

       and ftp://ftp.inr.ac.ru/ip-routing/iproute2* for libnetlink

Linux Man Page                    1999-05-14                        netlink(3)