libnetlink

libnetlink(3)              Library Functions Manual              libnetlink(3)

NAME
       libnetlink - A library for accessing the netlink service

SYNOPSIS
       #include <asm/types.h>
       #include <libnetlink.h>
       #include <linux/netlink.h>
       #include <linux/rtnetlink.h>

       int rtnl_open(struct rtnl_handle *rth, unsigned subscriptions)

       int rtnl_wilddump_request(struct rtnl_handle *rth, int family, int type)

       int rtnl_send(struct rtnl_handle *rth, char *buf, int len)

       int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len)

       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)

       int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer,
                  unsigned groups, struct nlmsghdr *answer,
                  int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
                  void *jarg)

       int rtnl_listen(struct rtnl_handle *rtnl,
                  int (*handler)(struct sockaddr_nl *, struct rtnl_ctrl_data *,
                           struct nlmsghdr *n, void *),
                  void *jarg)

       int rtnl_from_file(FILE *rtnl,
                  int (*handler)(struct sockaddr_nl *,struct nlmsghdr *n, void *),
                  void *jarg)

       int addattr32(struct nlmsghdr *n, int maxlen, int type, __u32 data)

       int addattr_l(struct nlmsghdr *n, int maxlen, int type, void *data, int alen)

       int rta_addattr32(struct rtattr *rta, int maxlen, int type, __u32 data)

       int rta_addattr_l(struct rtattr *rta, int maxlen, int type, void *data, int alen)

DESCRIPTION
       libnetlink provides a higher level interface to 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.

       rtnl_open
              Open  a rtnetlink socket and save the state into the rth handle.
              This handle is passed to all subsequent calls.  subscriptions is
              a  bitmap of the rtnetlink multicast groups the socket will be a
              member of.

       rtnl_wilddump_request
              Request a full dump of the type database for  family  addresses.
              type is a rtnetlink message type.

       rtnl_dump_request
              Request  a full dump of the type data buffer into buf with maxi-
              mum length of len.  type is a rtnetlink message type.

       rtnl_dump_filter
              Receive netlink data after a request and filter it.  The  filter
              callback  checks  if the received message is wanted. It gets the
              source address of the message, the message itself  and  arg1  as
              arguments.  0 as return means that the filter passed, a negative
              value is returned by rtnl_dump_filter in case of error. NULL for
              filter  means  to not use a filter.  junk is used to filter mes-
              sages not destined to the local socket.  Only one message bundle
              is  received.  If there is a message pending, this function does
              not block.

       rtnl_listen
              Receive netlink data after a request and  pass  it  to  handler.
              handler  is a callback that gets the message source address, an-
              scillary data, the message itself, and the jarg cookie as  argu-
              ments.  It  will get called for all received messages.  Only one
              message bundle is received. If there is a message  pending  this
              function does not block.

       rtnl_from_file
              Works  like rtnl_listen, but reads a netlink message bundle from
              the file file and passes the messages to  handler  for  parsing.
              The  file  should  contain raw data as received from a rtnetlink
              socket.

       The following functions are useful to construct custom  rtnetlink  mes-
       sages.  For  simple database dumping with filtering it is better to use
       the higher level functions above. See rtnetlink(3)  and  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.

       rtnl_send
              Send the rtnetlink message in buf of length len to handle rth.

       addattr32
              Add  a  __u32  attribute  of  type  type  and with value data to
              netlink message n, which is part of a buffer of length maxlen.

       addattr_l
              Add a variable length attribute of type type and with value data
              and  alen length to netlink message n, which is part of a buffer
              of length maxlen.  data is copied.

       rta_addattr32
              Initialize the rtnetlink attribute rta with a __u32 data value.

       rta_addattr32
              Initialize the rtnetlink attribute rta with  a  variable  length
              data value.

BUGS
       This library is meant for internal use, use libmnl for new programs.

       The functions sometimes use fprintf and exit when a fatal error occurs.
       This library should be named librtnetlink.

AUTHORS
       netlink/rtnetlink was designed and written by Alexey  Kuznetsov.   Andi
       Kleen wrote the man page.

SEE ALSO
       netlink(7), rtnetlink(7)
       /usr/include/linux/rtnetlink.h

                                                                 libnetlink(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.