.\" -*- coding: UTF-8 -*- .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" %%%LICENSE_START(VERBATIM_ONE_PARA) .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" %%%LICENSE_END .\" .\" $Id: rtnetlink.3,v 1.2 1999/05/18 10:35:10 freitag Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RTNETLINK 3 "1 Noviembre 2020" GNU "Manual del Programador de Linux" .SH NOMBRE rtnetlink \- macros para manipular mensajes rtnetlink .SH SINOPSIS \fB#include \fP .br \fB#include \fP .br \fB#include \fP .br \fB#include \fP .PP \fBrtnetlink_socket = socket(AF_NETLINK, int \fP\fIsocket_type\fP\fB, NETLINK_ROUTE);\fP .PP \fBint RTA_OK(struct rtattr *\fP\fIrta\fP\fB, int \fP\fIrtabuflen\fP\fB);\fP .PP \fBvoid *RTA_DATA(struct rtattr *\fP\fIrta\fP\fB);\fP .PP \fBunsigned int RTA_PAYLOAD(struct rtattr *\fP\fIrta\fP\fB);\fP .PP \fBstruct rtattr *RTA_NEXT(struct rtattr *\fP\fIrta\fP\fB, unsigned int \fP\fIrtabuflen\fP\fB);\fP .PP \fBunsigned int RTA_LENGTH(unsigned int \fP\fIlength\fP\fB);\fP .PP \fBunsigned int RTA_SPACE(unsigned int \fP\fIlength\fP\fB);\fP .SH DESCRIPCIÓN Todos los mensajes \fBrtnetlink\fP(7) están formados por una cabecera de mensaje \fBnetlink\fP(7) y atributos añadidos. Los atributos sólo deberían ser manipulados usando las macros suministradas aquí. .PP \fBRTA_OK(\fP\fIrta\fP\fB, \fP\fIattrlen\fP\fB)\fP devuelve verdadero si \fIrta\fP apunta a un atributo de enrutamiento válido. \fIattrlen\fP es la longitud actual del buffer de atributos. Cuando es falso debe asumir que no hay más atributos en el mensaje, aunque \fIattrlen\fP no sea cero. .PP \fBRTA_DATA(\fP\fIrta\fP\fB)\fP devuelve un puntero al principio de los datos de este atributo. .PP \fBRTA_PAYLOAD(\fP\fIrta\fP\fB)\fP devuelve la longitud de los datos de este atributo. .PP \fBRTA_NEXT(\fP\fIrta\fP\fB, \fP\fIattrlen\fP\fB)\fP obtiene el siguiente atributo después de \fIrta\fP. Al llamar a esta macro se actualizará \fIattrlen\fP. Debería usar \fBRTA_OK\fP para comprobar la validez del puntero devuelto. .PP \fBRTA_LENGTH(\fP\fIlen\fP\fB)\fP devuelve la longitud que se necesita para \fIlen\fP bytes de datos más la cabecera. .PP \fBRTA_SPACE(\fP\fIlen\fP\fB)\fP devuelve la cantidad de espacio que se necesitarán en el mensaje con \fIlen\fP bytes de datos. .SH "CONFORME A" Estas macros son extensiones no estándar de Linux .SH ERRORES Esta página de manual esta incompleta. .SH EJEMPLOS .\" FIXME . ? would be better to use libnetlink in the EXAMPLE code here Crear un mensaje rtnetlink para configurar la MTU de un dispositivo: .PP .in +4n .EX #include \&... struct { struct nlmsghdr nh; struct ifinfomsg if; char attrbuf[512]; } req; struct rtattr *rta; unsigned int mtu = 1000; int rtnetlink_sk = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE); memset(&req, 0, sizeof(req)); req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(req.if)); req.nh.nlmsg_flags = NLM_F_REQUEST; req.nh.nlmsg_type = RTM_NEWLINK; req.if.ifi_family = AF_UNSPEC; req.if.ifi_index = INTERFACE_INDEX; req.if.ifi_change = 0xffffffff; /* ??? */ rta = (struct rtattr *)(((char *) &req) + NLMSG_ALIGN(req.nh.nlmsg_len)); rta\->rta_type = IFLA_MTU; rta\->rta_len = RTA_LENGTH(sizeof(mtu)); req.nh.nlmsg_len = NLMSG_ALIGN(req.nh.nlmsg_len) + RTA_LENGTH(sizeof(mtu)); memcpy(RTA_DATA(rta), &mtu, sizeof(mtu)); send(rtnetlink_sk, &req, req.nh.nlmsg_len, 0); .EE .in .SH "VÉASE TAMBIÉN" \fBnetlink\fP(3), \fBnetlink\fP(7), \fBrtnetlink\fP(7) .SH COLOFÓN Esta página es parte de la versión 5.10 del proyecto Linux \fIman\-pages\fP. Puede encontrar una descripción del proyecto, información sobre cómo informar errores y la última versión de esta página en \%https://www.kernel.org/doc/man\-pages/. .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Juan Piernas y Marcos Fouces . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .