EN JA
NETLINK(3)
NETLINK(3) Linux Programmer's Manual NETLINK(3)

名前

netlink - netlink マクロ

書式


#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 );

説明

<linux/netlink.h> では、 netlink データグラムにアクセスしたり、これを作成するための標準マクロがいくつか定義されている。これらは cmsg(3) で定義されている補助データ (auxiliary data) 用のマクロと、その精神において似ているものである。 netlink ソケットに対してやりとりされるバッファには、必ずこれらのマクロだけを使ってアクセスすべきである。
NLMSG_ALIGN
netlink メッセージの長さを丸めて正しく揃える。
NLMSG_LENGTH
格納領域 (payload) の長さ len を引数にとり、 nlmsghdrnlmsg_len フィールドに代入できる揃えられた長さ (aligned length) を返す。
NLMSG_SPACE
ペイロードの長さが len の netlink メッセージのバイト数を返す。
NLMSG_DATA
与えた nlmsghdr に関連づけられた格納領域へのポインタを返す。
NLMSG_NEXT
マルチパートメッセージにおいて、次の nlmsghdr を入手する。これを呼び出すときには、現在の nlmsghdr で NLMSG_DONE がセットされていないことを確認しなければならない。この関数は終端で NULL を返さないからである。 len 引数はメッセージバッファの残り長さが入った左辺値である。このマクロはこの引数からメッセージヘッダの長さ分を差し引く。
NLMSG_OK
Netlink メッセージが途切れておらず、かつ解釈可能な形の場合であれば真を返す。
NLMSG_PAYLOAD
nlmsghdr に関連づけられた格納領域の長さを返す。

準拠

これらのマクロは非標準で、Linux での拡張である。

注意

通常はカーネルの低レベルインターフェイスよりも、 libnetlink 経由で netlink を用いるほうが良い。

関連項目

netlink(7)
 
libnetlink に関しては ftp://ftp.inr.ac.ru/ip-routing/iproute2*

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2012-08-05 GNU