OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man7 / ddp.7
1 .\" This man page is Copyright (C) 1998 Alan Cox.
2 .\" Permission is granted to distribute possibly modified copies
3 .\" of this page provided the header is included verbatim,
4 .\" and in case of nontrivial modification author and date
5 .\" of the modification is added to the header.
6 .\" $Id: ddp.7,v 1.3 1999/05/13 11:33:22 freitag Exp $
7 .\"*******************************************************************
8 .\"
9 .\" This file was generated with po4a. Translate the source file.
10 .\"
11 .\"*******************************************************************
12 .TH DDP 7 2008\-11\-20 Linux "Linux Programmer's Manual"
13 .SH 名前
14 ddp \- Linux での AppleTalk プロトコルの実装
15 .SH 書式
16 \fB#include <sys/socket.h>\fP
17 .br
18 \fB#include <netatalk/at.h>\fP
19 .sp
20 \fIddp_socket\fP\fB = socket(AF_APPLETALK, SOCK_DGRAM, 0);\fP
21 .br
22 \fIraw_socket\fP\fB = socket(AF_APPLETALK, SOCK_RAW, \fP\fIprotocol\fP\fB);\fP
23 .SH 説明
24 Linux は \fIInside Appletalk\fP に記述されている Appletalk プロトコルを実装している。 カーネルにあるのは DDP
25 層と AARP だけである。これらは \fBnetatalk\fP プロトコルライブラリを通して利用されるように設計されている。 このページは DDP
26 層を直接利用したいユーザーのために、 インターフェースを記述したものである。
27 .PP
28 Appletalk とユーザープログラムとの通信には、 BSD 互換のソケットインターフェースを利用する。 ソケットに関するより詳しい情報は
29 \fBsocket\fP(7)  を見よ。
30 .PP
31 Appletalk ソケットは、 ソケットファミリーの引数に \fBAF_APPLETALK\fP を指定して \fBsocket\fP(2)
32 関数を呼び出すことによって生成される。指定できるソケットタイプは、 \fBddp\fP ソケットをオープンする場合には \fBSOCK_DGRAM\fP、
33 \fBraw\fP ソケットをオープンする場合には \fBSOCK_RAW\fP である。 \fIprotocol\fP は送受信される Appletalk
34 プロトコルである。 ソケットタイプに \fBSOCK_RAW\fP を指定した場合は、プロトコルに \fBATPROTO_DDP\fP を指定しなければならない。
35 .PP
36 raw ソケットは実効ユーザー ID が 0 のプロセスか、 \fBCAT_NEW_RAW\fP 権限を持ったプロセスでないとオープンできない。
37 .SS アドレスのフォーマット
38 Appletalk ソケットアドレスはネットワーク番号・ノード番号・ポート番号の 組み合わせで定義される。
39 .PP
40 .in +4n
41 .nf
42 struct at_addr {
43     unsigned short s_net;
44     unsigned char  s_node;
45 };
46
47 struct sockaddr_atalk {
48     sa_family_t    sat_family;    /* address family */
49     unsigned char  sat_port;      /* port */
50     struct at_addr sat_addr;      /* net/node */
51 };
52 .fi
53 .in
54 .PP
55 .\" FIXME this doesn't make sense [johnl]
56 \fIsat_family\fP は常に \fBAF_APPLETALK\fP に設定する。 \fIsat_port\fP はポートを与える。ポート番号が 129
57 以下のポートは 「予約ポート (reserved port)」 と呼ばれる。実効ユーザー ID が 0 のプロセスか、
58 \fBCAP_NET_BIND_SERVICE\fP 権限を持つプロセスだけが、このようなソケットを \fBbind\fP(2)  できる。 \fIsat_addr\fP
59 はホストアドレスである。 \fIstruct at_addr\fP のメンバー \fIs_net\fP
60 にはホストのネットワークをネットワークバイトオーダーで与える。値 \fBAT_ANYNET\fP
61 はワイルドカードで、「このネットワーク」も暗黙のうちに含まれる。 \fIstruct at_addr\fP のメンバー \fIs_node\fP
62 にはホストのノード番号を与える。値 \fBAT_ANYNODE\fP はワイルドカードで、「このノード」も暗黙のうちに含まれる。値
63 \fBATADDR_BCAST\fP はローカルなブロードキャストアドレスである。
64 .SS ソケットオプション
65 プロトコル固有のソケットオプションはない。
66 .SS "/proc インタフェース"
67 Appletalk のグローバルパラメータのいくつかは、 \fI/proc\fP インタフェースを通して設定することができる。 これらのパラメータには、
68 \fI/proc/sys/net/atalk/\fP ディレクトリ内のファイルの読み書きでアクセスできる。
69 .TP 
70 \fIaarp\-expiry\-time\fP
71 AARP キャッシュエントリを破棄するまでのタイムインターバル (秒単位)。
72 .TP 
73 \fIaarp\-resolve\-time\fP
74 AARP キャッシュエントリが解決されるまでのタイムインターバル (秒単位)。
75 .TP 
76 \fIaarp\-retransmit\-limit\fP
77 AARP クエリーの最大再送信回数。この回数を越えると、 そのノードは dead であるとみなされる。
78 .TP 
79 \fIaarp\-tick\-time\fP
80 タイマー動作する AARP のタイマーレート (秒単位)
81 .PP
82 デフォルトの値で仕様にマッチしているので、 変更する必要は全くないはずである。
83 .SS ioctl
84 .\" FIXME Add a section about multicasting
85 \fBsocket\fP(7)  に記述されているすべての ioctl が DDP にも適用される。
86 .SH エラー
87 .\" FIXME document all errors. We should really fix the kernels to
88 .\" give more uniform error returns (ENOMEM vs ENOBUFS, EPERM vs
89 .\" EACCES etc.)
90 .TP 
91 \fBEACCES\fP
92 ユーザが行おうとした操作に必要な権限を持っていない。 broadcast フラグをセットせずにブロードキャストアドレスへ送信を行おうとした、
93 実効ユーザー ID が 0 でなく、 \fBCAP_NET_BIND_SERVICE\fP
94 権限のないプロセスで特権ポートをバインドしようとした、などが考えられる。
95 .TP 
96 \fBEADDRINUSE\fP
97 既に使用されているアドレスにバインドしようとした。
98 .TP 
99 \fBEADDRNOTAVAIL\fP
100 存在しないインターフェースが要求された。または 要求されたソースアドレスがローカルでない。
101 .TP 
102 \fBEAGAIN\fP
103 非ブロッキングソケットに対してブロックする操作を行った。
104 .TP 
105 \fBEALREADY\fP
106 非ブロッキングソケットに対する接続操作が既に実行中である。
107 .TP 
108 \fBECONNABORTED\fP
109 \fBaccept\fP(2)  の途中で接続がクローズされた。
110 .TP 
111 \fBEHOSTUNREACH\fP
112 行き先アドレスにマッチするエントリがルーティングテーブルにない。
113 .TP 
114 \fBEINVAL\fP
115 渡した引数が不正。
116 .TP 
117 \fBEISCONN\fP
118 接続済みのソケットに対して \fBconnect\fP(2)  が呼ばれた。
119 .TP 
120 \fBEMSGSIZE\fP
121 データグラムが DDP MTU より大きい。
122 .TP 
123 \fBENODEV\fP
124 ネットワークデバイスがない。あるいは IP を送ることができない。
125 .TP 
126 \fBENOENT\fP
127 パケットが到着していないソケットに対して \fBSIOCGSTAMP\fP が呼ばれた。
128 .TP 
129 \fBENOMEM\fP と \fBENOBUFS\fP
130 メモリが足りない。
131 .TP 
132 \fBENOPKG\fP
133 カーネルサブシステムが設定されていない。
134 .TP 
135 \fBENOPROTOOPT\fP と \fBEOPNOTSUPP\fP
136 無効なソケットオプションが渡された。
137 .TP 
138 \fBENOTCONN\fP
139 接続されていないソケットに対して、 接続状態でしか定義されていない操作を行おうとした。
140 .TP 
141 \fBEPERM\fP
142 高い優先度に設定したり、設定を変更したり、 指定したプロセスやグループにシグナルを送るのに必要な権限を ユーザが持っていない。
143 .TP 
144 \fBEPIPE\fP
145 接続が接続相手によって、予期しないやり方でクローズまたはシャットダウンされた。
146 .TP 
147 \fBESOCKTNOSUPPORT\fP
148 ソケットが設定されていない。または未知のソケットタイプが要求された。
149 .SH バージョン
150 Appletalk は Linux 2.0 以降でサポートされている。 \fI/proc\fP インタフェースは Linux 2.2 以降に存在する。
151 .SH 注意
152 \fBSO_BROADCAST\fP オプションを用いる時には慎重の上にも慎重になってほしい。 Linux ではこれに特権を必要としない。
153 不注意にブロードキャストアドレスに送信を行うと、 ネットワークの状態が簡単に変更されてしまう。
154 .SS 移植性
155 基本的な Appletalk ソケットインターフェースは BSD 由来のシステムにおける \fBnetatalk\fP と互換性がある。多くの BSD
156 システムでは、 ブロードキャストフレームを送信しようとしたときの \fBSO_BROADCAST\fP
157 のチェックに失敗する。これは互換性の問題となるかもしれない。
158 .PP
159 raw ソケットモードは Linux 独特のもので、もう一方の実装である CAP パッケージや、 Appletalk
160 モニタツールをより簡単に実装できるようになる。
161 .SH バグ
162 エラーの値がまったく首尾一貫していない。
163 .PP
164 ルーティングテーブル・デバイス・ AARP テーブル・その他のデバイスを 設定するために用いられる ioctl がまだ記述されていない。
165 .SH 関連項目
166 \fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBcapabilities\fP(7), \fBsocket\fP(7)