OSDN Git Service

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