NETLINK(3)

NOME
netlink - macros netlink

SINÓPSE
#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);

DESCRIÇÃO
netlink.h define várias macros padrão para acessar ou criar um datagrama netlink. Elas são filosoficamente parecidas com as macros definidas em cmsg(3) para dados anciliares. O 'buffer' passado de/para um 'soquete' netlink deve ser acessado apenas através dessas macros.

NLMSG_ALIGN
    Arredonda para cima o comprimento de uma mensagem netlink para alinhá-la adequadamente.

NLMSG_LENGTH
    Resgata o comprimento do 'payload' como argumento e retorna o comprimento alinhado para armazenar no campo nlmsg_len de nlmsghdr.

NLMSG_SPACE
    Retorna o número de bytes que ocupará uma mensagem netlink com o 'payload' do comprimento passado.

NLMSG_DATA
    Retorna o ponteiro do 'payload' associado aq nlmsghdr.

NLMSG_NEXT
    Resgata o próximo nlmsghdr em uma mensagem multiparte. O código que o chama precisa verificar se o nlmsghdr atual não tem o NLMSG_DONE definido - esta função não retorna NULO no final. O parâmetro do comprimento é um 'lvalue' contendo o comprimento restante do 'buffer' da mensagem. Esta macro o decrementa pelo comprimento do cabeçalho da mensagem.

NLMSG_OK
    Retorna 'true' se a mensagem netlink não estiver truncada e estiver boa para ser analisada.

NLMSG_PAYLOAD
    Retorna o comprimento do payload associado a nlmsghdr.

NOTAS
Geralmente é melhor usar netlink via libnetlink do que através da interface de baixo nível do kernel.

VEJA TAMBÉM
netlink(7).

ftp://ftp.inr.ac.ru/ip-routing/iproute2* para o libnetlink.

TRADUZIDO POR LDP-BR em 05/06/2001.

  Tradução:
Daniel Chicayban <daniel@chicayban.com.br>

  Revisão.:
E. A. Tacão <tacao@conectiva.com.br>