Changeset 321 for EcnlProtoTool/trunk/asp3_dcre/tinet
- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- Location:
- EcnlProtoTool/trunk/asp3_dcre/tinet
- Files:
-
- 182 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.config
-
Property svn:mime-type
changed from
text/plain
totext/x-makefile;charset=UTF-8
r270 r321 5 5 # Tomakomai National College of Technology, JAPAN 6 6 # 7 # ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 # ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 # è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 # ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 # å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 # ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 # è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 # ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 # (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 # 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 # 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 # によって公表されている GNU General Public License の Version 2 に記 9 # 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 # を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 # 利用と呼ぶ)することを無償で許諾する. 12 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 # スコード中に含まれていること. 15 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 # の無保証規定を掲載すること. 19 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 # 用できない形で再配布する場合には,次の条件を満たすこと. 21 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 # 37 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 # å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 # æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 # 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 # 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 # 43 # @(#) $Id : Makefile.config 497 2014-06-26 01:50:14Z coas-nagasima$31 # @(#) $Id$ 44 32 # 45 33 46 34 # 47 # ãã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©ãã®å¾ã«è¿½å ããã35 # 「ソースファイルのディレクトリの定義」の後に追加する。 48 36 # 49 37 50 38 # 51 # TINET ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©39 # TINET ソースファイルのディレクトリの定義 52 40 # 53 41 TINET_ROOT = $(SRCDIR)/tinet 54 42 55 43 # 56 # TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©44 # TINET 1.1 との互換性のための定義 57 45 # 58 46 ifndef SUPPORT_INET4 … … 63 51 64 52 # 65 # ãããã¯ã¼ã¯ãµã¼ãã¹ã«é¢ããå®ç¾©53 # ネットワークサービスに関する定義 66 54 # 67 55 TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet … … 117 105 ifeq ($(NET_IF),ether) 118 106 119 # ã¿ã¼ã²ããä¾åã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã107 # ターゲット依存の定義のインクルード 120 108 121 109 ifdef TOOL … … 166 154 167 155 # 168 # å 169 ±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 156 # 共通コンパイルオプションの定義への追加 170 157 # 171 158 CDEFS := $(CDEFS) $(TINET_CDEFS) … … 173 160 174 161 # 175 # ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã«é¢ããå®ç¾©ã¸ã®è¿½å162 # アプリケーションプログラムに関する定義への追加 176 163 # 177 164 TINET_UTASK_CFG = tinet_$(UNAME).cfg 178 165 179 166 # 180 # ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©ã¸ã®è¿½å167 # システムサービスに関する定義への追加 181 168 # 182 169 STASK_DIR := $(STASK_DIR):$(TINET_DIR) … … 185 172 186 173 # 187 # TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ174 # TINET コンフィギュレーションファイルの生成 188 175 # 189 176 tinet: -
Property svn:mime-type
changed from
-
EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile;charset=UTF-8
r270 r321 6 6 # Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN 7 7 # 8 # ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 10 # ã«ãã£ã¦å 11 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 12 # è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 13 # ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 14 å¸ï¼ä»¥ä¸ï¼ 15 # å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 # ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 # è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 # ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 29 # (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 34 # 害ãããï¼ä¸è¨èä½æ¨©è 35 ããã³TOPPERSããã¸ã§ã¯ããå 36 責ãããã¨ï¼ 8 # 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 9 # によって公表されている GNU General Public License の Version 2 に記 10 # 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 11 # を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 12 # 利用と呼ぶ)することを無償で許諾する. 13 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 # スコード中に含まれていること. 16 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 # の無保証規定を掲載すること. 20 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 # 用できない形で再配布する場合には,次の条件を満たすこと. 22 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 37 26 # 38 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 39 ã 40 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 41 # å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 42 # æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 27 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 28 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 29 # 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 30 # 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 43 31 # 44 # @(#) $Id : Makefile.tinet 497 2014-06-26 01:50:14Z coas-nagasima$45 # 46 47 # 48 # ãããã«ã¦ã§ã¢ã® Makefile ã®ã¤ã³ã¯ã«ã¼ããã«è¿½å ããã49 # 50 51 # 52 # ã«ã¼ãã«ã®èå¥32 # @(#) $Id$ 33 # 34 35 # 36 # 「ミドルウェアの Makefile のインクルード」に追加する。 37 # 38 39 # 40 # カーネルの識別 53 41 # 54 42 ifdef SRCLANG … … 61 49 62 50 # 63 # TINET ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©51 # TINET ソースファイルのディレクトリの定義 64 52 # 65 53 TINET_ROOT = $(SRCDIR)/tinet 66 54 67 55 # 68 # TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©56 # TINET 1.1 との互換性のための定義 69 57 # 70 58 ifndef SUPPORT_INET4 … … 75 63 76 64 # 77 # ãããã¯ã¼ã¯ãµã¼ãã¹ã«é¢ããå®ç¾©65 # ネットワークサービスに関する定義 78 66 # 79 67 TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet … … 131 119 endif 132 120 133 # ã¿ã¼ã²ããä¾åã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã121 # ターゲット依存の定義のインクルード 134 122 135 123 ifeq ($(TARGET_KERNEL),ASP) … … 199 187 200 188 # 201 # TINET ã©ã¤ãã©ãªã®å®ç¾©189 # TINET ライブラリの定義 202 190 # 203 191 … … 245 233 246 234 # 247 # ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã248 # ãªãã¸ã§ã¯ããã¡ã¤ã«ã®å®ç¾©235 # ライブラリ化するソースファイルから生成される 236 # オブジェクトファイルの定義 249 237 # 250 238 TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=))) … … 266 254 267 255 # 268 # ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã269 # ãªãã¸ã§ã¯ããã¡ã¤ã«ã®ä¾åé¢ä¿ã®å®ç¾©256 # ライブラリ化するソースファイルから生成される 257 # オブジェクトファイルの依存関係の定義 270 258 # 271 259 $(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c … … 273 261 274 262 # 275 # TINET ã©ã¤ãã©ãªã®å®ç¾©263 # TINET ライブラリの定義 276 264 # 277 265 TINET_LIB_OBJS = $(TINET_LCOBJS) 278 266 279 267 # 280 # TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©268 # TINET コンフィギュレーションファイルの定義 281 269 # 282 270 … … 301 289 302 290 # 303 # å 304 ±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 291 # 共通コンパイルオプションの定義への追加 305 292 # 306 293 CDEFS := $(CDEFS) $(TINET_CDEFS) … … 308 295 309 296 # 310 # TINET ã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å297 # TINET コンパイルオプションの定義への追加 311 298 # 312 299 TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing 313 300 314 301 # 315 # ã·ã¹ãã ãµã¼ãã¹ãããã«ã¦ã§ã¢ã«é¢ããå®ç¾©302 # システムサービス、ミドルウェアに関する定義 316 303 # 317 304 … … 348 335 349 336 # 350 # TINET ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ337 # TINET ライブラリファイルの生成 351 338 # 352 339 libtinet.a: $(TINET_LIB_OBJS) … … 356 343 357 344 # 358 # ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©345 # コンパイルルールの定義 359 346 # 360 347 … … 377 364 378 365 # 379 # ã³ã³ãã¤ã«çµæã®æ¶å»366 # コンパイル結果の消去 380 367 # 381 368 cleantinet: -
Property svn:mime-type
changed from
-
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ether_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 50 38 51 39 /* 52 * Ethernet å¦çã¿ã¹ã¯40 * Ethernet 処理タスク 53 41 */ 54 42 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * Ethernet å¦çã¿ã¹ã¯ã®æ¬ä½35 * Ethernet 処理タスクの本体 48 36 */ 49 37 … … 92 80 93 81 /* 94 * å¤æ°82 * 変数 95 83 */ 96 84 … … 105 93 106 94 /* 107 * å¤æ°108 */ 109 110 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½*/95 * 変数 96 */ 97 98 /* ネットワークインタフェース構造体 */ 111 99 112 100 #if defined(SUPPORT_INET4) 113 101 114 102 static T_IFNET ether_ifnet = { 115 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 116 å ± */ 103 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 117 104 { 118 IPV4_ADDR_LOCAL, /* IPv4 ã¢ãã¬ã¹*/119 IPV4_ADDR_LOCAL_MASK, /* ãµãããããã¹ã¯*/105 IPV4_ADDR_LOCAL, /* IPv4 アドレス */ 106 IPV4_ADDR_LOCAL_MASK, /* サブネットマスク */ 120 107 }, 121 108 }; … … 126 113 127 114 static T_IFNET ether_ifnet = { 128 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 129 å ± */ 130 {0}, /* IPv6 ã¢ãã¬ã¹æ 131 å ± */ 132 {0}, /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹ */ 133 0, /* ãã©ã° */ 115 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 116 {0}, /* IPv6 アドレス情報 */ 117 {0}, /* マルチキャスト IPv6 アドレス */ 118 0, /* フラグ */ 134 119 }; 135 120 … … 139 124 140 125 /* 141 * SNMP 㮠管çæ 142 å ±ãã¼ã¹ (MIB) 126 * SNMP の 管理情報ベース (MIB) 143 127 */ 144 128 … … 150 134 151 135 /* 152 * é¢æ°136 * 関数 153 137 */ 154 138 … … 156 140 157 141 /* 158 * ieee_802_input -- IEEE 802.3 å 159 ¥åå¦ç 142 * ieee_802_input -- IEEE 802.3 入力処理 160 143 */ 161 144 … … 175 158 176 159 /* 177 * ether_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã160 * ether_get_ifnet -- ネットワークインタフェース構造体を返す。 178 161 */ 179 162 … … 187 170 188 171 /* 189 * ether_in6_resolve_multicast -- ã¤ã¼ãµãããã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ172 * ether_in6_resolve_multicast -- イーサネットのマルチキャストアドレスへの変換 190 173 */ 191 174 … … 193 176 ether_in6_resolve_multicast (T_ETHER_ADDR *ifaddr, T_IN6_ADDR *maddr) 194 177 { 195 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ããã§ãã¯ããã*/178 /* マルチキャストアドレスかチェックする。*/ 196 179 if (!IN6_IS_ADDR_MULTICAST(maddr)) 197 180 return E_PAR; 198 181 199 /* ã¤ã¼ãµãããã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ*/182 /* イーサネットのマルチキャストアドレスへの変換 */ 200 183 ether_map_ipv6_multicast(ifaddr, maddr); 201 184 … … 249 232 250 233 /* 251 * ether_raw_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºç¡ã234 * ether_raw_output -- Ethernet インタフェースの出力関数、MAC アドレス解決無し 252 235 */ 253 236 … … 257 240 ER error = E_OK; 258 241 259 /* Ethernet åºåãã¥ã¼ã«æå 260 ¥ããã*/ 242 /* Ethernet 出力キューに投入する。*/ 261 243 if ((error = tsnd_dtq(DTQ_ETHER_OUTPUT, (intptr_t)output, tmout)) != E_OK) { 262 244 NET_COUNT_ETHER(net_count_ether.out_err_packets, 1); 263 245 NET_COUNT_MIB(if_stats.ifOutDiscards, 1); 264 246 265 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/247 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 266 248 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 267 249 syscall(rel_net_buf(output)); … … 276 258 277 259 /* 278 * ether_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºæã260 * ether_output -- Ethernet インタフェースの出力関数、MAC アドレス解決有り 279 261 */ 280 262 … … 286 268 T_ETHER_HDR *eth; 287 269 288 /* éä¿¡å 289 MAC ã¢ãã¬ã¹ãè¨å®ããã*/ 270 /* 送信元 MAC アドレスを設定する。*/ 290 271 ic = IF_ETHER_NIC_GET_SOFTC(); 291 272 eth = GET_ETHER_HDR(output); … … 298 279 case ETHER_TYPE_IP: /* IPv4 */ 299 280 #ifdef ETHER_CFG_MULTICAST 300 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®å ´å*/281 /* マルチキャストアドレスの場合 */ 301 282 if(IN4_IS_ADDR_MULTICAST(*(uint32_t*)dst)){ 302 /* ã¤ã¼ãµãããã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ*/283 /* イーサネットのマルチキャストアドレスへの変換 */ 303 284 ether_map_ipv4_multicast((T_ETHER_ADDR *)ð->dhost, *(T_IN4_ADDR*)dst); 304 285 error = ether_raw_output(output, tmout); … … 306 287 } 307 288 #endif 308 if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) { /* true ãªãã¢ãã¬ã¹è§£æ±ºæ¸*/289 if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) { /* true ならアドレス解決済 */ 309 290 error = ether_raw_output(output, tmout); 310 291 } … … 321 302 error = ether_raw_output(output, tmout); 322 303 323 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/304 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 324 305 else if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 325 306 syscall(rel_net_buf(output)); … … 335 316 NET_COUNT_MIB(if_stats.ifOutErrors, 1); 336 317 337 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/318 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 338 319 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 339 320 syscall(rel_net_buf(output)); … … 352 333 353 334 /* 354 * Ethernet åºåã¿ã¹ã¯335 * Ethernet 出力タスク 355 336 */ 356 337 … … 406 387 407 388 /* 408 * Ethernet å 409 ¥åã¿ã¹ã¯ 389 * Ethernet 入力タスク 410 390 */ 411 391 … … 419 399 uint16_t proto; 420 400 421 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç®¡çãåæåããã*/401 /* ネットワークインタフェース管理を初期化する。*/ 422 402 ifinit(); 423 403 424 /* NIC ãåæåããã*/404 /* NIC を初期化する。*/ 425 405 ic = IF_ETHER_NIC_GET_SOFTC(); 426 406 IF_ETHER_NIC_PROBE(ic); 427 407 IF_ETHER_NIC_INIT(ic); 428 408 429 /* Ethernet åºåã¿ã¹ã¯ãèµ·åãã*/409 /* Ethernet 出力タスクを起動する */ 430 410 syscall(act_tsk(ETHER_OUTPUT_TASK)); 431 411 432 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã*/412 /* ネットワークタイマタスクを起動する */ 433 413 syscall(act_tsk(NET_TIMER_TASK)); 434 414 … … 440 420 #if defined(SUPPORT_INET4) 441 421 442 /* ARP ãåæåããã*/422 /* ARP を初期化する。*/ 443 423 arp_init(); 444 424 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * Ethernet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * Ethernet コンフィギュレーションファイル 48 36 */ 49 37 … … 55 43 CRE_DTQ(DTQ_ETHER_OUTPUT, { TA_TFIFO, NUM_DTQ_ETHER_OUTPUT, NULL }); 56 44 57 /* ãµãã¼ãé¢æ° max2str ç¨ã»ããã©*/45 /* サポート関数 max2str 用セマフォ */ 58 46 59 47 CRE_SEM(SEM_MAC2STR_BUFF_LOCK, { TA_TPRI, 1, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 88 76 89 77 /* 90 * ãã£ã¼ã«ãé·78 * フィールド長 91 79 */ 92 80 … … 96 84 97 85 /* 98 * ãã¬ã¼ã é· (Ethernet ããã㨠CRC ãå«ã)86 * フレーム長 (Ethernet ヘッダと CRC を含む) 99 87 */ 100 88 … … 103 91 104 92 /* 105 * Ethernet ããã93 * Ethernet ヘッダ 106 94 */ 107 95 … … 114 102 #if IF_ETHER_NIC_HDR_ALIGN != 0 115 103 116 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* ã¢ã©ã¤ã³èª¿æ´*/104 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* アライン調整 */ 117 105 118 106 #endif /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */ … … 126 114 127 115 /* 128 * MAC ã¢ãã¬ã¹ã®å®ç¾©129 */ 130 131 #define ETHER_MCAST_ADDR UINT_C(0x01) /* ãã«ããã£ã¹ãã»ã¢ãã¬ã¹*/132 #define ETHER_LOCAL_ADDR UINT_C(0x02) /* ãã¼ã«ã«ã»ã¢ãã¬ã¹*/116 * MAC アドレスの定義 117 */ 118 119 #define ETHER_MCAST_ADDR UINT_C(0x01) /* マルチキャスト・アドレス */ 120 #define ETHER_LOCAL_ADDR UINT_C(0x02) /* ローカル・アドレス */ 133 121 134 122 typedef struct t_ether_addr { … … 137 125 138 126 /* 139 * Type ãã£ã¼ã«ã127 * Type フィールド 140 128 */ 141 129 … … 145 133 146 134 /* 147 * ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã148 */ 149 150 #define T_IF_HDR T_ETHER_HDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã*/151 #define T_IF_ADDR T_ETHER_ADDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹*/152 #define IF_HDR_ALIGN 2 /* ãããã®ã¢ã©ã¤ã³åä½*/153 #define IF_MTU 1500 /* ã¤ã³ã¿ãã§ã¼ã¹ã®MTU */154 155 #define IF_OUTPUT(o,d,g,t) ether_output(o,d,g,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°*/156 #define IF_RAW_OUTPUT(o,t) ether_raw_output(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/135 * インタフェースの選択マクロ 136 */ 137 138 #define T_IF_HDR T_ETHER_HDR /* インタフェースのヘッダ */ 139 #define T_IF_ADDR T_ETHER_ADDR /* インタフェースのアドレス */ 140 #define IF_HDR_ALIGN 2 /* ヘッダのアライン単位 */ 141 #define IF_MTU 1500 /* インタフェースの MTU */ 142 143 #define IF_OUTPUT(o,d,g,t) ether_output(o,d,g,t) /* インタフェースの出力関数 */ 144 #define IF_RAW_OUTPUT(o,t) ether_raw_output(o,t) /* インタフェースの出力関数、アドレス解決無し */ 157 145 #define IF_SET_PROTO(b,p) (GET_ETHER_HDR(b)->type = htons(p)) 158 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãããã³ã«è¨å®é¢æ°*/146 /* インタフェースのプロトコル設定関数 */ 159 147 #define IF_SOFTC_TO_IFADDR(s) ((T_IF_ADDR*)(s)->ifaddr.lladdr) 160 /* ã½ããã¦ã§ã¢æ 161 å ±ãã MAC ã¢ãã¬ã¹ãåãåºã */ 162 #define IF_GET_IFNET() ether_get_ifnet() /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã */ 163 #define IF_TYPE IFT_ETHER /* ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®å */ 164 165 /* IPv4 é¢ä¿ */ 166 167 #define IF_PROTO_IP ETHER_TYPE_IP /* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãããã³ã«æå® */ 168 #define IF_PROTO_ARP ETHER_TYPE_ARP /* ã¤ã³ã¿ãã§ã¼ã¹ã® ARP ãããã³ã«æå® */ 169 170 /* IPv6 é¢ä¿ */ 171 172 #define MAX_IF_MADDR_CNT 2 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹é 173 åã®æ大ãµã¤ãº */ 148 /* ソフトウェア情報から MAC アドレスを取り出す */ 149 #define IF_GET_IFNET() ether_get_ifnet() /* ネットワークインタフェース構造体を返す。 */ 150 #define IF_TYPE IFT_ETHER /* インターフェースの型 */ 151 152 /* IPv4 関係 */ 153 154 #define IF_PROTO_IP ETHER_TYPE_IP /* インタフェースの IP プロトコル指定 */ 155 #define IF_PROTO_ARP ETHER_TYPE_ARP /* インタフェースの ARP プロトコル指定 */ 156 157 /* IPv6 関係 */ 158 159 #define MAX_IF_MADDR_CNT 2 /* インタフェースのマルチキャストアドレス配列の最大サイズ */ 174 160 #define IF_MADDR_INIT { { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } } 175 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹é 176 åã®åæå */ 177 #define IF_PROTO_IPV6 ETHER_TYPE_IPV6 /* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãããã³ã«æå® */ 161 /* インタフェースのマルチキャストアドレス配列の初期化 */ 162 #define IF_PROTO_IPV6 ETHER_TYPE_IPV6 /* インタフェースの IP プロトコル指定 */ 178 163 #define IF_ADDMULTI(s) IF_ETHER_NIC_ADDMULTI(s) 179 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ç»é²*/180 #define IF_IN6_NEED_CACHE(i) (true) /* è¿é£æ¢ç´¢ãã£ãã·ã¥ã使ç¨ããã*/164 /* マルチキャストアドレスの登録 */ 165 #define IF_IN6_NEED_CACHE(i) (true) /* 近隣探索キャッシュを使用する。 */ 181 166 #define IF_IN6_IFID(i,a) IF_ETHER_NIC_IN6_IFID(i,a) 182 /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åã®è¨å®*/167 /* インタフェース識別子の設定 */ 183 168 #define IF_IN6_RESOLVE_MULTICAST(i,m) \ 184 169 ether_in6_resolve_multicast(i,m) 185 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ */ 186 187 /* 188 * åæ¹åç 189 § 170 /* インタフェースのマルチキャストアドレスへの変換 */ 171 172 /* 173 * 前方参照 190 174 */ 191 175 … … 223 207 224 208 /* 225 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 226 å ± 209 * ネットワークインタフェースに依存しないソフトウェア情報 227 210 */ 228 211 … … 230 213 231 214 struct t_if_softc { 232 T_IF_ADDR ifaddr; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 233 uint16_t timer; /* éä¿¡ã¿ã¤ã ã¢ã¦ã */ 234 T_IF_ETHER_NIC_SOFTC *sc; /* ãã£ãã¤ã¹ä¾åã®ã½ããã¦ã§ã¢æ 235 å ± */ 236 ID semid_txb_ready; /* éä¿¡ã»ããã© */ 237 ID semid_rxb_ready; /* åä¿¡ã»ããã© */ 215 T_IF_ADDR ifaddr; /* ネットワークインタフェースのアドレス */ 216 uint16_t timer; /* 送信タイムアウト */ 217 T_IF_ETHER_NIC_SOFTC *sc; /* ディバイス依存のソフトウェア情報 */ 218 ID semid_txb_ready; /* 送信セマフォ */ 219 ID semid_rxb_ready; /* 受信セマフォ */ 238 220 239 221 #ifdef SUPPORT_INET6 240 222 241 T_IF_ADDR maddrs[MAX_IF_MADDR_CNT]; /* ãã«ããã£ã¹ãã¢ãã¬ã¹ãªã¹ã*/223 T_IF_ADDR maddrs[MAX_IF_MADDR_CNT]; /* マルチキャストアドレスリスト */ 242 224 243 225 #endif /* of #ifdef SUPPORT_INET6 */ … … 251 233 #ifdef SUPPORT_INET6 252 234 253 /* åæ¹åç 254 § */ 235 /* 前方参照 */ 255 236 256 237 #ifndef T_IN6_ADDR_DEFINED … … 263 244 264 245 /* 265 * é¢æ°246 * 関数 266 247 */ 267 248 … … 271 252 272 253 /* 273 * é¢æ°254 * 関数 274 255 */ 275 256 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/fcstab.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
-
EcnlProtoTool/trunk/asp3_dcre/tinet/net/genfcstab.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
-
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 111 99 112 100 /* 113 * é¢æ°101 * 関数 114 102 */ 115 103 … … 117 105 118 106 /* 119 * if_slowtimo -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ãå¶å¾¡107 * if_slowtimo -- インタフェースのワッチドッグタイマ制御 120 108 */ 121 109 … … 136 124 137 125 /* 138 * ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ç®¡çã®åæå126 * ifinit -- インタフェース管理の初期化 139 127 */ 140 128 … … 148 136 149 137 /* 150 * if_addmulti -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ç»é²138 * if_addmulti -- マルチキャストアドレスの登録 151 139 */ 152 140 … … 163 151 return E_PAR; 164 152 165 /* IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/153 /* IPv6 マルチキャストアドレスを登録する。*/ 166 154 ifp->in_maddrs[ix] = *(T_IN6_ADDR*)maddr; 167 155 168 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã«å¤æããç»é²ããã*/156 /* インタフェースのアドレスに変換し、登録する。*/ 169 157 error = IF_IN6_RESOLVE_MULTICAST(&llmaddr, (T_IN6_ADDR*)maddr); 170 158 if (error != E_OK) -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç¨ã¿ã¤ãã®å®ç¾©74 * ネットワークインタフェース用タイマの定義 87 75 */ 88 76 89 #define IF_TIMER_TMO NET_TIMER_HZ /* ã¿ã¤ã ã¢ã¦ãã1 [s] */90 #define IF_TIMER_HZ 1 /* ã¿ã¤ãã®å¨æ³¢æ°ã1 [s] */77 #define IF_TIMER_TMO NET_TIMER_HZ /* タイムアウト、1 [s] */ 78 #define IF_TIMER_HZ 1 /* タイマの周波数、1 [s] */ 91 79 92 80 /* 93 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã©ã°81 * ネットワークインタフェースのフラグ 94 82 */ 95 83 96 #define IFF_UP UINT_C(0x0001) /* èµ·åæ¸ã¿*/97 #define IFF_RUNNING UINT_C(0x0002) /* åä½ä¸*/84 #define IFF_UP UINT_C(0x0001) /* 起動済み */ 85 #define IFF_RUNNING UINT_C(0x0002) /* 動作中 */ 98 86 99 87 /* 100 * æ±ç¨å®ç¾©88 * 汎用定義 101 89 */ 102 90 … … 105 93 106 94 /* 107 * é¢æ°95 * 関数 108 96 */ 109 97 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if6_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 83 71 84 72 /* 85 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½73 * ネットワークインタフェース構造体 86 74 */ 87 75 88 76 struct t_ifnet { 89 T_IF_SOFTC *ic; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 90 å ± */ 77 T_IF_SOFTC *ic; /* ネットワークインタフェースのソフトウェア情報 */ 91 78 T_IN6_IFADDR in_ifaddrs[NUM_IN6_IFADDR_ENTRY]; 92 /* IPv6 ã¢ãã¬ã¹æ 93 å ± */ 79 /* IPv6 アドレス情報 */ 94 80 T_IN6_ADDR in_maddrs [MAX_IN6_MADDR_CNT]; 95 /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹*/96 uint8_t flags; /* ãã©ã°*/81 /* マルチキャスト IPv6 アドレス */ 82 uint8_t flags; /* フラグ */ 97 83 }; 98 84 … … 106 92 107 93 /* 108 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã94 * 関数シミュレーションマクロ 109 95 */ 110 96 … … 112 98 113 99 /* 114 * é¢æ°100 * 関数 115 101 */ 116 102 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 88 76 * Address Resolution Protocol. 89 77 * 90 * RFC 826 åç 91 § 78 * RFC 826 参照 92 79 */ 93 80 94 81 /* 95 * æ§é ä½82 * 構造体 96 83 */ 97 84 98 /* ARP ããã*/85 /* ARP ヘッダ */ 99 86 100 87 typedef struct t_arp_hdr { 101 uint16_t hrd_addr; /* ç©çã¢ãã¬ã¹ãã©ã¼ããã*/102 uint16_t proto; /* ãããã³ã«*/103 uint8_t hdr_len; /* ç©çã¢ãã¬ã¹é·*/104 uint8_t proto_len; /* ãããã³ã«é·*/105 uint16_t opcode; /* å½ä»¤ã³ã¼ã*/88 uint16_t hrd_addr; /* 物理アドレスフォーマット */ 89 uint16_t proto; /* プロトコル */ 90 uint8_t hdr_len; /* 物理アドレス長 */ 91 uint8_t proto_len; /* プロトコル長 */ 92 uint16_t opcode; /* 命令コード */ 106 93 } __attribute__((packed, aligned(2)))T_ARP_HDR; 107 94 … … 113 100 #define GET_IF_ARP_HDR_SIZE(nbuf) (IF_HDR_SIZE + ARP_HDR_SIZE) 114 101 115 /* hrd_addr ãç©çã¢ãã¬ã¹ãã©ã¼ãããã®å¤*/102 /* hrd_addr、物理アドレスフォーマットの値 */ 116 103 117 104 #define ARPHRD_ETHER 1 /* Ethernet */ 118 105 119 /* opcode, å½ä»¤ã³ã¼ãã®å¤*/106 /* opcode, 命令コードの値 */ 120 107 121 #define ARPOP_REQUEST UINT_C(1) /* ã¢ãã¬ã¹è§£æ±ºè¦æ±*/122 #define ARPOP_REPLY UINT_C(2) /* ã¢ãã¬ã¹è§£æ±ºå¿ç*/123 #define ARPOP_REV_REQUEST UINT_C(3) /* ãããã³ã«ã»ã¢ãã¬ã¹è§£æ±ºè¦æ±*/124 #define ARPOP_REV_REPLY UINT_C(4) /* ãããã³ã«ã»ã¢ãã¬ã¹è§£æ±ºè¦æ±*/125 #define ARPOP_INV_REQUEST UINT_C(8) /* çµç«¯èå¥è¦æ±*/126 #define ARPOP_INV_REPLY UINT_C(9) /* çµç«¯èå¥è¦æ±*/108 #define ARPOP_REQUEST UINT_C(1) /* アドレス解決要求 */ 109 #define ARPOP_REPLY UINT_C(2) /* アドレス解決応答 */ 110 #define ARPOP_REV_REQUEST UINT_C(3) /* プロトコル・アドレス解決要求 */ 111 #define ARPOP_REV_REPLY UINT_C(4) /* プロトコル・アドレス解決要求 */ 112 #define ARPOP_INV_REQUEST UINT_C(8) /* 終端識別要求 */ 113 #define ARPOP_INV_REPLY UINT_C(9) /* 終端識別要求 */ 127 114 128 115 /* 129 * ã¤ã¼ãµããããã©ã¤ãã¢ã¸ã¥ã¼ã«ã§ä½¿ç¨ããã ARP æ 130 å ± 116 * イーサネットドライバモジュールで使用される ARP 情報 131 117 */ 132 118 … … 136 122 137 123 /* 138 * ARP ãã£ãã·ã¥æ´æ°ã¿ã¤ãã®å®ç¾©124 * ARP キャッシュ更新タイマの定義 139 125 */ 140 126 141 #define ARP_TIMER_TMO (60*NET_TIMER_HZ) /* ã¿ã¤ã ã¢ã¦ãã60 [s] */127 #define ARP_TIMER_TMO (60*NET_TIMER_HZ) /* タイムアウト、60 [s] */ 142 128 143 129 /* 144 * å¤æ°130 * 変数 145 131 */ 146 132 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_llc.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 86 74 87 75 /* 88 * é·ãã®å®ç¾©76 * 長さの定義 89 77 */ 90 78 … … 93 81 94 82 /* 95 * 802.3 ããã83 * 802.3 ヘッダ 96 84 */ 97 85 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 121 109 122 110 /* 123 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹124 */ 125 126 /* 127 * å¤é¨é¢æ°ã®å®ç¾©111 * ローカルループバックインタフェース 112 */ 113 114 /* 115 * 外部関数の定義 128 116 */ 129 117 … … 131 119 132 120 /* 133 * å¤æ°134 */ 135 136 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½*/121 * 変数 122 */ 123 124 /* ネットワークインタフェース構造体 */ 137 125 138 126 #if defined(SUPPORT_INET4) 139 127 140 128 static T_IFNET loop_ifnet = { 141 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 142 å ± */ 129 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 143 130 { 144 IPV4_ADDR_LOOPBACK, /* IPv4 ã¢ãã¬ã¹*/145 IPV4_ADDR_LOOPBACK_MASK, /* ãµãããããã¹ã¯*/131 IPV4_ADDR_LOOPBACK, /* IPv4 アドレス */ 132 IPV4_ADDR_LOOPBACK_MASK, /* サブネットマスク */ 146 133 }, 147 134 }; … … 152 139 153 140 static T_IFNET loop_ifnet = { 154 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 155 å ± */ 156 {}, /* IPv6 ã¢ãã¬ã¹æ 157 å ± */ 158 {}, /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹ */ 141 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 142 {}, /* IPv6 アドレス情報 */ 143 {}, /* マルチキャスト IPv6 アドレス */ 159 144 }; 160 145 … … 162 147 163 148 /* 164 * loop_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã149 * loop_get_ifnet -- ネットワークインタフェース構造体を返す。 165 150 */ 166 151 … … 172 157 173 158 /* 174 * looutput -- ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°159 * looutput -- ローカルループバックインタフェースの出力関数 175 160 */ 176 161 … … 189 174 190 175 /* 191 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»åºåã¿ã¹ã¯176 * ローカルループバックインタフェース・出力タスク 192 177 */ 193 178 … … 212 197 213 198 /* 214 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å 215 ¥åã¿ã¹ã¯ 199 * ローカルループバックインタフェース・入力タスク 216 200 */ 217 201 … … 231 215 #if defined(SUPPORT_INET4) 232 216 233 /* IPv4 å 234 ¥åé¢æ°ãå¼ã³åºã */ 217 /* IPv4 入力関数を呼び出す */ 235 218 if (IP4_VHL_V(GET_IP4_HDR(input)->vhl) == IPV4_VERSION) 236 219 ip_input(input); … … 240 223 #if defined(SUPPORT_INET6) 241 224 242 /* IPv6 å 243 ¥åé¢æ°ãå¼ã³åºã */ 225 /* IPv6 入力関数を呼び出す */ 244 226 if (IP6_VCF_V(ntohl(GET_IP6_HDR(input)->vcf)) == IPV6_VERSION) 245 227 ip6_input(input); -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * ループバックインタフェース・コンフィギュレーションファイル 48 36 */ 49 37 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ãããã¨ã¢ãã¬ã¹74 * ローカルループバックインタフェース・ヘッダとアドレス 87 75 */ 88 76 … … 91 79 92 80 /* 93 * ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã81 * インタフェースの選択マクロ 94 82 */ 95 83 96 #define T_IF_HDR T_LOOP_HDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã*/97 #define T_IF_ADDR T_LOOP_ADDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹*/98 #define IF_HDR_ALIGN 4 /* ãããã®ã¢ã©ã¤ã³åä½*/99 #define IF_MTU LOMTU /* ã¤ã³ã¿ãã§ã¼ã¹ã®MTU */84 #define T_IF_HDR T_LOOP_HDR /* インタフェースのヘッダ */ 85 #define T_IF_ADDR T_LOOP_ADDR /* インタフェースのアドレス */ 86 #define IF_HDR_ALIGN 4 /* ヘッダのアライン単位 */ 87 #define IF_MTU LOMTU /* インタフェースの MTU */ 100 88 101 #define IF_OUTPUT(o,d,g,t) looutput(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°*/102 #define IF_RAW_OUTPUT(o,t) looutput(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/103 #define IF_SET_PROTO(b,p) /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãããã³ã«è¨å®é¢æ°*/104 #define IF_GET_IFNET() loop_get_ifnet() /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã*/89 #define IF_OUTPUT(o,d,g,t) looutput(o,t) /* インタフェースの出力関数 */ 90 #define IF_RAW_OUTPUT(o,t) looutput(o,t) /* インタフェースの出力関数、アドレス解決無し*/ 91 #define IF_SET_PROTO(b,p) /* インタフェースのプロトコル設定関数 */ 92 #define IF_GET_IFNET() loop_get_ifnet() /* ネットワークインタフェース構造体を返す。 */ 105 93 106 /* IPv4 é¢ä¿*/94 /* IPv4 関係 */ 107 95 108 #define IF_PROTO_IP 0 /* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãããã³ã«æå®*/96 #define IF_PROTO_IP 0 /* インタフェースの IP プロトコル指定 */ 109 97 110 /* IPv6 é¢ä¿*/98 /* IPv6 関係 */ 111 99 112 #define MAX_IF_MADDR_CNT 0 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹é 113 åã®æ大ãµã¤ãº */ 114 #define IF_IN6_NEED_CACHE(i) (false) /* è¿é£æ¢ç´¢ãã£ãã·ã¥ã使ç¨ããã */ 100 #define MAX_IF_MADDR_CNT 0 /* インタフェースのマルチキャストアドレス配列の最大サイズ */ 101 #define IF_IN6_NEED_CACHE(i) (false) /* 近隣探索キャッシュを使用する。 */ 115 102 116 103 /* 117 * åæ¹åç 118 § 104 * 前方参照 119 105 */ 120 106 … … 144 130 145 131 /* 146 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 147 å ± 132 * ネットワークインタフェースに依存しないソフトウェア情報 148 133 */ 149 134 … … 151 136 152 137 /* 153 * é¢æ°138 * 関数 154 139 */ 155 140 … … 158 143 159 144 /* 160 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¦çã¿ã¹ã¯145 * ローカルループバックインタフェース・処理タスク 161 146 */ 162 147 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_ppp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 71 59 72 60 /* 73 * ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã61 * インタフェースの選択マクロ 74 62 */ 75 63 76 #define T_IF_HDR T_PPP_HDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã*/77 #define IF_HDR_ALIGN 2 /* ãããã®ã¢ã©ã¤ã³åä½*/78 #define IF_MTU DEF_PPP_MTU /* ã¤ã³ã¿ãã§ã¼ã¹ã®MTU */79 /* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv4 ã¢ãã¬ã¹*/80 #define IF_PROTO_IP PPP_IP /* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãããã³ã«æå®*/64 #define T_IF_HDR T_PPP_HDR /* インタフェースのヘッダ */ 65 #define IF_HDR_ALIGN 2 /* ヘッダのアライン単位 */ 66 #define IF_MTU DEF_PPP_MTU /* インタフェースの MTU */ 67 /* インタフェースの IPv4 アドレス */ 68 #define IF_PROTO_IP PPP_IP /* インタフェースの IP プロトコル指定 */ 81 69 82 #define IF_OUTPUT(o,d,g,t) ppp_output(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°*/83 #define IF_RAW_OUTPUT(o,t) ppp_output(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/84 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãããã³ã«è¨å®é¢æ°*/70 #define IF_OUTPUT(o,d,g,t) ppp_output(o,t) /* インタフェースの出力関数 */ 71 #define IF_RAW_OUTPUT(o,t) ppp_output(o,t) /* インタフェースの出力関数、アドレス解決無し*/ 72 /* インタフェースのプロトコル設定関数 */ 85 73 #define IF_SET_PROTO(b,p) (*GET_PPP_HDR(b) = htons(p)) 86 #define IF_GET_IFNET() ppp_get_ifnet() /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã*/74 #define IF_GET_IFNET() ppp_get_ifnet() /* ネットワークインタフェース構造体を返す。 */ 87 75 88 76 /* 89 * MTU (MRU) ã«é¢ããå®ç¾©77 * MTU (MRU) に関する定義 90 78 */ 91 79 92 #define DEF_PPP_MTU 1500 /* PPP ã® æ¨æºMTU */93 #define MAX_PPP_MTU 16384 /* PPP ã® æ大MTU */94 #define MIN_PPP_MTU 128 /* PPP ã® æå°MTU */80 #define DEF_PPP_MTU 1500 /* PPP の 標準 MTU */ 81 #define MAX_PPP_MTU 16384 /* PPP の 最大 MTU */ 82 #define MIN_PPP_MTU 128 /* PPP の 最小 MTU */ 95 83 96 84 /* 97 * PPP ããã85 * PPP ヘッダ 98 86 */ 99 87 100 typedef uint16_t T_PPP_HDR; /* ä¸ä½ãããã³ã«*/88 typedef uint16_t T_PPP_HDR; /* 上位プロトコル */ 101 89 102 90 /* 103 * åæ¹åç 104 § 91 * 前方参照 105 92 */ 106 93 … … 130 117 131 118 /* 132 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 133 å ± 119 * ネットワークインタフェースに依存しないソフトウェア情報 134 120 */ 135 121 … … 137 123 138 124 /* 139 * é¢æ°125 * 関数 140 126 */ 141 127 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_types.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 80 68 81 69 /* 82 * ã¤ã³ã¿ãã§ã¼ã¹ã®åã®å®ç¾©70 * インタフェースの型の定義 83 71 */ 84 72 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 83 71 84 72 /* 85 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½73 * ネットワークインタフェース構造体 86 74 */ 87 75 88 76 struct t_ifnet { 89 T_IF_SOFTC *ic; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 90 å ± */ 91 T_IN4_IFADDR in_ifaddr; /* IPv4 ã¢ãã¬ã¹æ 92 å ± */ 77 T_IF_SOFTC *ic; /* ネットワークインタフェースのソフトウェア情報 */ 78 T_IN4_IFADDR in_ifaddr; /* IPv4 アドレス情報 */ 93 79 ether_status_callback_fn link_callback; 94 uint8_t flags; /* ãã©ã°*/80 uint8_t flags; /* フラグ */ 95 81 }; 96 82 … … 108 94 109 95 /* 110 * SNMP 㮠管çæ 111 å ±ãã¼ã¹ (MIB) 96 * SNMP の 管理情報ベース (MIB) 112 97 */ 113 98 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * å 48 ±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 35 * 共通 汎用ネットワークコンフィギュレーションファイル 49 36 */ 50 37 51 38 /* 52 * ãããã¯ã¼ã¯ã¿ã¤ã39 * ネットワークタイマ 53 40 */ 54 41 … … 69 56 }); 70 57 71 /* ãããã¯ã¼ã¯ã¿ã¤ãã®å¼åºãã¨ã³ããªç¨ã»ããã©*/58 /* ネットワークタイマの呼出しエントリ用セマフォ */ 72 59 73 60 CRE_SEM(SEM_CALL_OUT_LOCK, { TA_TPRI, 1, 1 }); 74 61 CRE_SEM(SEM_CALL_OUT_TIMEOUT, { TA_TPRI, 0, NUM_NET_CALLOUT }); 75 62 76 /* ãµãã¼ãé¢æ° ip2strãipv62str ç¨ã»ããã©*/63 /* サポート関数 ip2str、ipv62str 用セマフォ */ 77 64 78 65 CRE_SEM(SEM_IP2STR_BUFF_LOCK, { TA_TPRI, 1, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 81 69 82 70 /* 83 * ãã¤ããªã¼ãã®å®ç¾©71 * バイトオーダの定義 84 72 */ 85 73 … … 124 112 125 113 /* 126 * ãã¤ããªã¼ãå¤æã®å®ç¾©114 * バイトオーダ変換の定義 127 115 */ 128 116 … … 140 128 141 129 /* 142 * 注æ: IPããã以éã¯ã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã¦ããäºã143 * åæã¨ãã¦ãããã4 ãã¤ãå¢çã§ã¢ã¯ã»ã¹ãã144 * ããã»ããµã§ããããã¯ã¼ã¯å´ã®ãã¼ã¿ãã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³145 * ããã¦ããªãå ´åã¯ãntoahlãahtonlãnahcmpl ã使ç¨ãããã¨ã130 * 注意: IPヘッダ以降は、4 バイト境界にアラインされている事を 131 * 前提としているが、4 バイト境界でアクセスする 132 * プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン 133 * されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。 146 134 */ 147 135 … … 177 165 178 166 /* 179 * 注æ: IPããã以éã¯ã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã¦ããäºã180 * åæã¨ãã¦ãããã4 ãã¤ãå¢çã§ã¢ã¯ã»ã¹ãã181 * ããã»ããµã§ããããã¯ã¼ã¯å´ã®ãã¼ã¿ãã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³182 * ããã¦ããªãå ´åã¯ãntoahlãahtonlãnahcmpl ã使ç¨ãããã¨ã167 * 注意: IPヘッダ以降は、4 バイト境界にアラインされている事を 168 * 前提としているが、4 バイト境界でアクセスする 169 * プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン 170 * されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。 183 171 */ 184 172 … … 201 189 202 190 /* 203 * ãããã³ã«ãèå¥ãããã©ã°ã«é¢ããå®ç¾© 204 * 205 * ã»çµ±è¨æ 206 å ± 191 * プロトコルを識別するフラグに関する定義 192 * 193 * ・統計情報 207 194 */ 208 195 … … 242 229 243 230 /* 244 * ã¢ãã¬ã¹å½¢å¼ã®å®ç¾©245 */ 246 247 #define AT_ETHER UINT_C(0x01) /* ã¤ã¼ãµããã*/248 #define AT_INET4 UINT_C(0x10) /* IPv4 ã¢ãã¬ã¹*/249 #define AT_INET6 UINT_C(0x20) /* IPv6 ã¢ãã¬ã¹*/231 * アドレス形式の定義 232 */ 233 234 #define AT_ETHER UINT_C(0x01) /* イーサネット */ 235 #define AT_INET4 UINT_C(0x10) /* IPv4 アドレス */ 236 #define AT_INET6 UINT_C(0x20) /* IPv6 アドレス */ 250 237 251 238 #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY) 252 239 253 240 /* 254 * TINET ç¬èªé¢æ°241 * TINET 独自関数 255 242 */ 256 243 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ASP ç¨ æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * ASP用 汎用ネットワークコンフィギュレーションファイル 48 36 */ 49 37 50 38 /* 51 * å 52 ±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 39 * 共通 汎用ネットワークコンフィギュレーションファイルのインクルード 53 40 */ 54 41 … … 56 43 57 44 /* 58 * ãããã¯ã¼ã¯ãããã¡45 * ネットワークバッファ 59 46 */ 60 47 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * é¢æ°74 * 関数 87 75 */ 88 76 … … 90 78 91 79 /* 92 * å¤æ°80 * 変数 93 81 */ 94 82 … … 272 260 273 261 /* 274 * nbuf_get_tbl -- ãããã¯ã¼ã¯ãããã¡ç®¡ç表ãç²å¾ããã262 * nbuf_get_tbl -- ネットワークバッファ管理表を獲得する。 275 263 * 276 * 注æ: ãããã¯ã¼ã¯çµ±è¨æ 277 å ±ã®è¨æ¸¬ç¨ 264 * 注意: ネットワーク統計情報の計測用 278 265 */ 279 266 … … 285 272 286 273 /* 287 * nbuf_get_tbl_size -- ãããã¯ã¼ã¯ãããã¡ç®¡çã¨ã³ããªæ°ãç²å¾ããã274 * nbuf_get_tbl_size -- ネットワークバッファ管理エントリ数を獲得する。 288 275 * 289 * 注æ: ãããã¯ã¼ã¯çµ±è¨æ 290 å ±ã®è¨æ¸¬ç¨ 276 * 注意: ネットワーク統計情報の計測用 291 277 */ 292 278 … … 300 286 301 287 /* 302 * tget_net_buf_up -- 大ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã288 * tget_net_buf_up -- 大きなサイズの方向に探索して、ネットワークバッファを獲得する。 303 289 */ 304 290 … … 309 295 ER error = E_OK; 310 296 311 /* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/297 /* 最適なサイズの固定長メモリプールを探す。*/ 312 298 ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY); 313 299 while (ix -- > 0 && minlen > net_buf_table[ix].size) … … 337 323 338 324 /* 339 * tget_net_buf_down -- å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã325 * tget_net_buf_down -- 小さなサイズの方向に探索して、ネットワークバッファを獲得する。 340 326 */ 341 327 … … 346 332 ER error = E_OK; 347 333 348 /* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/334 /* 最適なサイズの固定長メモリプールを探す。*/ 349 335 ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY); 350 336 while (ix -- > 0 && maxlen > net_buf_table[ix].size) … … 375 361 376 362 /* 377 * tget_net_buf_ex -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼æ¡å¼µæ©è½ï¼ã363 * tget_net_buf_ex -- ネットワークバッファを獲得する(拡張機能)。 378 364 */ 379 365 … … 381 367 tget_net_buf_ex (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout) 382 368 { 383 /* æå°ãµã¤ãºãæ大ãµã¤ãºãè¶ 384 ãã¦ãããã¨ã©ã¼ */ 369 /* 最小サイズが最大サイズを超えていたらエラー */ 385 370 if ((nbatr & NBA_SEARCH_DESCENT) != 0 && minlen > maxlen) { 386 371 syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d > maxlen=%4d.", minlen, maxlen); … … 388 373 } 389 374 390 /* å²å½ã¦å¯è½ãªæ大ã®ãµã¤ãºãè¶ 391 ãã¦ãããã¨ã©ã¼ */ 375 /* 割当て可能な最大のサイズを超えていたらエラー */ 392 376 if (minlen > net_buf_table[0].size || maxlen > net_buf_table[0].size) { 393 377 syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d or maxlen=%4d > %4d", … … 396 380 } 397 381 398 /* TCP ã§äºç´ãããããã¯ã¼ã¯ãããã¡ãåãåºãã*/382 /* TCP で予約したネットワークバッファを取り出す。*/ 399 383 if ((nbatr & NBA_RESERVE_TCP) != 0) { 400 384 if ((*buf = TCP_PULL_RES_NBUF(nbatr)) != NULL) { … … 414 398 415 399 /* 416 * tget_net_buf -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼äºæï¼ã400 * tget_net_buf -- ネットワークバッファを獲得する(互換)。 417 401 */ 418 402 … … 424 408 425 409 /* 426 * rel_net_buf -- ãããã¯ã¼ã¯ãããã¡ãè¿å´ããã410 * rel_net_buf -- ネットワークバッファを返却する。 427 411 */ 428 412 … … 432 416 ER error = E_OK; 433 417 434 /* ãããã¯ã¼ã¯ãããã¡ã® ID ã®æ£å½æ§ãæ¤è¨¼ããã*/418 /* ネットワークバッファの ID の正当性を検証する。*/ 435 419 if ((int_t)buf->idix >= (int_t)(sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY))) { 436 420 syslog(LOG_WARNING, "[NET BUF] E_ID, ID=%d.", buf->idix); … … 439 423 else { 440 424 441 /* TCP ã§ããããã¯ã¼ã¯ãããã¡ãäºç´ããã*/425 /* TCP で、ネットワークバッファを予約する。*/ 442 426 if (TCP_PUSH_RES_NBUF(buf) == NULL) 443 427 return E_OK; 444 428 445 /* åºå®ã¡ã¢ãªãã¼ã«ã«è¿ãã*/429 /* 固定メモリプールに返す。*/ 446 430 if ((error = rel_mpf((ID)net_buf_table[buf->idix].index, buf)) != E_OK) 447 431 syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), buf->idix); … … 451 435 452 436 /* 453 * rus_net_buf -- ãããã¯ã¼ã¯ãããã¡ãåå©ç¨ããã437 * rus_net_buf -- ネットワークバッファを再利用する。 454 438 */ 455 439 … … 472 456 473 457 /* 474 * net_buf_siz -- ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãè¿ãã458 * net_buf_siz -- ネットワークバッファのサイズを返す。 475 459 */ 476 460 … … 487 471 488 472 /* 489 * net_buf_max_siz -- ãããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºãè¿ãã473 * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。 490 474 */ 491 475 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * ãããã¯ã¼ã¯ãããã¡38 * ネットワークバッファ 51 39 * 52 * 4 ãªã¯ãããã§ã¢ã©ã¤ã³ããå¿ 53 è¦ã®ããããã»ããµãèæ 54 ®ãã¦ã 55 * IF ããããµã¤ãºã 4 ãªã¯ãããå¢çã§ãªãã®å ´åã 56 * IP ããã以éã 4 ãªã¯ãããå¢çã«èª¿æ´ããã 40 * 4 オクテットでアラインする必要のあるプロセッサを考慮して、 41 * IF ヘッダサイズが 4 オクテット境界でないの場合、 42 * IP ヘッダ以降を 4 オクテット境界に調整する。 57 43 */ 58 44 … … 62 48 63 49 /* 64 * ãã³ãã¬ã¼ã50 * テンプレート 65 51 */ 66 52 67 53 struct t_net_buf { 68 uint16_t len; /* ãã¼ã¿ã®é·ã*/69 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/70 uint8_t flags; /* ãã©ã°*/71 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 72 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 73 #endif 74 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 75 uint8_t halign[4 - IF_HDR_ALIGN]; 76 #endif 77 uint8_t buf[4]; /* ãããã¡æ¬ä½*/54 uint16_t len; /* データの長さ */ 55 uint8_t idix; /* mpfid のインデックス */ 56 uint8_t flags; /* フラグ */ 57 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 58 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 59 #endif 60 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 61 uint8_t halign[4 - IF_HDR_ALIGN]; 62 #endif 63 uint8_t buf[4]; /* バッファ本体 */ 78 64 }; 79 65 … … 86 72 #endif /* of #ifndef T_NET_BUF_DEFINED */ 87 73 /* 88 * 64 ãªã¯ããã74 * 64 オクテット 89 75 */ 90 76 91 77 typedef struct t_net_buf_64 { 92 uint16_t len; /* ãã¼ã¿ã®é·ã*/93 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/94 uint8_t flags; /* ãã©ã°*/95 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 96 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 97 #endif 98 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 99 uint8_t halign[4 - IF_HDR_ALIGN]; 100 #endif 101 uint8_t buf[64]; /* ãããã¡æ¬ä½*/78 uint16_t len; /* データの長さ */ 79 uint8_t idix; /* mpfid のインデックス */ 80 uint8_t flags; /* フラグ */ 81 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 82 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 83 #endif 84 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 85 uint8_t halign[4 - IF_HDR_ALIGN]; 86 #endif 87 uint8_t buf[64]; /* バッファ本体 */ 102 88 } T_NET_BUF_64; 103 89 104 90 /* 105 * 128 ãªã¯ããã91 * 128 オクテット 106 92 */ 107 93 108 94 typedef struct t_net_buf_128 { 109 uint16_t len; /* ãã¼ã¿ã®é·ã*/110 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/111 uint8_t flags; /* ãã©ã°*/112 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 113 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 114 #endif 115 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 116 uint8_t halign[4 - IF_HDR_ALIGN]; 117 #endif 118 uint8_t buf[128]; /* ãããã¡æ¬ä½*/95 uint16_t len; /* データの長さ */ 96 uint8_t idix; /* mpfid のインデックス */ 97 uint8_t flags; /* フラグ */ 98 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 99 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 100 #endif 101 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 102 uint8_t halign[4 - IF_HDR_ALIGN]; 103 #endif 104 uint8_t buf[128]; /* バッファ本体 */ 119 105 } T_NET_BUF_128; 120 106 121 107 /* 122 * 256 ãªã¯ããã108 * 256 オクテット 123 109 */ 124 110 125 111 typedef struct t_net_buf_256 { 126 uint16_t len; /* ãã¼ã¿ã®é·ã*/127 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/128 uint8_t flags; /* ãã©ã°*/129 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 130 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 131 #endif 132 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 133 uint8_t halign[4 - IF_HDR_ALIGN]; 134 #endif 135 uint8_t buf[256]; /* ãããã¡æ¬ä½*/112 uint16_t len; /* データの長さ */ 113 uint8_t idix; /* mpfid のインデックス */ 114 uint8_t flags; /* フラグ */ 115 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 116 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 117 #endif 118 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 119 uint8_t halign[4 - IF_HDR_ALIGN]; 120 #endif 121 uint8_t buf[256]; /* バッファ本体 */ 136 122 } T_NET_BUF_256; 137 123 138 124 /* 139 * 512 ãªã¯ããã125 * 512 オクテット 140 126 */ 141 127 142 128 typedef struct t_net_buf_512 { 143 uint16_t len; /* ãã¼ã¿ã®é·ã*/144 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/145 uint8_t flags; /* ãã©ã°*/146 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 147 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 148 #endif 149 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 150 uint8_t halign[4 - IF_HDR_ALIGN]; 151 #endif 152 uint8_t buf[512];/* ãããã¡æ¬ä½*/129 uint16_t len; /* データの長さ */ 130 uint8_t idix; /* mpfid のインデックス */ 131 uint8_t flags; /* フラグ */ 132 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 133 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 134 #endif 135 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 136 uint8_t halign[4 - IF_HDR_ALIGN]; 137 #endif 138 uint8_t buf[512];/* バッファ本体 */ 153 139 } T_NET_BUF_512; 154 140 155 141 /* 156 * 1024 ãªã¯ããã142 * 1024 オクテット 157 143 */ 158 144 159 145 typedef struct t_net_buf_1024 { 160 uint16_t len; /* ãã¼ã¿ã®é·ã*/161 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/162 uint8_t flags; /* ãã©ã°*/163 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 164 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 165 #endif 166 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 167 uint8_t halign[4 - IF_HDR_ALIGN]; 168 #endif 169 uint8_t buf[1024]; /* ãããã¡æ¬ä½*/146 uint16_t len; /* データの長さ */ 147 uint8_t idix; /* mpfid のインデックス */ 148 uint8_t flags; /* フラグ */ 149 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 150 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 151 #endif 152 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 153 uint8_t halign[4 - IF_HDR_ALIGN]; 154 #endif 155 uint8_t buf[1024]; /* バッファ本体 */ 170 156 } T_NET_BUF_1024; 171 157 172 158 /* 173 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ大 PDU ãµã¤ãº159 * ネットワークインタフェースの最大 PDU サイズ 174 160 */ 175 161 176 162 typedef struct t_net_buf_if_pdu { 177 uint16_t len; /* ãã¼ã¿ã®é·ã*/178 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/179 uint8_t flags; /* ãã©ã°*/163 uint16_t len; /* データの長さ */ 164 uint8_t idix; /* mpfid のインデックス */ 165 uint8_t flags; /* フラグ */ 180 166 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 181 167 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 185 171 #endif 186 172 uint8_t buf[IF_PDU_SIZE]; 187 /* ãããã¡æ¬ä½*/173 /* バッファ本体 */ 188 174 #if defined(IF_PDU_HDR_PADDING) 189 175 uint8_t padding[IF_PDU_HDR_PADDING]; 190 #endif /* ãããã®ä½å*/176 #endif /* ヘッダの余分 */ 191 177 } T_NET_BUF_IF_PDU; 192 178 193 179 /* 194 * ãããã¯ã¼ã¯ãããã¡è¡¨180 * ネットワークバッファ表 195 181 */ 196 182 … … 212 198 213 199 /* 214 * ãããã¯ã¼ã¯ãããã¡ã»ãã©ã°215 */ 216 217 /* 218 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹åºåå¾ã«ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªãã219 * 注æ: åºåå¾ã«ãã®ãã©ã°ã¯ã¯ãªã¢ãããã200 * ネットワークバッファ・フラグ 201 */ 202 203 /* 204 * ネットワークインタフェース出力後にネットワークバッファを開放しない。 205 * 注意: 出力後にこのフラグはクリアされる。 220 206 */ 221 207 #define NB_FLG_NOREL_IFOUT UINT_C(0x80) 222 208 223 209 /* 224 * ESP ç¨ãã©ã°210 * ESP 用フラグ 225 211 */ 226 212 #define NB_FLG_DECRYPED UINT_C(0x40) 227 213 228 214 /* 229 * ãããã¯ã¼ã¯ãããã¡ç²å¾å±æ§230 */ 231 232 /* æ¢ç´¢å±æ§*/233 234 #define NBA_SEARCH_ASCENT UINT_C(0x1000) /* 大ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã*/235 #define NBA_SEARCH_DESCENT UINT_C(0x2000) /* å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã*/236 #define NBA_RESERVE_TCP UINT_C(0x4000) /* TCP ç¨ã«ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/237 #define NBA_ID_MASK UINT_C(0x0fff) /* éä¿¡ç«¯ç¹ ID ã渡ãå ´åã®ãã¹ã¯å¤*/238 239 /* 240 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã215 * ネットワークバッファ獲得属性 216 */ 217 218 /* 探索属性 */ 219 220 #define NBA_SEARCH_ASCENT UINT_C(0x1000) /* 大きなサイズの方向に探索する。 */ 221 #define NBA_SEARCH_DESCENT UINT_C(0x2000) /* 小さなサイズの方向に探索する。 */ 222 #define NBA_RESERVE_TCP UINT_C(0x4000) /* TCP 用にネットワークバッファを予約する。*/ 223 #define NBA_ID_MASK UINT_C(0x0fff) /* 通信端点 ID を渡す場合のマスク値 */ 224 225 /* 226 * 関数シミュレーションマクロ 241 227 */ 242 228 … … 244 230 245 231 /* 246 * é¢æ°232 * 関数 247 233 */ 248 234 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 111 99 112 100 /* 113 * ãããã¯ã¼ã¯çµ±è¨æ 114 å ±ã®è¨æ¸¬ 101 * ネットワーク統計情報の計測 115 102 */ 116 103 … … 136 123 137 124 /* 138 * è¨æ¸¬ç¨å¤æ°125 * 計測用変数 139 126 */ 140 127 … … 144 131 145 132 T_NET_COUNT net_count_ppp; 146 T_NET_COUNT_VAL net_count_ppp_no_bufs; /* net_buf å²ãå½ã¦å¤±ææ°*/133 T_NET_COUNT_VAL net_count_ppp_no_bufs; /* net_buf 割り当て失敗数 */ 147 134 148 135 #endif /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */ -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 81 69 82 70 /* 83 * ãããã¯ã¼ã¯çµ±è¨æ 84 å ±ã®è¨æ¸¬ 71 * ネットワーク統計情報の計測 85 72 */ 86 73 … … 96 83 97 84 typedef struct t_net_count { 98 T_NET_COUNT_VAL in_octets; /* åä¿¡ãªã¯ãããæ°*/99 T_NET_COUNT_VAL out_octets; /* éä¿¡ãªã¯ãããæ°*/100 T_NET_COUNT_VAL in_packets; /* åä¿¡ãã±ããæ°*/101 T_NET_COUNT_VAL out_packets; /* éä¿¡ãã±ããæ°*/102 T_NET_COUNT_VAL in_err_packets; /* åä¿¡ã¨ã©ã¼ãã±ããæ°*/103 T_NET_COUNT_VAL out_err_packets; /* éä¿¡ã¨ã©ã¼ãã±ããæ°*/85 T_NET_COUNT_VAL in_octets; /* 受信オクテット数 */ 86 T_NET_COUNT_VAL out_octets; /* 送信オクテット数 */ 87 T_NET_COUNT_VAL in_packets; /* 受信バケット数 */ 88 T_NET_COUNT_VAL out_packets; /* 送信バケット数 */ 89 T_NET_COUNT_VAL in_err_packets; /* 受信エラーバケット数 */ 90 T_NET_COUNT_VAL out_err_packets; /* 送信エラーバケット数 */ 104 91 } T_NET_COUNT; 105 92 … … 119 106 120 107 extern T_NET_COUNT net_count_ppp; 121 extern T_NET_COUNT_VAL net_count_ppp_no_bufs; /* net_buf å²ãå½ã¦å¤±ææ°*/122 123 #endif /* of #ifndef _MACRO_ONLY */ 124 125 #define NC_PPP_SIZE 7 /* ã«ã¦ã³ã¿æ°*/108 extern T_NET_COUNT_VAL net_count_ppp_no_bufs; /* net_buf 割り当て失敗数 */ 109 110 #endif /* of #ifndef _MACRO_ONLY */ 111 112 #define NC_PPP_SIZE 7 /* カウンタ数 */ 126 113 127 114 #else /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */ … … 229 216 #ifdef SUPPORT_LOOP 230 217 231 /* ã«ã¼ãããã¯*/218 /* ループバック */ 232 219 233 220 #if NET_COUNT_ENABLE & PROTO_FLG_LOOP … … 273 260 #if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC 274 261 275 #define NC_ETHER_NIC_RESETS 0 /* ãªã»ããæ°*/276 #define NC_ETHER_NIC_TXB_QOVRS 1 /* éä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/277 #define NC_ETHER_NIC_TIMEOUTS 2 /* éä¿¡ã¿ã¤ã ã¢ã¦ãæ°*/278 #define NC_ETHER_NIC_COLS 3 /* ã³ãªã¸ã§ã³æ°*/279 #define NC_ETHER_NIC_OUT_ERR_PACKETS 4 /* éä¿¡ã¨ã©ã¼ãã±ããæ°*/280 #define NC_ETHER_NIC_OUT_PACKETS 5 /* éä¿¡ãã±ããæ°*/281 #define NC_ETHER_NIC_OUT_OCTETS 6 /* éä¿¡ãªã¯ãããæ°*/282 #define NC_ETHER_NIC_RXB_QOVRS 7 /* åä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/283 #define NC_ETHER_NIC_NO_BUFS 8 /* net_buf å²ãå½ã¦å¤±ææ°*/284 #define NC_ETHER_NIC_IN_ERR_PACKETS 9 /* åä¿¡ã¨ã©ã¼ãã±ããæ°*/285 #define NC_ETHER_NIC_IN_PACKETS 10 /* åä¿¡ãã±ããæ°*/286 #define NC_ETHER_NIC_IN_OCTETS 11 /* åä¿¡ãªã¯ãããæ°*/287 #define NC_ETHER_NIC_SIZE 12 /* ã«ã¦ã³ã¿æ°*/262 #define NC_ETHER_NIC_RESETS 0 /* リセット数 */ 263 #define NC_ETHER_NIC_TXB_QOVRS 1 /* 送信セマフォ資源返却上限オーバー数*/ 264 #define NC_ETHER_NIC_TIMEOUTS 2 /* 送信タイムアウト数 */ 265 #define NC_ETHER_NIC_COLS 3 /* コリジョン数 */ 266 #define NC_ETHER_NIC_OUT_ERR_PACKETS 4 /* 送信エラーバケット数 */ 267 #define NC_ETHER_NIC_OUT_PACKETS 5 /* 送信バケット数 */ 268 #define NC_ETHER_NIC_OUT_OCTETS 6 /* 送信オクテット数 */ 269 #define NC_ETHER_NIC_RXB_QOVRS 7 /* 受信セマフォ資源返却上限オーバー数*/ 270 #define NC_ETHER_NIC_NO_BUFS 8 /* net_buf 割り当て失敗数 */ 271 #define NC_ETHER_NIC_IN_ERR_PACKETS 9 /* 受信エラーバケット数 */ 272 #define NC_ETHER_NIC_IN_PACKETS 10 /* 受信バケット数 */ 273 #define NC_ETHER_NIC_IN_OCTETS 11 /* 受信オクテット数 */ 274 #define NC_ETHER_NIC_SIZE 12 /* カウンタ数 */ 288 275 289 276 #define NET_COUNT_ETHER_NIC(v,c) ((v)+=(c)) … … 303 290 #endif /* of #ifdef SUPPORT_ETHER */ 304 291 305 /* ãããã¯ã¼ã¯ãããã¡*/292 /* ネットワークバッファ */ 306 293 307 294 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF … … 339 326 #if NET_COUNT_ENABLE & PROTO_FLG_IP4 340 327 341 #define NC_IP4_FRAG_OUT_FRAGS 0 /* åå²éä¿¡ããã©ã°ã¡ã³ãæ° */ 342 #define NC_IP4_FRAG_OUT 1 /* åå²éä¿¡æ° */ 343 #define NC_IP4_OUT_ERR_PACKETS 2 /* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ° */ 344 #define NC_IP4_OUT_PACKETS 3 /* éä¿¡ãã¼ã¿ã°ã©ã æ° */ 345 #define NC_IP4_OUT_OCTETS 4 /* éä¿¡ãªã¯ãããæ° */ 346 #define NC_IP4_FRAG_IN_TMOUT 5 /* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ° */ 347 #define NC_IP4_FRAG_IN_NO_BUF 6 /* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ° */ 348 #define NC_IP4_FRAG_IN_DROP 7 /* åå²åä¿¡ç ´æ£æ° */ 349 #define NC_IP4_FRAG_IN_OK 8 /* åå²åä¿¡åæ§ææåæ° */ 350 #define NC_IP4_FRAG_IN_FRAGS 9 /* åå²åä¿¡ãã©ã°ã¡ã³ãæ° */ 351 #define NC_IP4_FRAG_IN 10 /* åå²åä¿¡æ° */ 352 #define NC_IP4_OPTS 11 /* ãªãã·ã§ã³å 353 ¥åæ° */ 354 #define NC_IP4_IN_ERR_PROTO 12 /* ãããã³ã«ã¨ã©ã¼æ° */ 355 #define NC_IP4_IN_ERR_ADDR 13 /* ã¢ãã¬ã¹ã¨ã©ã¼æ° */ 356 #define NC_IP4_IN_ERR_VER 14 /* ãã¼ã¸ã§ã³ã¨ã©ã¼æ° */ 357 #define NC_IP4_IN_ERR_SHORT 15 /* é·ãã¨ã©ã¼æ° */ 358 #define NC_IP4_IN_ERR_CKSUM 16 /* ãã§ãã¯ãµã ã¨ã©ã¼æ° */ 359 #define NC_IP4_IN_ERR_PACKETS 17 /* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ° */ 360 #define NC_IP4_IN_PACKETS 18 /* åä¿¡ãã¼ã¿ã°ã©ã æ° */ 361 #define NC_IP4_IN_OCTETS 19 /* åä¿¡ãªã¯ãããæ° */ 362 #define NC_IP4_SIZE 20 /* ã«ã¦ã³ã¿æ° */ 328 #define NC_IP4_FRAG_OUT_FRAGS 0 /* 分割送信、フラグメント数 */ 329 #define NC_IP4_FRAG_OUT 1 /* 分割送信数 */ 330 #define NC_IP4_OUT_ERR_PACKETS 2 /* 送信エラーデータグラム数 */ 331 #define NC_IP4_OUT_PACKETS 3 /* 送信データグラム数 */ 332 #define NC_IP4_OUT_OCTETS 4 /* 送信オクテット数 */ 333 #define NC_IP4_FRAG_IN_TMOUT 5 /* 分割受信タイムアウト数 */ 334 #define NC_IP4_FRAG_IN_NO_BUF 6 /* 分割受信バッファり当て失敗数 */ 335 #define NC_IP4_FRAG_IN_DROP 7 /* 分割受信破棄数 */ 336 #define NC_IP4_FRAG_IN_OK 8 /* 分割受信再構成成功数 */ 337 #define NC_IP4_FRAG_IN_FRAGS 9 /* 分割受信フラグメント数 */ 338 #define NC_IP4_FRAG_IN 10 /* 分割受信数 */ 339 #define NC_IP4_OPTS 11 /* オプション入力数 */ 340 #define NC_IP4_IN_ERR_PROTO 12 /* プロトコルエラー数 */ 341 #define NC_IP4_IN_ERR_ADDR 13 /* アドレスエラー数 */ 342 #define NC_IP4_IN_ERR_VER 14 /* バージョンエラー数 */ 343 #define NC_IP4_IN_ERR_SHORT 15 /* 長さエラー数 */ 344 #define NC_IP4_IN_ERR_CKSUM 16 /* チェックサムエラー数 */ 345 #define NC_IP4_IN_ERR_PACKETS 17 /* 受信エラーデータグラム数 */ 346 #define NC_IP4_IN_PACKETS 18 /* 受信データグラム数 */ 347 #define NC_IP4_IN_OCTETS 19 /* 受信オクテット数 */ 348 #define NC_IP4_SIZE 20 /* カウンタ数 */ 363 349 364 350 #define NET_COUNT_IP4(v,c) ((v)+=(c)) … … 402 388 #if NET_COUNT_ENABLE & PROTO_FLG_IP6 403 389 404 #define NC_IP6_FRAG_OUT_FRAGS 0 /* åå²éä¿¡ããã©ã°ã¡ã³ãæ°*/405 #define NC_IP6_FRAG_OUT 1 /* åå²éä¿¡æ°*/406 #define NC_IP6_OUT_ERR_PACKETS 2 /* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°*/407 #define NC_IP6_OUT_PACKETS 3 /* éä¿¡ãã¼ã¿ã°ã©ã æ°*/408 #define NC_IP6_OUT_OCTETS 4 /* éä¿¡ãªã¯ãããæ°*/409 #define NC_IP6_FRAG_IN_TMOUT 5 /* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°*/410 #define NC_IP6_FRAG_IN_NO_BUF 6 /* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°*/411 #define NC_IP6_FRAG_IN_DROP 7 /* åå²åä¿¡ç ´æ£æ°*/412 #define NC_IP6_FRAG_IN_OK 8 /* åå²åä¿¡åæ§ææåæ°*/413 #define NC_IP6_FRAG_IN_FRAGS 9 /* åå²åä¿¡ãã©ã°ã¡ã³ãæ°*/414 #define NC_IP6_FRAG_IN 10 /* åå²åä¿¡æ°*/415 #define NC_IP6_IN_ERR_PROTO 11 /* ãããã³ã«ã¨ã©ã¼æ°*/416 #define NC_IP6_IN_ERR_ADDR 12 /* ã¢ãã¬ã¹ã¨ã©ã¼æ°*/417 #define NC_IP6_IN_ERR_VER 13 /* ãã¼ã¸ã§ã³ã¨ã©ã¼æ°*/418 #define NC_IP6_IN_ERR_SHORT 14 /* é·ãã¨ã©ã¼æ°*/419 #define NC_IP6_IN_ERR_PACKETS 15 /* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°*/420 #define NC_IP6_IN_PACKETS 16 /* åä¿¡ãã¼ã¿ã°ã©ã æ°*/421 #define NC_IP6_IN_OCTETS 17 /* åä¿¡ãªã¯ãããæ°*/422 #define NC_IP6_SIZE 18 /* ã«ã¦ã³ã¿æ°*/390 #define NC_IP6_FRAG_OUT_FRAGS 0 /* 分割送信、フラグメント数 */ 391 #define NC_IP6_FRAG_OUT 1 /* 分割送信数 */ 392 #define NC_IP6_OUT_ERR_PACKETS 2 /* 送信エラーデータグラム数 */ 393 #define NC_IP6_OUT_PACKETS 3 /* 送信データグラム数 */ 394 #define NC_IP6_OUT_OCTETS 4 /* 送信オクテット数 */ 395 #define NC_IP6_FRAG_IN_TMOUT 5 /* 分割受信タイムアウト数 */ 396 #define NC_IP6_FRAG_IN_NO_BUF 6 /* 分割受信バッファり当て失敗数 */ 397 #define NC_IP6_FRAG_IN_DROP 7 /* 分割受信破棄数 */ 398 #define NC_IP6_FRAG_IN_OK 8 /* 分割受信再構成成功数 */ 399 #define NC_IP6_FRAG_IN_FRAGS 9 /* 分割受信フラグメント数 */ 400 #define NC_IP6_FRAG_IN 10 /* 分割受信数 */ 401 #define NC_IP6_IN_ERR_PROTO 11 /* プロトコルエラー数 */ 402 #define NC_IP6_IN_ERR_ADDR 12 /* アドレスエラー数 */ 403 #define NC_IP6_IN_ERR_VER 13 /* バージョンエラー数 */ 404 #define NC_IP6_IN_ERR_SHORT 14 /* 長さエラー数 */ 405 #define NC_IP6_IN_ERR_PACKETS 15 /* 受信エラーデータグラム数 */ 406 #define NC_IP6_IN_PACKETS 16 /* 受信データグラム数 */ 407 #define NC_IP6_IN_OCTETS 17 /* 受信オクテット数 */ 408 #define NC_IP6_SIZE 18 /* カウンタ数 */ 423 409 424 410 #define NET_COUNT_IP6(v,c) ((v)+=(c)) … … 438 424 #if NET_COUNT_ENABLE & PROTO_FLG_ICMP6 439 425 440 #define NC_ICMP6_OUT_ERR_PACKETS 0 /* éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°*/441 #define NC_ICMP6_OUT_PACKETS 1 /* éä¿¡ ICMP ãã¼ã¿æ°*/442 #define NC_ICMP6_OUT_OCTETS 2 /* éä¿¡ ICMP ãªã¯ãããæ°*/443 #define NC_ICMP6_IN_ERR_CKSUM 3 /* é·ãã¨ã©ã¼æ°*/444 #define NC_ICMP6_IN_ERR_PACKETS 4 /* åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°*/445 #define NC_ICMP6_IN_PACKETS 5 /* åä¿¡ ICMP ãã¼ã¿æ°*/446 #define NC_ICMP6_IN_OCTETS 6 /* åä¿¡ ICMP ãªã¯ãããæ°*/447 #define NC_ICMP6_SIZE 7 /* ã«ã¦ã³ã¿æ°*/426 #define NC_ICMP6_OUT_ERR_PACKETS 0 /* 送信エラー ICMP データ数 */ 427 #define NC_ICMP6_OUT_PACKETS 1 /* 送信 ICMP データ数 */ 428 #define NC_ICMP6_OUT_OCTETS 2 /* 送信 ICMP オクテット数 */ 429 #define NC_ICMP6_IN_ERR_CKSUM 3 /* 長さエラー数 */ 430 #define NC_ICMP6_IN_ERR_PACKETS 4 /* 受信エラー ICMP データ数 */ 431 #define NC_ICMP6_IN_PACKETS 5 /* 受信 ICMP データ数 */ 432 #define NC_ICMP6_IN_OCTETS 6 /* 受信 ICMP オクテット数 */ 433 #define NC_ICMP6_SIZE 7 /* カウンタ数 */ 448 434 449 435 #define NET_COUNT_ICMP6(v,c) ((v)+=(c)) … … 463 449 #if NET_COUNT_ENABLE & PROTO_FLG_ND6 464 450 465 #define NC_ND6_DAD_OUT_PACKETS 0 /* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°*/466 #define NC_ND6_NS_OUT_PACKETS 1 /* è¿é£è¦è«éä¿¡æ°*/467 #define NC_ND6_NS_IN_PACKETS 2 /* è¿é£è¦è«åä¿¡æ°*/468 #define NC_ND6_NA_OUT_PACKETS 3 /* è¿é£éç¥éä¿¡æ°*/469 #define NC_ND6_NA_IN_PACKETS 4 /* è¿é£éç¥åä¿¡æ°*/470 #define NC_ND6_RS_OUT_PACKETS 5 /* ã«ã¼ã¿è¦è«åºåæ°*/471 #define NC_ND6_RA_IN_PACKETS 6 /* ã«ã¼ã¿éç¥åä¿¡æ°*/472 #define NC_ND6_SIZE 7 /* ã«ã¦ã³ã¿æ°*/451 #define NC_ND6_DAD_OUT_PACKETS 0 /* 重複アドレス検出送信数 */ 452 #define NC_ND6_NS_OUT_PACKETS 1 /* 近隣要請送信数 */ 453 #define NC_ND6_NS_IN_PACKETS 2 /* 近隣要請受信数 */ 454 #define NC_ND6_NA_OUT_PACKETS 3 /* 近隣通知送信数 */ 455 #define NC_ND6_NA_IN_PACKETS 4 /* 近隣通知受信数 */ 456 #define NC_ND6_RS_OUT_PACKETS 5 /* ルータ要請出力数 */ 457 #define NC_ND6_RA_IN_PACKETS 6 /* ルータ通知受信数 */ 458 #define NC_ND6_SIZE 7 /* カウンタ数 */ 473 459 474 460 #define NET_COUNT_ND6(v,c) ((v)+=(c)) … … 494 480 #if NET_COUNT_ENABLE & PROTO_FLG_TCP 495 481 496 #define NC_TCP_CONNECTS 0 /* è½åãªã¼ãã³æ°*/497 #define NC_TCP_ACCEPTS 1 /* ååãªã¼ãã³æ°*/498 #define NC_TCP_RTT_UPDATES 2 /* RTT æ´æ°æ°*/499 #define NC_TCP_SEND_RSTS 3 /* éä¿¡ãRST æ°*/500 #define NC_TCP_SEND_ACKS 4 /* éä¿¡ãACK æ°*/501 #define NC_TCP_SEND_URG_SEGS 5 /* éä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°*/502 #define NC_TCP_SEND_DATA_SEGS 6 /* éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°*/503 #define NC_TCP_SEND_REXMIT_SEGS 7 /* åéä¿¡ã»ã°ã¡ã³ãæ°*/504 #define NC_TCP_SEND_SEGS 8 /* éä¿¡ã»ã°ã¡ã³ãæ°*/505 #define NC_TCP_SEND_CNTL_SEGS 9 /* éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°*/506 #define NC_TCP_SEND_DATA_OCTETS 10 /* éä¿¡ãã¼ã¿ãªã¯ãããæ°*/507 #define NC_TCP_FREE_RCV_QUEUE 11 /* åä¿¡ãã¥ã¼è§£æ¾æ°*/508 #define NC_TCP_RECV_DUP_SEGS 12 /* åä¿¡ãå¤éæ°*/509 #define NC_TCP_RECV_DROP_SEGS 13 /* åä¿¡ãç ´æ£æ°*/510 #define NC_TCP_RECV_RSTS 14 /* åä¿¡ãRST æ°*/511 #define NC_TCP_RECV_DUP_ACKS 15 /* åä¿¡ãå¤é ACK æ°*/512 #define NC_TCP_RECV_ACKS 16 /* åä¿¡ãACK æ°*/513 #define NC_TCP_RECV_BAD_CKSUMS 17 /* åä¿¡ããã§ãã¯ãµã ä¸æ£æ°*/514 #define NC_TCP_RECV_BAD_HEADERS 18 /* åä¿¡ããããä¸æ£æ°*/515 #define NC_TCP_RECV_URG_SEGS 19 /* åä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°*/516 #define NC_TCP_RECV_DATA_SEGS 20 /* åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°*/517 #define NC_TCP_RECV_SEGS 21 /* åä¿¡ã»ã°ã¡ã³ãæ°*/518 #define NC_TCP_RECV_DATA_OCTETS 22 /* åä¿¡ãã¼ã¿ãªã¯ãããæ°*/519 #define NC_TCP_RECV_OCTETS 23 /* åä¿¡ãªã¯ãããæ°*/520 #define NC_TCP_SIZE 24 /* ã«ã¦ã³ã¿æ°*/482 #define NC_TCP_CONNECTS 0 /* 能動オープン数 */ 483 #define NC_TCP_ACCEPTS 1 /* 受動オープン数 */ 484 #define NC_TCP_RTT_UPDATES 2 /* RTT 更新数 */ 485 #define NC_TCP_SEND_RSTS 3 /* 送信、RST 数 */ 486 #define NC_TCP_SEND_ACKS 4 /* 送信、ACK 数 */ 487 #define NC_TCP_SEND_URG_SEGS 5 /* 送信、緊急セグメント数 */ 488 #define NC_TCP_SEND_DATA_SEGS 6 /* 送信データセグメント数 */ 489 #define NC_TCP_SEND_REXMIT_SEGS 7 /* 再送信セグメント数 */ 490 #define NC_TCP_SEND_SEGS 8 /* 送信セグメント数 */ 491 #define NC_TCP_SEND_CNTL_SEGS 9 /* 送信制御セグメント数 */ 492 #define NC_TCP_SEND_DATA_OCTETS 10 /* 送信データオクテット数 */ 493 #define NC_TCP_FREE_RCV_QUEUE 11 /* 受信キュー解放数 */ 494 #define NC_TCP_RECV_DUP_SEGS 12 /* 受信、多重数 */ 495 #define NC_TCP_RECV_DROP_SEGS 13 /* 受信、破棄数 */ 496 #define NC_TCP_RECV_RSTS 14 /* 受信、RST 数 */ 497 #define NC_TCP_RECV_DUP_ACKS 15 /* 受信、多重 ACK 数 */ 498 #define NC_TCP_RECV_ACKS 16 /* 受信、ACK 数 */ 499 #define NC_TCP_RECV_BAD_CKSUMS 17 /* 受信、チェックサム不正数 */ 500 #define NC_TCP_RECV_BAD_HEADERS 18 /* 受信、ヘッダ不正数 */ 501 #define NC_TCP_RECV_URG_SEGS 19 /* 受信、緊急セグメント数 */ 502 #define NC_TCP_RECV_DATA_SEGS 20 /* 受信データセグメント数 */ 503 #define NC_TCP_RECV_SEGS 21 /* 受信セグメント数 */ 504 #define NC_TCP_RECV_DATA_OCTETS 22 /* 受信データオクテット数 */ 505 #define NC_TCP_RECV_OCTETS 23 /* 受信オクテット数 */ 506 #define NC_TCP_SIZE 24 /* カウンタ数 */ 521 507 522 508 #define NET_COUNT_TCP(v,c) ((v)+=(c)) … … 561 547 562 548 /* 563 * SNMP 㮠管çæ 564 å ±ãã¼ã¹ (MIB) 549 * SNMP の 管理情報ベース (MIB) 565 550 */ 566 551 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_jsp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * JSP ç¨ æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * JSP用 汎用ネットワークコンフィギュレーションファイル 48 36 */ 49 37 50 38 51 39 /* 52 * å 53 ±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 40 * 共通 汎用ネットワークコンフィギュレーションファイルのインクルード 54 41 */ 55 42 … … 57 44 58 45 /* 59 * ãããã¯ã¼ã¯ãããã¡46 * ネットワークバッファ 60 47 */ 61 48 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * æ±ç¨ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹å 51 é¨åã®ãªãã¼ã 38 * 汎用ネットワークインタフェース内部名のリネーム 52 39 */ 53 40 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 78 66 79 67 /* 80 * ãããã¯ã¼ã¯æ±ç¨ãµãã¼ãã«ã¼ãã³68 * ネットワーク汎用サポートルーチン 81 69 */ 82 70 … … 103 91 104 92 /* 105 * å¤æ°93 * 変数 106 94 */ 107 95 … … 109 97 110 98 /* 111 * net_rand -- ä¹±æ°ãè¿ãã99 * net_rand -- 乱数を返す。 112 100 */ 113 101 … … 120 108 121 109 /* 122 * srand -- ä¹±æ°ãåæåããã110 * srand -- 乱数を初期化する。 123 111 */ 124 112 … … 130 118 131 119 /* 132 * convert_hexdigit -- 16 é²æ°âæååå¤æ120 * convert_hexdigit -- 16進数→文字列変換 133 121 */ 134 122 … … 158 146 159 147 /* 160 * mac2str -- MAC ã¢ãã¬ã¹ãæååã«å¤æããã148 * mac2str -- MAC アドレスを文字列に変換する。 161 149 */ 162 150 … … 198 186 199 187 /* 200 * rev_memcpy_word -- å転ã¡ã¢ãªã³ãã¼ï¼4 ãã¤ãï¼201 * 202 * ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã203 * å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ã解決ããã188 * rev_memcpy_word -- 反転メモリコピー(4 バイト) 189 * 190 * バイト単位にアクセスする事により、 191 * 境界へのアラインの問題を解決する。 204 192 */ 205 193 … … 214 202 215 203 /* 216 * rev_memcmp_word -- å転ã¡ã¢ãªæ¯è¼ï¼4 ãã¤ãï¼217 * 218 * ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã219 * å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ã解決ããã204 * rev_memcmp_word -- 反転メモリ比較(4 バイト) 205 * 206 * バイト単位にアクセスする事により、 207 * 境界へのアラインの問題を解決する。 220 208 */ 221 209 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 113 101 114 102 /* 115 * å¤æ°103 * 変数 116 104 */ 117 105 … … 119 107 120 108 /* 121 * å¼åºãã¨ã³ããªç»é²109 * 呼出しエントリ登録 122 110 */ 123 111 … … 127 115 int_t ix; 128 116 129 /* å¼åºãã¨ã³ããªãç²å¾ãã*/117 /* 呼出しエントリを獲得する */ 130 118 syscall(wai_sem(SEM_CALL_OUT_LOCK)); 131 119 for (ix = NUM_NET_CALLOUT; callout[-- ix].func != NULL; ) … … 136 124 } 137 125 138 /* å¼åºãã¨ã³ããªãè¨å®ãã*/126 /* 呼出しエントリを設定する */ 139 127 callout[ix].func = func; 140 128 callout[ix].arg = arg; … … 144 132 145 133 /* 146 * å¼åºãã¨ã³ããªåé¤134 * 呼出しエントリ削除 147 135 */ 148 136 … … 152 140 int_t ix; 153 141 154 /* ã¨ã³ããªãæ¢ã*/142 /* エントリを探す */ 155 143 for (ix = NUM_NET_CALLOUT; ix -- > 0; ) { 156 144 syscall(wai_sem(SEM_CALL_OUT_LOCK)); … … 165 153 166 154 /* 167 * ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ 168 * 169 * 注æ: ã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ããå¿ 170 è¦ãããããï¼ 171 * å¨æãã³ãã©ã¯ä½¿ç¨ã§ããªãã 155 * ネットワークタイマタスク 156 * 157 * 注意: タスクコンテキストで実行する必要があるため, 158 * 周期ハンドラは使用できない。 172 159 */ 173 160 … … 193 180 syslog(LOG_NOTICE, "[NET/TIMER:%d] started.", tskid); 194 181 195 /* IP ãåæåããã*/182 /* IP を初期化する。*/ 196 183 IP_INIT(); 197 184 198 185 #ifdef SUPPORT_TCP 199 186 200 /* TCP åºåã¿ã¹ã¯ãèµ·åãã*/187 /* TCP 出力タスクを起動する */ 201 188 syscall(act_tsk(TCP_OUTPUT_TASK)); 202 189 … … 205 192 #if defined(SUPPORT_UDP) && defined(UDP_CFG_NON_BLOCKING) 206 193 207 /* UDP åºåã¿ã¹ã¯ãèµ·åãã*/194 /* UDP 出力タスクを起動する */ 208 195 syscall(act_tsk(UDP_OUTPUT_TASK)); 209 196 … … 211 198 212 199 while (true) { 213 /* ã¿ã¤ã ã¢ã¦ãããã¨ã³ããªãå¼åºãã*/200 /* タイムアウトしたエントリを呼出す。*/ 214 201 syscall(wai_sem(SEM_CALL_OUT_TIMEOUT)); 215 202 for (ix = NUM_NET_CALLOUT; ix -- > 0; ) { … … 229 216 230 217 /* 231 * ãããã¯ã¼ã¯ã¿ã¤ããã³ãã©232 * 233 * NET_TIMER_CYCLE (100ms) æ¯ã«å¼åºãããã218 * ネットワークタイマハンドラ 219 * 220 * NET_TIMER_CYCLE (100ms) 毎に呼出される。 234 221 */ 235 222 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 80 68 #define _NET_TIMER_H_ 81 69 82 #include <tinet_kernel_defs.h> /* ã«ã¼ãã«ã«é¢ããäºææ§å®ç¾©ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããã*/70 #include <tinet_kernel_defs.h> /* カーネルに関する互換性定義ファイルをインクルードする。*/ 83 71 84 72 /* 85 * TOPPERS/JSP ã«ã¼ãã«ãã·ã¹ãã æå» (SYSTIM) ã®å¨æ³¢æ°73 * TOPPERS/JSP カーネル、システム時刻 (SYSTIM) の周波数 86 74 */ 87 75 … … 89 77 90 78 /* 91 * ãããã¯ã¼ã¯ã¿ã¤ãã®å®ç¾©79 * ネットワークタイマの定義 92 80 */ 93 81 94 #define NET_TIMER_CYCLE ULONG_C(100) /* [ms] ãfast timeout 使ç¨æã®åä½å¨æ*/95 /* ã¿ã¤ãã®å¨æ³¢æ°*/82 #define NET_TIMER_CYCLE ULONG_C(100) /* [ms]、fast timeout 使用時の動作周期 */ 83 /* タイマの周波数 */ 96 84 #define NET_TIMER_HZ (SYSTIM_HZ/NET_TIMER_CYCLE) 97 85 98 86 #ifdef SUPPORT_INET6 99 #define NUM_NET_CALLOUT 12 /* ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 以ä¸*/87 #define NUM_NET_CALLOUT 12 /* タイムアウト呼出し数、10 以上 */ 100 88 #else 101 #define NUM_NET_CALLOUT 10 /* ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 以ä¸*/89 #define NUM_NET_CALLOUT 10 /* タイムアウト呼出し数、10 以上 */ 102 90 #endif 103 91 104 92 /* 105 * ã¿ã¤ã ã¢ã¦ãå¼åºãã¨ã³ããª93 * タイムアウト呼出しエントリ 106 94 */ 107 95 … … 109 97 110 98 typedef struct t_net_callout { 111 callout_func func; /* å¼åºãé¢æ°*/112 void *arg; /* é¢æ°ã¸ã®å¼æ°*/113 RELTIM timeout; /* ã¿ã¤ã ã¢ã¦ã*/99 callout_func func; /* 呼出す関数 */ 100 void *arg; /* 関数への引数 */ 101 RELTIM timeout; /* タイムアウト */ 114 102 } T_NET_CALLOUT; 115 103 116 104 /* 117 * é¢æ°105 * 関数 118 106 */ 119 107 … … 122 110 123 111 /* 124 * ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã¨å¨æãã³ãã©112 * ネットワークタイマタスクと周期ハンドラ 125 113 */ 126 114 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 81 69 82 70 /* 83 * é¢æ°71 * 関数 84 72 */ 85 73 … … 87 75 88 76 /* 89 * é¢æ°77 * 関数 90 78 */ 91 79 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 80 68 81 69 /* 82 * PPP å¦çã¿ã¹ã¯ã®æ¬ä½70 * PPP 処理タスクの本体 83 71 */ 84 72 … … 109 97 110 98 /* 111 * å 112 ¨åå¤æ° 113 */ 114 115 uint8_t ppp_phase = PPP_PHASE_INITIALIZE; /* ãªã³ã¯ã®ç¶æ 116 */ 117 118 /* 119 * ãããã³ã«è¡¨ 99 * 全域変数 100 */ 101 102 uint8_t ppp_phase = PPP_PHASE_INITIALIZE; /* リンクの状態 */ 103 104 /* 105 * プロトコル表 120 106 */ 121 107 … … 140 126 141 127 /* 142 * å¤æ°128 * 変数 143 129 */ 144 130 … … 150 136 151 137 /* 152 * é¢æ°138 * 関数 153 139 */ 154 140 … … 162 148 163 149 /* 164 * PPP å 165 ¥åã®è§£æ 150 * PPP 入力の解析 166 151 */ 167 152 … … 176 161 NET_COUNT_PPP(net_count_ppp.in_packets, 1); 177 162 178 /* ãã¬ã¼ã é·ããã§ãã¯ãã*/179 if (input->len < sizeof(T_PPP_HDR)) { /* FreeBSD ã§ã¯ PPP_HDRLEN ã¯4 */163 /* フレーム長をチェックする */ 164 if (input->len < sizeof(T_PPP_HDR)) { /* FreeBSD では PPP_HDRLEN は 4 */ 180 165 syslog(LOG_NOTICE, "[PPP] recv short frame."); 181 166 goto buf_rel; … … 184 169 proto = ntohs(*GET_PPP_HDR(input)); 185 170 186 /* ãããã³ã«ã LCP 以å¤ã§ãLCP ããªã¼ãã³ããã¦ããªããã°ã¨ã©ã¼*/171 /* プロトコルが LCP 以外で、LCP がオープンされていなければエラー */ 187 172 if (proto != PPP_LCP && lcp_fsm.state != PPP_FSM_OPENED) { 188 173 syslog(LOG_NOTICE, "[PPP] LCP not open."); … … 190 175 } 191 176 192 /* ãªã³ã¯ãèªè¨¼ç¶æ 193 以åã¯ãLCPãLQRãPAPãCHAP ã®ã¿åãä»ãã */ 177 /* リンクが認証状態以前は、LCP、LQR、PAP、CHAP のみ受け付ける */ 194 178 if (ppp_phase <= PPP_PHASE_AUTHENTICATE && 195 179 !(proto == PPP_LCP || proto == PPP_LQR || … … 199 183 } 200 184 201 /* ä¸ä½ãããã³ã«ã®å 202 ¥åé¢æ°ãå¼åºã */ 185 /* 上位プロトコルの入力関数を呼出す */ 203 186 for (ix = 0; (entry = protocols[ix]) != NULL; ix ++) { 204 187 if (entry->proto == proto && entry->input != NULL) { … … 222 205 223 206 /* 224 * ppp_output -- PPP ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°207 * ppp_output -- PPP インタフェースの出力関数 225 208 */ 226 209 … … 232 215 #ifdef PPP_CFG_MODEM 233 216 234 #if 0 /* ä¿ç */ 235 /* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾ 236 ã¤ã*/ 217 #if 0 /* 保留 */ 218 /* モデムの接続完了まで待つ。*/ 237 219 if ((error = wait_modem()) != E_OK) 238 220 goto buf_ret; … … 241 223 #endif /* of #ifdef PPP_CFG_MODEM */ 242 224 243 /* IPCP ã®æ¥ç¶å®äºã¾ã§å¾ 244 ã¤ã*/ 225 /* IPCP の接続完了まで待つ。*/ 245 226 if ((error = wait_ipcp()) != E_OK) 246 227 goto buf_ret; … … 255 236 #endif /* of #ifdef PPP_IDLE_TIMEOUT */ 256 237 257 /* PPP åºåãã¥ã¼ã«æå 258 ¥ããã*/ 238 /* PPP 出力キューに投入する。*/ 259 239 if ((error = tsnd_dtq(DTQ_PPP_OUTPUT, output, tmout)) != E_OK) 260 240 goto buf_ret; … … 278 258 279 259 /* 280 * ppp_cp_output -- CP ãã¬ã¼ã ã®éä¿¡260 * ppp_cp_output -- CP フレームの送信 281 261 */ 282 262 … … 286 266 T_PPP_CP_HDR *cph; 287 267 288 /* CP ããããè¨å®ãã*/268 /* CP ヘッダを設定する */ 289 269 cph = GET_PPP_CP_HDR(output); 290 270 cph->code = code; … … 292 272 cph->len = htons(output->len - sizeof(T_PPP_HDR)); 293 273 294 /* PPP åºåãã¥ã¼ã«æå 295 ¥ããã*/ 274 /* PPP 出力キューに投入する。*/ 296 275 if (snd_dtq(DTQ_PPP_OUTPUT, output) != E_OK) { 297 276 syscall(rel_net_buf(output)); … … 301 280 302 281 /* 303 * PPP å 304 ¥åã¿ã¹ã¯ 282 * PPP 入力タスク 305 283 */ 306 284 … … 313 291 int_t ix; 314 292 315 /* ãã¼ããåæè¨å®ãã*/293 /* ポートを初期設定する */ 316 294 syscall(serial_opn_por(HDLC_PORTID)); 317 295 syscall(serial_ctl_por(HDLC_PORTID, IOCTL_FCSND | IOCTL_FCRCV)); … … 330 308 #endif /* of #ifdef PPP_CFG_MODEM */ 331 309 332 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã*/310 /* ネットワークタイマタスクを起動する */ 333 311 syscall(act_tsk(NET_TIMER_TASK)); 334 312 335 /* ä¸ä½ãããã³ã«ãåæåãã*/313 /* 上位プロトコルを初期化する */ 336 314 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) 337 315 if (proto->init != NULL) … … 341 319 lcp_open(PPP_OPEN_PASSIVE); 342 320 343 /* PPP åºåã¿ã¹ã¯ãèµ·åãã*/321 /* PPP 出力タスクを起動する */ 344 322 syscall(act_tsk(PPP_OUTPUT_TASK)); 345 323 … … 387 365 388 366 /* 389 * PPP åºåã¿ã¹ã¯367 * PPP 出力タスク 390 368 */ 391 369 … … 412 390 413 391 /* 414 * ã¢ã¤ãã«ã¿ã¤ã ã¢ã¦ãå¦ç392 * アイドルタイムアウト処理 415 393 */ 416 394 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * PPP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * PPP コンフィギュレーションファイル 48 36 */ 49 37 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 83 71 84 72 /* 85 * PPP ãããã®ãããã³ã«ãã£ã¼ã«ãã®å¤73 * PPP ヘッダのプロトコルフィールドの値 86 74 */ 87 75 … … 99 87 100 88 /* 101 * ãªã³ã¯ã®ç¶æ 102 89 * リンクの状態 103 90 */ 104 91 … … 114 101 115 102 /* 116 * PPP ãªã³ã¯å¶å¾¡ (CP) ãããæ§é ä½103 * PPP リンク制御 (CP) ヘッダ構造体 117 104 */ 118 105 119 106 typedef struct t_ppp_cp_hdr { 120 uint8_t code; /* å¶å¾¡ã³ã¼ã*/121 uint8_t id; /* èå¥å*/122 uint16_t len; /* é·ã*/107 uint8_t code; /* 制御コード */ 108 uint8_t id; /* 識別子 */ 109 uint16_t len; /* 長さ */ 123 110 } __attribute__((packed, aligned(2)))T_PPP_CP_HDR; 124 111 … … 126 113 127 114 /* 128 * PPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ã115 * PPP リンク制御 (CP) の制御コード 129 116 */ 130 117 … … 139 126 140 127 /* 141 * æ§ææ 142 å ± (CI) ããã 128 * 構成情報 (CI) ヘッダ 143 129 */ 144 130 145 131 typedef struct t_ppp_ci_hdr { 146 uint8_t type; /* CI ã®å*/147 uint8_t len; /* é·ã*/132 uint8_t type; /* CI の型 */ 133 uint8_t len; /* 長さ */ 148 134 } __attribute__((packed, aligned(2)))T_PPP_CI_HDR; 149 135 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 123 111 124 112 /* 125 * å®æ°113 * 定数 126 114 */ 127 115 … … 132 120 133 121 /* 134 * network_phase -- ã³ãã¯ã·ã§ã³ç¢ºç«122 * network_phase -- コネクション確立 135 123 */ 136 124 … … 143 131 ppp_phase = PPP_PHASE_NETWORK; 144 132 145 /* ä¸ä½ãããã³ã«ããªã¼ãã³ãã*/133 /* 上位プロトコルをオープンする */ 146 134 num = 0; 147 135 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) 148 #if 0 /* ä¿çãåé¤ç¦æ¢*/136 #if 0 /* 保留、削除禁止 */ 149 137 if (proto->proto < 0xc000 && proto->open != NULL) { 150 138 #else /* of #if 0 */ … … 157 145 158 146 if (num == 0) 159 /* ä¸ä½ãããã³ã«ããªã*/147 /* 上位プロトコルがない */ 160 148 lcp_close(); 161 149 else … … 164 152 165 153 /* 166 * link_required -- ãªã³ã¯ãéè¨ããã154 * link_required -- リンクを開設する。 167 155 */ 168 156 … … 173 161 174 162 /* 175 * link_terminated -- ãã°ã¢ã¦ããã¦ããªã³ã¯ãåæããã163 * link_terminated -- ログアウトして、リンクを切断する。 176 164 */ 177 165 … … 185 173 186 174 /* 187 * link_down -- ãªã³ã¯ã解æ¾ããã175 * link_down -- リンクを解放する。 188 176 */ 189 177 … … 194 182 T_PPP_PROTENT *proto; 195 183 196 /* ä¸ä½ãããã³ã«ã解æ¾ãã*/184 /* 上位プロトコルを解放する */ 197 185 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) { 198 186 if (proto->proto != PPP_LCP && proto->lowerdown != NULL) … … 207 195 208 196 /* 209 * link_established -- ãªã³ã¯ã®æ¥ç¶ã確ç«ããã197 * link_established -- リンクの接続が確立した。 210 198 */ 211 199 … … 222 210 #endif /* of #if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP) */ 223 211 224 /* ä¸ä½ãããã³ã«ãèµ·åãã*/212 /* 上位プロトコルを起動する */ 225 213 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) 226 214 if (proto->lowerup != NULL) 227 215 (*proto->lowerup)(); 228 216 229 /* èªè¨¼ãªãã·ã§ã³ã確èªããããæªå®è£ 230 ã*/ 217 /* 認証オプションを確認する。【未実装】*/ 231 218 232 219 ppp_phase = PPP_PHASE_AUTHENTICATE; … … 283 270 284 271 /* 285 * auth_reset -- èªè¨¼ãªãã·ã§ã³ãå確èªããã272 * auth_reset -- 認証オプションを再確認する。 286 273 */ 287 274 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 72 60 73 61 /* 74 * é¢æ°62 * 関数 75 63 */ 76 64 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 97 85 98 86 /* 99 * å®è£ 100 äºå®ãç¾å¨ã¯ãã¹ã¦æå¦ 87 * 実装予定、現在はすべて拒否 101 88 */ 102 89 … … 114 101 115 102 /* 116 * é¢æ°103 * 関数 117 104 */ 118 105 … … 126 113 127 114 /* 128 * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢115 * FSM から呼出されるコールバック関 129 116 */ 130 117 131 118 static int_t ccp_reqci (T_PPP_FSM *fsm, T_NET_BUF *nbuf); 132 /* ç¸æã®æ§ææ 133 å ±ã確èªããã */ 134 135 /* 136 * å 137 ¨åå¤æ° 119 /* 相手の構成情報を確認する。 */ 120 121 /* 122 * 全域変数 138 123 */ 139 124 140 125 T_PPP_FSM_CALLBACKS ccp_callbacks = { 141 NULL, /* èªæ§ææ 142 å ±ããªã»ããããã */ 143 NULL, /* æ§ææ 144 å ±ã®é·ããè¿ãã */ 145 NULL, /* èªæ§ææ 146 å ±ã追å ããã */ 147 NULL, /* ACK ãåä¿¡ããã¨ãã®å¦ç */ 148 NULL, /* NAK ãåä¿¡ããã¨ãã®å¦ç */ 149 NULL, /* REJ ãåä¿¡ããã¨ãã®å¦ç */ 150 ccp_reqci, /* ç¸æã®æ§ææ 151 å ±ã確èªããã */ 152 NULL, /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 153 NULL, /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 154 NULL, /* ä¸ä½å±¤ãéå§ããã */ 155 NULL, /* ä¸ä½å±¤ãçµäºããã */ 156 NULL, /* åéããã */ 157 NULL, /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 126 NULL, /* 自構成情報をリセットする。 */ 127 NULL, /* 構成情報の長さを返す。 */ 128 NULL, /* 自構成情報を追加する。 */ 129 NULL, /* ACK を受信したときの処理 */ 130 NULL, /* NAK を受信したときの処理 */ 131 NULL, /* REJ を受信したときの処理 */ 132 ccp_reqci, /* 相手の構成情報を確認する。 */ 133 NULL, /* リンク接続を確立する。 */ 134 NULL, /* リンク接続を解放する。 */ 135 NULL, /* 下位層を開始する。 */ 136 NULL, /* 下位層を終了する。 */ 137 NULL, /* 再送する。 */ 138 NULL, /* 不明な CP を受信したときの処理 */ 158 139 }; 159 140 160 141 T_PPP_FSM ccp_fsm = { 161 &ccp_callbacks, /* ã³ã¼ã«ããã¯é¢æ°*/162 PPP_CCP, /* ãããã³ã«*/142 &ccp_callbacks, /* コールバック関数 */ 143 PPP_CCP, /* プロトコル */ 163 144 }; 164 145 165 146 T_PPP_PROTENT ccp_protent = { 166 147 PPP_CCP, 167 ccp_init, /* åæå */ 168 ccp_input, /* å 169 ¥å */ 170 ccp_protrej, /* Proto-REJ åä¿¡å¦ç */ 171 ccp_lowerup, /* ä¸ä½å±¤ãèµ·åãã */ 172 ccp_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 173 ccp_open, /* ãªã¼ãã³ãã */ 174 ccp_close, /* ã¯ãã¼ãºãã */ 175 NULL, /* ãã¼ã¿å 176 ¥å */ 148 ccp_init, /* 初期化 */ 149 ccp_input, /* 入力 */ 150 ccp_protrej, /* Proto-REJ 受信処理 */ 151 ccp_lowerup, /* 下位層を起動する */ 152 ccp_lowerdown, /* 下位層を停止する */ 153 ccp_open, /* オープンする */ 154 ccp_close, /* クローズする */ 155 NULL, /* データ入力 */ 177 156 }; 178 157 179 158 /* 180 * ccp_init -- CCP ã¢ã¸ã¥ã¼ã«ã®åæå159 * ccp_init -- CCP モジュールの初期化 181 160 */ 182 161 … … 188 167 189 168 /* 190 * ccp_input -- CCP å 191 ¥å 169 * ccp_input -- CCP 入力 192 170 */ 193 171 … … 201 179 202 180 /* 203 * ccp_reqci -- ç¸æã®æ§ææ 204 å ±ã解æããã 181 * ccp_reqci -- 相手の構成情報を解析する。 205 182 */ 206 183 … … 209 186 { 210 187 /* 211 * å®è£ 212 äºå®ãç¾å¨ã¯ãã¹ã¦ã®ãªãã·ã§ã³ãæå¦ããã 188 * 実装予定、現在はすべてのオプションを拒否する。 213 189 */ 214 190 return nbuf->len > (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) ? PPP_CONFREJ : PPP_CONFACK; … … 216 192 217 193 /* 218 * ccp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç194 * ccp_protrej -- Proto-REJ を受信したときの処理 219 195 */ 220 196 … … 226 202 227 203 /* 228 * ccp_lowerup -- CCP ä¸ä½å±¤ãèµ·åããã204 * ccp_lowerup -- CCP 下位層を起動する。 229 205 */ 230 206 … … 236 212 237 213 /* 238 * ccp_lowerdown -- CCP ä¸ä½å±¤ãåæ¢ããã214 * ccp_lowerdown -- CCP 下位層を停止する。 239 215 */ 240 216 … … 246 222 247 223 /* 248 * ccp_open -- CCP ã®ãªã¼ã224 * ccp_open -- CCP のオープ 249 225 */ 250 226 … … 256 232 257 233 /* 258 * ccp_close -- CCP ã®ã¯ãã¼ãº234 * ccp_close -- CCP のクローズ 259 235 */ 260 236 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 101 89 102 90 /* 103 * å¤æ°91 * 変数 104 92 */ 105 93 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 111 99 112 100 /* 113 * å 114 ¨åå¤æ° 115 */ 116 117 uint8_t ppp_open_mode = PPP_OPEN_PASSIVE; /* ãªã¼ãã³æã®åä½ã¢ã¼ã */ 118 119 /* 120 * é¢æ° 101 * 全域変数 102 */ 103 104 uint8_t ppp_open_mode = PPP_OPEN_PASSIVE; /* オープン時の動作モード */ 105 106 /* 107 * 関数 121 108 */ 122 109 … … 132 119 133 120 /* 134 * fsm_sconfreq -- Configure-Request ãéä¿¡ããã121 * fsm_sconfreq -- Configure-Request を送信する。 135 122 */ 136 123 … … 144 131 fsm->state == PPP_FSM_ACKRCVD || 145 132 fsm->state == PPP_FSM_ACKSENT)) { 146 /* ã¾ã ãã´ããã¦ããªãããªãã·ã§ã³ããªã»ããããã*/133 /* まだネゴをしていない。オプションをリセットする。 */ 147 134 if (fsm->callbacks->resetci) 148 135 (*fsm->callbacks->resetci)(fsm); … … 150 137 } 151 138 if (retransmit == 0) { 152 /* æ°ãããªã¯ã¨ã¹ããåéã«ã¦ã³ã¿ããªã»ããããæ°ãã ID ãè¨å®ããã*/139 /* 新しいリクエスト。再送カウンタをリセットし、新しい ID を設定する。 */ 153 140 fsm->retrans = MAX_PPP_CONFIGURES; 154 141 fsm->reqid = ++ fsm->id; … … 158 145 159 146 if (fsm->callbacks->cilen && fsm->callbacks->addci) { 160 /* æ§ææ 161 å ±ãã±ãããä½ãã */ 147 /* 構成情報パケットを作る。 */ 162 148 len = (*fsm->callbacks->cilen)(fsm); 163 149 … … 165 151 (*fsm->callbacks->addci)(fsm, output); 166 152 167 /* æ§ææ 168 å ±ãã±ãããéä¿¡ããã */ 153 /* 構成情報パケットを送信する。 */ 169 154 IF_SET_PROTO(output, fsm->proto); 170 155 ppp_cp_output(PPP_CONFREQ, fsm->reqid, output); … … 176 161 177 162 /* 178 * fsm_rconfreq -- Configure-Request ãåä¿¡ããã¨ãã®å¦ç163 * fsm_rconfreq -- Configure-Request を受信したときの処理 179 164 */ 180 165 … … 199 184 200 185 case PPP_FSM_OPENED: 201 /* ä¸ä½å±¤ãåæ¢ãã¦ããã´ã«ç§»ãã*/186 /* 上位層を停止して、ネゴに移る。 */ 202 187 if (fsm->callbacks->down != NULL) 203 188 (*fsm->callbacks->down)(fsm); 204 fsm_sconfreq(fsm, 0); /* æåã® Configure-Request ãéãã*/189 fsm_sconfreq(fsm, 0); /* 最初の Configure-Request を送る。 */ 205 190 break; 206 191 207 192 case PPP_FSM_STOPPED: 208 /* ç¸æãããã´ãéå§ããã*/209 fsm_sconfreq(fsm, 0); /* æåã® Configure-Request ãéãã*/193 /* 相手からネゴが開始された */ 194 fsm_sconfreq(fsm, 0); /* 最初の Configure-Request を送る。 */ 210 195 fsm->state = PPP_FSM_REQSENT; 211 196 break; … … 215 200 syscall(get_net_buf(&output, input->len)); 216 201 217 /* ä¸ä½ãããã³ã«ã«è¦æ±ããã Configure-Request ãéãã */ 218 if (fsm->callbacks->reqci != NULL) /* æ§ææ 219 å ±ããã§ãã¯ããã */ 202 /* 上位プロトコルに要求された Configure-Request を送る。 */ 203 if (fsm->callbacks->reqci != NULL) /* 構成情報をチェックする。 */ 220 204 code = (*fsm->callbacks->reqci)(fsm, input, output); 221 205 else if (output->len > sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) … … 224 208 code = PPP_CONFACK; 225 209 226 /* ç¸æã« ACK, NAK ã¾ã㯠REJ ãéä¿¡ããã*/210 /* 相手に ACK, NAK または REJ を送信する。 */ 227 211 ppp_cp_output(code, id, output); 228 212 … … 239 223 } 240 224 else { 241 /* ACK ã REJ ãéã*/225 /* ACK か REJ を送る */ 242 226 if (fsm->state != PPP_FSM_ACKRCVD) 243 227 fsm->state = PPP_FSM_REQSENT; … … 248 232 249 233 /* 250 * fsm_rconfnakrej -- Configure-NAK/REJ ãåä¿¡ããã¨ãã®å¦ç234 * fsm_rconfnakrej -- Configure-NAK/REJ を受信したときの処理 251 235 */ 252 236 … … 257 241 T_NET_BUF *output; 258 242 259 /* äºæãã ID ã§ãªãããNAK/REJ ãäºæãã¦ããªãã¨ãã¯çµäºããã*/243 /* 予期した ID でないか、NAK/REJ を予期していないときは終了する。*/ 260 244 if (id != fsm->reqid || fsm->seen_ack) { 261 245 syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp NAK/REJ."); … … 290 274 case PPP_FSM_ACKSENT: 291 275 untimeout((FP)fsm_timeout, fsm); 292 if (ret < 0) /* éä¿¡ãã Conf-Req ãç ´æã空㮠NAK/REJ ãå±ããã*/276 if (ret < 0) /* 送信した Conf-Req が破損し空の NAK/REJ が届いた。*/ 293 277 fsm->state = PPP_FSM_STOPPED; 294 278 else … … 303 287 304 288 case PPP_FSM_OPENED: 305 /* åèµ·åãããã´ãããç´ãã*/289 /* 再起動し、ネゴをやり直す。*/ 306 290 if (fsm->callbacks->down != NULL) 307 291 (*fsm->callbacks->down)(fsm); … … 313 297 314 298 /* 315 * fsm_rconfack -- Configure-ACK ãåä¿¡ããã¨ãã®å¦ç299 * fsm_rconfack -- Configure-ACK を受信したときの処理 316 300 */ 317 301 … … 321 305 T_NET_BUF *output; 322 306 323 /* äºæãã ID ã§ãªãããACK ãäºæãã¦ããªãã¨ãã¯çµäºããã*/307 /* 予期した ID でないか、ACK を予期していないときは終了する。*/ 324 308 if (id != fsm->reqid || fsm->seen_ack) { 325 309 syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp ACK."); … … 368 352 369 353 case PPP_FSM_OPENED: 370 /* åèµ·åãããã´ãããç´ãã*/354 /* 再起動し、ネゴをやり直す。*/ 371 355 if (fsm->callbacks->down != NULL) 372 356 (*fsm->callbacks->down)(fsm); … … 383 367 384 368 /* 385 * fsm_rtermreq -- Terminate-Request ãåä¿¡ããã¨ãã®å¦ç369 * fsm_rtermreq -- Terminate-Request を受信したときの処理 386 370 */ 387 371 … … 411 395 412 396 /* 413 * fsm_rtermack -- Terminate-ACK ãåä¿¡ããã¨ãã®å¦ç397 * fsm_rtermack -- Terminate-ACK を受信したときの処理 414 398 */ 415 399 … … 420 404 case PPP_FSM_CLOSING: 421 405 untimeout((FP)fsm_timeout, fsm); 422 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/406 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 423 407 fsm->state = PPP_FSM_CLOSED; 424 408 #else /* of #if 0 */ … … 449 433 450 434 /* 451 * fsm_rcoderej -- Code-REJ ãåä¿¡ããã¨ãã®å¦ç435 * fsm_rcoderej -- Code-REJ を受信したときの処理 452 436 */ 453 437 … … 457 441 T_PPP_CP_HDR *hdr; 458 442 459 /* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããçããã°ã¨ã©ã¼*/443 /* PPP リンク制御 (CP) ヘッダより短ければエラー */ 460 444 if (input->len < sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) { 461 445 syslog(LOG_WARNING, "[PPP/FSM] bad len: %d in recv Code-REJ.", input->len); … … 472 456 473 457 /* 474 * fsm_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç458 * fsm_timeout -- タイムアウト処理 475 459 */ 476 460 … … 484 468 case PPP_FSM_STOPPING: 485 469 if (fsm->retrans <= 0) { 486 /* æ大åéåæ°ãè¶ 487 ããã¨ãã®å¦ç */ 488 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/ 470 /* 最大再送回数を超えたときの処理 */ 471 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 489 472 fsm->state = (fsm->state == PPP_FSM_CLOSING) ? PPP_FSM_CLOSED : PPP_FSM_STOPPED; 490 473 #else /* of #if 0 */ … … 495 478 } 496 479 else { 497 /* Terminate-Request ãéä¿¡ããã*/480 /* Terminate-Request を送信する。*/ 498 481 fsm_stermreq(fsm, ++ fsm->id); 499 482 } … … 503 486 case PPP_FSM_ACKSENT: 504 487 if (fsm->retrans <= 0) { 505 /* æ大åéåæ°ãè¶ 506 ããã¨ãã®å¦ç */ 488 /* 最大再送回数を超えたときの処理 */ 507 489 syslog(LOG_WARNING, "[PPP/FSM] retrans Conf-Req."); 508 490 fsm->state = PPP_FSM_STOPPED; … … 511 493 } 512 494 else { 513 /* Configure-Request ãåéããã*/495 /* Configure-Request を再送する。*/ 514 496 if (fsm->callbacks->retrans != NULL) 515 497 (*fsm->callbacks->retrans)(fsm); … … 528 510 529 511 /* 530 * fsm_stermreq -- Terminate-Request ãéä¿¡ããã512 * fsm_stermreq -- Terminate-Request を送信する。 531 513 */ 532 514 … … 545 527 546 528 /* 547 * fsm_init -- FSM ã¢ã¸ã¥ã¼ã«ã®åæå529 * fsm_init -- FSM モジュールの初期化 548 530 */ 549 531 … … 556 538 557 539 /* 558 * fsm_lowerup -- FSM ä¸ä½å±¤ãèµ·åããã540 * fsm_lowerup -- FSM 下位層を起動する。 559 541 */ 560 542 … … 583 565 584 566 /* 585 * fsm_lowerdown -- FSM ä¸ä½å±¤ãåæ¢ããã567 * fsm_lowerdown -- FSM 下位層を停止する。 586 568 */ 587 569 … … 626 608 627 609 /* 628 * fsm_open -- FSM ã®ãªã¼ãã³610 * fsm_open -- FSM のオープン 629 611 */ 630 612 … … 650 632 case PPP_FSM_CLOSING: 651 633 fsm->state = PPP_FSM_STOPPING; 652 /* nobreak; ä¸ã«è½ã¡ã*/634 /* nobreak; 下に落ちる */ 653 635 654 636 case PPP_FSM_STOPPED: … … 661 643 662 644 /* 663 * fsm_close -- ãªã³ã¯ã®åæãéå§ããã645 * fsm_close -- リンクの切断を開始する。 664 646 */ 665 647 … … 672 654 break; 673 655 674 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/656 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 675 657 case PPP_FSM_STOPPED: 676 658 fsm->state = PPP_FSM_CLOSED; … … 691 673 (*fsm->callbacks->down)(fsm); 692 674 693 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããTerminate-Request ãéä¿¡ããã*/675 /* タイムアウトを設定し、Terminate-Request を送信する。*/ 694 676 fsm->retrans = MAX_PPP_TERMINATES; 695 677 fsm_stermreq(fsm, fsm->reqid = ++ fsm->id); … … 700 682 701 683 /* 702 * fsm_input -- å 703 ¥åãPPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã 684 * fsm_input -- 入力、PPP リンク制御 (CP) の制御コードにより適当な関数を呼出す 704 685 */ 705 686 … … 710 691 T_NET_BUF *output; 711 692 712 /* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããçããã°ã¨ã©ã¼*/693 /* PPP リンク制御 (CP) ヘッダより短ければエラー */ 713 694 if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) { 714 695 syslog(LOG_WARNING, "[PPP/FSM] short hdr: %d.", input->len); … … 718 699 hdr = GET_PPP_CP_HDR(input); 719 700 720 /* ãããã®é·ãã¨å 721 ¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */ 701 /* ヘッダの長さと入力データサイズが一致しなければエラー */ 722 702 if (hdr->len != input->len - sizeof(T_PPP_HDR)) { 723 703 syslog(LOG_WARNING, "[PPP/FSM] bad len: %d.", hdr->len); … … 725 705 } 726 706 727 /* ç¶æ 728 ã INITIAL ã STARTING ãªãã¨ã©ã¼ */ 707 /* 状態が INITIAL か STARTING ならエラー */ 729 708 if (fsm->state == PPP_FSM_INITIAL || fsm->state == PPP_FSM_STARTING) { 730 709 syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in input.", fsm->state); … … 733 712 734 713 /* 735 * å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã714 * 制御コードにより適当な関数を呼出す 736 715 */ 737 716 … … 774 753 775 754 /* 776 * fsm_protoreject -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç755 * fsm_protoreject -- Proto-REJ を受信したときの処理 777 756 */ 778 757 … … 784 763 untimeout((FP)fsm_timeout, fsm); 785 764 786 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/787 /* ä¸ã«è½ã¡ã*/765 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 766 /* 下に落ちる */ 788 767 #else /* of #if 0 */ 789 768 fsm->state = PPP_FSM_STOPPED; … … 804 783 case PPP_FSM_ACKSENT: 805 784 untimeout((FP)fsm_timeout, fsm); 806 /* ä¸ã«è½ã¡ã*/785 /* 下に落ちる */ 807 786 808 787 case PPP_FSM_STOPPED: … … 816 795 (*fsm->callbacks->down)(fsm); 817 796 818 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããTerminate-Request ãéä¿¡ããã*/797 /* タイムアウトを設定し、Terminate-Request を送信する。*/ 819 798 fsm->retrans = MAX_PPP_TERMINATES; 820 799 fsm_stermreq(fsm, fsm->reqid = ++ fsm->id); -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 93 81 94 82 /* 95 * ç¶æ 96 管çæ§é ä½ 83 * 状態管理構造体 97 84 */ 98 85 … … 100 87 101 88 typedef struct t_fsm { 102 struct t_ppp_fsm_callbacks *callbacks; /* ã³ã¼ã«ããã¯é¢æ°*/ 103 uint16_t proto; /* ãããã³ã« */ 104 uint8_t state; /* FSM ã®ç¶æ 105 */ 106 uint8_t id; /* ç¾å¨ã® ID */ 107 uint8_t reqid; /* è¦æ± ID */ 108 uint8_t seen_ack; /* è¦æ±ã«å¯¾ãæ£å¸¸ãª ACK/NAK/REJ ãåä¿¡ */ 109 int8_t failures; /* é»èªãã NAK æ° */ 110 int8_t retrans; /* Configure-Request ã¾ãã¯ã */ 111 /* Terminate-Request ã®åéåæ° */ 89 struct t_ppp_fsm_callbacks *callbacks; /* コールバック関数*/ 90 uint16_t proto; /* プロトコル */ 91 uint8_t state; /* FSM の状態 */ 92 uint8_t id; /* 現在の ID */ 93 uint8_t reqid; /* 要求 ID */ 94 uint8_t seen_ack; /* 要求に対し正常な ACK/NAK/REJ を受信 */ 95 int8_t failures; /* 黙認した NAK 数 */ 96 int8_t retrans; /* Configure-Request または、 */ 97 /* Terminate-Request の再送回数 */ 112 98 } __attribute__((packed, aligned(2)))T_PPP_FSM; 113 99 … … 115 101 116 102 /* 117 * ã³ã¼ã«ããã¯é¢æ°æ§é ä½103 * コールバック関数構造体 118 104 */ 119 105 120 106 typedef struct t_ppp_fsm_callbacks { 121 void (*resetci) (T_PPP_FSM *); /* èªæ§ææ 122 å ±ããªã»ããããã */ 123 int_t (*cilen) (T_PPP_FSM *); /* æ§ææ 124 å ±ã®é·ããè¿ãã */ 107 void (*resetci) (T_PPP_FSM *); /* 自構成情報をリセットする。 */ 108 int_t (*cilen) (T_PPP_FSM *); /* 構成情報の長さを返す。 */ 125 109 void (*addci) (T_PPP_FSM *, T_NET_BUF *); 126 /* èªæ§ææ 127 å ±ã追å ããã */ 110 /* 自構成情報を追加する。 */ 128 111 bool_t (*ackci) (T_PPP_FSM *, T_NET_BUF *); 129 /* ACK ãåä¿¡ããã¨ãã®å¦ç*/112 /* ACK を受信したときの処理 */ 130 113 int_t (*nakci) (T_PPP_FSM *, T_NET_BUF *); 131 /* NAK ãåä¿¡ããã¨ãã®å¦ç*/114 /* NAK を受信したときの処理 */ 132 115 int_t (*rejci) (T_PPP_FSM *, T_NET_BUF *); 133 /* REJ ãåä¿¡ããã¨ãã®å¦ç*/116 /* REJ を受信したときの処理 */ 134 117 int_t (*reqci) (T_PPP_FSM *, T_NET_BUF *, T_NET_BUF *); 135 /* ç¸æã®æ§ææ 136 å ±ã確èªããã */ 137 void (*up) (T_PPP_FSM *); /* ãªã³ã¯ã®æ¥ç¶ã確ç«ããã */ 138 void (*down) (T_PPP_FSM *); /* ãªã³ã¯ã®æ¥ç¶ã解æ¾ããã */ 139 void (*starting)(T_PPP_FSM *); /* ä¸ä½å±¤ãéå§ããã */ 140 void (*finished)(T_PPP_FSM *); /* ä¸ä½å±¤ãçµäºããã */ 141 void (*retrans) (T_PPP_FSM *); /* åéããã */ 142 /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 118 /* 相手の構成情報を確認する。 */ 119 void (*up) (T_PPP_FSM *); /* リンクの接続を確立する。 */ 120 void (*down) (T_PPP_FSM *); /* リンクの接続を解放する。 */ 121 void (*starting)(T_PPP_FSM *); /* 下位層を開始する。 */ 122 void (*finished)(T_PPP_FSM *); /* 下位層を終了する。 */ 123 void (*retrans) (T_PPP_FSM *); /* 再送する。 */ 124 /* 不明な CP を受信したときの処理 */ 143 125 bool_t (*extcode)(T_PPP_FSM *, uint8_t, uint8_t, T_NET_BUF *); 144 126 } __attribute__((packed, aligned(2)))T_PPP_FSM_CALLBACKS; 145 127 146 128 /* 147 * FSM ã®ç¶æ 148 129 * FSM の状態 149 130 */ 150 131 151 #define PPP_FSM_INITIAL 0 /* æªæ¥ç¶ãæªãªã¼ãã³ */ 152 #define PPP_FSM_STARTING 1 /* æªæ¥ç¶ããªã¼ãã³ */ 153 #define PPP_FSM_CLOSED 2 /* æ¥ç¶ã æªãªã¼ãã³ */ 154 #define PPP_FSM_STOPPED 3 /* ãªã¼ãã³ãåæå¾ 155 ã¡ */ 156 #define PPP_FSM_CLOSING 4 /* åæä¸ãæªãªã¼ãã³ */ 157 #define PPP_FSM_STOPPING 5 /* åæä¸ããªã¼ãã³ */ 158 #define PPP_FSM_REQSENT 6 /* Config REQ éä¿¡æ¸ã¿ */ 159 #define PPP_FSM_ACKRCVD 7 /* Config ACK åä¿¡æ¸ã¿ */ 160 #define PPP_FSM_ACKSENT 8 /* Config ACK éä¿¡æ¸ã¿ */ 161 #define PPP_FSM_OPENED 9 /* æ¥ç¶ãéä¿¡å¯è½ */ 132 #define PPP_FSM_INITIAL 0 /* 未接続、未オープン */ 133 #define PPP_FSM_STARTING 1 /* 未接続、オープン */ 134 #define PPP_FSM_CLOSED 2 /* 接続、 未オープン */ 135 #define PPP_FSM_STOPPED 3 /* オープン、切断待ち */ 136 #define PPP_FSM_CLOSING 4 /* 切断中、未オープン */ 137 #define PPP_FSM_STOPPING 5 /* 切断中、オープン */ 138 #define PPP_FSM_REQSENT 6 /* Config REQ 送信済み */ 139 #define PPP_FSM_ACKRCVD 7 /* Config ACK 受信済み */ 140 #define PPP_FSM_ACKSENT 8 /* Config ACK 送信済み */ 141 #define PPP_FSM_OPENED 9 /* 接続、通信可能 */ 162 142 163 143 /* 164 * ãªã¼ãã³æã®åä½ã¢ã¼ã144 * オープン時の動作モード 165 145 */ 166 146 167 #define PPP_OPEN_PASSIVE false /* ååãªã¼ãã³*/168 #define PPP_OPEN_ACTIVE true /* è½åãªã¼ãã³*/147 #define PPP_OPEN_PASSIVE false /* 受動オープン */ 148 #define PPP_OPEN_ACTIVE true /* 能動オープン */ 169 149 170 150 /* 171 * åéãã¿ã¤ã ã¢ã¦ãã®æ¢å®å¤151 * 再送、タイムアウトの既定値 172 152 */ 173 153 174 154 #define DEF_PPP_TIMEOUT (3*NET_TIMER_HZ) 175 /* RFC1661 ã§ã¯ 3 ç§*/176 #define MAX_PPP_TERMINATES 2 /* Terminate-Requests ã®æ大åéåæ°*/177 /* RFC1661 ã§ã¯ 2 å*/178 #define MAX_PPP_CONFIGURES 10 /* Configure-Requests ã®æ大åéåæ°*/179 /* RFC1661 ã§ã¯ 10 å*/180 #define MAX_PPP_FAILURES 5 /* Configure-NAK ã®æ大é»èªåæ°*/181 /* RFC1661 ã§ã¯ 5 å*/155 /* RFC1661 では 3 秒 */ 156 #define MAX_PPP_TERMINATES 2 /* Terminate-Requests の最大再送回数 */ 157 /* RFC1661 では 2 回 */ 158 #define MAX_PPP_CONFIGURES 10 /* Configure-Requests の最大再送回数 */ 159 /* RFC1661 では 10 回 */ 160 #define MAX_PPP_FAILURES 5 /* Configure-NAK の最大黙認回数 */ 161 /* RFC1661 では 5 回 */ 182 162 183 163 /* 184 * é¢æ°164 * 関数 185 165 */ 186 166 … … 194 174 195 175 /* 196 * å¤æ°176 * 変数 197 177 */ 198 178 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 89 77 90 78 /* 91 * RFC1171 (PPP) ã® HDLC é¨ã®å®ç¾©92 */ 93 94 /* 95 * å¤æ°79 * RFC1171 (PPP) の HDLC 部の定義 80 */ 81 82 /* 83 * 変数 96 84 */ 97 85 … … 99 87 100 88 /* 101 * é¢æ°89 * 関数 102 90 */ 103 91 … … 106 94 107 95 /* 108 * genfcstab.c ã«ããä½æãã FCS ã®ã«ãã¯ã¢ãã表 109 * RFC1171 åç 110 § 96 * genfcstab.c により作成した FCS のルックアップ表 97 * RFC1171 参照 111 98 */ 112 99 … … 179 166 180 167 /* 181 * ã¤ã³ã©ã¤ã³é¢æ°168 * インライン関数 182 169 */ 183 170 … … 187 174 188 175 /* 189 * HDLC_putoctet -- HDLC ãªã¯ãããåºå176 * HDLC_putoctet -- HDLC オクテット出力 190 177 */ 191 178 … … 211 198 212 199 /* 213 * HDLC_wirte -- HDLC åºå200 * HDLC_wirte -- HDLC 出力 214 201 */ 215 202 … … 240 227 if (lcp_local_ack_cfg.options & LCP_CFG_ACCOMP) { 241 228 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq)); 242 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ ãéä¿¡ãã*/229 /* フレーム開始フラグシーケンス を送信する */ 243 230 if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq, sizeof(flag_seq))) < 0) { 244 231 goto err_ret; … … 249 236 250 237 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac)); 251 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress 㨠Control ãéä¿¡ãã*/238 /* フレーム開始フラグシーケンス、Address と Control を送信する */ 252 239 if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) { 253 240 goto err_ret; 254 241 } 255 /* Address 㨠Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã*/242 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */ 256 243 fcs = HDLC_INIT_FCS_AC; 257 244 } … … 260 247 261 248 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac)); 262 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress 㨠Control ãéä¿¡ãã*/249 /* フレーム開始フラグシーケンス、Address と Control を送信する */ 263 250 if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) { 264 251 goto err_ret; 265 252 } 266 /* Address 㨠Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã*/253 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */ 267 254 fcs = HDLC_INIT_FCS_AC; 268 255 … … 281 268 #endif /* of #ifdef LCP_CFG_PCOMP */ 282 269 283 /* ãã¼ã¿ãéä¿¡ãã*/270 /* データを送信する */ 284 271 while (len -- > 0) { 285 272 … … 290 277 } 291 278 292 /* FCS ãéä¿¡ãã*/279 /* FCS を送信する */ 293 280 fcs = ~fcs; 294 281 if ((error = HDLC_putoctet(fcs & 0xff)) != E_OK) … … 297 284 goto err_ret; 298 285 299 /* ãã¬ã¼ã çµäºãã©ã°ã·ã¼ã±ã³ã¹ãéä¿¡ãã*/286 /* フレーム終了フラグシーケンスを送信する */ 300 287 if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq_ac[0], sizeof(char))) < 0) 301 288 goto err_ret; … … 309 296 310 297 /* 311 * HDLC_getoctet -- HDLC ãªã¯ãããå 312 ¥å 313 * 314 * æ»ãå¤ã true ãªããã©ã°ã·ã¼ã±ã³ã¹ 298 * HDLC_getoctet -- HDLC オクテット入力 299 * 300 * 戻り値が true ならフラグシーケンス 315 301 */ 316 302 … … 320 306 ER error; 321 307 322 /* 1ãªã¯ãããå 323 ¥åãã */ 308 /* 1オクテット入力する */ 324 309 if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0) { 325 310 return error; 326 311 } 327 312 328 /* å 329 ¥åãããªã¯ãããããã©ã°ã·ã¼ã±ã³ã¹ãªã true ãè¿ã */ 313 /* 入力したオクテットがフラグシーケンスなら true を返す */ 330 314 if (*octet == HDLC_FLAG_SEQ) 331 315 return true; 332 316 333 /* å 334 ¥åãããªã¯ããããã¨ã¹ã±ã¼ããªããããï¼ãªã¯ãããå 335 ¥åããã¹ã¯ã解é¤ãã */ 317 /* 入力したオクテットがエスケープなら、もう1オクテット入力しマスクを解除する */ 336 318 if (*octet == HDLC_CNTL_ESC) { 337 319 if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0) … … 345 327 346 328 /* 347 * HDLC_read -- HDLC å 348 ¥å 349 * 350 * HDLC ãã¬ã¼ã ãå 351 ¥åããã 329 * HDLC_read -- HDLC 入力 330 * 331 * HDLC フレームを入力する。 352 332 */ 353 333 … … 361 341 buf = nbuf->buf; 362 342 363 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å 364 ¥åãèªã¿é£ã°ã */ 343 /* フレーム開始フラグシーケンスまで入力を読み飛ばす */ 365 344 while ((error = HDLC_getoctet(&octet)) != true) { 366 345 … … 371 350 372 351 else if (octet == '\n') { 373 /* ã¢ãã å¶å¾¡ãå¼ã³åºãã*/352 /* モデム制御を呼び出す。*/ 374 353 modem_cntl(modem_getline(nbuf, size)); 375 /* ä¸åº¦ããã®é¢æ°ãçµäºããã*/354 /* 一度、この関数を終了する。*/ 376 355 nbuf->len = 0; 377 356 return E_OK; … … 382 361 } 383 362 384 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å 385 ¥åãèªã¿é£ã°ã */ 363 /* フレーム開始フラグシーケンスの間は入力を読み飛ばす */ 386 364 while (1) { 387 365 if ((error = HDLC_getoctet(&octet)) == E_OK) … … 393 371 NET_COUNT_PPP_HDLC(net_count_hdlc.in_packets, 1); 394 372 395 /* å 396 ¥åãããªã¯ããã㯠Address: All-Stations ã */ 373 /* 入力したオクテットは Address: All-Stations か */ 397 374 if (octet == HDLC_ADDR_ALL) { 398 375 399 /* 次ã¯Control: UI */376 /* 次は Control: UI */ 400 377 if ((error = HDLC_getoctet(&octet)) != E_OK || octet != HDLC_CNTL_UI) { 401 378 error = E_SYS; … … 404 381 if ((error = HDLC_getoctet(&octet)) != E_OK) 405 382 goto err_ret; 406 /* Address 㨠Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã*/383 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */ 407 384 fcs = HDLC_INIT_FCS_AC; 408 385 } … … 438 415 nbuf->len ++; 439 416 440 /* SUD + FCS ãå 441 ¥åãã */ 417 /* SUD + FCS を入力する */ 442 418 while ((error = HDLC_getoctet(&octet)) == E_OK) { 443 419 fcs = Next_FCS(fcs, octet); … … 464 440 goto err_ret; 465 441 466 /* FCS ããã§ãã¯ãã*/442 /* FCS をチェックする */ 467 443 if (fcs != HDLC_GOOD_FCS) { 468 444 error = E_SYS; … … 478 454 479 455 /* 480 * HDLC_dummy_read -- HDLC å 481 ¥å (空èªã¿) 482 * 483 * HDLC ãã¬ã¼ã ã空èªã¿ããã 456 * HDLC_dummy_read -- HDLC 入力 (空読み) 457 * 458 * HDLC フレームを空読みする。 484 459 */ 485 460 … … 490 465 ER error; 491 466 492 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å 493 ¥åãèªã¿é£ã°ã */ 467 /* フレーム開始フラグシーケンスまで入力を読み飛ばす */ 494 468 while ((error = HDLC_getoctet(&octet)) != true) { 495 469 if (error != E_OK) … … 497 471 } 498 472 499 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å 500 ¥åãèªã¿é£ã°ã */ 473 /* フレーム開始フラグシーケンスの間は入力を読み飛ばす */ 501 474 while (octet == HDLC_FLAG_SEQ) 502 475 if (HDLC_getoctet(&octet) != E_OK) 503 476 return; 504 477 505 /* å 506 ¥åãããªã¯ããã㯠Address: All-Stations ã */ 478 /* 入力したオクテットは Address: All-Stations か */ 507 479 if (octet == HDLC_ADDR_ALL) { 508 480 509 /* 次ã¯Control: UI */481 /* 次は Control: UI */ 510 482 if (HDLC_getoctet(&octet) != E_OK || octet != HDLC_CNTL_UI) 511 483 return; … … 531 503 532 504 /* 533 * HDLC_raw_getoctet -- HDLC ãªã¯ããã (Raw) å 534 ¥å 505 * HDLC_raw_getoctet -- HDLC オクテット (Raw) 入力 535 506 */ 536 507 … … 539 510 uint8_t ch; 540 511 541 /* 1ãªã¯ãããå 542 ¥åãã */ 512 /* 1オクテット入力する */ 543 513 if (serial_rea_dat(HDLC_PORTID, &ch, sizeof(ch)) <= 0) 544 514 return '\0'; … … 549 519 550 520 /* 551 * HDLC_raw_putoctet -- HDLC ãªã¯ããã (Raw) åºå521 * HDLC_raw_putoctet -- HDLC オクテット (Raw) 出力 552 522 */ 553 523 … … 555 525 { 556 526 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, 1); 557 /* 1 ãªã¯ãããåºåãã*/527 /* 1オクテット出力する */ 558 528 serial_wri_dat(HDLC_PORTID, &ch, sizeof(ch)); 559 529 } -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 72 60 73 61 /* 74 * RFC1171 (PPP) ã® HDLC é¨ã®å®ç¾©62 * RFC1171 (PPP) の HDLC 部の定義 75 63 */ 76 64 77 65 /* 78 * æ¢å®å¤66 * 既定値 79 67 */ 80 68 … … 90 78 91 79 /* 92 * é¢æ°80 * 関数 93 81 */ 94 82 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 123 111 124 112 /* 125 * é¢æ°113 * 関数 126 114 */ 127 115 … … 135 123 136 124 /* 137 * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢ 138 */ 139 140 static void ipcp_resetci(T_PPP_FSM *fsm); /* èªæ§ææ 141 å ±ããªã»ããããã */ 142 static int_t ipcp_cilen (T_PPP_FSM *fsm); /* æ§ææ 143 å ±ã®é·ããè¿ãã */ 125 * FSM から呼出されるコールバック関 126 */ 127 128 static void ipcp_resetci(T_PPP_FSM *fsm); /* 自構成情報をリセットする。 */ 129 static int_t ipcp_cilen (T_PPP_FSM *fsm); /* 構成情報の長さを返す。 */ 144 130 static void ipcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output); 145 /* èªæ§ææ 146 å ±ã追å ããã */ 131 /* 自構成情報を追加する。 */ 147 132 static bool_t ipcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input); 148 /* ACK ãåä¿¡ããã¨ãã®å¦ç*/133 /* ACK を受信したときの処理 */ 149 134 static bool_t ipcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input); 150 /* NAK ãåä¿¡ããã¨ãã®å¦ç*/135 /* NAK を受信したときの処理 */ 151 136 static bool_t ipcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input); 152 /* REJ ãåä¿¡ããã¨ãã®å¦ç*/137 /* REJ を受信したときの処理 */ 153 138 static int_t ipcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output); 154 /* ç¸æã®æ§ææ 155 å ±ã確èªããã */ 156 static void ipcp_up (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 157 static void ipcp_down (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 158 static void ipcp_finished(T_PPP_FSM *fsm); /* ä¸ä½å±¤ãçµäºããã */ 159 160 /* 161 * å¤æ° 162 */ 163 164 static T_IFNET ipcp_local_def_cfg = { /* èªæ§ææ 165 å ±ã®è¦å®å¤ */ 139 /* 相手の構成情報を確認する。 */ 140 static void ipcp_up (T_PPP_FSM *fsm); /* リンク接続を確立する。 */ 141 static void ipcp_down (T_PPP_FSM *fsm); /* リンク接続を解放する。 */ 142 static void ipcp_finished(T_PPP_FSM *fsm); /* 下位層を終了する。 */ 143 144 /* 145 * 変数 146 */ 147 148 static T_IFNET ipcp_local_def_cfg = { /* 自構成情報の規定値 */ 166 149 NULL, 167 150 { 168 IPV4_ADDR_LOCAL, /* IP ã¢ãã¬ã¹*/169 UINT_C(0), /* ãµãããããã¹ã¯*/151 IPV4_ADDR_LOCAL, /* IP アドレス */ 152 UINT_C(0), /* サブネットマスク */ 170 153 }, 171 154 }; 172 155 173 static T_IFNET ipcp_remote_def_cfg = { /* ç¸æã®æ§ææ 174 å ±ã®è¦å®å¤ */ 156 static T_IFNET ipcp_remote_def_cfg = { /* 相手の構成情報の規定値 */ 175 157 NULL, 176 158 { 177 IPV4_ADDR_REMOTE, /* IP ã¢ãã¬ã¹*/178 UINT_C(0), /* ãµãããããã¹ã¯*/159 IPV4_ADDR_REMOTE, /* IP アドレス */ 160 UINT_C(0), /* サブネットマスク */ 179 161 } 180 162 }; 181 163 182 static T_IFNET ipcp_local_neg_cfg; /* ãã´ä¸ã®èªæ§ææ 183 å ± */ 184 185 static T_IFNET ipcp_remote_neg_cfg; /* ãã´ä¸ã®ç¸æã®æ§ææ 186 å ± */ 187 188 /* 189 * å 190 ¨åå¤æ° 164 static T_IFNET ipcp_local_neg_cfg; /* ネゴ中の自構成情報 */ 165 166 static T_IFNET ipcp_remote_neg_cfg; /* ネゴ中の相手の構成情報 */ 167 168 /* 169 * 全域変数 191 170 */ 192 171 193 172 T_PPP_FSM_CALLBACKS ipcp_callbacks = { 194 ipcp_resetci, /* èªæ§ææ 195 å ±ããªã»ããããã */ 196 ipcp_cilen, /* æ§ææ 197 å ±ã®é·ããè¿ãã */ 198 ipcp_addci, /* èªæ§ææ 199 å ±ã追å ããã */ 200 ipcp_ackci, /* ACK ãåä¿¡ããã¨ãã®å¦ç */ 201 ipcp_nakci, /* NAK ãåä¿¡ããã¨ãã®å¦ç */ 202 ipcp_rejci, /* REJ ãåä¿¡ããã¨ãã®å¦ç */ 203 ipcp_reqci, /* ç¸æã®æ§ææ 204 å ±ã確èªããã */ 205 ipcp_up, /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 206 ipcp_down, /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 207 NULL, /* ä¸ä½å±¤ãéå§ããã */ 208 ipcp_finished, /* ä¸ä½å±¤ãçµäºããã */ 209 NULL, /* åéããã */ 210 NULL, /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 173 ipcp_resetci, /* 自構成情報をリセットする。 */ 174 ipcp_cilen, /* 構成情報の長さを返す。 */ 175 ipcp_addci, /* 自構成情報を追加する。 */ 176 ipcp_ackci, /* ACK を受信したときの処理 */ 177 ipcp_nakci, /* NAK を受信したときの処理 */ 178 ipcp_rejci, /* REJ を受信したときの処理 */ 179 ipcp_reqci, /* 相手の構成情報を確認する。 */ 180 ipcp_up, /* リンク接続を確立する。 */ 181 ipcp_down, /* リンク接続を解放する。 */ 182 NULL, /* 下位層を開始する。 */ 183 ipcp_finished, /* 下位層を終了する。 */ 184 NULL, /* 再送する。 */ 185 NULL, /* 不明な CP を受信したときの処理 */ 211 186 }; 212 187 213 188 T_PPP_FSM ipcp_fsm = { 214 &ipcp_callbacks, /* ã³ã¼ã«ããã¯é¢æ°*/215 PPP_IPCP, /* ãããã³ã«*/189 &ipcp_callbacks, /* コールバック関数 */ 190 PPP_IPCP, /* プロトコル */ 216 191 }; 217 192 218 193 T_PPP_PROTENT ipcp_protent = { 219 194 PPP_IPCP, 220 ipcp_init, /* åæå */ 221 ipcp_input, /* å 222 ¥å */ 223 ipcp_protrej, /* Proto-REJ åä¿¡å¦ç */ 224 ipcp_lowerup, /* ä¸ä½å±¤ãèµ·åãã */ 225 ipcp_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 226 ipcp_open, /* ãªã¼ãã³ãã */ 227 ipcp_close, /* ã¯ãã¼ãºãã */ 228 ip_input, /* ãã¼ã¿å 229 ¥åãIP å 230 ¥å */ 195 ipcp_init, /* 初期化 */ 196 ipcp_input, /* 入力 */ 197 ipcp_protrej, /* Proto-REJ 受信処理 */ 198 ipcp_lowerup, /* 下位層を起動する */ 199 ipcp_lowerdown, /* 下位層を停止する */ 200 ipcp_open, /* オープンする */ 201 ipcp_close, /* クローズする */ 202 ip_input, /* データ入力、IP 入力 */ 231 203 }; 232 204 233 T_IFNET ipcp_local_ack_cfg; /* ç¸æã«è¨±å¯ãããã®èªæ§ææ 234 å ± */ 235 T_IFNET ipcp_remote_ack_cfg; /* ç¸æã«è¨±å¯ããæ§ææ 236 å ± */ 237 238 /* 239 * ppp_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã 205 T_IFNET ipcp_local_ack_cfg; /* 相手に許可されたの自構成情報 */ 206 T_IFNET ipcp_remote_ack_cfg; /* 相手に許可した構成情報 */ 207 208 /* 209 * ppp_get_ifnet -- ネットワークインタフェース構造体を返す。 240 210 */ 241 211 … … 247 217 248 218 /* 249 * wait_ipcp -- IP æ¥ç¶å®äºã¾ã§å¾ 250 ã¤ã 251 * 252 * æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã 219 * wait_ipcp -- IP 接続完了まで待つ。 220 * 221 * 戻り値: 接続に失敗したら E_OBJ を返す。 253 222 */ 254 223 … … 264 233 #ifdef PPP_CFG_MODEM 265 234 266 /* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾ 267 ã¤ã*/ 235 /* モデムの接続完了まで待つ。*/ 268 236 if ((error = wait_modem()) != E_OK) 269 237 return error; … … 272 240 273 241 /* 274 * ååãªã¼ãã³ããç¸æããã®æ¥ç¶å¾ 275 ã¡ãªã LCP ãä¸åº¦ã¯ãã¼ãºãã 276 * è½åãªã¼ãã³ç¶æ 277 ã§ãåãªã¼ãã³ããã 242 * 受動オープンし、相手からの接続待ちなら LCP を一度クローズし、 243 * 能動オープン状態で、再オープンする。 278 244 */ 279 245 lcp_close(); … … 285 251 286 252 if (ipcp_fsm.state != PPP_FSM_OPENED) { 287 /* IP æ¥ç¶å®äºã¾ã§å¾ 288 ã¤ã*/ 253 /* IP 接続完了まで待つ。*/ 289 254 wai_sem(SEM_IPCP_READY); 290 255 if (ipcp_fsm.state != PPP_FSM_OPENED) … … 296 261 297 262 /* 298 * ipcp_init -- IPCP ã¢ã¸ã¥ã¼ã«ã®åæå263 * ipcp_init -- IPCP モジュールの初期化 299 264 */ 300 265 … … 306 271 307 272 /* 308 * ipcp_input -- IPCP å 309 ¥å 273 * ipcp_input -- IPCP 入力 310 274 */ 311 275 … … 319 283 320 284 /* 321 * ipcp_resetci -- IPCPã®æ§ææ 322 å ±ããªã»ããããã 285 * ipcp_resetci -- IPCPの構成情報をリセットする。 323 286 */ 324 287 … … 326 289 ipcp_resetci (T_PPP_FSM *fsm) 327 290 { 328 /* èªæ§ææ 329 å ±ã®åæè¨å® */ 291 /* 自構成情報の初期設定 */ 330 292 ipcp_local_neg_cfg = ipcp_local_def_cfg; 331 293 memset((void*)&ipcp_local_ack_cfg, 0, sizeof(T_IFNET)); 332 294 333 /* ç¸æã®æ§ææ 334 å ±ã®åæè¨å® */ 295 /* 相手の構成情報の初期設定 */ 335 296 ipcp_remote_neg_cfg = ipcp_remote_def_cfg; 336 297 memset((void*)&ipcp_remote_ack_cfg, 0, sizeof(T_IFNET)); … … 338 299 339 300 /* 340 * ipcp_cilen -- æ§ææ 341 å ±ã®é·ããè¿ãã 301 * ipcp_cilen -- 構成情報の長さを返す。 342 302 */ 343 303 … … 347 307 int_t cilen = 0; 348 308 349 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IP ã¢ãã¬ã¹*/309 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IP アドレス */ 350 310 351 311 return cilen; … … 353 313 354 314 /* 355 * ipcp_addci -- IPCPã®æ§ææ 356 å ±ã追å ããã 315 * ipcp_addci -- IPCPの構成情報を追加する。 357 316 */ 358 317 … … 364 323 buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 365 324 366 /* IP ã¢ãã¬ã¹ãªãã·ã§ã³ã追å ããã*/325 /* IP アドレスオプションを追加する。 */ 367 326 *buf ++ = IPCP_CIT_ADDR; 368 327 *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); … … 372 331 373 332 /* 374 * ipcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç375 * 376 * æ»ãå¤: true ACK ã¯æ£å¸¸377 * false ACK ã¯ç°å¸¸333 * ipcp_ackci -- ACK を受信したときの処理 334 * 335 * 戻り値: true ACK は正常 336 * false ACK は異常 378 337 */ 379 338 … … 388 347 389 348 /* 390 * æ§ææ 391 å ±ã¯éä¿¡ããé ã«å®å 392 ¨ã«ä¸è´ããªããã°ãªããªãã 393 * å¾ã£ã¦ãipcp_addci ã§ä½æããé ã«è§£æããã 349 * 構成情報は送信した順に完全に一致しなければならない。 350 * 従って、ipcp_addci で作成した順に解析する。 394 351 */ 395 352 396 /* ADDR ãªãã·ã§ã³ã解æããã*/353 /* ADDR オプションを解析する。 */ 397 354 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) || 398 355 *buf ++ != IPCP_CIT_ADDR || … … 407 364 408 365 /* 409 * ipcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç410 * 411 * æ»ãå¤: 1 NAK ã¯æ£å¸¸412 * 0 NAK ã¯ç°å¸¸366 * ipcp_nakci -- NAK を受信したときの処理 367 * 368 * 戻り値: 1 NAK は正常 369 * 0 NAK は異常 413 370 */ 414 371 … … 426 383 new_cfg = ipcp_local_neg_cfg; 427 384 428 /* ADDR ãªãã·ã§ã³ã解æããã*/385 /* ADDR オプションを解析する。 */ 429 386 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 430 387 * buf == IPCP_CIT_ADDR && … … 436 393 } 437 394 438 /* å¾ã¯ç¡è¦ããã*/395 /* 後は無視する。*/ 439 396 while (len > sizeof(T_PPP_CI_HDR)) { 440 397 cilen = *(buf + 1); … … 445 402 } 446 403 447 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/404 /* 長さが 0 でなければエラー */ 448 405 if (len != 0) 449 406 return 0; 450 407 451 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/408 /* 新しいオプションを設定する。*/ 452 409 if (fsm->state != PPP_FSM_OPENED) 453 410 ipcp_local_neg_cfg = new_cfg; … … 457 414 458 415 /* 459 * ipcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç460 * 461 * æ»ãå¤: 1 REJ ã¯æ£å¸¸462 * 0 REJ ã¯ç°å¸¸416 * ipcp_rejci -- REJ を受信したときの処理 417 * 418 * 戻り値: 1 REJ は正常 419 * 0 REJ は異常 463 420 */ 464 421 … … 475 432 new_cfg = ipcp_local_neg_cfg; 476 433 477 /* ADDR ãªãã·ã§ã³ã解æããã*/434 /* ADDR オプションを解析する。 */ 478 435 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 479 436 * buf == IPCP_CIT_ADDR && … … 484 441 } 485 442 486 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/443 /* 長さが 0 でなければエラー */ 487 444 if (len != 0) 488 445 return 0; 489 446 490 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/447 /* 新しいオプションを設定する。*/ 491 448 if (fsm->state != PPP_FSM_OPENED) 492 449 ipcp_local_neg_cfg = new_cfg; … … 496 453 497 454 /* 498 * ipcp_reqci -- ç¸æã®æ§ææ 499 å ±ã解æããã 455 * ipcp_reqci -- 相手の構成情報を解析する。 500 456 */ 501 457 … … 508 464 509 465 rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 510 /* rp: REJ ãap: ACK ãã CI ã®ãã¤ã³ã¿*/511 /* æå¦ããå ´åã¯ãå¼æ° buf ã«ä¸æ¸ãããã*/466 /* rp: REJ、ap: ACK する CI のポインタ */ 467 /* 拒否する場合は、引数 buf に上書きする。 */ 512 468 len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)); 513 469 np = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 514 final = PPP_CONFACK; /* æçµçã«éä¿¡ããã³ã¼ã*/470 final = PPP_CONFACK; /* 最終的に送信するコード */ 515 471 while (len > 0) { 516 472 code = PPP_CONFACK; 517 cp = ap; /* cp: ç¾å¨å¦çä¸ã®CI */473 cp = ap; /* cp: 現在処理中の CI */ 518 474 519 475 if (len < sizeof(T_PPP_CI_HDR)) { 520 476 521 /* æ®ãã CI ãããããçã*/477 /* 残りが CI ヘッダより短い */ 522 478 syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", len); 523 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/524 len = 0; /* ã«ã¼ãããæããã*/479 cilen = len; /* データ長が異常の場合の処置 */ 480 len = 0; /* ループから抜ける。 */ 525 481 code = PPP_CONFREJ; 526 482 goto endswitch; 527 483 } 528 484 529 type = *ap ++; /* CI ã®å*/530 cilen = *ap ++; /* CI ã®é·ã*/485 type = *ap ++; /* CI の型 */ 486 cilen = *ap ++; /* CI の長さ */ 531 487 if (len < cilen) { 532 488 533 /* æ®ãã CI é·ããçã*/489 /* 残りが CI 長より短い */ 534 490 syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", cilen); 535 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/536 len = 0; /* ã«ã¼ãããæããã*/491 cilen = len; /* データ長が異常の場合の処置 */ 492 len = 0; /* ループから抜ける。 */ 537 493 code = PPP_CONFREJ; 538 494 goto endswitch; … … 540 496 len -= sizeof(T_PPP_CI_HDR); 541 497 542 /* CI ã®åã«ããåå²ããã*/498 /* CI の型により分岐する。*/ 543 499 switch (type) { 544 500 545 case IPCP_CIT_ADDR: /* IP ã¢ãã¬ã¹*/546 547 /* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°ã¨ã©ã¼*/501 case IPCP_CIT_ADDR: /* IP アドレス */ 502 503 /* CI 長が、ヘッダ + 4 オクテットでなければエラー */ 548 504 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) 549 505 code = PPP_CONFREJ; … … 558 514 code = PPP_CONFNAK; 559 515 } 560 #if 1 /* è¦ç¢ºèª*/516 #if 1 /* 要確認 */ 561 517 else if (addr == 0 && ipcp_remote_neg_cfg.in_ifaddr.addr == 0) 562 518 #else … … 577 533 578 534 if (code == PPP_CONFNAK) { 579 /* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã */ 580 /* æå¤§å¤ MAX_PPP_FAILURES ãè¶ 581 ãããæå¦ããã */ 535 /* CI の型が Magic Number の場合を除いて、NAK の回数が */ 536 /* 最大値 MAX_PPP_FAILURES を超えたら拒否する。 */ 582 537 if (fsm->failures >= MAX_PPP_FAILURES) 583 538 code = PPP_CONFREJ; … … 586 541 } 587 542 588 /* ãã® CI ãæå¦ãã*/543 /* この CI を拒否する */ 589 544 if (code == PPP_CONFREJ) { 590 if (rp < cp) /* åã«è©°ããã*/545 if (rp < cp) /* 前に詰める。*/ 591 546 memcpy(rp, cp, cilen); 592 547 rp += cilen; … … 598 553 } 599 554 600 /* æçµçãªé·ãã調æ´ããã*/555 /* 最終的な長さを調整する。*/ 601 556 switch (final) { 602 557 case PPP_CONFNAK: … … 616 571 617 572 /* 618 * ipcp_up -- ãªã³ã¯æ¥ç¶ã確ç«ããã573 * ipcp_up -- リンク接続を確立する。 619 574 */ 620 575 … … 622 577 ipcp_up (T_PPP_FSM *fsm) 623 578 { 624 /* èªæ§ææ 625 å ±ã®åæè¨å® */ 579 /* 自構成情報の初期設定 */ 626 580 ipcp_local_ack_cfg = ipcp_local_neg_cfg; 627 581 628 582 /* 629 * ãµãããããã¹ã¯ã¨630 * ãã¼ã«ã«ã»ããã¼ããã£ã¹ã IP ã¢ãã¬ã¹ãè¨å®ããã583 * サブネットマスクと 584 * ローカル・ブロードキャスト IP アドレスを設定する。 631 585 */ 632 586 ipcp_local_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in_ifaddr.addr); 633 587 634 /* ç¸æã®æ§ææ 635 å ±ã®åæè¨å® */ 588 /* 相手の構成情報の初期設定 */ 636 589 ipcp_remote_ack_cfg = ipcp_remote_neg_cfg; 637 590 638 591 /* 639 * ãµãããããã¹ã¯ã¨640 * ãã¼ã«ã«ã»ããã¼ããã£ã¹ã IP ã¢ãã¬ã¹ãè¨å®ããã592 * サブネットマスクと 593 * ローカル・ブロードキャスト IP アドレスを設定する。 641 594 */ 642 595 ipcp_remote_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in_ifaddr.addr); … … 650 603 651 604 /* 652 * ipcp_down -- ãªã³ã¯æ¥ç¶ã解æ¾ããã605 * ipcp_down -- リンク接続を解放する。 653 606 */ 654 607 … … 661 614 662 615 /* 663 * ipcp_finished -- ä¸ä½å±¤ãçµäºããã616 * ipcp_finished -- 下位層を終了する。 664 617 */ 665 618 … … 670 623 671 624 /* 672 * ipcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç625 * ipcp_protrej -- Proto-REJ を受信したときの処理 673 626 */ 674 627 … … 680 633 681 634 /* 682 * ipcp_lowerup -- IPCP ä¸ä½å±¤ãèµ·åããã635 * ipcp_lowerup -- IPCP 下位層を起動する。 683 636 */ 684 637 … … 690 643 691 644 /* 692 * ipcp_lowerdown -- IPCP ä¸ä½å±¤ãåæ¢ããã645 * ipcp_lowerdown -- IPCP 下位層を停止する。 693 646 */ 694 647 … … 700 653 701 654 /* 702 * ipcp_open -- IPCP ã®ãªã¼ãã³655 * ipcp_open -- IPCP のオープン 703 656 */ 704 657 … … 710 663 711 664 /* 712 * ipcp_close -- IPCP ã®ã¯ãã¼ãº665 * ipcp_close -- IPCP のクローズ 713 666 */ 714 667 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 93 81 94 82 /* 95 * IPCP ã®æ§ææ 96 å ± (CI) 83 * IPCP の構成情報 (CI) 97 84 */ 98 85 99 86 /* 100 * CI ã®å87 * CI の型 101 88 */ 102 89 103 #define IPCP_CIT_ADDRS UINT_C(1) /* IP ã¢ãã¬ã¹ (å»æ£) */104 #define IPCP_CIT_COMP_TYPE UINT_C(2) /* å§ç¸®æ¹å¼*/105 #define IPCP_CIT_ADDR UINT_C(3) /* IP ã¢ãã¬ã¹*/90 #define IPCP_CIT_ADDRS UINT_C(1) /* IP アドレス (廃棄) */ 91 #define IPCP_CIT_COMP_TYPE UINT_C(2) /* 圧縮方式 */ 92 #define IPCP_CIT_ADDR UINT_C(3) /* IP アドレス */ 106 93 107 94 /* 108 * åæ¹åç 109 § 95 * 前方参照 110 96 */ 111 97 … … 119 105 120 106 /* 121 * å¤æ°107 * 変数 122 108 */ 123 109 … … 134 120 135 121 /* 136 * é¢æ°122 * 関数 137 123 */ 138 124 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 112 100 113 101 /* 114 * é¢æ°102 * 関数 115 103 */ 116 104 … … 130 118 131 119 /* 132 * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢æ° 133 */ 134 135 static void lcp_resetci(T_PPP_FSM *fsm); /* èªæ§ææ 136 å ±ããªã»ããããã */ 137 static int_t lcp_cilen (T_PPP_FSM *fsm); /* æ§ææ 138 å ±ã®é·ããè¿ãã */ 120 * FSM から呼出されるコールバック関数 121 */ 122 123 static void lcp_resetci(T_PPP_FSM *fsm); /* 自構成情報をリセットする。 */ 124 static int_t lcp_cilen (T_PPP_FSM *fsm); /* 構成情報の長さを返す。 */ 139 125 static void lcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output); 140 /* èªæ§ææ 141 å ±ã追å ããã */ 126 /* 自構成情報を追加する。 */ 142 127 static bool_t lcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input); 143 /* ACK ãåä¿¡ããã¨ãã®å¦ç*/128 /* ACK を受信したときの処理 */ 144 129 static bool_t lcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input); 145 /* NAK ãåä¿¡ããã¨ãã®å¦ç*/130 /* NAK を受信したときの処理 */ 146 131 static bool_t lcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input); 147 /* REJ ãåä¿¡ããã¨ãã®å¦ç*/132 /* REJ を受信したときの処理 */ 148 133 static int_t lcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output); 149 /* ç¸æã®æ§ææ 150 å ±ã確èªããã */ 151 static void lcp_up (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 152 static void lcp_starting(T_PPP_FSM *fsm); /* ä¸ä½å±¤ãéå§ããã */ 134 /* 相手の構成情報を確認する。 */ 135 static void lcp_up (T_PPP_FSM *fsm); /* リンク接続を確立する。 */ 136 static void lcp_starting(T_PPP_FSM *fsm); /* 下位層を開始する。 */ 153 137 static bool_t lcp_extcode (T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input); 154 /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç*/138 /* 不明な CP を受信したときの処理 */ 155 139 static void lcp_rprotrej(T_PPP_FSM *fsm, T_NET_BUF *input); 156 /* Proto-REJ ãåä¿¡ããã¨ãã®å¦ç */ 157 /* 158 * å¤æ° 159 */ 160 161 static T_LCP_CONFIGS lcp_def_cfg = { /* æ§ææ 162 å ±ã®åæè¨å®å¤ */ 140 /* Proto-REJ を受信したときの処理 */ 141 /* 142 * 変数 143 */ 144 145 static T_LCP_CONFIGS lcp_def_cfg = { /* 構成情報の初期設定値 */ 163 146 DEF_REMOTE_ACCM, /* ACCM */ 164 147 165 148 #ifdef LCP_CFG_MAGIC 166 149 167 ULONG_C(0), /* ãã¸ãã¯çªå·*/150 ULONG_C(0), /* マジック番号 */ 168 151 169 152 #endif /* of #ifdef LCP_CFG_MAGIC */ 170 153 171 154 DEF_PPP_MTU, /* MRU */ 172 UINT_C(0), /* ãªãã·ã§ã³ãã©ã°*/155 UINT_C(0), /* オプションフラグ */ 173 156 }; 174 157 175 static T_LCP_CONFIGS lcp_local_def_cfg = { /* èªæ§ææ 176 å ±ã®è¦å®å¤ */ 158 static T_LCP_CONFIGS lcp_local_def_cfg = { /* 自構成情報の規定値 */ 177 159 DEF_LOCAL_ACCM, /* ACCM */ 178 160 179 161 #ifdef LCP_CFG_MAGIC 180 162 181 ULONG_C(0), /* ãã¸ãã¯çªå·*/163 ULONG_C(0), /* マジック番号 */ 182 164 183 165 #endif /* of #ifdef LCP_CFG_MAGIC */ 184 166 185 167 DEF_PPP_MTU, /* MRU */ 186 DEF_LCP_LOCAL_CFGS, /* ãªãã·ã§ã³ãã©ã°*/168 DEF_LCP_LOCAL_CFGS, /* オプションフラグ */ 187 169 }; 188 170 189 static T_LCP_CONFIGS lcp_local_neg_cfg; /* ãã´ä¸ã®èªæ§ææ 190 å ± */ 191 192 static T_LCP_CONFIGS lcp_remote_neg_cfg; /* ãã´ä¸ã®ç¸æã®æ§ææ 193 å ± */ 171 static T_LCP_CONFIGS lcp_local_neg_cfg; /* ネゴ中の自構成情報 */ 172 173 static T_LCP_CONFIGS lcp_remote_neg_cfg; /* ネゴ中の相手の構成情報 */ 194 174 195 175 #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC … … 202 182 203 183 /* 204 * å 205 ¨åå¤æ° 184 * 全域変数 206 185 */ 207 186 208 187 T_PPP_FSM_CALLBACKS lcp_callbacks = { 209 lcp_resetci, /* èªæ§ææ 210 å ±ããªã»ããããã */ 211 lcp_cilen, /* æ§ææ 212 å ±ã®é·ããè¿ãã */ 213 lcp_addci, /* èªæ§ææ 214 å ±ã追å ããã */ 215 lcp_ackci, /* ACK ãåä¿¡ããã¨ãã®å¦ç */ 216 lcp_nakci, /* NAK ãåä¿¡ããã¨ãã®å¦ç */ 217 lcp_rejci, /* REJ ãåä¿¡ããã¨ãã®å¦ç */ 218 lcp_reqci, /* ç¸æã®æ§ææ 219 å ±ã確èªããã */ 220 lcp_up, /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 221 lcp_down, /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 222 lcp_starting, /* ä¸ä½å±¤ãéå§ããã */ 223 lcp_finished, /* ä¸ä½å±¤ãçµäºããã */ 224 NULL, /* åéããã */ 225 lcp_extcode, /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 188 lcp_resetci, /* 自構成情報をリセットする。 */ 189 lcp_cilen, /* 構成情報の長さを返す。 */ 190 lcp_addci, /* 自構成情報を追加する。 */ 191 lcp_ackci, /* ACK を受信したときの処理 */ 192 lcp_nakci, /* NAK を受信したときの処理 */ 193 lcp_rejci, /* REJ を受信したときの処理 */ 194 lcp_reqci, /* 相手の構成情報を確認する。 */ 195 lcp_up, /* リンク接続を確立する。 */ 196 lcp_down, /* リンク接続を解放する。 */ 197 lcp_starting, /* 下位層を開始する。 */ 198 lcp_finished, /* 下位層を終了する。 */ 199 NULL, /* 再送する。 */ 200 lcp_extcode, /* 不明な CP を受信したときの処理 */ 226 201 }; 227 202 228 203 T_PPP_FSM lcp_fsm = { 229 &lcp_callbacks, /* ã³ã¼ã«ããã¯é¢æ°*/230 PPP_LCP, /* ãããã³ã«*/204 &lcp_callbacks, /* コールバック関数 */ 205 PPP_LCP, /* プロトコル */ 231 206 }; 232 207 233 208 T_PPP_PROTENT lcp_protent = { 234 209 PPP_LCP, 235 lcp_init, /* åæå */ 236 lcp_input, /* å 237 ¥å */ 238 lcp_protrej, /* Proto-REJ åä¿¡å¦ç */ 239 NULL, /* ä¸ä½å±¤ãèµ·åãã */ 240 lcp_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 241 NULL, /* ãªã¼ãã³ãã */ 242 lcp_close, /* ã¯ãã¼ãºãã */ 243 NULL, /* ãã¼ã¿å 244 ¥å */ 210 lcp_init, /* 初期化 */ 211 lcp_input, /* 入力 */ 212 lcp_protrej, /* Proto-REJ 受信処理 */ 213 NULL, /* 下位層を起動する */ 214 lcp_lowerdown, /* 下位層を停止する */ 215 NULL, /* オープンする */ 216 lcp_close, /* クローズする */ 217 NULL, /* データ入力 */ 245 218 }; 246 219 247 T_LCP_CONFIGS lcp_local_ack_cfg; /* ç¸æã«è¨±å¯ãããã®èªæ§ææ 248 å ± */ 249 T_LCP_CONFIGS lcp_remote_ack_cfg; /* ç¸æã«è¨±å¯ããæ§ææ 250 å ± */ 251 252 /* 253 * lcp_init -- LCP ã¢ã¸ã¥ã¼ã«ã®åæå 220 T_LCP_CONFIGS lcp_local_ack_cfg; /* 相手に許可されたの自構成情報 */ 221 T_LCP_CONFIGS lcp_remote_ack_cfg; /* 相手に許可した構成情報 */ 222 223 /* 224 * lcp_init -- LCP モジュールの初期化 254 225 */ 255 226 … … 261 232 262 233 /* 263 * lcp_input -- LCP å 264 ¥å 234 * lcp_input -- LCP 入力 265 235 */ 266 236 … … 274 244 275 245 /* 276 * lcp_resetci -- LCPã®æ§ææ 277 å ±ããªã»ããããã 246 * lcp_resetci -- LCPの構成情報をリセットする。 278 247 */ 279 248 … … 287 256 #endif /* of #ifdef LCP_CFG_MAGIC */ 288 257 289 /* èªæ§ææ 290 å ±ã®åæè¨å® */ 258 /* 自構成情報の初期設定 */ 291 259 lcp_local_neg_cfg = lcp_local_def_cfg; 292 260 lcp_local_ack_cfg = lcp_def_cfg; 293 261 294 /* ç¸æã®æ§ææ 295 å ±ã®åæè¨å® */ 262 /* 相手の構成情報の初期設定 */ 296 263 lcp_remote_neg_cfg = lcp_def_cfg; 297 264 lcp_remote_ack_cfg = lcp_def_cfg; … … 309 276 310 277 /* 311 * lcp_cilen -- æ§ææ 312 å ±ã®é·ããè¿ãã 278 * lcp_cilen -- 構成情報の長さを返す。 313 279 */ 314 280 … … 341 307 342 308 if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) 343 cilen += sizeof(T_PPP_CI_HDR); /* ãããã³ã«å§ç¸®*/309 cilen += sizeof(T_PPP_CI_HDR); /* プロトコル圧縮 */ 344 310 345 311 #endif /* of #ifdef LCP_CFG_PCOMP */ … … 348 314 349 315 if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) 350 cilen += sizeof(T_PPP_CI_HDR); /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®*/316 cilen += sizeof(T_PPP_CI_HDR); /* アドレス・制御圧縮 */ 351 317 352 318 #endif /* of #ifdef LCP_CFG_ACCOMP */ … … 356 322 357 323 /* 358 * lcp_addci -- LCPã®æ§ææ 359 å ±ã追å ããã 324 * lcp_addci -- LCPの構成情報を追加する。 360 325 */ 361 326 … … 367 332 buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 368 333 369 /* MRU ãªãã·ã§ã³ã追å ããã*/334 /* MRU オプションを追加する。 */ 370 335 if (lcp_local_neg_cfg.options & LCP_CFG_MRU) { 371 336 *buf ++ = LCP_CIT_MRU; … … 375 340 } 376 341 377 /* ACCM ãªãã·ã§ã³ã追å ããã*/342 /* ACCM オプションを追加する。 */ 378 343 if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) { 379 344 *buf ++ = LCP_CIT_ACCM; … … 385 350 #ifdef LCP_CFG_MAGIC 386 351 387 /* Magic Number ãªãã·ã§ã³ã追å ããã*/352 /* Magic Number オプションを追加する。 */ 388 353 if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) { 389 354 *buf ++ = LCP_CIT_MAGIC; … … 397 362 #ifdef LCP_CFG_PAP 398 363 399 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã追å ããã*/364 /* 認証プロトコルオプションを追加する。 */ 400 365 if (lcp_local_neg_cfg.options & LCP_CFG_PAP) { 401 366 *buf ++ = LCP_CIT_AUTH; … … 409 374 #ifdef LCP_CFG_PCOMP 410 375 411 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã追å ããã*/376 /* プロトコル圧縮オプションを追加する。 */ 412 377 if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) { 413 378 *buf ++ = LCP_CIT_PCOMP; … … 419 384 #ifdef LCP_CFG_ACCOMP 420 385 421 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã追å ããã*/386 /* アドレス・制御圧縮オプションを追加する。 */ 422 387 if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) { 423 388 *buf ++ = LCP_CIT_ACCOMP; … … 429 394 430 395 /* 431 * lcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç396 * lcp_ackci -- ACK を受信したときの処理 432 397 * 433 * æ»ãå¤: TURE ACK ã¯æ£å¸¸434 * false ACK ã¯ç°å¸¸398 * 戻り値: TURE ACK は正常 399 * false ACK は異常 435 400 */ 436 401 … … 445 410 446 411 /* 447 * æ§ææ 448 å ±ã¯éä¿¡ããé ã«å®å 449 ¨ã«ä¸è´ããªããã°ãªããªãã 450 * å¾ã£ã¦ãlcp_addci ã§ä½æããé ã«è§£æããã 412 * 構成情報は送信した順に完全に一致しなければならない。 413 * 従って、lcp_addci で作成した順に解析する。 451 414 */ 452 415 453 /* MRU ãªãã·ã§ã³ã解æããã*/416 /* MRU オプションを解析する。 */ 454 417 if (lcp_local_neg_cfg.options & LCP_CFG_MRU) { 455 418 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) || … … 462 425 } 463 426 464 /* ACCM ãªãã·ã§ã³ã解æããã*/427 /* ACCM オプションを解析する。 */ 465 428 if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) { 466 429 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) || … … 475 438 #ifdef LCP_CFG_MAGIC 476 439 477 /* Magic Number ãªãã·ã§ã³ã解æããã*/440 /* Magic Number オプションを解析する。 */ 478 441 if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) { 479 442 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) || … … 490 453 #ifdef LCP_CFG_PAP 491 454 492 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã解æããã*/455 /* 認証プロトコルオプションを解析する。 */ 493 456 if (lcp_local_neg_cfg.options & LCP_CFG_PAP) { 494 457 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) || … … 505 468 #ifdef LCP_CFG_PCOMP 506 469 507 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã解æããã*/470 /* プロトコル圧縮オプションを解析する。 */ 508 471 if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) { 509 472 if (len < sizeof(T_PPP_CI_HDR) || … … 518 481 #ifdef LCP_CFG_ACCOMP 519 482 520 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã解æããã*/483 /* アドレス・制御圧縮オプションを解析する。 */ 521 484 if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) { 522 485 if (len < sizeof(T_PPP_CI_HDR) || … … 532 495 533 496 /* 534 * lcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç497 * lcp_nakci -- NAK を受信したときの処理 535 498 * 536 * æ»ãå¤: 1 NAK ã¯æ£å¸¸537 * 0 NAK ã¯ç°å¸¸499 * 戻り値: 1 NAK は正常 500 * 0 NAK は異常 538 501 */ 539 502 … … 542 505 { 543 506 T_LCP_CONFIGS new_cfg; 544 bool_t loop = false; /* ã«ã¼ãããã¯ããã§ãã¯*/507 bool_t loop = false; /* ループバックをチェック */ 545 508 uint32_t cilong; 546 509 uint16_t cishort, len; … … 552 515 new_cfg = lcp_local_neg_cfg; 553 516 554 /* MRU ãªãã·ã§ã³ã解æããã*/517 /* MRU オプションを解析する。 */ 555 518 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 556 519 * buf == LCP_CIT_MRU && … … 564 527 } 565 528 566 /* ACCM ãªãã·ã§ã³ã解æããã*/529 /* ACCM オプションを解析する。 */ 567 530 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 568 531 * buf == LCP_CIT_ACCM && … … 577 540 #ifdef LCP_CFG_MAGIC 578 541 579 /* Magic Number ãªãã·ã§ã³ã解æããã*/542 /* Magic Number オプションを解析する。 */ 580 543 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 581 544 * buf == LCP_CIT_MAGIC && … … 593 556 #ifdef LCP_CFG_PAP 594 557 595 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã解æããã*/558 /* 認証プロトコルオプションを解析する。 */ 596 559 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 597 560 * buf == LCP_CIT_AUTH && … … 611 574 #ifdef LCP_CFG_PCOMP 612 575 613 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã解æããã*/576 /* プロトコル圧縮オプションを解析する。 */ 614 577 if (len >= sizeof(T_PPP_CI_HDR) && 615 578 * buf == LCP_CIT_PCOMP && … … 625 588 #ifdef LCP_CFG_ACCOMP 626 589 627 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã解æããã*/590 /* アドレス・制御圧縮オプションを解析する。 */ 628 591 if (len >= sizeof(T_PPP_CI_HDR) && 629 592 * buf == LCP_CIT_ACCOMP && … … 637 600 #endif /* of #ifdef LCP_CFG_ACCOMP */ 638 601 639 /* å¾ã¯ç¡è¦ããã*/602 /* 後は無視する。*/ 640 603 while (len > sizeof(T_PPP_CI_HDR)) { 641 604 cilen = *(buf + 1); … … 646 609 } 647 610 648 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/611 /* 長さが 0 でなければエラー */ 649 612 if (len != 0) 650 613 return 0; 651 614 652 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/615 /* 新しいオプションを設定する。*/ 653 616 if (fsm->state != PPP_FSM_OPENED) { 654 617 if (loop) { … … 662 625 663 626 /* 664 * lcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç627 * lcp_rejci -- REJ を受信したときの処理 665 628 * 666 * æ»ãå¤: 1 REJ ã¯æ£å¸¸667 * 0 REJ ã¯ç°å¸¸629 * 戻り値: 1 REJ は正常 630 * 0 REJ は異常 668 631 */ 669 632 … … 681 644 new_cfg = lcp_local_neg_cfg; 682 645 683 /* MRU ãªãã·ã§ã³ã解æããã*/646 /* MRU オプションを解析する。 */ 684 647 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 685 648 * buf == LCP_CIT_MRU && … … 695 658 } 696 659 697 /* ACCM ãªãã·ã§ã³ã解æããã*/660 /* ACCM オプションを解析する。 */ 698 661 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 699 662 * buf == LCP_CIT_ACCM && … … 711 674 #ifdef LCP_CFG_MAGIC 712 675 713 /* Magic Number ãªãã·ã§ã³ã解æããã*/676 /* Magic Number オプションを解析する。 */ 714 677 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 715 678 * buf == LCP_CIT_MAGIC && … … 729 692 #ifdef LCP_CFG_PAP 730 693 731 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã解æããã*/694 /* 認証プロトコルオプションを解析する。 */ 732 695 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 733 696 * buf == LCP_CIT_AUTH && … … 747 710 #ifdef LCP_CFG_PCOMP 748 711 749 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã解æããã*/712 /* プロトコル圧縮オプションを解析する。 */ 750 713 if (len >= sizeof(T_PPP_CI_HDR) && 751 714 * buf == LCP_CIT_PCOMP && … … 761 724 #ifdef LCP_CFG_ACCOMP 762 725 763 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã解æããã*/726 /* アドレス・制御圧縮オプションを解析する。 */ 764 727 if (len >= sizeof(T_PPP_CI_HDR) && 765 728 * buf == LCP_CIT_ACCOMP && … … 773 736 #endif /* of #ifdef LCP_CFG_ACCOMP */ 774 737 775 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/738 /* 長さが 0 でなければエラー */ 776 739 if (len != 0) 777 740 return 0; 778 741 779 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/742 /* 新しいオプションを設定する。*/ 780 743 if (fsm->state != PPP_FSM_OPENED) 781 744 lcp_local_neg_cfg = new_cfg; … … 785 748 786 749 /* 787 * lcp_reqci -- ç¸æã®æ§ææ 788 å ±ã解æããã 750 * lcp_reqci -- 相手の構成情報を解析する。 789 751 */ 790 752 … … 802 764 803 765 rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 804 /* rp: REJ ãap: ACK ãã CI ã®ãã¤ã³ã¿*/805 /* æå¦ããå ´åã¯ãå¼æ° input ã«ä¸æ¸ãããã*/766 /* rp: REJ、ap: ACK する CI のポインタ */ 767 /* 拒否する場合は、引数 input に上書きする。 */ 806 768 len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)); 807 769 np = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 808 final = PPP_CONFACK; /* æçµçã«éä¿¡ããã³ã¼ã*/770 final = PPP_CONFACK; /* 最終的に送信するコード */ 809 771 while (len > 0) { 810 772 code = PPP_CONFACK; 811 cp = ap; /* cp: ç¾å¨å¦çä¸ã®CI */773 cp = ap; /* cp: 現在処理中の CI */ 812 774 813 775 if (len < sizeof(T_PPP_CI_HDR)) { 814 776 815 /* æ®ãã CI ãããããçã*/777 /* 残りが CI ヘッダより短い */ 816 778 syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", len); 817 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/818 len = 0; /* ã«ã¼ãããæããã*/779 cilen = len; /* データ長が異常の場合の処置 */ 780 len = 0; /* ループから抜ける。 */ 819 781 code = PPP_CONFREJ; 820 782 goto endswitch; 821 783 } 822 784 823 type = *ap ++; /* CI ã®å*/824 cilen = *ap ++; /* CI ã®é·ã*/785 type = *ap ++; /* CI の型 */ 786 cilen = *ap ++; /* CI の長さ */ 825 787 if (len < cilen) { 826 788 827 /* æ®ãã CI é·ããçã*/789 /* 残りが CI 長より短い */ 828 790 syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", cilen); 829 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/830 len = 0; /* ã«ã¼ãããæããã*/791 cilen = len; /* データ長が異常の場合の処置 */ 792 len = 0; /* ループから抜ける。 */ 831 793 code = PPP_CONFREJ; 832 794 goto endswitch; … … 834 796 len -= sizeof(T_PPP_CI_HDR); 835 797 836 /* CI ã®åã«ããåå²ããã*/798 /* CI の型により分岐する。*/ 837 799 switch (type) { 838 800 839 case LCP_CIT_MRU: /* æ大åä¿¡é(Maximum Receive Unit) */801 case LCP_CIT_MRU: /* 最大受信量 (Maximum Receive Unit) */ 840 802 841 803 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 … … 845 807 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 */ 846 808 847 /* CI é·ããããã + 2 ãªã¯ãããã§ãªããã°REJ */809 /* CI 長が、ヘッダ + 2 オクテットでなければ REJ */ 848 810 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)) 849 811 code = PPP_CONFREJ; … … 851 813 cishort = ntohs(*(uint16_t*)ap); 852 814 853 /* æå°åä¿¡éããå°ãããã°NAK */815 /* 最小受信量より小さければ NAK */ 854 816 if (cishort < MIN_PPP_MTU) { 855 817 *np ++ = LCP_CIT_MRU; … … 877 839 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0 */ 878 840 879 /* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°REJ */841 /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */ 880 842 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) 881 843 code = PPP_CONFREJ; … … 889 851 break; 890 852 891 case LCP_CIT_MAGIC: /* ãã¸ãã¯çªå·*/853 case LCP_CIT_MAGIC: /* マジック番号 */ 892 854 893 855 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 … … 897 859 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 */ 898 860 899 /* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°REJ */861 /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */ 900 862 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) 901 863 code = PPP_CONFREJ; … … 903 865 ntoahl(cilong, ap); 904 866 905 /* çªå·ãèªåã¨åããªãNAK */867 /* 番号が自分と同じなら NAK */ 906 868 if (cilong == lcp_local_neg_cfg.magic) { 907 869 cilong = net_rand(); … … 923 885 924 886 #ifdef LCP_CFG_PAP 925 /* CHAP ã¯å®è£ 926 äºå® */ 927 928 case LCP_CIT_AUTH: /* èªè¨¼ãããã³ã« */ 929 930 /* CI é·ããããã + 2 ãªã¯ãããããçãã¨ãã¯ã¨ã©ã¼ */ 887 /* CHAP は実装予定 */ 888 889 case LCP_CIT_AUTH: /* 認証プロトコル */ 890 891 /* CI 長が、ヘッダ + 2 オクテットより短いときはエラー */ 931 892 if (cilen < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)) 932 893 code = PPP_CONFREJ; … … 934 895 cishort = ntohs(*(uint16_t*)ap); 935 896 936 /* èªè¨¼ãããã³ã«ã«ããåå²ãã*/897 /* 認証プロトコルにより分岐する */ 937 898 if (cishort == PPP_PAP && 938 899 cilen == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && … … 948 909 #ifdef LCP_CFG_PCOMP 949 910 950 case LCP_CIT_PCOMP: /* ãããã³ã«é¨å§ç¸®ã¯å®è£ 951 äºå® */ 911 case LCP_CIT_PCOMP: /* プロトコル部圧縮は実装予定 */ 952 912 953 913 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 … … 957 917 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 */ 958 918 959 /* CI é·ãããããé·ã ãã§ãªããã°REJ */919 /* CI 長が、ヘッダ長だけでなければ REJ */ 960 920 if (cilen != sizeof(T_PPP_CI_HDR)) 961 921 code = PPP_CONFREJ; … … 971 931 #ifdef LCP_CFG_ACCOMP 972 932 973 case LCP_CIT_ACCOMP: /* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®*/933 case LCP_CIT_ACCOMP: /* アドレス・制御部圧縮 */ 974 934 975 935 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 … … 979 939 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 */ 980 940 981 /* CI é·ãããããé·ã ãã§ãªããã°REJ */941 /* CI 長が、ヘッダ長だけでなければ REJ */ 982 942 if (cilen != sizeof(T_PPP_CI_HDR)) 983 943 code = PPP_CONFREJ; … … 998 958 endswitch: 999 959 if (code == PPP_CONFNAK) { 1000 /* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã */ 1001 /* æå¤§å¤ MAX_PPP_FAILURES ãè¶ 1002 ãããæå¦ããã */ 960 /* CI の型が Magic Number の場合を除いて、NAK の回数が */ 961 /* 最大値 MAX_PPP_FAILURES を超えたら拒否する。 */ 1003 962 if (fsm->failures >= MAX_PPP_FAILURES && type != LCP_CIT_MAGIC) 1004 963 code = PPP_CONFREJ; … … 1007 966 } 1008 967 1009 /* ãã® CI ãæå¦ãã*/968 /* この CI を拒否する */ 1010 969 if (code == PPP_CONFREJ) { 1011 if (rp < cp) /* åã«è©°ããã*/970 if (rp < cp) /* 前に詰める。*/ 1012 971 memcpy(rp, cp, cilen); 1013 972 rp += cilen; … … 1019 978 } 1020 979 1021 /* æçµçãªé·ãã調æ´ããã*/980 /* 最終的な長さを調整する。*/ 1022 981 switch (final) { 1023 982 case PPP_CONFNAK: … … 1036 995 1037 996 /* 1038 * lcp_up -- ãªã³ã¯æ¥ç¶ã確ç«ãã (Phase: Establish ã«ç§»è¡ãã)ã997 * lcp_up -- リンク接続を確立する (Phase: Establish に移行する)。 1039 998 */ 1040 999 … … 1042 1001 lcp_up (T_PPP_FSM *fsm) 1043 1002 { 1044 /* èªæ§ææ 1045 å ±ã®è¨å® */ 1003 /* 自構成情報の設定 */ 1046 1004 lcp_local_ack_cfg = lcp_local_neg_cfg; 1047 1005 1048 /* ç¸æã®æ§ææ 1049 å ±ã®è¨å® */ 1006 /* 相手の構成情報の設定 */ 1050 1007 lcp_remote_ack_cfg = lcp_remote_neg_cfg; 1051 1008 … … 1060 1017 1061 1018 /* 1062 * lcp_starting -- ä¸ä½å±¤ãéå§ããã1019 * lcp_starting -- 下位層を開始する。 1063 1020 */ 1064 1021 … … 1070 1027 1071 1028 /* 1072 * lcp_extcode -- LCP ç¹æã® CP ãåä¿¡ããã¨ãã®å¦ç1029 * lcp_extcode -- LCP 特有の CP を受信したときの処理 1073 1030 */ 1074 1031 … … 1127 1084 1128 1085 /* 1129 * lcp_rprotrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç1086 * lcp_rprotrej -- Proto-REJ を受信したときの処理 1130 1087 */ 1131 1088 … … 1148 1105 } 1149 1106 1150 /* ä¸ä½ãããã³ã«ãåæåãã*/1107 /* 上位プロトコルを初期化する */ 1151 1108 for (ix = 0; (entry = protocols[ix]) != NULL; ix ++) 1152 1109 if (entry->proto == proto) { … … 1159 1116 1160 1117 /* 1161 * lcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç1118 * lcp_protrej -- Proto-REJ を受信したときの処理 1162 1119 */ 1163 1120 … … 1169 1126 1170 1127 /* 1171 * lcp_lowerup -- LCP ä¸ä½å±¤ãèµ·åããã1128 * lcp_lowerup -- LCP 下位層を起動する。 1172 1129 */ 1173 1130 … … 1179 1136 1180 1137 /* 1181 * lcp_lowerdown -- LCP ä¸ä½å±¤ãåæ¢ããã1138 * lcp_lowerdown -- LCP 下位層を停止する。 1182 1139 */ 1183 1140 … … 1189 1146 1190 1147 /* 1191 * lcp_open -- LCP ã®ãªã¼ã1148 * lcp_open -- LCP のオープ 1192 1149 */ 1193 1150 … … 1195 1152 lcp_open (uint8_t open_mode) 1196 1153 { 1197 ppp_open_mode = open_mode; /* ãªã¼ãã³æã®åä½ã¢ã¼ã*/1154 ppp_open_mode = open_mode; /* オープン時の動作モード */ 1198 1155 fsm_open(&lcp_fsm); 1199 1156 } 1200 1157 1201 1158 /* 1202 * lcp_close -- LCP ã®ã¯ãã¼ãº1159 * lcp_close -- LCP のクローズ 1203 1160 */ 1204 1161 … … 1218 1175 1219 1176 /* 1220 * lcp_sprotrej -- èªèã§ããªããããã³ã«ãéããã¦ããã¨ãã®å¦ç1177 * lcp_sprotrej -- 認識できないプロトコルが送られてきたときの処理 1221 1178 */ 1222 1179 … … 1226 1183 T_NET_BUF *output; 1227 1184 /* 1228 * Protocol-Reject ãéãè¿ãã1185 * Protocol-Reject を送り返す。 1229 1186 */ 1230 1187 … … 1239 1196 1240 1197 /* 1241 * lcp_down -- ãªã³ã¯æ¥ç¶ã解æ¾ãã (Phase: Dead ã«ç§»è¡ãã)ã1198 * lcp_down -- リンク接続を解放する (Phase: Dead に移行する)。 1242 1199 */ 1243 1200 … … 1256 1213 1257 1214 /* 1258 * lcp_finished -- ä¸ä½å±¤ãçµäºããã1215 * lcp_finished -- 下位層を終了する。 1259 1216 */ 1260 1217 … … 1268 1225 1269 1226 /* 1270 * recv_echo_rep -- ECHOREP ãåä¿¡ããã¨ãã®å¦ç1227 * recv_echo_rep -- ECHOREP を受信したときの処理 1271 1228 */ 1272 1229 … … 1279 1236 hdr = GET_PPP_CP_HDR(input); 1280 1237 1281 /* Magic Number ã®é·ã以ä¸ãªãã¨ã©ã¼*/1238 /* Magic Number の長さ以下ならエラー */ 1282 1239 if (hdr->len < sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)) { 1283 1240 syslog(LOG_WARNING, "[PPP/LCP] bad ECHOREP len: %d.", hdr->len); … … 1287 1244 ntoahl(magic, input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)); 1288 1245 1289 /* åä¿¡ãã Magic Number ãèªåã¨åããªãã«ã¼ããã¦ããã*/1246 /* 受信した Magic Number が自分と同じならループしている。*/ 1290 1247 if ((lcp_local_ack_cfg.options & LCP_CFG_MAGIC) && magic == lcp_local_ack_cfg.magic) { 1291 1248 syslog(LOG_WARNING, "[PPP/LCP] ECHOREP looped."); … … 1297 1254 1298 1255 /* 1299 * echo_timeout -- ECHO REQ/REP ã®ã¿ã¤ã ã¢ã¦ãå¦ç1256 * echo_timeout -- ECHO REQ/REP のタイムアウト処理 1300 1257 */ 1301 1258 … … 1310 1267 1311 1268 /* 1312 * send_echo_req -- ECHO REQ ãéä¿¡ããã1269 * send_echo_req -- ECHO REQ を送信する。 1313 1270 */ 1314 1271 … … 1330 1287 if (fsm->state == PPP_FSM_OPENED) { 1331 1288 1332 /* ECHOREQ ãéä¿¡ããã*/1289 /* ECHOREQ を送信する。*/ 1333 1290 syscall(get_net_buf(&input, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR) + sizeof(uint32_t))); 1334 1291 *(uint32_t*)(input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) = lcp_local_ack_cfg.magic; … … 1337 1294 echo_pending ++; 1338 1295 1339 /* ã¿ã¤ãã¼ãã¹ã¿ã¼ãããã*/1296 /* タイマーをスタートする。*/ 1340 1297 timeout((FP)echo_timeout, fsm, LCP_ECHO_INTERVAL); 1341 1298 timer_running = true; … … 1344 1301 1345 1302 /* 1346 * echo_lowerup -- ECHO REQ/REP ã®èµ·å1303 * echo_lowerup -- ECHO REQ/REP の起動 1347 1304 */ 1348 1305 … … 1358 1315 1359 1316 /* 1360 * echo_lowerdown -- ECHO REQ/REP ã®åæ¢1317 * echo_lowerdown -- ECHO REQ/REP の停止 1361 1318 */ 1362 1319 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 93 81 94 82 /* 95 * LCP ç¹æã® PPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ã83 * LCP 特有の PPP リンク制御 (CP) の制御コード 96 84 */ 97 85 … … 102 90 103 91 /* 104 * LCP ã®æ§ææ 105 å ± (CI) 92 * LCP の構成情報 (CI) 106 93 */ 107 94 108 95 /* 109 * CI ã®å96 * CI の型 110 97 */ 111 98 112 #define LCP_CIT_MRU UINT_C(1) /* æ大åä¿¡é(Maximum Receive Unit) */99 #define LCP_CIT_MRU UINT_C(1) /* 最大受信量 (Maximum Receive Unit) */ 113 100 #define LCP_CIT_ACCM UINT_C(2) /* Async Control Character Map */ 114 #define LCP_CIT_AUTH UINT_C(3) /* èªè¨¼ãããã³ã« */ 115 #define LCP_CIT_QUALITY UINT_C(4) /* å質ãããã³ã«ã¯æªå®è£ 116 */ 117 #define LCP_CIT_MAGIC UINT_C(5) /* ãã¸ãã¯çªå· */ 118 #define LCP_CIT_PCOMP UINT_C(7) /* ãããã³ã«é¨å§ç¸®ã¯å®è£ 119 äºå® */ 120 #define LCP_CIT_ACCOMP UINT_C(8) /* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®ã¯å®è£ 121 äºå® */ 122 #define LCP_CIT_FCS_ALTER UINT_C(9) /* FCS-Alternatives ã¯æªå®è£ 123 */ 124 #define LCP_CIT_SELF_PAD UINT_C(10) /* Self-Describing-Padding ã¯æªå®è£ 125 */ 126 #define LCP_CIT_CALLBACK UINT_C(13) /* Callback ã¯æªå®è£ 127 */ 128 #define LCP_CIT_CFRAMES UINT_C(15) /* Compound-Frames ã¯æªå®è£ 129 */ 101 #define LCP_CIT_AUTH UINT_C(3) /* 認証プロトコル */ 102 #define LCP_CIT_QUALITY UINT_C(4) /* 品質プロトコルは未実装 */ 103 #define LCP_CIT_MAGIC UINT_C(5) /* マジック番号 */ 104 #define LCP_CIT_PCOMP UINT_C(7) /* プロトコル部圧縮は実装予定 */ 105 #define LCP_CIT_ACCOMP UINT_C(8) /* アドレス・制御部圧縮は実装予定 */ 106 #define LCP_CIT_FCS_ALTER UINT_C(9) /* FCS-Alternatives は未実装 */ 107 #define LCP_CIT_SELF_PAD UINT_C(10) /* Self-Describing-Padding は未実装 */ 108 #define LCP_CIT_CALLBACK UINT_C(13) /* Callback は未実装 */ 109 #define LCP_CIT_CFRAMES UINT_C(15) /* Compound-Frames は未実装 */ 130 110 131 111 /* 132 * LCP ã®æ§ææ 133 å ±ãªãã·ã§ã³ 112 * LCP の構成情報オプション 134 113 */ 135 114 … … 139 118 #ifdef LCP_CFG_MAGIC 140 119 141 uint32_t magic; /* ãã¸ãã¯çªå·*/120 uint32_t magic; /* マジック番号 */ 142 121 143 122 #endif /* of #ifdef LCP_CFG_MAGIC */ 144 123 145 124 uint16_t MRU; /* MRU */ 146 uint16_t options; /* ãªãã·ã§ã³ãã©ã°*/125 uint16_t options; /* オプションフラグ */ 147 126 } __attribute__((packed, aligned(2)))T_LCP_CONFIGS; 148 127 149 128 /* 150 * å¤æ°129 * 変数 151 130 */ 152 131 153 132 extern T_PPP_FSM lcp_fsm; 154 133 extern T_PPP_PROTENT lcp_protent; 155 extern T_LCP_CONFIGS lcp_local_ack_cfg; /* ç¸æã«è¨±å¯ãããã®èªæ§ææ 156 å ± */ 157 extern T_LCP_CONFIGS lcp_remote_ack_cfg; /* ç¸æã«è¨±å¯ããæ§ææ 158 å ± */ 134 extern T_LCP_CONFIGS lcp_local_ack_cfg; /* 相手に許可されたの自構成情報 */ 135 extern T_LCP_CONFIGS lcp_remote_ack_cfg; /* 相手に許可した構成情報 */ 159 136 160 137 /* 161 * é¢æ°138 * 関数 162 139 */ 163 140 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * PPP ã¢ãã å¶å¾¡35 * PPP モデム制御 48 36 */ 49 37 … … 71 59 72 60 /* 73 * å 74 ¨åå¤æ° 75 */ 76 77 uint8_t modem_state = PPP_MODEM_DOWN; /* ã¢ãã ã®ç¶æ 78 */ 79 80 /* 81 * ã¢ãã å 82 ¥åæåå 61 * 全域変数 62 */ 63 64 uint8_t modem_state = PPP_MODEM_DOWN; /* モデムの状態 */ 65 66 /* 67 * モデム入力文字列 83 68 */ 84 69 … … 93 78 94 79 /* 95 * å¤æ°80 * 変数 96 81 */ 97 82 … … 110 95 111 96 /* 112 * é¢æ°97 * 関数 113 98 */ 114 99 … … 119 104 120 105 /* 121 * modem_getline -- ã¢ãã è¡å 122 ¥å 106 * modem_getline -- モデム行入力 123 107 */ 124 108 … … 129 113 130 114 buf = nbuf->buf; 131 size --; /* '\0' ã®å*/115 size --; /* '\0' の分 */ 132 116 while (size > 0 && (*buf = HDLC_raw_getoctet()) != '\r') { 133 117 buf ++; … … 135 119 } 136 120 *buf = '\0'; 137 HDLC_raw_getoctet(); /* \n ãèªã¿é£ã°ãã*/121 HDLC_raw_getoctet(); /* \n を読み飛ばす。*/ 138 122 nbuf->len = buf - nbuf->buf; 139 123 return nbuf; … … 141 125 142 126 /* 143 * ã¢ãã å¶å¾¡127 * モデム制御 144 128 * 145 * æ»ãå¤: ã¢ãã ããã®ãªã¶ã«ãã³ã¼ã129 * 戻り値: モデムからのリザルトコード 146 130 */ 147 131 … … 210 194 211 195 /* 212 * init_modem -- ã¢ãã ãåæåããã196 * init_modem -- モデムを初期化する。 213 197 */ 214 198 … … 228 212 229 213 /* 230 * wait_modem -- æ¥ç¶å®äºã¾ã§å¾ 231 ã¤ã 214 * wait_modem -- 接続完了まで待つ。 232 215 * 233 * æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã216 * 戻り値: 接続に失敗したら E_OBJ を返す。 234 217 */ 235 218 … … 244 227 245 228 if (modem_state != PPP_MODEM_CONNECT) { 246 /* æ¥ç¶å®äºã¾ã§å¾ 247 ã¤ã*/ 229 /* 接続完了まで待つ。*/ 248 230 wai_sem(SEM_MODEM_READY); 249 231 if (modem_state != PPP_MODEM_CONNECT) … … 255 237 256 238 /* 257 * dial -- ãã¤ã¤ã«ããããªãã©ã¤åæ°ãã»ããããã239 * dial -- ダイヤルする。リトライ回数をセットする。 258 240 */ 259 241 … … 267 249 268 250 /* 269 * do_dial -- ãã¤ã¤ã«ãããdial() ã®ä¸è«ãé¢æ°251 * do_dial -- ダイヤルする。dial() の下請け関数 270 252 */ 271 253 … … 280 262 281 263 /* 282 * modem_putstr -- ã¢ãã æåååºå264 * modem_putstr -- モデム文字列出力 283 265 */ 284 266 … … 291 273 292 274 /* 293 * modem_wait -- ã¢ãã ããæååãå¾ 294 㤠275 * modem_wait -- モデムから文字列を待つ 295 276 */ 296 277 … … 311 292 312 293 /* 313 * modem_putline -- ã¢ãã è¡åºå294 * modem_putline -- モデム行出力 314 295 */ 315 296 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 52 40 53 41 /* 54 * ã¢ãã ã®ç¶æ 55 42 * モデムの状態 56 43 */ 57 44 … … 64 51 65 52 /* 66 * å 67 ¨åå¤æ° 53 * 全域変数 68 54 */ 69 55 70 extern uint8_t modem_state; /* ã¢ãã ã®ç¶æ 71 */ 56 extern uint8_t modem_state; /* モデムの状態 */ 72 57 73 58 /* 74 * é¢æ°59 * 関数 75 60 */ 76 61 … … 84 69 85 70 /* 86 * é¢æ°71 * 関数 87 72 */ 88 73 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 113 101 114 102 /* 115 * é¢æ°103 * 関数 116 104 */ 117 105 … … 151 139 152 140 /* 153 * å 154 ¨åå¤æ° 141 * 全域変数 155 142 */ 156 143 157 144 T_PPP_PROTENT pap_protent = { 158 145 PPP_PAP, 159 upap_init, /* åæå */ 160 upap_input, /* å 161 ¥å */ 162 upap_protrej, /* Proto-REJ åä¿¡å¦ç */ 163 upap_lowerup, /* ä¸ä½å±¤ãèµ·åãã */ 164 upap_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 165 NULL, /* ãªã¼ãã³ãã */ 166 NULL, /* ã¯ãã¼ãºãã */ 167 NULL, /* ãã¼ã¿å 168 ¥å */ 146 upap_init, /* 初期化 */ 147 upap_input, /* 入力 */ 148 upap_protrej, /* Proto-REJ 受信処理 */ 149 upap_lowerup, /* 下位層を起動する */ 150 upap_lowerdown, /* 下位層を停止する */ 151 NULL, /* オープンする */ 152 NULL, /* クローズする */ 153 NULL, /* データ入力 */ 169 154 }; 170 155 171 156 /* 172 * å¤æ°157 * 変数 173 158 */ 174 159 … … 193 178 194 179 /* 195 * upap_init -- UPAP ã¢ã¸ã¥ã¼ã«ã®åæå180 * upap_init -- UPAP モジュールの初期化 196 181 */ 197 182 … … 214 199 215 200 /* 216 * upap_input -- UPAP å 217 ¥å 201 * upap_input -- UPAP 入力 218 202 */ 219 203 … … 226 210 NET_COUNT_PPP_PAP(net_count_ppp_upap_in_packets, 1); 227 211 228 /* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããçããã°ã¨ã©ã¼*/212 /* PPP リンク制御 (CP) ヘッダより短ければエラー */ 229 213 if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) { 230 214 syslog(LOG_WARNING, "[PPP/PAP] short hdr: %d.", input->len); … … 234 218 hdr = GET_PPP_CP_HDR(input); 235 219 236 /* ãããã®é·ãã¨å 237 ¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */ 220 /* ヘッダの長さと入力データサイズが一致しなければエラー */ 238 221 if (hdr->len != input->len - sizeof(T_PPP_HDR)) { 239 222 syslog(LOG_WARNING, "[PPP/PAP] bad len: %d.", hdr->len); … … 242 225 243 226 /* 244 * å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã227 * 制御コードにより適当な関数を呼出す 245 228 */ 246 229 … … 271 254 272 255 /* 273 * upap_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç256 * upap_protrej -- Proto-REJ を受信したときの処理 274 257 */ 275 258 … … 297 280 298 281 /* 299 * upap_lowerup -- UPAP ä¸ä½å±¤ãèµ·åããã282 * upap_lowerup -- UPAP 下位層を起動する。 300 283 */ 301 284 … … 331 314 332 315 /* 333 * upap_lowerdown -- UPAP ä¸ä½å±¤ãåæ¢ããã316 * upap_lowerdown -- UPAP 下位層を停止する。 334 317 */ 335 318 … … 366 349 367 350 /* 368 * ã¯ã©ã¤ã¢ã³ãã¢ã¼ã㧠PAP èªè¨¼ãéå§ããã351 * クライアントモードで PAP 認証を開始する。 369 352 */ 370 353 … … 387 370 388 371 /* 389 * upap_rauthack -- èªè¨¼ ACK å¦ç372 * upap_rauthack -- 認証 ACK 処理 390 373 */ 391 374 … … 400 383 401 384 /* 402 * upap_rauthnak -- èªè¨¼ NAK å¦ç385 * upap_rauthnak -- 認証 NAK 処理 403 386 */ 404 387 … … 411 394 412 395 /* 413 * upap_sauthreq -- èªè¨¼è¦æ±å¦ç396 * upap_sauthreq -- 認証要求処理 414 397 */ 415 398 … … 425 408 data = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 426 409 427 /* ã¦ã¼ã¶åãè¨å®ããã*/410 /* ユーザ名を設定する。*/ 428 411 *data = sizeof(AUTH_REMOTE_USER) - 1; 429 412 strcpy(data + 1, AUTH_REMOTE_USER); 430 413 431 /* ãã¹ã¯ã¼ããè¨å®ããã*/414 /* パスワードを設定する。*/ 432 415 *(data + sizeof(AUTH_REMOTE_USER)) = sizeof(AUTH_REMOTE_PASSWD) - 1; 433 416 strcpy(data + sizeof(AUTH_REMOTE_USER) + 1, AUTH_REMOTE_PASSWD); 434 417 435 /* éä¿¡ãã*/418 /* 送信する */ 436 419 IF_SET_PROTO(output, PPP_PAP); 437 420 ppp_cp_output(PAP_AUTHREQ, ++ client_cp_id, output); … … 450 433 451 434 /* 452 * upap_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç435 * upap_timeout -- タイムアウト処理 453 436 */ 454 437 … … 475 458 476 459 /* 477 * ãµã¼ãã¢ã¼ã㧠PAP èªè¨¼ãéå§ããã460 * サーバモードで PAP 認証を開始する。 478 461 */ 479 462 … … 496 479 497 480 /* 498 * upap_rauthreq -- èªè¨¼è¦æ±å¿çå¦ç481 * upap_rauthreq -- 認証要求応答処理 499 482 */ 500 483 … … 509 492 510 493 /* 511 * åè¦æ±ããã£ãã¨ãã®å¦ç494 * 再要求があったときの処理 512 495 */ 513 496 id = GET_PPP_CP_HDR(input)->id; … … 526 509 527 510 /* 528 * ã¦ã¼ã¶åãç¹å®ããã511 * ユーザ名を特定する。 529 512 */ 530 513 ulen = *data; … … 537 520 538 521 /* 539 * ãã¹ã¯ã¼ããç¹å®ããã522 * パスワードを特定する。 540 523 */ 541 524 plen = *data; … … 546 529 547 530 /* 548 * ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãããã§ãã¯ããã531 * ユーザ名とパスワードをチェックする。 549 532 */ 550 533 if (compare(user, AUTH_LOCAL_USER, ulen) && … … 573 556 574 557 /* 575 * upap_sresp -- å¿çãè¿ãã558 * upap_sresp -- 応答を返す。 576 559 */ 577 560 … … 581 564 T_NET_BUF *output; 582 565 583 /* éä¿¡ãã*/566 /* 送信する */ 584 567 syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))); 585 568 IF_SET_PROTO(output, PPP_PAP); … … 588 571 589 572 /* 590 * compare -- ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãã®æ¯è¼573 * compare -- ユーザ名とパスワードの比較 591 574 */ 592 575 … … 606 589 607 590 /* 608 * upap_reqtimeout -- è¦æ±ã¿ã¤ã ã¢ã¦ãå¦ç591 * upap_reqtimeout -- 要求タイムアウト処理 609 592 */ 610 593 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 93 81 94 82 /* 95 * PAP ã®å¶å¾¡ã³ã¼ã83 * PAP の制御コード 96 84 */ 97 85 98 #define PAP_AUTHREQ UINT_C(1) /* èªè¨¼è¦æ±*/99 #define PAP_AUTHACK UINT_C(2) /* èªè¨¼ACK */100 #define PAP_AUTHNAK UINT_C(3) /* èªè¨¼NAK */86 #define PAP_AUTHREQ UINT_C(1) /* 認証要求 */ 87 #define PAP_AUTHACK UINT_C(2) /* 認証 ACK */ 88 #define PAP_AUTHNAK UINT_C(3) /* 認証 NAK */ 101 89 102 90 /* 103 * ã¯ã©ã¤ã¢ã³ãã®ç¶æ 104 91 * クライアントの状態 105 92 */ 106 93 107 #define PAP_CS_INIT UINT_C(0) /* æªæ¥ç¶*/108 #define PAP_CS_CLOSED UINT_C(1) /* æ¥ç¶ãæªèªè¨¼*/109 #define PAP_CS_PENDING UINT_C(2) /* æªæ¥ç¶ãèªè¨¼*/110 #define PAP_CS_AUTHREQ UINT_C(3) /* èªè¨¼è¦æ±éä¿¡æ¸ã¿*/111 #define PAP_CS_OPEN UINT_C(4) /* ACK åä¿¡*/112 #define PAP_CS_BADAUTH UINT_C(5) /* NAK åä¿¡*/94 #define PAP_CS_INIT UINT_C(0) /* 未接続 */ 95 #define PAP_CS_CLOSED UINT_C(1) /* 接続、未認証 */ 96 #define PAP_CS_PENDING UINT_C(2) /* 未接続、認証 */ 97 #define PAP_CS_AUTHREQ UINT_C(3) /* 認証要求送信済み */ 98 #define PAP_CS_OPEN UINT_C(4) /* ACK 受信 */ 99 #define PAP_CS_BADAUTH UINT_C(5) /* NAK 受信 */ 113 100 114 101 /* 115 * ãµã¼ãã®ç¶æ 116 102 * サーバの状態 117 103 */ 118 104 119 #define PAP_SS_INIT UINT_C(0) /* æªæ¥ç¶ */ 120 #define PAP_SS_CLOSED UINT_C(1) /* æ¥ç¶ãæªèªè¨¼ */ 121 #define PAP_SS_PENDING UINT_C(2) /* æªæ¥ç¶ãèªè¨¼ */ 122 #define PAP_SS_LISTEN UINT_C(3) /* èªè¨¼è¦æ±åä¿¡å¾ 123 ã¡ */ 124 #define PAP_SS_OPEN UINT_C(4) /* ACK éä¿¡ */ 125 #define PAP_SS_BADAUTH UINT_C(5) /* NAK éä¿¡ */ 105 #define PAP_SS_INIT UINT_C(0) /* 未接続 */ 106 #define PAP_SS_CLOSED UINT_C(1) /* 接続、未認証 */ 107 #define PAP_SS_PENDING UINT_C(2) /* 未接続、認証 */ 108 #define PAP_SS_LISTEN UINT_C(3) /* 認証要求受信待ち */ 109 #define PAP_SS_OPEN UINT_C(4) /* ACK 送信 */ 110 #define PAP_SS_BADAUTH UINT_C(5) /* NAK 送信 */ 126 111 127 112 /* 128 * å¤æ°113 * 変数 129 114 */ 130 115 … … 132 117 133 118 /* 134 * é¢æ°119 * 関数 135 120 */ 136 121 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 85 73 86 74 /* 87 * PPP ãããã³ã«ã¨ã³ããªæ§é ä½75 * PPP プロトコルエントリ構造体 88 76 */ 89 77 90 78 typedef struct t_ppp_protent { 91 uint16_t proto; /* ãããã³ã«çªå·*/92 void (*init) (void); /* åæåé¢æ°*/79 uint16_t proto; /* プロトコル番号 */ 80 void (*init) (void); /* 初期化関数 */ 93 81 void (*input) (T_NET_BUF *data); 94 /* å 95 ¥åé¢æ° */ 96 void (*protrej) (void); /* Ptoto-REJ åä¿¡å¦ç */ 97 void (*lowerup) (void); /* ä¸ä½å±¤ãèµ·åããã */ 98 void (*lowerdown) (void); /* ä¸ä½å±¤ãåæ¢ããã */ 99 void (*open) (void); /* ãªã¼ãã³ããã */ 100 void (*close) (void); /* ã¯ãã¼ãºããã */ 82 /* 入力関数 */ 83 void (*protrej) (void); /* Ptoto-REJ 受信処理 */ 84 void (*lowerup) (void); /* 下位層を起動する。 */ 85 void (*lowerdown) (void); /* 下位層を停止する。 */ 86 void (*open) (void); /* オープンする。 */ 87 void (*close) (void); /* クローズする。 */ 101 88 void (*datainput) (T_NET_BUF *data); 102 /* ãã¼ã¿å 103 ¥åé¢æ° */ 89 /* データ入力関数 */ 104 90 } T_PPP_PROTENT; 105 91 … … 107 93 108 94 /* 109 * å¤æ°95 * 変数 110 96 */ 111 97 112 extern T_PPP_PROTENT *protocols[]; /* ãããã³ã«è¡¨ */ 113 extern uint8_t ppp_phase; /* ãªã³ã¯ã®ç¶æ 114 */ 98 extern T_PPP_PROTENT *protocols[]; /* プロトコル表 */ 99 extern uint8_t ppp_phase; /* リンクの状態 */ 115 100 116 101 /* 117 * é¢æ°102 * 関数 118 103 */ 119 104 … … 121 106 122 107 /* 123 * PPP å¦çã¿ã¹ã¯108 * PPP 処理タスク 124 109 */ 125 110 -
EcnlProtoTool/trunk/asp3_dcre/tinet/net/route.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * TINET 1.1 ã¨ã®äºææ§ç¢ºä¿74 * TINET 1.1 との互換性確保 87 75 */ 88 76 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile;charset=UTF-8
r270 r321 5 5 # Tomakomai National College of Technology, JAPAN 6 6 # 7 # ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 # ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 # è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 # ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 # å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 # ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 # è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 # ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 # (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 # 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 # 37 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 # å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 # æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 # 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 # によって公表されている GNU General Public License の Version 2 に記 9 # 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 # を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 # 利用と呼ぶ)することを無償で許諾する. 12 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 # スコード中に含まれていること. 15 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 # の無保証規定を掲載すること. 19 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 # 用できない形で再配布する場合には,次の条件を満たすこと. 21 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 # 26 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 # 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 # 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 # 43 # @(#) $Id : Makefile.netapp 497 2014-06-26 01:50:14Z coas-nagasima$44 # 45 46 # 47 # ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ããã°ã©ã ã«é¢ããå®ç¾©48 # 49 50 # 51 # ã«ã¼ãã«ã®èå¥31 # @(#) $Id$ 32 # 33 34 # 35 # サンプルのネットワーク応用プログラムに関する定義 36 # 37 38 # 39 # カーネルの識別 52 40 # 53 41 ifdef SRCLANG … … 59 47 endif 60 48 61 # å¿ç¨ããã°ã©ã49 # 応用プログラム 62 50 63 51 TINET_ROOT = $(SRCDIR)/tinet … … 65 53 NETAPP_COBJS := $(NETAPP_COBJS) netapp_subr.o 66 54 67 # ãã©ã³ã¹ãã¼ã層ã®é¸æ55 # トランスポート層の選択 68 56 69 57 SUPPORT_TCP = false … … 71 59 72 60 # 73 # å 74 ±éã¯ã©ã¤ã¢ã³ãã»ãµã¼ãããã°ã©ã ã®è¨å® 61 # 共通クライアント・サーバプログラムの設定 75 62 # 76 63 … … 84 71 endif 85 72 86 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1) # éåä¿¡ã¿ã¹ã¯åä¸å73 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1) # 送受信タスク同一型 87 74 SUPPORT_TCP = true 88 75 TCP_CFG_PASSIVE_OPEN = true … … 93 80 endif 94 81 95 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2) # éåä¿¡ã¿ã¹ã¯åé¢å82 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2) # 送受信タスク分離型 96 83 SUPPORT_TCP = true 97 84 TCP_CFG_PASSIVE_OPEN = true … … 255 242 256 243 # 257 # ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã«é¢ããå®ç¾©ã¸ã®è¿½å244 # アプリケーションプログラムに関する定義への追加 258 245 # 259 246 … … 275 262 276 263 # 277 # TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©ã¸ã®è¿½å264 # TINET コンフィギュレーションファイルの定義への追加 278 265 # 279 266 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(NETAPP_KERNEL_CFG) -
Property svn:mime-type
changed from
-
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã°ã³ã³ã½ã¼ã«35 * デバッグコンソール 48 36 */ 49 37 … … 126 114 127 115 /* 128 * task_status -- ã¿ã¹ã¯ã®ç¶æ 129 ã®åºå 116 * task_status -- タスクの状態の出力 130 117 */ 131 118 132 119 static const char task_stat_str[][sizeof("SUSPENDED")] = { 133 "DORMANT", /* ä¼æ¢ç¶æ 134 */ 135 "RUNNABLE", /* å®è¡ã§ããç¶æ 136 */ 137 "WAINTING", /* å¾ 138 ã¡ç¶æ 139 */ 140 "SUSPENDED", /* å¼·å¶å¾ 141 ã¡ç¶æ 142 */ 143 "SLEEP", /* èµ·åºå¾ 144 ã¡ç¶æ 145 */ 146 "WOBJ", /* åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾ 147 ã¡ç¶æ 148 */ 149 "WOBJCB", /* å 150 ±éé¨åã®å¾ 151 ã¡ãã¥ã¼ã«ã¤ãªãã£ã¦ããã */ 120 "DORMANT", /* 休止状態 */ 121 "RUNNABLE", /* 実行できる状態 */ 122 "WAINTING", /* 待ち状態 */ 123 "SUSPENDED", /* 強制待ち状態 */ 124 "SLEEP", /* 起床待ち状態 */ 125 "WOBJ", /* 同期・通信オブジェクトに対する待ち状態 */ 126 "WOBJCB", /* 共通部分の待ちキューにつながっている。 */ 152 127 }; 153 128 … … 184 159 185 160 /* 186 * tcp_status -- TCP ã®ç¶æ 187 ã®åºå 161 * tcp_status -- TCP の状態の出力 188 162 */ 189 163 190 164 static const char tcp_fsm_str[][sizeof("ESTABLISHED")] = { 191 "CLOSED", /* ã¯ãã¼ãº */ 192 "LISTEN", /* ååãªã¼ãã³ */ 193 "SYN_SENT", /* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿ */ 194 "SYN_RECVD", /* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿ */ 195 "ESTABLISHED", /* ã³ãã¯ã·ã§ã³éè¨å®äº */ 196 "CLOSE_WAIT", /* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾ 197 ã¡ */ 198 "FIN_WAIT_1", /* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾ 199 ã¡ */ 200 "CLOSING", /* åæã¯ãã¼ãºãFIN 交ææ¸ã¿ãACK å¾ 201 ã¡ */ 202 "LAST_ACK", /* APP ãçµäºãACK å¾ 203 ã¡ */ 204 "FIN_WAIT_2", /* ç¸æããã® FIN å¾ 205 ã¡ */ 206 "TIME_WAIT", /* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾ 207 ã¡ */ 165 "CLOSED", /* クローズ */ 166 "LISTEN", /* 受動オープン */ 167 "SYN_SENT", /* 能動オープン、SYN 送信済み */ 168 "SYN_RECVD", /* 受動オープン、SYN 受信済み */ 169 "ESTABLISHED", /* コネクション開設完了 */ 170 "CLOSE_WAIT", /* 相手から FIN 受信、APP の終了待ち */ 171 "FIN_WAIT_1", /* APP が終了、FIN 送信済み、ACK 待ち */ 172 "CLOSING", /* 同時クローズ、FIN 交換済み、ACK 待ち */ 173 "LAST_ACK", /* APP が終了、ACK 待ち */ 174 "FIN_WAIT_2", /* 相手からの FIN 待ち */ 175 "TIME_WAIT", /* 相手からの FIN 受信済み、時間待ち */ 208 176 }; 209 177 … … 498 466 499 467 /* 500 * udp_status -- UDP ã®ç¶æ 501 ã®åºå 468 * udp_status -- UDP の状態の出力 502 469 */ 503 470 … … 536 503 537 504 /* 538 * ifa_status -- ARP ãã£ãã·ã¥åºå505 * ifa_status -- ARP キャッシュ出力 539 506 */ 540 507 … … 550 517 "IX Expire IP Address MAC Address\n"); 551 518 552 /* expire ã®åä½ã¯ [ms]ã*/519 /* expire の単位は [ms]。*/ 553 520 cache = arp_get_cache(); 554 521 for (ix = 0; ix < NUM_ARP_ENTRY; ix ++) { … … 568 535 569 536 /* 570 * ifa_status -- è¿é£ãã£ãã·ã¥ç¶æ 571 ã®åºå 537 * ifa_status -- 近隣キャッシュ状態の出力 572 538 */ 573 539 574 540 static const char nd_state_str[][sizeof("INCOMPLETE")] = { 575 "FREE", /* æªä½¿ç¨ */ 576 "NO STATE", /* ç¶æ 577 æªå®ç¾© */ 578 "INCOMPLETE", /* æªè§£æ±º */ 579 "REACHABLE", /* å°éå¯è½ */ 580 "STALE", /* å°éå¯è½æ§ã¯æªç¢ºèª */ 581 "DELAY", /* å°éå¯è½æ§ã®ç¢ºèªå¾ 582 æ© */ 583 "PROBE", /* å°éå¯è½æ§ã確èªä¸ */ 541 "FREE", /* 未使用 */ 542 "NO STATE", /* 状態未定義 */ 543 "INCOMPLETE", /* 未解決 */ 544 "REACHABLE", /* 到達可能 */ 545 "STALE", /* 到達可能性は未確認 */ 546 "DELAY", /* 到達可能性の確認待機 */ 547 "PROBE", /* 到達可能性を確認中 */ 584 548 }; 585 549 … … 596 560 "IX Expire State MAC Address IP Address\n"); 597 561 598 /* expire ã®åä½ã¯ [ms]ã*/562 /* expire の単位は [ms]。*/ 599 563 get_tim(&now); 600 564 cache = nd6_get_cache(); … … 623 587 624 588 /* 625 * net_count_struct -- ãããã¯ã¼ã¯çµ±è¨æ 626 å ± 589 * net_count_struct -- ネットワーク統計情報 627 590 */ 628 591 … … 631 594 { 632 595 cons_printf(portid, "\n%s\n", name); 633 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", item->in_octets);634 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", item->out_octets);635 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", item->in_packets);636 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", item->out_packets);637 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", item->in_err_packets);638 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", item->out_err_packets);596 cons_printf(portid, "\t受信オクテット数\t%lu\n", item->in_octets); 597 cons_printf(portid, "\t送信オクテット数\t%lu\n", item->out_octets); 598 cons_printf(portid, "\t受信バケット数\t%lu\n", item->in_packets); 599 cons_printf(portid, "\t送信バケット数\t%lu\n", item->out_packets); 600 cons_printf(portid, "\t受信エラーバケット数\t%lu\n", item->in_err_packets); 601 cons_printf(portid, "\t送信エラーバケット数\t%lu\n", item->out_err_packets); 639 602 } 640 603 641 604 /* 642 * net_count -- ãããã¯ã¼ã¯çµ±è¨æ 643 å ± 605 * net_count -- ネットワーク統計情報 644 606 */ 645 607 … … 653 615 WAI_NET_CONS_PRINTF(); 654 616 get_tim(&now); 655 cons_printf(portid, "ãããã¯ã¼ã¯çµ±è¨æ 656 å ±\tçµéæé[ms]\t%lu\t", now); 617 cons_printf(portid, "ネットワーク統計情報\t経過時間[ms]\t%lu\t", now); 657 618 if (now > (1000 * 3600 * 24)) 658 cons_printf(portid, "%3lu æ¥ %2luæé %2luå %2luç§\n",619 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n", 659 620 now / (1000 * 3600 * 24), 660 621 (now / (1000 * 3600)) % 24, … … 662 623 (now / 1000 ) % 60); 663 624 else 664 cons_printf(portid, "%2lu æé %2luå %2luç§\n",625 cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n", 665 626 (now / (1000 * 3600)) % 24, 666 627 (now / (1000 * 60 )) % 60, … … 671 632 net_count_struct(portid, "HDLC", &net_count_hdlc); 672 633 cons_printf(portid, "\nPPP\n"); 673 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp.in_octets);674 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp.out_octets);675 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp.in_packets);676 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", net_count_ppp.out_packets);677 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ppp.in_err_packets);678 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ppp.out_err_packets);679 cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n", net_count_ppp_no_bufs);634 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp.in_octets); 635 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ppp.out_octets); 636 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp.in_packets); 637 cons_printf(portid, "\t送信バケット数\t%lu\n", net_count_ppp.out_packets); 638 cons_printf(portid, "\t受信エラーバケット数\t%lu\n", net_count_ppp.in_err_packets); 639 cons_printf(portid, "\t送信エラーバケット数\t%lu\n", net_count_ppp.out_err_packets); 640 cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n", net_count_ppp_no_bufs); 680 641 681 642 cons_printf(portid, "\nLCP\n"); 682 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp_lcp_in_octets);683 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp_lcp_in_packets);643 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp_lcp_in_octets); 644 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp_lcp_in_packets); 684 645 685 646 cons_printf(portid, "\nIPCP\n"); 686 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp_ipcp_in_octets);687 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp_ipcp_in_packets);647 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp_ipcp_in_octets); 648 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp_ipcp_in_packets); 688 649 689 650 cons_printf(portid, "\nPAP\n"); 690 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp_upap_in_octets);691 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp_upap_in_packets);651 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp_upap_in_octets); 652 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp_upap_in_packets); 692 653 693 654 #endif /* of #ifdef SUPPORT_PPP */ … … 695 656 #ifdef SUPPORT_ETHER 696 657 697 net_count_struct(portid, " ã¤ã¼ãµããã", &net_count_ether);698 699 cons_printf(portid, "\n ã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹\n");700 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]);701 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]);702 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]);703 cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]);704 cons_printf(portid, "\t åä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]);705 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]);706 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]);707 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]);708 cons_printf(portid, "\t ã³ãªã¸ã§ã³æ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_COLS]);709 cons_printf(portid, "\t éä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]);710 cons_printf(portid, "\t éä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]);711 cons_printf(portid, "\t ãªã»ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RESETS]);658 net_count_struct(portid, "イーサネット", &net_count_ether); 659 660 cons_printf(portid, "\nイーサネット・ネットワークインタフェース\n"); 661 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]); 662 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]); 663 cons_printf(portid, "\t受信エラーバケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]); 664 cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]); 665 cons_printf(portid, "\t受信セマフォ資源返却上限オーバー数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]); 666 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]); 667 cons_printf(portid, "\t送信バケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]); 668 cons_printf(portid, "\t送信エラーバケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]); 669 cons_printf(portid, "\tコリジョン数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_COLS]); 670 cons_printf(portid, "\t送信セマフォ資源返却上限オーバー数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]); 671 cons_printf(portid, "\t送信タイムアウト数 \t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]); 672 cons_printf(portid, "\tリセット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RESETS]); 712 673 713 674 #endif /* of #ifdef SUPPORT_ETHER */ … … 722 683 723 684 cons_printf(portid, "\nIPv4\n"); 724 cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip4[NC_IP4_IN_OCTETS]); 725 cons_printf(portid, "\tåä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_IN_PACKETS]); 726 cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PACKETS]); 727 cons_printf(portid, "\tãã§ãã¯ãµã ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_CKSUM]); 728 cons_printf(portid, "\té·ãã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_SHORT]); 729 cons_printf(portid, "\tãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_VER]); 730 cons_printf(portid, "\tã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_ADDR]); 731 cons_printf(portid, "\tãããã³ã«ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PROTO]); 732 cons_printf(portid, "\tãªãã·ã§ã³å 733 ¥åæ°\t%lu\n", net_count_ip4[NC_IP4_OPTS]); 734 cons_printf(portid, "\tåå²åä¿¡æ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN]); 735 cons_printf(portid, "\tåå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_FRAGS]); 736 cons_printf(portid, "\tåå²åä¿¡åæ§ææåæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_OK]); 737 cons_printf(portid, "\tåå²åä¿¡ç ´æ£æ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_DROP]); 738 cons_printf(portid, "\tåå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]); 739 cons_printf(portid, "\tåå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_TMOUT]); 740 cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip4[NC_IP4_OUT_OCTETS]); 741 cons_printf(portid, "\téä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_OUT_PACKETS]); 742 cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_OUT_ERR_PACKETS]); 743 cons_printf(portid, "\tåå²éä¿¡æ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT]); 744 cons_printf(portid, "\tåå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]); 685 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ip4[NC_IP4_IN_OCTETS]); 686 cons_printf(portid, "\t受信データグラム数\t%lu\n", net_count_ip4[NC_IP4_IN_PACKETS]); 687 cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PACKETS]); 688 cons_printf(portid, "\tチェックサムエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_CKSUM]); 689 cons_printf(portid, "\t長さエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_SHORT]); 690 cons_printf(portid, "\tバージョンエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_VER]); 691 cons_printf(portid, "\tアドレスエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_ADDR]); 692 cons_printf(portid, "\tプロトコルエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PROTO]); 693 cons_printf(portid, "\tオプション入力数\t%lu\n", net_count_ip4[NC_IP4_OPTS]); 694 cons_printf(portid, "\t分割受信数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN]); 695 cons_printf(portid, "\t分割受信フラグメント数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_FRAGS]); 696 cons_printf(portid, "\t分割受信再構成成功数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_OK]); 697 cons_printf(portid, "\t分割受信破棄数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_DROP]); 698 cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]); 699 cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_TMOUT]); 700 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ip4[NC_IP4_OUT_OCTETS]); 701 cons_printf(portid, "\t送信データグラム数\t%lu\n", net_count_ip4[NC_IP4_OUT_PACKETS]); 702 cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n", net_count_ip4[NC_IP4_OUT_ERR_PACKETS]); 703 cons_printf(portid, "\t分割送信数\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT]); 704 cons_printf(portid, "\t分割送信フラグメント数\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]); 745 705 746 706 net_count_struct(portid, "ICMP", &net_count_icmp4); … … 751 711 752 712 cons_printf(portid, "\nIPv6\n"); 753 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip6[NC_IP6_IN_OCTETS]);754 cons_printf(portid, "\t åä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_IN_PACKETS]);755 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PACKETS]);756 cons_printf(portid, "\t é·ãã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_SHORT]);757 cons_printf(portid, "\t ãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_VER]);758 cons_printf(portid, "\t ã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_ADDR]);759 cons_printf(portid, "\t ãããã³ã«ã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PROTO]);760 cons_printf(portid, "\t åå²åä¿¡æ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN]);761 cons_printf(portid, "\t åå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_FRAGS]);762 cons_printf(portid, "\t åå²åä¿¡åæ§ææåæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_OK]);763 cons_printf(portid, "\t åå²åä¿¡ç ´æ£æ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_DROP]);764 cons_printf(portid, "\t åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]);765 cons_printf(portid, "\t åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_TMOUT]);766 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip6[NC_IP6_OUT_OCTETS]);767 cons_printf(portid, "\t éä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_OUT_PACKETS]);768 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_OUT_ERR_PACKETS]);769 cons_printf(portid, "\t åå²éä¿¡æ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT]);770 cons_printf(portid, "\t åå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]);713 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ip6[NC_IP6_IN_OCTETS]); 714 cons_printf(portid, "\t受信データグラム数\t%lu\n", net_count_ip6[NC_IP6_IN_PACKETS]); 715 cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PACKETS]); 716 cons_printf(portid, "\t長さエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_SHORT]); 717 cons_printf(portid, "\tバージョンエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_VER]); 718 cons_printf(portid, "\tアドレスエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_ADDR]); 719 cons_printf(portid, "\tプロトコルエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PROTO]); 720 cons_printf(portid, "\t分割受信数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN]); 721 cons_printf(portid, "\t分割受信フラグメント数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_FRAGS]); 722 cons_printf(portid, "\t分割受信再構成成功数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_OK]); 723 cons_printf(portid, "\t分割受信破棄数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_DROP]); 724 cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]); 725 cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_TMOUT]); 726 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ip6[NC_IP6_OUT_OCTETS]); 727 cons_printf(portid, "\t送信データグラム数\t%lu\n", net_count_ip6[NC_IP6_OUT_PACKETS]); 728 cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n", net_count_ip6[NC_IP6_OUT_ERR_PACKETS]); 729 cons_printf(portid, "\t分割送信数\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT]); 730 cons_printf(portid, "\t分割送信フラグメント数\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]); 771 731 772 732 cons_printf(portid, "\nICMPv6\n"); 773 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_OCTETS]);774 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_PACKETS]);775 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]);776 cons_printf(portid, "\t åä¿¡ããã¯ãµã ã¨ã©ã¼æ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]);777 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_OCTETS]);778 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_PACKETS]);779 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]);780 781 cons_printf(portid, "\n è¿é£æ¢ç´¢\n");782 cons_printf(portid, "\t ã«ã¼ã¿éç¥åä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_RA_IN_PACKETS]);783 cons_printf(portid, "\t ã«ã¼ã¿è¦è«éä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_RS_OUT_PACKETS]);784 cons_printf(portid, "\t è¿é£éç¥åä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NA_IN_PACKETS]);785 cons_printf(portid, "\t è¿é£éç¥éä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NA_OUT_PACKETS]);786 cons_printf(portid, "\t è¿é£è¦è«åä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NS_IN_PACKETS]);787 cons_printf(portid, "\t è¿é£è¦è«éä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NS_OUT_PACKETS]);788 cons_printf(portid, "\t éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_DAD_OUT_PACKETS]);733 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_OCTETS]); 734 cons_printf(portid, "\t受信パケット数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_PACKETS]); 735 cons_printf(portid, "\t受信エラーパケット数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]); 736 cons_printf(portid, "\t受信チックサムエラー数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]); 737 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_OCTETS]); 738 cons_printf(portid, "\t送信パケット数\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_PACKETS]); 739 cons_printf(portid, "\t送信エラーパケット数\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]); 740 741 cons_printf(portid, "\n近隣探索\n"); 742 cons_printf(portid, "\tルータ通知受信数\t%lu\n", net_count_nd6[NC_ND6_RA_IN_PACKETS]); 743 cons_printf(portid, "\tルータ要請送信数\t%lu\n", net_count_nd6[NC_ND6_RS_OUT_PACKETS]); 744 cons_printf(portid, "\t近隣通知受信数\t%lu\n", net_count_nd6[NC_ND6_NA_IN_PACKETS]); 745 cons_printf(portid, "\t近隣通知送信数\t%lu\n", net_count_nd6[NC_ND6_NA_OUT_PACKETS]); 746 cons_printf(portid, "\t近隣要請受信数\t%lu\n", net_count_nd6[NC_ND6_NS_IN_PACKETS]); 747 cons_printf(portid, "\t近隣要請送信数\t%lu\n", net_count_nd6[NC_ND6_NS_OUT_PACKETS]); 748 cons_printf(portid, "\t重複アドレス検出送信数\t%lu\n", net_count_nd6[NC_ND6_DAD_OUT_PACKETS]); 789 749 790 750 #endif /* of #if defined(SUPPORT_INET6) */ … … 793 753 794 754 cons_printf(portid, "\nTCP\n"); 795 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_OCTETS]);796 cons_printf(portid, "\t åä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_OCTETS]);797 cons_printf(portid, "\t åä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_SEGS]);798 cons_printf(portid, "\t åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_SEGS]);799 cons_printf(portid, "\t åä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_URG_SEGS]);800 cons_printf(portid, "\t åä¿¡ããããä¸æ£æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_HEADERS]);801 cons_printf(portid, "\t åä¿¡ããã§ãã¯ãµã ä¸æ£æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]);802 cons_printf(portid, "\t åä¿¡ãACK æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_ACKS]);803 cons_printf(portid, "\t åä¿¡ãå¤é ACK æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_ACKS]);804 cons_printf(portid, "\t åä¿¡ãRST æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_RSTS]);805 cons_printf(portid, "\t åä¿¡ãå¤éæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_SEGS]);806 cons_printf(portid, "\t åä¿¡ãç ´æ£æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DROP_SEGS]);807 cons_printf(portid, "\t åä¿¡ãã¥ã¼è§£æ¾æ°\t%lu\n", net_count_tcp[NC_TCP_FREE_RCV_QUEUE]);808 cons_printf(portid, "\t éä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_OCTETS]);809 cons_printf(portid, "\t éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_CNTL_SEGS]);810 cons_printf(portid, "\t éä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_SEGS]);811 cons_printf(portid, "\t åéä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]);812 cons_printf(portid, "\t éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_SEGS]);813 cons_printf(portid, "\t éä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_URG_SEGS]);814 cons_printf(portid, "\t éä¿¡ãACK æ°\t%lu\n", net_count_tcp[NC_TCP_SEND_ACKS]);815 cons_printf(portid, "\t éä¿¡ãRST æ°\t%lu\n", net_count_tcp[NC_TCP_SEND_RSTS]);816 cons_printf(portid, "\tRTT æ´æ°æ°\t%lu\n", net_count_tcp[NC_TCP_RTT_UPDATES]);817 cons_printf(portid, "\t ååãªã¼ãã³æ°\t%lu\n", net_count_tcp[NC_TCP_ACCEPTS]);818 cons_printf(portid, "\t è½åãªã¼ãã³æ°\t%lu\n", net_count_tcp[NC_TCP_CONNECTS]);755 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_tcp[NC_TCP_RECV_OCTETS]); 756 cons_printf(portid, "\t受信データオクテット数\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_OCTETS]); 757 cons_printf(portid, "\t受信セグメント数\t%lu\n", net_count_tcp[NC_TCP_RECV_SEGS]); 758 cons_printf(portid, "\t受信データセグメント数\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_SEGS]); 759 cons_printf(portid, "\t受信、緊急セグメント数\t%lu\n", net_count_tcp[NC_TCP_RECV_URG_SEGS]); 760 cons_printf(portid, "\t受信、ヘッダ不正数\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_HEADERS]); 761 cons_printf(portid, "\t受信、チェックサム不正数\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]); 762 cons_printf(portid, "\t受信、ACK 数\t%lu\n", net_count_tcp[NC_TCP_RECV_ACKS]); 763 cons_printf(portid, "\t受信、多重 ACK 数\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_ACKS]); 764 cons_printf(portid, "\t受信、RST 数\t%lu\n", net_count_tcp[NC_TCP_RECV_RSTS]); 765 cons_printf(portid, "\t受信、多重数\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_SEGS]); 766 cons_printf(portid, "\t受信、破棄数\t%lu\n", net_count_tcp[NC_TCP_RECV_DROP_SEGS]); 767 cons_printf(portid, "\t受信キュー解放数\t%lu\n", net_count_tcp[NC_TCP_FREE_RCV_QUEUE]); 768 cons_printf(portid, "\t送信データオクテット数\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_OCTETS]); 769 cons_printf(portid, "\t送信制御セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_CNTL_SEGS]); 770 cons_printf(portid, "\t送信セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_SEGS]); 771 cons_printf(portid, "\t再送信セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]); 772 cons_printf(portid, "\t送信データセグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_SEGS]); 773 cons_printf(portid, "\t送信、緊急セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_URG_SEGS]); 774 cons_printf(portid, "\t送信、ACK 数\t%lu\n", net_count_tcp[NC_TCP_SEND_ACKS]); 775 cons_printf(portid, "\t送信、RST 数\t%lu\n", net_count_tcp[NC_TCP_SEND_RSTS]); 776 cons_printf(portid, "\tRTT 更新数\t%lu\n", net_count_tcp[NC_TCP_RTT_UPDATES]); 777 cons_printf(portid, "\t受動オープン数\t%lu\n", net_count_tcp[NC_TCP_ACCEPTS]); 778 cons_printf(portid, "\t能動オープン数\t%lu\n", net_count_tcp[NC_TCP_CONNECTS]); 819 779 820 780 #endif /* of #ifdef SUPPORT_TCP */ … … 827 787 828 788 tbl = nbuf_get_tbl(); 829 cons_printf(portid, "\n ãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");789 cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n"); 830 790 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) { 831 791 cons_printf(portid, "\t%lu\t%lu\t%lu\t%lu\t%lu\n", … … 837 797 } 838 798 839 cons_printf(portid, "\nãããã¯ã¼ã¯çµ±è¨æ 840 å ±\tçµéæé[ms]\t%lu\t", now); 799 cons_printf(portid, "\nネットワーク統計情報\t経過時間[ms]\t%lu\t", now); 841 800 if (now > (1000 * 3600 * 24)) 842 cons_printf(portid, "%3lu æ¥ %2luæé %2luå %2luç§\n",801 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n", 843 802 now / (1000 * 3600 * 24), 844 803 (now / (1000 * 3600)) % 24, … … 846 805 (now / 1000 ) % 60); 847 806 else 848 cons_printf(portid, "%2lu æé %2luå %2luç§\n",807 cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n", 849 808 (now / (1000 * 3600)) % 24, 850 809 (now / (1000 * 60 )) % 60, … … 860 819 861 820 /* 862 * nbuf_stat_ip4_frag_queue -- IPv4 åæ§æãã¥ã¼å 863 ãããã¯ã¼ã¯ãããã¡æ 864 å ± 821 * nbuf_stat_ip4_frag_queue -- IPv4 再構成キュー内ネットワークバッファ情報 865 822 */ 866 823 … … 872 829 int_t ix, fix, count; 873 830 874 cons_printf(portid, "\nIPv4åæ§æãã¥ã¼å 875 \nIndex\tTime"); 831 cons_printf(portid, "\nIPv4再構成キュー内\nIndex\tTime"); 876 832 tbl = nbuf_get_tbl(); 877 833 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) … … 904 860 905 861 /* 906 * nbuf_stat_ip6_frag_queue -- IPv6 åæ§æãã¥ã¼å 907 ãããã¯ã¼ã¯ãããã¡æ 908 å ± 862 * nbuf_stat_ip6_frag_queue -- IPv6 再構成キュー内ネットワークバッファ情報 909 863 */ 910 864 … … 916 870 int_t ix, fix, count; 917 871 918 cons_printf(portid, "\nIPv6åæ§æãã¥ã¼å 919 \nIndex\tTime"); 872 cons_printf(portid, "\nIPv6再構成キュー内\nIndex\tTime"); 920 873 tbl = nbuf_get_tbl(); 921 874 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) … … 946 899 947 900 /* 948 * nbuf_status -- ãããã¯ã¼ã¯ãããã¡æ 949 å ± 901 * nbuf_status -- ネットワークバッファ情報 950 902 */ 951 903 … … 973 925 WAI_NET_CONS_PRINTF(); 974 926 get_tim(&now); 975 cons_printf(portid, "ãããã¯ã¼ã¯ãããã¡æ 976 å ±\tçµéæé[ms]\t%lu\n", now); 927 cons_printf(portid, "ネットワークバッファ情報\t経過時間[ms]\t%lu\n", now); 977 928 978 929 #if NET_COUNT_ENABLE 979 930 980 cons_printf(portid, "\n ãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");931 cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n"); 981 932 tbl = nbuf_get_tbl(); 982 933 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) { … … 993 944 #ifdef SUPPORT_TCP 994 945 995 cons_printf(portid, "\nCEPå 996 \nCEPID\n"); 946 cons_printf(portid, "\nCEP内\nCEPID\n"); 997 947 998 948 for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) { … … 1063 1013 1064 1014 /* 1065 * routing_table_status -- çµè·¯è¡¨ã®åºå1015 * routing_table_status -- 経路表の出力 1066 1016 */ 1067 1017 … … 1120 1070 1121 1071 /* 1122 * defrtrlist_status -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãç¶æ 1123 ã®åºå 1072 * defrtrlist_status -- ディフォルトルータ・リスト状態の出力 1124 1073 */ 1125 1074 … … 1140 1089 cons_printf(portid, " IP Address\n"); 1141 1090 1142 /* expire ã®åä½ã¯ [ms]ã*/1091 /* expire の単位は [ms]。*/ 1143 1092 get_tim(&now); 1144 1093 dr = nd6_get_drl(&count); … … 1184 1133 1185 1134 /* 1186 * prefixlist_status -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãç¶æ 1187 ã®åºå 1135 * prefixlist_status -- プレフィックス・リスト状態の出力 1188 1136 */ 1189 1137 … … 1204 1152 cons_printf(portid, " Len Prefix\n"); 1205 1153 1206 /* expire ã®åä½ã¯ [s]ã*/1154 /* expire の単位は [s]。*/ 1207 1155 get_tim(&now); 1208 1156 now /= SYSTIM_HZ; … … 1253 1201 1254 1202 /* 1255 * routing_table_status -- çµè·¯è¡¨ã®åºå1203 * routing_table_status -- 経路表の出力 1256 1204 */ 1257 1205 … … 1276 1224 } 1277 1225 1278 /* expire ã®åä½ã¯ [s]ã*/1226 /* expire の単位は [s]。*/ 1279 1227 get_tim(&now); 1280 1228 now /= SYSTIM_HZ; … … 1302 1250 1303 1251 /* 1304 * routing_status -- ã«ã¼ãã£ã³ã°æ 1305 å ± 1252 * routing_status -- ルーティング情報 1306 1253 */ 1307 1254 … … 1315 1262 #if NUM_ND6_DEF_RTR_ENTRY > 0 1316 1263 1317 case 'l': /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãæ 1318 å ± */ 1264 case 'l': /* ディフォルトルータ・リスト情報 */ 1319 1265 defrtrlist_status(portid, line + 1); 1320 1266 break; 1321 1267 1322 case 'p': /* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãæ 1323 å ± */ 1268 case 'p': /* プレフィックス・リスト情報 */ 1324 1269 prefixlist_status(portid, line + 1); 1325 1270 break; … … 1329 1274 #endif /* of #if defined(SUPPORT_INET6) */ 1330 1275 1331 default: /* ã«ã¼ãã£ã³ã°è¡¨æ 1332 å ± */ 1276 default: /* ルーティング表情報 */ 1333 1277 routing_table_status(portid, line); 1334 1278 break; … … 1341 1285 1342 1286 /* 1343 * network_status -- ãããã¯ã¼ã¯ã®ç¶æ 1344 ã®åºå 1287 * network_status -- ネットワークの状態の出力 1345 1288 */ 1346 1289 … … 1352 1295 #ifdef SUPPORT_ETHER 1353 1296 1354 case 'a': /* IF ã¢ãã¬ã¹æ 1355 å ± */ 1297 case 'a': /* IF アドレス情報 */ 1356 1298 ifa_status(portid, line + 1); 1357 1299 break; … … 1359 1301 #endif /* of #ifdef SUPPORT_ETHER */ 1360 1302 1361 case 'b': /* ãããã¯ã¼ã¯ãããã¡æ 1362 å ± */ 1303 case 'b': /* ネットワークバッファ情報 */ 1363 1304 nbuf_status(portid, line + 1); 1364 1305 break; … … 1366 1307 #if NET_COUNT_ENABLE 1367 1308 1368 case 'c': /* ãããã¯ã¼ã¯çµ±è¨æ 1369 å ± */ 1309 case 'c': /* ネットワーク統計情報 */ 1370 1310 net_count(portid, line + 1); 1371 1311 break; … … 1375 1315 #if NUM_ROUTE_ENTRY > 0 1376 1316 1377 case 'r': /* ã«ã¼ãã£ã³ã°æ 1378 å ± */ 1317 case 'r': /* ルーティング情報 */ 1379 1318 routing_status(portid, line + 1); 1380 1319 break; … … 1409 1348 1410 1349 /* 1411 * ifconfig -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ§ææ 1412 å ± 1350 * ifconfig -- ネットワークインタフェースの構成情報 1413 1351 */ 1414 1352 … … 1458 1396 1459 1397 /* 1460 * ifconfig -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ§ææ 1461 å ± 1398 * ifconfig -- ネットワークインタフェースの構成情報 1462 1399 */ 1463 1400 … … 1477 1414 ic->ifaddr.lladdr); 1478 1415 1479 /* expire 㨠vltime ã®åä½ã¯ [s]ã*/1416 /* expire と vltime の単位は [s]。*/ 1480 1417 get_tim(&now); 1481 1418 now /= SYSTIM_HZ; … … 1515 1452 1516 1453 /* 1517 * show_config -- ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³è¨å®ã®è¡¨ç¤º1454 * show_config -- コンフィギュレーション設定の表示 1518 1455 */ 1519 1456 … … 1918 1855 1919 1856 /* 1920 * ãããã°ã³ãã³ã解æ1857 * デバッグコマンド解析 1921 1858 */ 1922 1859 … … 2323 2260 2324 2261 /* 2325 * ãããã°ã³ã³ã½ã¼ã«ã¿ã¹ã¯2262 * デバッグコンソールタスク 2326 2263 */ 2327 2264 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã°ã³ã³ã½ã¼ã«ã®ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * デバッグコンソールのフィギュレーションファイル 48 36 */ 49 37 50 38 #ifdef USE_DBG_CONS 51 39 52 /* ã¿ã¹ã¯*/40 /* タスク */ 53 41 54 42 CRE_TSK(DBG_CON_TASK, { -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * ã³ã³ã½ã¼ã«38 * コンソール 51 39 */ 52 40 53 #define DBG_CON_STACK_SIZE 1024 /* ã³ã³ã½ã¼ã«ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 54 #define DBG_CON_PRIORITY 5 /* ã³ã³ã½ã¼ã«ã¿ã¹ã¯ã®åªå 55 度 */ 41 #define DBG_CON_STACK_SIZE 1024 /* コンソールタスクのスタックサイズ */ 42 #define DBG_CON_PRIORITY 5 /* コンソールタスクの優先度 */ 56 43 57 44 /* 58 * ã¿ã¹ã¯45 * タスク 59 46 */ 60 47 … … 62 49 63 50 /* 64 * é¢æ°51 * 関数 65 52 */ 66 53 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/discard.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * DISCARD ãµã¼ãã»ã¯ã©ã¤ã¢ã³ãã®ã¹ã¿ãã¯ãµã¤ãº38 * DISCARD サーバ・クライアントのスタックサイズ 51 39 */ 52 40 53 #define TCP_DISCARD_SRV_STACK_SIZE 1024 /* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/54 #define TCP_DISCARD_CLI_STACK_SIZE 1024 /* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/55 #define UDP_DISCARD_CLI_STACK_SIZE 1024 /* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/41 #define TCP_DISCARD_SRV_STACK_SIZE 1024 /* TCP DISCARD サーバタスクのスタックサイズ */ 42 #define TCP_DISCARD_CLI_STACK_SIZE 1024 /* TCP DISCARD クライアントタスクのスタックサイズ */ 43 #define UDP_DISCARD_CLI_STACK_SIZE 1024 /* UDP DISCARD クライアントタスクのスタックサイズ */ 56 44 57 45 /* 58 * DISCARD ãµã¼ãã»ã¯ã©ã¤ã¢ã³ãã®åªå 59 度 46 * DISCARD サーバ・クライアントの優先度 60 47 */ 61 48 62 #define TCP_DISCARD_SRV_MAIN_PRIORITY 5 /* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®åªå 63 度 */ 64 #define TCP_DISCARD_CLI_MAIN_PRIORITY 5 /* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå 65 度 */ 66 #define UDP_DISCARD_CLI_MAIN_PRIORITY 5 /* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå 67 度 */ 49 #define TCP_DISCARD_SRV_MAIN_PRIORITY 5 /* TCP DISCARD サーバタスクの優先度 */ 50 #define TCP_DISCARD_CLI_MAIN_PRIORITY 5 /* TCP DISCARD クライアントタスクの優先度 */ 51 #define UDP_DISCARD_CLI_MAIN_PRIORITY 5 /* UDP DISCARD クライアントタスクの優先度 */ 68 52 69 53 /* 70 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº54 * TCP 送受信ウインドバッファサイズ 71 55 */ 72 56 … … 95 79 96 80 /* 97 * å¤æ°81 * 変数 98 82 */ 99 83 … … 101 85 extern bool_t udp_discard_cli_valid; 102 86 103 /* TCP éåä¿¡ãããã¡*/87 /* TCP 送受信バッファ */ 104 88 105 89 extern uint8_t tcp_discard_cli_swbuf[]; … … 110 94 111 95 /* 112 * ã¿ã¹ã¯96 * タスク 113 97 */ 114 98 … … 119 103 120 104 /* 121 * é¢æ°105 * 関数 122 106 */ 123 107 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/echo.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * ECHO ã¯ã©ã¤ã¢ã³ãã»ãµã¼ãã®ã¹ã¿ãã¯ãµã¤ãº38 * ECHO クライアント・サーバのスタックサイズ 51 39 */ 52 40 53 #define TCP_ECHO_SRV_STACK_SIZE 1024 /* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/41 #define TCP_ECHO_SRV_STACK_SIZE 1024 /* TCP ECHO サーバタスクのスタックサイズ */ 54 42 55 43 #ifdef TOPPERS_S810_CLG3_85 56 #define TCP_ECHO_CLI_RCV_STACK_SIZE 512 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/57 #define TCP_ECHO_CLI_SND_STACK_SIZE 512 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/44 #define TCP_ECHO_CLI_RCV_STACK_SIZE 512 /* TCP ECHO クライアント受信タスクのスタックサイズ */ 45 #define TCP_ECHO_CLI_SND_STACK_SIZE 512 /* TCP ECHO クライアント送信タスクのスタックサイズ */ 58 46 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 59 #define TCP_ECHO_CLI_RCV_STACK_SIZE 1024 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/60 #define TCP_ECHO_CLI_SND_STACK_SIZE 1024 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/47 #define TCP_ECHO_CLI_RCV_STACK_SIZE 1024 /* TCP ECHO クライアント受信タスクのスタックサイズ */ 48 #define TCP_ECHO_CLI_SND_STACK_SIZE 1024 /* TCP ECHO クライアント送信タスクのスタックサイズ */ 61 49 #endif /* of #ifdef TOPPERS_S810_CLG3_85 */ 62 50 63 #define UDP_ECHO_SRV_STACK_SIZE 1024 /* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/64 #define UDP_ECHO_CLI_STACK_SIZE 1024 /* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/51 #define UDP_ECHO_SRV_STACK_SIZE 1024 /* UDP ECHO サーバタスクのスタックサイズ */ 52 #define UDP_ECHO_CLI_STACK_SIZE 1024 /* UDP ECHO クライアントタスクのスタックサイズ */ 65 53 66 54 /* 67 * ECHO ã¯ã©ã¤ã¢ã³ãã»ãµã¼ãã®åªå 68 度 55 * ECHO クライアント・サーバの優先度 69 56 */ 70 57 71 #define TCP_ECHO_SRV_MAIN_PRIORITY 5 /* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå 72 度 */ 73 #define TCP_ECHO_CLI_RCV_MAIN_PRIORITY 5 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®åªå 74 度 */ 75 #define TCP_ECHO_CLI_SND_MAIN_PRIORITY 5 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®åªå 76 度 */ 58 #define TCP_ECHO_SRV_MAIN_PRIORITY 5 /* TCP ECHO サーバタスクの優先度 */ 59 #define TCP_ECHO_CLI_RCV_MAIN_PRIORITY 5 /* TCP ECHO クライアント受信タスクの優先度 */ 60 #define TCP_ECHO_CLI_SND_MAIN_PRIORITY 5 /* TCP ECHO クライアント送信タスクの優先度 */ 77 61 78 #define UDP_ECHO_SRV_MAIN_PRIORITY 5 /* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå 79 度 */ 80 #define UDP_ECHO_CLI_MAIN_PRIORITY 5 /* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå 81 度 */ 62 #define UDP_ECHO_SRV_MAIN_PRIORITY 5 /* UDP ECHO サーバタスクの優先度 */ 63 #define UDP_ECHO_CLI_MAIN_PRIORITY 5 /* UDP ECHO クライアントタスクの優先度 */ 82 64 83 65 /* 84 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº66 * TCP 送受信ウインドバッファサイズ 85 67 */ 86 68 … … 118 100 119 101 /* 120 * ã¿ã¹ã¯æ°102 * タスク数 121 103 */ 122 104 … … 129 111 130 112 /* 131 * å¤æ°113 * 変数 132 114 */ 133 115 … … 135 117 extern bool_t udp_echo_cli_valid; 136 118 137 /* TCP éåä¿¡ãããã¡*/119 /* TCP 送受信バッファ */ 138 120 139 121 extern uint8_t tcp_echo_cli_swbuf[]; … … 148 130 149 131 /* 150 * ã¿ã¹ã¯132 * タスク 151 133 */ 152 134 … … 161 143 162 144 /* 163 * é¢æ°145 * 関数 164 146 */ 165 147 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å 48 ¥åºå 35 * ネットワーク経由コンソール入出力 49 36 */ 50 37 … … 92 79 93 80 /* 94 * ãã¯ãå®ç¾©95 */ 96 97 /* ãªãã¼ã ã®è§£é¤*/81 * マクロ定義 82 */ 83 84 /* リネームの解除 */ 98 85 99 86 #undef syslog … … 103 90 #define EOF (-1) 104 91 105 /* TELNET ãªãã·ã§ã³*/92 /* TELNET オプション */ 106 93 107 94 #define TELNET_OPT_SE (240) … … 123 110 124 111 /* 125 * å¤æ°126 */ 127 128 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/112 * 変数 113 */ 114 115 /* TCP 送受信ウィンドバッファ */ 129 116 130 117 uint8_t net_cons_swbuf[NET_CONS_SWBUF_SIZE]; 131 118 uint8_t net_cons_rwbuf[NET_CONS_RWBUF_SIZE]; 132 119 133 bool_t connected = false; /* ã³ãã¯ã·ã§ã³ã®ç¶æ 134 */ 135 bool_t wait_accept = false; /* æ¥ç¶è¦æ±å¾ 136 ã¡ä¸ */ 120 bool_t connected = false; /* コネクションの状態 */ 121 bool_t wait_accept = false; /* 接続要求待ち中 */ 137 122 138 123 #if defined(SUPPORT_INET4) … … 157 142 158 143 /* 159 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°144 * ノンブロッキングコールのコールバック関数 160 145 */ 161 146 … … 196 181 197 182 /* 198 * éä¿¡ãããã¡ã®ãã©ãã·ã¥183 * 送信バッファのフラッシュ 199 184 */ 200 185 … … 218 203 219 204 /* 220 * æåéä¿¡205 * 文字送信 221 206 */ 222 207 … … 255 240 256 241 /* 257 * æååä¿¡ï¼å¤æãªãï¼242 * 文字受信(変換なし) 258 243 */ 259 244 … … 292 277 293 278 /* 294 * æååä¿¡ï¼TELNET ãªãã·ã§ã³ãã¹ãããï¼279 * 文字受信(TELNET オプションをスキップ) 295 280 */ 296 281 … … 356 341 357 342 /* 358 * ã³ãã¯ã·ã§ã³ãåæ343 * コネクションを切断 359 344 */ 360 345 … … 388 373 389 374 /* 390 * ã·ãªã¢ã«ãã¼ãã®å¶å¾¡375 * シリアルポートの制御 391 376 */ 392 377 … … 399 384 400 385 /* 401 * ãã°åºå386 * ログ出力 402 387 */ 403 388 … … 420 405 va_start(ap, format); 421 406 while ((ch = *format ++) != '\0') { 422 if (ch != '%') { /* æ¸å¼æå®ä»¥å¤*/407 if (ch != '%') { /* 書式指定以外 */ 423 408 cons_putchar(CONSOLE_PORTID, (char)ch); 424 409 continue; … … 429 414 padchar = ' '; 430 415 431 if (ch == '-') { /* 左詰ã*/416 if (ch == '-') { /* 左詰め */ 432 417 format ++; 433 418 left = -1; … … 436 421 left = 1; 437 422 438 if ((ch = *format ++) == '0') { /* ä¸ä½æ¡ã®0 */423 if ((ch = *format ++) == '0') { /* 上位桁の 0 */ 439 424 padchar = '0'; 440 425 ch = *format ++; 441 426 } 442 427 443 while ('0' <= ch && ch <= '9') { /* åºåå¹ 444 */ 428 while ('0' <= ch && ch <= '9') { /* 出力幅 */ 445 429 width = width * 10 + ch - '0'; 446 430 ch = *format ++; 447 431 } 448 432 449 while (ch == 'l') { /* long (long) ã®æå®*/433 while (ch == 'l') { /* long (long) の指定 */ 450 434 longflag = true; 451 435 ch = *format ++; … … 555 539 } 556 540 557 while (ch == 'l') { /* long (long) ã®æå®*/541 while (ch == 'l') { /* long (long) の指定 */ 558 542 longflag = true; 559 543 ch = *format ++; -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å 48 ¥åºå 49 * ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 35 * ネットワーク経由コンソール入出力 36 * システムコンフィギュレーションファイル 50 37 */ 51 38 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å 48 ¥åºå 35 * ネットワーク経由コンソール入出力 49 36 */ 50 37 51 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº*/38 /* TCP 送受信ウィンドバッファサイズ */ 52 39 53 40 #define NET_CONS_SWBUF_SIZE 512 … … 56 43 #ifndef _MACRO_ONLY 57 44 58 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/45 /* TCP 送受信ウィンドバッファ */ 59 46 60 47 extern uint8_t net_cons_swbuf[]; 61 48 extern uint8_t net_cons_rwbuf[]; 62 49 63 /* ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°*/50 /* ノンブロッキングコールのコールバック関数 */ 64 51 65 52 extern ER callback_nblk_net_cons(ID cepid, FN fncd, void *p_parblk); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * IPv4 㨠IPv6 ã®åæããã¯ã38 * IPv4 と IPv6 の切換えマクロ 51 39 */ 52 40 … … 60 48 61 49 /* 62 * ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·50 * コンソールに用いるシリアルポート番号 63 51 */ 64 52 … … 70 58 71 59 /* 72 * æ°å¤å¤æã®ããã®å¤æ表60 * 数値変換のための変換表 73 61 */ 74 62 … … 77 65 78 66 /* 79 * é¢æ°67 * 関数 80 68 */ 81 69 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã¯ã¼ã¯å¿ç¨ããã°ã©ã ãµãã¼ãã«ã¼ãã³35 * ネットワーク応用プログラムサポートルーチン 48 36 */ 49 37 … … 84 72 85 73 /* 86 * ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºåã©ã¤ãã©ãª74 * シリアルポートへの書式付文字列出力ライブラリ 87 75 */ 88 76 … … 90 78 91 79 /* 92 * æ°å¤å¤æã®ããã®å¤æ表80 * 数値変換のための変換表 93 81 */ 94 82 … … 99 87 100 88 /* 101 * cons_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æååºå89 * cons_putchar -- シリアルポートへの文字出力 102 90 */ 103 91 … … 109 97 110 98 /* 111 * cons_getchar -- ã·ãªã¢ã«ãã¼ãããã®æåå 112 ¥å 99 * cons_getchar -- シリアルポートからの文字入力 113 100 */ 114 101 … … 127 114 128 115 /* 129 * cons_putnumber -- cons_printf ã®æ°å¤å¤æ116 * cons_putnumber -- cons_printf の数値変換 130 117 */ 131 118 … … 160 147 161 148 pad = ix; 162 if (!left) /* å³è©°ã*/149 if (!left) /* 右詰め */ 163 150 for ( ; pad < width; pad ++) 164 151 cons_putchar(portid, padchar); … … 167 154 cons_putchar(portid, digits[ix]); 168 155 169 if (left) /* 左詰ã*/156 if (left) /* 左詰め */ 170 157 for ( ; pad < width; pad ++) 171 158 cons_putchar(portid, padchar); … … 177 164 178 165 /* 179 * put_ipv4addr -- IPv4 ã¢ãã¬ã¹åºå166 * put_ipv4addr -- IPv4 アドレス出力 180 167 */ 181 168 … … 183 170 put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width) 184 171 { 185 int_t len = 3; /* 3 㯠'.' ã®æåæ°*/172 int_t len = 3; /* 3 は '.' の文字数 */ 186 173 187 174 len += cons_putnumber(portid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); … … 206 193 207 194 /* 208 * ipv6addr -- IPv6 ã¢ãã¬ã¹åºå195 * ipv6addr -- IPv6 アドレス出力 209 196 */ 210 197 … … 258 245 259 246 /* 260 * put_macaddr -- MAC ã¢ãã¬ã¹åºå247 * put_macaddr -- MAC アドレス出力 261 248 */ 262 249 … … 279 266 280 267 /* 281 * cons_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºå268 * cons_printf -- シリアルポートへの書式付文字列出力 282 269 */ 283 270 … … 296 283 va_start(ap, fmt); 297 284 while ((ch = *fmt ++) != '\0') { 298 if (ch != '%') { /* æ¸å¼æå®ä»¥å¤*/285 if (ch != '%') { /* 書式指定以外 */ 299 286 cons_putchar(portid, (char)ch); 300 287 continue; … … 304 291 padchar = ' '; 305 292 306 if (ch == '-') { /* 左詰ã*/293 if (ch == '-') { /* 左詰め */ 307 294 fmt ++; 308 295 left = -1; … … 311 298 left = 1; 312 299 313 if ((ch = *fmt ++) == '0') { /* ä¸ä½æ¡ã®0 */300 if ((ch = *fmt ++) == '0') { /* 上位桁の 0 */ 314 301 padchar = '0'; 315 302 ch = *fmt ++; 316 303 } 317 304 318 while ('0' <= ch && ch <= '9') { /* åºåå¹ 319 */ 305 while ('0' <= ch && ch <= '9') { /* 出力幅 */ 320 306 width = width * 10 + ch - '0'; 321 307 ch = *fmt ++; 322 308 } 323 309 324 while (ch == 'l') { /* long (long) ã®æå®*/310 while (ch == 'l') { /* long (long) の指定 */ 325 311 longflag ++; 326 312 ch = *fmt ++; … … 410 396 411 397 /* 412 * skip_blanks -- 空ç½ã¨ TAB ãã¹ãããããã398 * skip_blanks -- 空白と TAB をスキップする。 413 399 */ 414 400 … … 422 408 423 409 /* 424 * get_ipv4addr -- æååã® IPv4 ã¢ãã¬ã¹ã T_IN4_ADDR å¤ã«å¤æããã410 * get_ipv4addr -- 文字列の IPv4 アドレスを T_IN4_ADDR 値に変換する。 425 411 */ 426 412 … … 445 431 446 432 /* 447 * get_ipv6addr -- æååã® IPv6 ã¢ãã¬ã¹ã T_IN6_ADDR å¤ã«å¤æããã433 * get_ipv6addr -- 文字列の IPv6 アドレスを T_IN6_ADDR 値に変換する。 448 434 */ 449 435 … … 491 477 492 478 /* 493 * ãããã°è¡å 494 ¥å 479 * デバッグ行入力 495 480 */ 496 481 … … 524 509 525 510 /* 526 * get_int -- æ´æ°å¤æ511 * get_int -- 整数変換 527 512 */ 528 513 … … 552 537 553 538 /* 554 * get_xuint -- 符å·ãªãæ´æ° (16é²) å¤æ539 * get_xuint -- 符号なし整数 (16進) 変換 555 540 */ 556 541 … … 606 591 607 592 /* 608 * alloc_tcp_rep -- TCP åä»å£ãç²å¾ããã593 * alloc_tcp_rep -- TCP 受付口を獲得する。 609 594 */ 610 595 … … 632 617 633 618 /* 634 * free_tcp_rep -- TCP åä»å£ã解æ¾ããã619 * free_tcp_rep -- TCP 受付口を解放する。 635 620 */ 636 621 … … 656 641 657 642 /* 658 * alloc_tcp_cep -- TCP é信端ç¹ãç²å¾ããã643 * alloc_tcp_cep -- TCP 通信端点を獲得する。 659 644 */ 660 645 … … 682 667 683 668 /* 684 * free_tcp_cep -- TCP é信端ç¹ã解æ¾ããã669 * free_tcp_cep -- TCP 通信端点を解放する。 685 670 */ 686 671 … … 719 704 720 705 /* 721 * alloc_udp_cep -- UDP é信端ç¹ãç²å¾ããã706 * alloc_udp_cep -- UDP 通信端点を獲得する。 722 707 */ 723 708 … … 745 730 746 731 /* 747 * free_udp_cep -- UDP é信端ç¹ã解æ¾ããã732 * free_udp_cep -- UDP 通信端点を解放する。 748 733 */ 749 734 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³å 48 ±é 49 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 35 * サンプルアプリケーション共通 36 * コンフィギュレーションファイル 50 37 */ 51 38 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * ãã¯ãå®ç¾©38 * マクロ定義 51 39 */ 52 40 … … 60 48 61 49 /* 62 * ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å 63 ¥åºå 50 * ネットワーク経由コンソール入出力 64 51 */ 65 52 66 53 #ifdef USE_NET_CONS 67 54 68 /* ãªãã¼ã*/55 /* リネーム */ 69 56 70 57 #define syslog net_syslog 71 58 #define serial_ctl_por net_serial_ctl_por 72 59 73 /* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã*/60 /* 関数シミュレーションマクロ */ 74 61 75 62 #define FLUSH_SND_BUFF() flush_snd_buff() … … 79 66 #else /* of #ifdef USE_NET_CONS */ 80 67 81 /* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã*/68 /* 関数シミュレーションマクロ */ 82 69 83 70 #define FLUSH_SND_BUFF() … … 88 75 89 76 /* 90 * é¢æ°77 * 関数 91 78 */ 92 79 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ping -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã35 * ping -- ICMP ECHO メッセージを送信する。 48 36 */ 49 37 … … 87 75 88 76 /* 89 * å¤æ°77 * 変数 90 78 */ 91 79 … … 96 84 97 85 /* 98 * icmp_reply_timeout -- ICMP REPLY ã¿ã¤ã ã¢ã¦ãå¦ç86 * icmp_reply_timeout -- ICMP REPLY タイムアウト処理 99 87 */ 100 88 … … 106 94 107 95 /* 108 * icmp_echo_reply -- ICMP ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã96 * icmp_echo_reply -- ICMP ECHO REPLY メッセージを処理する。 109 97 */ 110 98 … … 121 109 122 110 /* 123 * ping4 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã111 * ping4 -- ICMP ECHO メッセージを送信する。 124 112 */ 125 113 … … 132 120 int_t ix; 133 121 134 /* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/122 /* 送信用の IP データグラムを獲得する。*/ 135 123 if (in4_get_datagram(&output, ICMP4_HDR_SIZE + len, 0, 136 124 addr, NULL, IPPROTO_ICMP, … … 138 126 return; 139 127 140 /* ICMP ããããè¨å®ããã*/128 /* ICMP ヘッダを設定する。*/ 141 129 icmp4h = GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET); 142 130 icmp4h->type = ICMP4_ECHO_REQUEST; … … 145 133 icmp4h->data.id_seq.seq = 0; 146 134 147 /* ãã¼ã¿ãè¨å®ããã*/135 /* データを設定する。*/ 148 136 sdu = GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + len; 149 137 for (ix = len; ix -- > 0; ) 150 138 *-- sdu = ('0' + icmp_id + ix) & 0xff; 151 139 152 /* ãã§ãã¯ãµã ãè¨ç®ããã*/140 /* チェックサムを計算する。*/ 153 141 icmp4h->sum = 0; 154 142 icmp4h->sum = in_cksum(icmp4h, ICMP4_HDR_SIZE + len); 155 143 156 /* å¿çãã§ãã¯ç¨ã®å¤æ°ãè¨å®ããã*/144 /* 応答チェック用の変数を設定する。*/ 157 145 curr_icmp_id = icmp_id ++; 158 146 curr_icmp_len = len; … … 161 149 NET_COUNT_MIB(icmp_stats.icmpOutEchos, 1); 162 150 163 /* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨å®ããã*/151 /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/ 164 152 ip_output(output, TMO_FEVR); 165 153 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ping6 -- ICMPv6 ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã35 * ping6 -- ICMPv6 ECHO メッセージを送信する。 48 36 */ 49 37 … … 93 81 94 82 /* 95 * å¤æ°83 * 変数 96 84 */ 97 85 … … 103 91 104 92 /* 105 * icmp6_reply_timeout -- ICMP6 REPLY ã¿ã¤ã ã¢ã¦ãå¦ç93 * icmp6_reply_timeout -- ICMP6 REPLY タイムアウト処理 106 94 */ 107 95 … … 114 102 115 103 /* 116 * icmp6_echo_reply -- ICMP6 ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã104 * icmp6_echo_reply -- ICMP6 ECHO REPLY メッセージを処理する。 117 105 */ 118 106 … … 133 121 134 122 /* 135 * ping6 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã123 * ping6 -- ICMP ECHO メッセージを送信する。 136 124 */ 137 125 … … 148 136 149 137 /* 150 * å®å 151 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 152 ã¢ãã¬ã¹ãã 153 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 138 * 宛先アドレスにふさわしい送信元アドレスを、 139 * ネットワークインタフェースから探索して利用する。 154 140 */ 155 141 if ((ia = in6_ifawithifp(ifp, addr)) == NULL) … … 159 145 ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_DEFHLIM); 160 146 161 /* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/147 /* 送信用の IP データグラムを獲得する。*/ 162 148 if (in6_get_datagram(&output, ICMP6_HDR_SIZE + size, 0, 163 149 addr, &ia->addr, IPPROTO_ICMPV6, … … 165 151 return; 166 152 167 /* ICMP ããããè¨å®ããã*/153 /* ICMP ヘッダを設定する。*/ 168 154 icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET); 169 155 icmp6h->type = ICMP6_ECHO_REQUEST; … … 172 158 icmp6h->icmp6_seq= 0; 173 159 174 /* ãã¼ã¿ãè¨å®ããã*/160 /* データを設定する。*/ 175 161 sdu = GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET) + size; 176 162 for (ix = size; ix -- > 0; ) 177 163 *-- sdu = ('0' + send_icmp6_id + ix) & 0xff; 178 164 179 /* ãã§ãã¯ãµã ãè¨ç®ããã*/165 /* チェックサムを計算する。*/ 180 166 icmp6h->sum = 0; 181 167 icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, 182 168 (uint8_t*)icmp6h - output->buf, ICMP6_HDR_SIZE + size); 183 169 184 /* å¿çãã§ãã¯ç¨ã®å¤æ°ãè¨å®ããã*/170 /* 応答チェック用の変数を設定する。*/ 185 171 curr_icmp6_id = send_icmp6_id ++; 186 172 curr_icmp6_size = size; … … 192 178 ipv62str(NULL, addr), ipv62str(NULL, &ia->addr)); 193 179 194 /* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨å®ããã*/180 /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/ 195 181 ip6_output(output, ipflags, TMO_FEVR); 196 182 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP DISCARD ã¯ã©ã¤ã¢ã³ã35 * TCP DISCARD クライアント 48 36 * 49 * ã»ãã³ããããã³ã°ã³ã¼ã«50 * ã»IPv451 * ã»IPv637 * ・ノンブロッキングコール 38 * ・IPv4 39 * ・IPv6 52 40 */ 53 41 … … 93 81 #ifdef USE_TCP_DISCARD_CLI 94 82 95 /* discard ãµã¼ãã®ãã¼ãçªå·*/83 /* discard サーバのポート番号 */ 96 84 97 85 #define DISCARD_SRV_PORTNO UINT_C(9) 98 86 99 /* 表示*/87 /* 表示 */ 100 88 101 89 /*#define SHOW_RCV_RANGE*/ 102 90 103 91 /* 104 * ãããã¡ãµã¤ãºã®å®ç¾©92 * バッファサイズの定義 105 93 */ 106 94 … … 112 100 113 101 /* 114 * å 115 ¨åå¤æ° 102 * 全域変数 116 103 */ 117 104 118 105 bool_t tcp_discard_cli_valid; 119 106 120 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/107 /* TCP 送受信ウィンドバッファ */ 121 108 122 109 #ifndef TCP_CFG_SWBUF_CSAVE_ONLY … … 127 114 128 115 /* 129 * å¤æ°116 * 変数 130 117 */ 131 118 … … 138 125 139 126 /* 140 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°127 * ノンブロッキングコールのコールバック関数 141 128 */ 142 129 … … 172 159 173 160 /* 174 * send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã161 * send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。 175 162 */ 176 163 … … 200 187 } 201 188 202 /* æ¥ç¶ãå®äºããã¾ã§å¾ 203 ã¤ã*/ 189 /* 接続が完了するまで待つ。*/ 204 190 syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY)); 205 191 … … 244 230 syslog(LOG_NOTICE, "[TDC:%02d SND] close error: %s", cepid, itron_strerror(error)); 245 231 246 /* éæ¾ãå®äºããã¾ã§å¾ 247 ã¤ã*/ 232 /* 開放が完了するまで待つ。*/ 248 233 syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY)); 249 234 } … … 253 238 254 239 /* 255 * send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã240 * send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。 256 241 */ 257 242 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP DISCARD ã¯ã©ã¤ã¢ã³ã48 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP DISCARD クライアント 36 * コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef USE_TCP_DISCARD_CLI 52 40 53 /* ã¿ã¹ã¯*/41 /* タスク */ 54 42 55 43 #ifdef USE_TCP_EXTENTIONS … … 77 65 #endif /* of #ifdef USE_TCP_EXTENTIONS */ 78 66 79 /* ã³ãã³ããã¥ã¼*/67 /* コマンドキュー */ 80 68 81 69 CRE_DTQ(DTQ_TCP_DISCARD_CLI, { TA_TFIFO, 1, NULL }); 82 70 83 /* ã»ããã©*/71 /* セマフォ */ 84 72 85 73 #ifdef USE_TCP_NON_BLOCKING -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * DISCARD ãµã¼ã35 * DISCARD サーバ 48 36 * 49 * ã»çã³ãã¼API50 * ã»IPv451 * ã»IPv637 * ・省コピー API 38 * ・IPv4 39 * ・IPv6 52 40 */ 53 41 … … 93 81 94 82 /* 95 * 表示83 * 表示 96 84 */ 97 85 … … 100 88 101 89 /* 102 * å 103 ¨åå¤æ° 104 */ 105 106 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 90 * 全域変数 91 */ 92 93 /* TCP 送受信ウィンドバッファ */ 107 94 108 95 #ifndef TCP_CFG_RWBUF_CSAVE_ONLY … … 111 98 112 99 /* 113 * TCP DISCARD ãµã¼ãã¿ã¹ã¯100 * TCP DISCARD サーバタスク 114 101 */ 115 102 … … 249 236 250 237 /* 251 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã238 * get_tcp_rep -- TCP 受付口を獲得する。 252 239 */ 253 240 … … 275 262 276 263 /* 277 * get_tcp_cep -- TCP é信端ç¹ã¨ãç²å¾ããã264 * get_tcp_cep -- TCP 通信端点とを獲得する。 278 265 */ 279 266 … … 302 289 303 290 /* 304 * tcp_discard_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯291 * tcp_discard_srv_task -- TCP エコーサーバタスク 305 292 */ 306 293 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP DISCARD ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP DISCARD サーバコンフィギュレーションファイル 48 36 */ 49 37 … … 51 39 52 40 /* 53 * ã¿ã¹ã¯41 * タスク 54 42 */ 55 43 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ã¯ã©ã¤ã¢ã³ã35 * TCP ECHO クライアント 48 36 * 49 * ã»éåä¿¡ã¿ã¹ã¯åé¢å50 * ã»ãã³ããããã³ã°ã³ã¼ã«51 * ã»çã³ãã¼API52 * ã»IPv453 * ã»IPv637 * ・送受信タスク分離型 38 * ・ノンブロッキングコール 39 * ・省コピー API 40 * ・IPv4 41 * ・IPv6 54 42 */ 55 43 … … 95 83 #ifdef USE_TCP_ECHO_CLI 96 84 97 /* echo ãµã¼ãã®ãã¼ãçªå·*/85 /* echo サーバのポート番号 */ 98 86 99 87 #define ECHO_SRV_PORTNO UINT_C(7) 100 88 101 /* ç·æ¥ãã¼ã¿ã®éä¿¡*/89 /* 緊急データの送信 */ 102 90 103 91 #ifdef USE_TCP_EXTENTIONS … … 108 96 #endif /* of #ifdef USE_TCP_EXTENTIONS */ 109 97 110 /* 表示*/98 /* 表示 */ 111 99 112 100 //#define SHOW_RCV_RANGE 113 101 114 /* ã¿ã¤ã ã¢ã¦ã*/102 /* タイムアウト */ 115 103 116 104 #define CON_TMO TMO_FEVR 117 105 //#define CON_TMO (60*SYSTIM_HZ) 118 //#define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/106 //#define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 119 107 #define CLS_TMO (70*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*10) 120 108 //#define RCV_TMO TMO_FEVR … … 123 111 #define SND_TMO (30*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*30) 124 112 125 /* éä¿¡éé*/113 /* 送信間隔 */ 126 114 127 115 //#define SND_DLY ULONG_C(500) … … 129 117 #define SLP_ITV (60*SYSTIM_HZ) 130 118 131 /* èªåå®è¡*/119 /* 自動実行 */ 132 120 133 121 #if 0 … … 140 128 141 129 /* 142 * ãããã¡ãµã¤ãºã®å®ç¾©130 * バッファサイズの定義 143 131 */ 144 132 … … 151 139 152 140 /* 153 * å 154 ¨åå¤æ° 141 * 全域変数 155 142 */ 156 143 157 144 bool_t tcp_echo_cli_valid; 158 145 159 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/146 /* TCP 送受信ウィンドバッファ */ 160 147 161 148 #ifndef TCP_CFG_SWBUF_CSAVE … … 168 155 169 156 /* 170 * å¤æ°157 * 変数 171 158 */ 172 159 … … 184 171 185 172 /* 186 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°173 * ノンブロッキングコールのコールバック関数 187 174 */ 188 175 … … 236 223 237 224 /* 238 * send_tcp_echo -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã225 * send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。 239 226 */ 240 227 … … 268 255 } 269 256 270 /* æ¥ç¶ãå®äºããã¾ã§å¾ 271 ã¤ã*/ 257 /* 接続が完了するまで待つ。*/ 272 258 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 273 259 … … 322 308 syslog(LOG_NOTICE, "[TEC:%02d SND] shutdown error: %s", cepid, itron_strerror(error)); 323 309 324 /* åä¿¡ãå®äºããã¾ã§å¾ 325 ã¤ã*/ 310 /* 受信が完了するまで待つ。*/ 326 311 syscall(slp_tsk()); 327 312 } … … 331 316 332 317 /* 333 * TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯318 * TCP ECHO クライアント受信タスク 334 319 */ 335 320 … … 361 346 } 362 347 363 /* åä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾ 364 ã¤ã*/ 348 /* 受信バッファの獲得が完了するまで待つ。*/ 365 349 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 366 350 if (nblk_error < 0) … … 391 375 syslog(LOG_NOTICE, "[TEC:%02d SND] close error: %s", cepid, itron_strerror(error)); 392 376 393 /* åæãå®äºããã¾ã§å¾ 394 ã¤ã*/ 377 /* 切断が完了するまで待つ。*/ 395 378 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 396 379 … … 433 416 } 434 417 435 /* åä¿¡ãå®äºããã¾ã§å¾ 436 ã¤ã*/ 418 /* 受信が完了するまで待つ。*/ 437 419 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 438 420 if (nblk_error < 0) … … 459 441 syslog(LOG_NOTICE, "[TEC:%02d SND] close error: %s", cepid, itron_strerror(error)); 460 442 461 /* åæãå®äºããã¾ã§å¾ 462 ã¤ã*/ 443 /* 切断が完了するまで待つ。*/ 463 444 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 464 445 … … 477 458 478 459 /* 479 * send_tcp_echo -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã460 * send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。 480 461 */ 481 462 … … 563 544 syslog(LOG_NOTICE, "[TEC:%02d SND] shutdown error: %s", cepid, itron_strerror(error)); 564 545 565 /* åä¿¡ãå®äºããã¾ã§å¾ 566 ã¤ã*/ 546 /* 受信が完了するまで待つ。*/ 567 547 syscall(slp_tsk()); 568 548 … … 571 551 572 552 /* 573 * TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯553 * TCP ECHO クライアント受信タスク 574 554 */ 575 555 … … 688 668 689 669 /* 690 * getcomd -- ã³ãã³ããå¾ãã670 * getcomd -- コマンドを得る。 691 671 */ 692 672 … … 734 714 735 715 /* 736 * TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯716 * TCP ECHO クライアント送信タスク 737 717 */ 738 718 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ã¯ã©ã¤ã¢ã³ã48 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP ECHO クライアント 36 * コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef USE_TCP_ECHO_CLI 52 40 53 /* ã¿ã¹ã¯*/41 /* タスク */ 54 42 55 43 #ifdef USE_TCP_EXTENTIONS … … 95 83 #endif /* of #ifdef USE_TCP_EXTENTIONS */ 96 84 97 /* ã³ãã³ããã¥ã¼*/85 /* コマンドキュー */ 98 86 99 87 CRE_DTQ(DTQ_TCP_ECHO_CLI_SND, { TA_TFIFO, 1, NULL }); 100 88 CRE_DTQ(DTQ_TCP_ECHO_CLI_RCV, { TA_TFIFO, 1, NULL }); 101 89 102 /* ã»ããã©*/90 /* セマフォ */ 103 91 104 92 #ifdef USE_TCP_NON_BLOCKING -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ã#135 * TCP ECHO サーバ #1 48 36 * 49 * ã»éåä¿¡ã¿ã¹ã¯åä¸å50 * ã»ãã³ããããã³ã°ã³ã¼ã«51 * ã»çã³ãã¼API52 * ã»IPv4/IPv653 * ã»ç·æ¥ãã¼ã¿ã®åä¿¡37 * ・送受信タスク同一型 38 * ・ノンブロッキングコール 39 * ・省コピー API 40 * ・IPv4/IPv6 41 * ・緊急データの受信 54 42 */ 55 43 … … 97 85 98 86 /* 99 * 表示87 * 表示 100 88 */ 101 89 … … 103 91 104 92 /* 105 * ã³ãã¯ã·ã§ã³åææ¹æ³ã®æå®93 * コネクション切断方法の指定 106 94 */ 107 95 … … 109 97 110 98 /* 111 * ã¿ã¤ã ã¢ã¦ã112 */ 113 114 //#define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/99 * タイムアウト 100 */ 101 102 //#define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 115 103 #define CLS_TMO (70*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*10) 116 104 //#define RCV_TMO TMO_FEVR … … 120 108 121 109 /* 122 * å 123 ¨åå¤æ° 124 */ 125 126 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 110 * 全域変数 111 */ 112 113 /* TCP 送受信ウィンドバッファ */ 127 114 128 115 #ifndef TCP_CFG_SWBUF_CSAVE … … 135 122 136 123 /* 137 * å¤æ°138 */ 139 140 /* 141 * 注æ:124 * 変数 125 */ 126 127 /* 128 * 注意: 142 129 * 143 * BUF_SIZE 㯠TCP ã®144 * éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã®145 * 3/2 å以ä¸ã®å¤§ããããªããã°ããããããã¯ããå¯è½æ§ãããã130 * BUF_SIZE は TCP の 131 * 送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの 132 * 3/2 倍以上の大きさがなければ、デッドロックする可能性がある。 146 133 */ 147 134 … … 149 136 TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2) 150 137 151 static T_IPEP dst; /* æ¥ç¶ç¸æ*/138 static T_IPEP dst; /* 接続相手 */ 152 139 153 140 #ifdef USE_TCP_NON_BLOCKING … … 173 160 174 161 /* 175 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°162 * ノンブロッキングコールのコールバック関数 176 163 */ 177 164 … … 260 247 } 261 248 262 /* ç¸æããæ¥ç¶ãããã¾ã§å¾ 263 ã¤ã*/ 249 /* 相手から接続されるまで待つ。*/ 264 250 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 265 251 … … 286 272 } 287 273 288 /* åä¿¡ããã¾ã§å¾ 289 ã¤ã*/ 274 /* 受信するまで待つ。*/ 290 275 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 291 276 292 if (nblk_rlen < 0) { /* ã¨ã©ã¼*/277 if (nblk_rlen < 0) { /* エラー */ 293 278 syslog(LOG_NOTICE, "[TES:%02d RCV] error: %s", 294 279 cepid, itron_strerror(nblk_rlen)); 295 280 break; 296 281 } 297 else if (nblk_rlen == 0) /* åä¿¡çµäº*/282 else if (nblk_rlen == 0) /* 受信終了 */ 298 283 break; 299 284 300 285 rblen = nblk_rlen; 301 286 302 /* ãããã¡ã®æ®ãã«ãããåä¿¡é·ã調æ´ããã*/287 /* バッファの残りにより、受信長を調整する。*/ 303 288 if (rblen > BUF_SIZE - rlen) 304 289 rblen = BUF_SIZE - rlen; … … 333 318 } 334 319 335 /* éä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾ 336 ã¤ã*/ 320 /* 送信バッファの獲得が完了するまで待つ。*/ 337 321 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 338 322 … … 372 356 syslog(LOG_NOTICE, "[TES:%02d CLS] error: %s", cepid, itron_strerror(error)); 373 357 374 /* éæ¾ãå®äºããã¾ã§å¾ 375 ã¤ã*/ 358 /* 開放が完了するまで待つ。*/ 376 359 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 377 360 … … 399 382 } 400 383 401 /* ç¸æããæ¥ç¶ãããã¾ã§å¾ 402 ã¤ã*/ 384 /* 相手から接続されるまで待つ。*/ 403 385 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 404 386 … … 426 408 } 427 409 428 /* åä¿¡å®äºã¾ã§å¾ 429 ã¤ã*/ 410 /* 受信完了まで待つ。*/ 430 411 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 431 412 … … 458 439 } 459 440 460 /* éä¿¡å®äºã¾ã§å¾ 461 ã¤ã*/ 441 /* 送信完了まで待つ。*/ 462 442 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 463 443 … … 489 469 syslog(LOG_NOTICE, "[TES:%02d CLS] error: %s", cepid, itron_strerror(error)); 490 470 491 /* éæ¾ãå®äºããã¾ã§å¾ 492 ã¤ã*/ 471 /* 開放が完了するまで待つ。*/ 493 472 syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY)); 494 473 … … 601 580 602 581 /* 603 * tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã582 * tcp_echo_srv -- TCP エコーサーバ 604 583 */ 605 584 … … 682 661 683 662 /* 684 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã663 * get_tcp_rep -- TCP 受付口を獲得する。 685 664 */ 686 665 … … 708 687 709 688 /* 710 * get_tcp_cep -- TCP é信端ç¹ã¨ãç²å¾ããã689 * get_tcp_cep -- TCP 通信端点とを獲得する。 711 690 */ 712 691 … … 743 722 744 723 /* 745 * tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯724 * tcp_echo_srv_task -- TCP エコーサーバタスク 746 725 */ 747 726 … … 783 762 784 763 /* 785 * tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯764 * tcp_echo_srv_task -- TCP エコーサーバタスク 786 765 */ 787 766 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ã #1ãéåä¿¡ã¿ã¹ã¯åä¸å48 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP ECHO サーバ #1、送受信タスク同一型 36 * コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef USE_TCP_ECHO_SRV1 52 40 53 /* ã¿ã¹ã¯*/41 /* タスク */ 54 42 55 43 #ifdef USE_TCP_EXTENTIONS … … 168 156 #endif /* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */ 169 157 170 /* ã»ããã©*/158 /* セマフォ */ 171 159 172 160 #ifdef USE_TCP_NON_BLOCKING -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ã#235 * TCP ECHO サーバ #2 48 36 * 49 * ã»éåä¿¡ã¿ã¹ã¯åé¢å50 * ã»ãã³ããããã³ã°ã³ã¼ã«51 * ã»IPv4/IPv637 * ・送受信タスク分離型 38 * ・ノンブロッキングコール 39 * ・IPv4/IPv6 52 40 */ 53 41 … … 92 80 93 81 /* 94 * 表示82 * 表示 95 83 */ 96 84 … … 98 86 99 87 /* 100 * ã³ãã¯ã·ã§ã³åææ¹æ³ã®æå®88 * コネクション切断方法の指定 101 89 */ 102 90 … … 104 92 105 93 /* 106 * å 107 ¨åå¤æ° 108 */ 109 110 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 94 * 全域変数 95 */ 96 97 /* TCP 送受信ウィンドバッファ */ 111 98 112 99 #ifndef TCP_CFG_SWBUF_CSAVE … … 119 106 120 107 /* 121 * å¤æ°122 */ 123 124 /* 125 * 注æ:108 * 変数 109 */ 110 111 /* 112 * 注意: 126 113 * 127 * BUF_SIZE 㯠TCP ã®128 * éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã®129 * 3/2 å以ä¸ã®å¤§ããããªããã°ããããããã¯ããå¯è½æ§ãããã114 * BUF_SIZE は TCP の 115 * 送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの 116 * 3/2 倍以上の大きさがなければ、デッドロックする可能性がある。 130 117 */ 131 118 … … 133 120 TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2) 134 121 135 static char buffer[BUF_SIZE]; /* ãããã¡ */ 136 137 static T_IPEP dst; /* æ¥ç¶ç¸æ */ 138 static bool_t ena_rcv; /* åä¿¡å¯è½ãã©ã° */ 139 static char *rptr = buffer; /* åä¿¡ãã¤ã³ã¿ */ 140 static char *sptr = buffer; /* éä¿¡ãã¤ã³ã¿ */ 141 static uint32_t rcv_total; /* åä¿¡æåæ° */ 142 static uint32_t snd_total; /* éä¿¡æåæ° */ 143 static uint16_t chars; /* ãããã¡å 144 ã®æåæ° */ 145 static uint16_t rcv_count; /* åä¿¡åæ° */ 146 static uint16_t snd_count; /* éä¿¡åæ° */ 122 static char buffer[BUF_SIZE]; /* バッファ */ 123 124 static T_IPEP dst; /* 接続相手 */ 125 static bool_t ena_rcv; /* 受信可能フラグ */ 126 static char *rptr = buffer; /* 受信ポインタ */ 127 static char *sptr = buffer; /* 送信ポインタ */ 128 static uint32_t rcv_total; /* 受信文字数 */ 129 static uint32_t snd_total; /* 送信文字数 */ 130 static uint16_t chars; /* バッファ内の文字数 */ 131 static uint16_t rcv_count; /* 受信回数 */ 132 static uint16_t snd_count; /* 送信回数 */ 147 133 148 134 #ifdef USE_TCP_NON_BLOCKING 149 135 150 static ER rcv_error = E_OK; /* åä¿¡ããã³ããããã³ã°ã³ã¼ã«ã¨ã©ã¼*/151 static ER snd_error = 1; /* éä¿¡ããã³ããããã³ã°ã³ã¼ã«ã¨ã©ã¼*/152 153 /* 154 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°136 static ER rcv_error = E_OK; /* 受信、ノンブロッキングコールエラー */ 137 static ER snd_error = 1; /* 送信、ノンブロッキングコールエラー */ 138 139 /* 140 * ノンブロッキングコールのコールバック関数 155 141 */ 156 142 … … 198 184 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 199 185 200 /* éä¿¡ãã¤ã³ã¿ãé²ããã*/186 /* 送信ポインタを進める。*/ 201 187 if (sptr - buffer + slen >= sizeof(buffer)) 202 188 sptr -= sizeof(buffer) - slen; … … 204 190 sptr += slen; 205 191 206 /* ãããã¡å 207 ã®æåæ°ãæ¸ããã*/ 192 /* バッファ内の文字数を減らす。*/ 208 193 last = chars; 209 194 chars -= slen; 210 195 211 /* ãããã¡å 212 ã«æåãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 196 /* バッファ内に文字があれば、送信タスクを起床する。*/ 213 197 if (chars > 0 || (!ena_rcv && chars == 0)) 214 198 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 215 199 216 /* åä¿¡å¯è½ã§ããããã¡å 217 ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 200 /* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/ 218 201 if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0) 219 202 syscall(sig_sem(SEM_TCP_ECHO_SRV_RCV_READY)); … … 241 224 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 242 225 243 /* åä¿¡ãã¤ã³ã¿ãé²ããã*/226 /* 受信ポインタを進める。*/ 244 227 if (rptr - buffer + rlen >= sizeof(buffer)) 245 228 rptr -= sizeof(buffer) - rlen; … … 247 230 rptr += rlen; 248 231 249 /* ãããã¡å 250 ã®æåæ°ãå¢ããã*/ 232 /* バッファ内の文字数を増やす。*/ 251 233 last = chars; 252 234 chars += rlen; 253 235 254 /* ãããã¡å 255 ã«æåãå 256 ¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 236 /* バッファ内に文字が入れば、送信タスクを起床する。*/ 257 237 if (last == 0 && chars > 0) 258 238 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 259 239 260 /* ãããã¡å 261 ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 240 /* バッファ内に空きがあれば、受信タスクを起床する。*/ 262 241 if (sizeof(buffer) - chars > 0) 263 242 sig_sem(SEM_TCP_ECHO_SRV_RCV_READY); … … 294 273 295 274 /* 296 * TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³ (ãã³ããããã³ã°ã³ã¼ã«ä½¿ç¨)275 * TCP ECHO サーバ受信ルーチン (ノンブロッキングコール使用) 297 276 */ 298 277 … … 313 292 } 314 293 315 /* ã³ãã¯ã·ã§ã³éè¨å®äºã¾ã§å¾ 316 ã¤ã*/ 294 /* コネクション開設完了まで待つ。*/ 317 295 syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY)); 318 296 319 /* å¾ 320 ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ãããã³ãã¯ã·ã§ã³ã®éè¨å¾ 321 ã¡ã«æ»ãã*/ 297 /* 待っている間にエラーになったら、コネクションの開設待ちに戻る。*/ 322 298 if (rcv_error != E_OK) 323 299 return rcv_error; … … 332 308 while (true) { 333 309 334 /* åä¿¡ãµã¤ãºãè¨ç®ããã*/310 /* 受信サイズを計算する。*/ 335 311 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 336 312 if (sptr > rptr) … … 340 316 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 341 317 342 /* åä¿¡ããã*/318 /* 受信する。*/ 343 319 if ((error = tcp_rcv_dat(cepid, rptr, blen, TMO_NBLK)) != E_WBLK) { 344 320 syslog(LOG_NOTICE, "[TES:%02d RCV] recv error = %s", cepid, itron_strerror(error)); … … 346 322 } 347 323 348 /* åä¿¡ãããã¡ã«ç©ºãã§ããã¾ã§å¾ 349 ã¤ã*/ 324 /* 受信バッファに空ができるまで待つ。*/ 350 325 syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY)); 351 326 352 /* å¾ 353 ã£ã¦ããéã«ãåä¿¡æåæ°ã 0 ã«ãªãããã¨ã©ã¼ã«ãªã£ããçµäºããã*/ 327 /* 待っている間に、受信文字数が 0 になるか、エラーになったら終了する。*/ 354 328 if (rcv_error <= 0) 355 329 break; … … 357 331 } 358 332 359 /* åä¿¡å®äº*/333 /* 受信完了 */ 360 334 ena_rcv = false; 361 335 362 /* åä¿¡ãããã¡ã«æåãå 363 ¥ãã®ãå¾ 364 ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 336 /* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/ 365 337 if (chars == 0) 366 338 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 367 339 368 /* ã³ãã¯ã·ã§ã³åæå®äºã¾ã§å¾ 369 ã¤ã*/ 340 /* コネクション切断完了まで待つ。*/ 370 341 syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY)); 371 342 … … 374 345 375 346 /* 376 * TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯ (ãã³ããããã³ã°ã³ã¼ã«ä½¿ç¨)347 * TCP ECHO サーバ送信タスク (ノンブロッキングコール使用) 377 348 */ 378 349 … … 395 366 while (true) { 396 367 397 /* ãããã¡ã«æåãå 398 ¥ãã¾ã§å¾ 399 ã¤ã*/ 368 /* バッファに文字が入るまで待つ。*/ 400 369 syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY)); 401 370 402 /* å¾ 403 ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ããçµäºããã*/ 371 /* 待っている間にエラーになったら終了する。*/ 404 372 if (snd_error <= 0) 405 373 break; 406 374 407 /* åä¿¡å®äºã§ããããã¡ã«æåããªããã°çµäºããã*/375 /* 受信完了で、バッファに文字がなければ終了する。*/ 408 376 if (!ena_rcv && chars == 0) 409 377 break; 410 378 411 /* éä¿¡ãµã¤ãºãè¨ç®ããã*/379 /* 送信サイズを計算する。*/ 412 380 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 413 381 if (rptr > sptr) … … 417 385 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 418 386 419 /* éä¿¡ããã*/387 /* 送信する。*/ 420 388 if ((error = tcp_snd_dat(cepid, sptr, blen, TMO_NBLK)) != E_WBLK) { 421 389 syslog(LOG_NOTICE, "[TES:%02d SND] send error = %s", cepid, itron_strerror(error)); … … 424 392 } 425 393 426 /* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾ 427 ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 394 /* 受信バッファに空ができるを待っている受信タスクを起床する。*/ 428 395 if (chars == sizeof(buffer)) 429 396 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); … … 446 413 447 414 /* 448 * TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³415 * TCP ECHO サーバ受信ルーチン 449 416 */ 450 417 … … 483 450 while (true) { 484 451 485 /* åä¿¡ãµã¤ãºãè¨ç®ããã*/452 /* 受信サイズを計算する。*/ 486 453 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 487 454 if (sptr > rptr) … … 491 458 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 492 459 493 /* åä¿¡ããã*/460 /* 受信する。*/ 494 461 if ((rlen = tcp_rcv_dat(cepid, rptr, blen, TMO_FEVR)) <= 0) { 495 462 if (rlen < 0) … … 509 476 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 510 477 511 /* åä¿¡ãã¤ã³ã¿ãé²ããã*/478 /* 受信ポインタを進める。*/ 512 479 if (rptr - buffer + rlen >= sizeof(buffer)) 513 480 rptr -= sizeof(buffer) - rlen; … … 515 482 rptr += rlen; 516 483 517 /* ãããã¡å 518 ã®æåæ°ãå¢ããã*/ 484 /* バッファ内の文字数を増やす。*/ 519 485 last = chars; 520 486 chars += (uint16_t)rlen; 521 487 522 /* ãããã¡å 523 ã«æåãå 524 ¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 488 /* バッファ内に文字が入れば、送信タスクを起床する。*/ 525 489 if (last == 0 && chars > 0) 526 490 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 527 491 528 /* ãããã¡å 529 ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 492 /* バッファ内に空きがあれば、受信タスクを起床する。*/ 530 493 if (sizeof(buffer) - chars > 0) 531 494 sig_sem(SEM_TCP_ECHO_SRV_RCV_READY); … … 533 496 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 534 497 535 /* ãããã¡ã«ç©ºããã§ããã¾ã§å¾ 536 ã¤ã*/ 498 /* バッファに空きができるまで待つ。*/ 537 499 syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY)); 538 500 } 539 501 540 /* åä¿¡å®äº*/502 /* 受信完了 */ 541 503 ena_rcv = false; 542 504 543 /* åä¿¡ãããã¡ã«æåãå 544 ¥ãã®ãå¾ 545 ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 505 /* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/ 546 506 if (chars == 0) 547 507 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 548 508 549 /* ã³ãã¯ã·ã§ã³ã®åæãå®äºããã¾ã§å¾ 550 ã¤ã*/ 509 /* コネクションの切断が完了するまで待つ。*/ 551 510 syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY)); 552 511 … … 555 514 556 515 /* 557 * TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯516 * TCP ECHO サーバ送信タスク 558 517 */ 559 518 … … 579 538 while (true) { 580 539 581 /* ãããã¡ã«æåãå 582 ¥ãã¾ã§å¾ 583 ã¤ã*/ 540 /* バッファに文字が入るまで待つ。*/ 584 541 syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY)); 585 542 586 /* åä¿¡å®äºã§ããããã¡ã«æåããªããã°çµäºããã*/543 /* 受信完了で、バッファに文字がなければ終了する。*/ 587 544 if (!ena_rcv && chars == 0) 588 545 break; 589 546 590 /* éä¿¡ãµã¤ãºãè¨ç®ããã*/547 /* 送信サイズを計算する。*/ 591 548 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 592 549 if (rptr > sptr) … … 612 569 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 613 570 614 /* éä¿¡ãã¤ã³ã¿ãé²ããã*/571 /* 送信ポインタを進める。*/ 615 572 if (sptr - buffer + slen >= sizeof(buffer)) 616 573 sptr -= sizeof(buffer) - slen; … … 618 575 sptr += slen; 619 576 620 /* ãããã¡å 621 ã®æåæ°ãæ¸ããã*/ 577 /* バッファ内の文字数を減らす。*/ 622 578 last = chars; 623 579 chars -= (uint16_t)slen; 624 580 625 /* åä¿¡å®äºã§ããããã¡ã«æåããªããã°çµäºããã*/581 /* 受信完了で、バッファに文字がなければ終了する。*/ 626 582 if (!ena_rcv && chars == 0) { 627 583 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); … … 629 585 } 630 586 631 /* ãããã¡å 632 ã«æåãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 587 /* バッファ内に文字があれば、送信タスクを起床する。*/ 633 588 if (chars > 0) 634 589 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 635 590 636 /* åä¿¡å¯è½ã§ããããã¡å 637 ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 591 /* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/ 638 592 if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0) 639 593 sig_sem(SEM_TCP_ECHO_SRV_RCV_READY); … … 642 596 } 643 597 644 /* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾ 645 ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 598 /* 受信バッファに空ができるを待っている受信タスクを起床する。*/ 646 599 if (chars == sizeof(buffer)) 647 600 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); … … 671 624 672 625 /* 673 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã626 * get_tcp_rep -- TCP 受付口を獲得する。 674 627 */ 675 628 … … 697 650 698 651 /* 699 * get_tcp_cep -- TCP é信端ç¹ãç²å¾ããã652 * get_tcp_cep -- TCP 通信端点を獲得する。 700 653 */ 701 654 … … 732 685 733 686 /* 734 * TCP ECHO ãµã¼ãåä¿¡ã¿ã¹ã¯687 * TCP ECHO サーバ受信タスク 735 688 */ 736 689 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ã #2ãéåä¿¡ã¿ã¹ã¯åé¢å48 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP ECHO サーバ #2、送受信タスク分離型 36 * コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef USE_TCP_ECHO_SRV2 52 40 53 /* ã¿ã¹ã¯*/41 /* タスク */ 54 42 55 43 #ifdef USE_TCP_EXTENTIONS … … 95 83 #endif /* of #ifdef USE_TCP_EXTENTIONS */ 96 84 97 /* ã³ãã³ããã¥ã¼*/85 /* コマンドキュー */ 98 86 99 87 CRE_DTQ(DTQ_TCP_ECHO_SRV_SND, { TA_TFIFO, 1, NULL }); 100 88 101 /* ã»ããã©*/89 /* セマフォ */ 102 90 103 91 CRE_SEM(SEM_TCP_ECHO_SRV_LOCK, { TA_TPRI, 1, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_dbg_cons.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã°ã³ã³ã½ã¼ã«48 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * デバッグコンソール 36 * TCP/IP コンフィギュレーションファイル 49 37 */ 50 38 … … 53 41 #ifdef USE_TCP_EXTENTIONS 54 42 55 /* TCP åä»å£*/43 /* TCP 受付口 */ 56 44 57 45 #ifdef SUPPORT_INET4 … … 79 67 #endif /* of #ifdef SUPPORT_INET6 */ 80 68 81 /* TCP é信端ç¹*/69 /* TCP 通信端点 */ 82 70 83 71 #ifdef SUPPORT_INET4 … … 125 113 #ifdef USE_UDP_EXTENTIONS 126 114 127 /* UDP é信端ç¹*/115 /* UDP 通信端点 */ 128 116 129 117 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_net_cons.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å 48 ¥åºå 49 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 35 * ネットワーク経由コンソール入出力 36 * TCP/IP コンフィギュレーションファイル 50 37 */ 51 38 52 39 #ifdef USE_NET_CONS 53 40 54 /* TCP åä»å£*/41 /* TCP 受付口 */ 55 42 56 43 #ifdef SUPPORT_INET4 … … 72 59 #endif /* of #ifdef SUPPORT_INET6 */ 73 60 74 /* TCP é信端ç¹*/61 /* TCP 通信端点 */ 75 62 76 63 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP DISCARD ã¯ã©ã¤ã¢ã³ã48 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP DISCARD クライアント 36 * TCP/IP コンフィギュレーションファイル 49 37 */ 50 38 … … 53 41 #ifndef USE_TCP_EXTENTIONS 54 42 55 /* TCP é信端ç¹*/43 /* TCP 通信端点 */ 56 44 57 45 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP DISCARD ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP DISCARD サーバの TCP/IP コンフィギュレーションファイル 48 36 */ 49 37 … … 52 40 #ifndef USE_TCP_EXTENTIONS 53 41 54 /* TCP åä»å£*/42 /* TCP 受付口 */ 55 43 56 44 #ifdef SUPPORT_INET4 … … 72 60 #endif /* of #ifdef SUPPORT_INET6 */ 73 61 74 /* TCP é信端ç¹*/62 /* TCP 通信端点 */ 75 63 76 64 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ã¯ã©ã¤ã¢ã³ã48 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP ECHO クライアント 36 * TCP/IP コンフィギュレーションファイル 49 37 */ 50 38 … … 53 41 #ifndef USE_TCP_EXTENTIONS 54 42 55 /* TCP é信端ç¹*/43 /* TCP 通信端点 */ 56 44 57 45 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP ECHO サーバの TCP/IP コンフィギュレーションファイル 48 36 */ 49 37 … … 52 40 #ifndef USE_TCP_EXTENTIONS 53 41 54 /* TCP åä»å£*/42 /* TCP 受付口 */ 55 43 56 44 #ifdef SUPPORT_INET4 … … 72 60 #endif /* of #ifdef SUPPORT_INET6 */ 73 61 74 /* TCP é信端ç¹*/62 /* TCP 通信端点 */ 75 63 76 64 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_discard_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP DISCARD ã¯ã©ã¤ã¢ã³ã48 * UDP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * UDP DISCARD クライアント 36 * UDP/IP コンフィギュレーションファイル 49 37 */ 50 38 … … 53 41 #ifndef USE_UDP_EXTENTIONS 54 42 55 /* UDP é信端ç¹*/43 /* UDP 通信端点 */ 56 44 57 45 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP ECHO ã¯ã©ã¤ã¢ã³ã48 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * UDP ECHO クライアント 36 * TCP/IP コンフィギュレーションファイル 49 37 */ 50 38 … … 53 41 #ifndef USE_UDP_EXTENTIONS 54 42 55 /* UDP é信端ç¹*/43 /* UDP 通信端点 */ 56 44 57 45 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP ECHO ãµã¼ã48 * UDP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * UDP ECHO サーバ 36 * UDP/IP コンフィギュレーションファイル 49 37 */ 50 38 … … 53 41 #ifndef USE_UDP_EXTENTIONS 54 42 55 /* UDP é信端ç¹*/43 /* UDP 通信端点 */ 56 44 57 45 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_wwws.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * WWW ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * WWW サーバの TCP/IP コンフィギュレーションファイル 48 36 */ 49 37 … … 52 40 #ifndef USE_TCP_EXTENTIONS 53 41 54 /* TCP åä»å£*/42 /* TCP 受付口 */ 55 43 56 44 #ifdef SUPPORT_INET4 … … 72 60 #endif /* of #ifdef SUPPORT_INET6 */ 73 61 74 /* TCP é信端ç¹*/62 /* TCP 通信端点 */ 75 63 76 64 #ifdef SUPPORT_INET4 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP DISCARD ã¯ã©ã¤ã¢ã³ã35 * UDP DISCARD クライアント 48 36 */ 49 37 … … 92 80 #ifdef USE_UDP_DISCARD_CLI 93 81 94 /* discard ãµã¼ãã®ãã¼ãçªå·*/82 /* discard サーバのポート番号 */ 95 83 96 84 #define DISCARD_SRV_PORTNO UINT_C(9) 97 85 98 86 /* 99 * å¤æ°87 * 変数 100 88 */ 101 89 … … 104 92 105 93 /* 106 * å 107 ¨åå¤æ° 94 * 全域変数 108 95 */ 109 96 … … 111 98 112 99 /* 113 * send_udp_discard -- DISCARD/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã100 * send_udp_discard -- DISCARD/UDP サーバにメッセージを送信する。 114 101 */ 115 102 … … 159 146 160 147 /* 161 * UDP DISCARD ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯148 * UDP DISCARD クライアント送信タスク 162 149 */ 163 150 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP DISCARD ã¯ã©ã¤ã¢ã³ã48 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * UDP DISCARD クライアント 36 * コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef USE_UDP_DISCARD_CLI 52 40 53 /* ã¿ã¹ã¯*/41 /* タスク */ 54 42 55 43 #ifdef USE_UDP_EXTENTIONS … … 77 65 #endif /* of #ifdef USE_UDP_EXTENTIONS */ 78 66 79 /* ã³ãã³ããã¥ã¼*/67 /* コマンドキュー */ 80 68 81 69 CRE_DTQ(DTQ_UDP_DISCARD_CLI, { TA_TFIFO, 1, NULL }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP ECHO ã¯ã©ã¤ã¢ã³ã35 * UDP ECHO クライアント 48 36 */ 49 37 … … 83 71 #ifdef USE_UDP_ECHO_CLI 84 72 85 /* echo ãµã¼ãã®ãã¼ãçªå·*/73 /* echo サーバのポート番号 */ 86 74 87 75 #define ECHO_SRV_PORTNO UINT_C(7) 88 76 89 77 /* 90 * å 91 ¨åå¤æ° 78 * 全域変数 92 79 */ 93 80 … … 95 82 96 83 /* 97 * å¤æ°84 * 変数 98 85 */ 99 86 … … 108 95 109 96 /* 110 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°97 * ノンブロッキングコールのコールバック関数 111 98 */ 112 99 … … 120 107 121 108 /* 122 * send_udp_echo -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ãã³ããããã³ã°ã³ã¼ã«ä½¿ç¨)ã109 * send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (ノンブロッキングコール使用)。 123 110 */ 124 111 … … 141 128 142 129 syscall(slp_tsk()); 143 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/130 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 144 131 syslog(LOG_NOTICE, "[UEC:%02d CBR] error: %s", cepid, itron_strerror(nblk_len)); 145 132 return nblk_len; … … 152 139 153 140 syscall(slp_tsk()); 154 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/141 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 155 142 syslog(LOG_NOTICE, "[UEC:%02d RCV] error: %s", cepid, itron_strerror(nblk_len)); 156 143 return nblk_len; … … 171 158 172 159 /* 173 * ã³ã¼ã«ããã¯é¢æ°160 * コールバック関数 174 161 */ 175 162 … … 191 178 192 179 /* 193 * send_udp_echo -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°ä½¿ç¨)ã180 * send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数使用)。 194 181 */ 195 182 … … 213 200 214 201 /* 215 * send_udp_echo -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°æªä½¿ç¨)ã202 * send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数未使用)。 216 203 */ 217 204 … … 250 237 251 238 /* 252 * UDP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯239 * UDP ECHO クライアント送信タスク 253 240 */ 254 241 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ECHO ãµã¼ã試é¨ããã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * ECHO サーバ試験プログラムのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 #ifdef USE_UDP_ECHO_CLI 51 39 52 /* ã¿ã¹ã¯*/40 /* タスク */ 53 41 54 42 #ifdef USE_UDP_EXTENTIONS … … 76 64 #endif /* of #ifdef USE_UDP_EXTENTIONS */ 77 65 78 /* ã³ãã³ããã¥ã¼*/66 /* コマンドキュー */ 79 67 80 68 CRE_DTQ(DTQ_UDP_ECHO_CLI, { TA_TFIFO, 1, NULL }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP ECHO ãµã¼ã35 * UDP ECHO サーバ 48 36 */ 49 37 … … 83 71 84 72 /* 85 * åä¿¡ã¿ã¤ã ã¢ã¦ã73 * 受信タイムアウト 86 74 */ 87 75 … … 97 85 98 86 /* 99 * ã³ã¼ã«ããã¯é¢æ°87 * コールバック関数 100 88 */ 101 89 … … 138 126 139 127 /* 140 * å¤æ°128 * 変数 141 129 */ 142 130 … … 144 132 145 133 /* 146 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°134 * ノンブロッキングコールのコールバック関数 147 135 */ 148 136 … … 154 142 get_tim(&now); 155 143 nblk_len = *(ER_UINT*)p_parblk; 156 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/144 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 157 145 syslog(LOG_NOTICE, "[UES:%02d CBR] error, %6ld: %s, fncd: %s", 158 146 cepid, now / SYSTIM_HZ, itron_strerror(nblk_len), in_strtfn(fncd)); … … 169 157 170 158 /* 171 * UDP ECHO ãµã¼ã159 * UDP ECHO サーバ 172 160 */ 173 161 … … 211 199 212 200 /* 213 * UDP ECHO ãµã¼ã201 * UDP ECHO サーバ 214 202 */ 215 203 … … 248 236 249 237 /* 250 * UDP ECHO ãµã¼ãã¿ã¹ã¯238 * UDP ECHO サーバタスク 251 239 */ 252 240 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP ECHO ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * UDP ECHO サーバコンフィギュレーションファイル 48 36 */ 49 37 … … 51 39 52 40 /* 53 * ã¿ã¹ã¯41 * タスク 54 42 */ 55 43 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * WWW ãµã¼ã35 * WWW サーバ 48 36 * 49 * ã»éåä¿¡ã¿ã¹ã¯åä¸å50 * ã»ãã³ããããã³ã°ã³ã¼ã«51 * ã»çã³ãã¼API52 * ã»IPv4/IPv637 * ・送受信タスク同一型 38 * ・ノンブロッキングコール 39 * ・省コピー API 40 * ・IPv4/IPv6 53 41 */ 54 42 … … 103 91 104 92 /* 105 * éåä¿¡ API ã®é¸æ93 * 送受信 API の選択 106 94 */ 107 95 … … 119 107 120 108 /* 121 * é¢æ°109 * 関数 122 110 */ 123 111 … … 131 119 132 120 /* 133 * å 134 ¨åå¤æ° 135 */ 136 137 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 121 * 全域変数 122 */ 123 124 /* TCP 送受信ウィンドバッファ */ 138 125 139 126 #ifndef TCP_CFG_SWBUF_CSAVE … … 146 133 147 134 /* 148 * å¤æ°135 * 変数 149 136 */ 150 137 … … 177 164 178 165 /* 179 * get_char -- ä¸æåå 180 ¥åããã 166 * get_char -- 一文字入力する。 181 167 */ 182 168 … … 213 199 214 200 /* 215 * flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã201 * flush_sbuf -- 送信バッファをフラッシュする。 216 202 */ 217 203 … … 228 214 229 215 /* 230 * put_str -- æååãåºåããã216 * put_str -- 文字列を出力する。 231 217 */ 232 218 … … 270 256 271 257 /* 272 * get_char -- ä¸æåå 273 ¥åããã 258 * get_char -- 一文字入力する。 274 259 */ 275 260 … … 303 288 304 289 /* 305 * flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã290 * flush_sbuf -- 送信バッファをフラッシュする。 306 291 */ 307 292 … … 323 308 324 309 /* 325 * put_str -- æååãåºåããã310 * put_str -- 文字列を出力する。 326 311 */ 327 312 … … 355 340 356 341 /* 357 * get_line -- ä¸è¡å 358 ¥åããã 342 * get_line -- 一行入力する。 359 343 */ 360 344 … … 396 380 397 381 /* 398 * convert -- æ°å¤å¤æ382 * convert -- 数値変換 399 383 */ 400 384 … … 426 410 427 411 /* 428 * split_fields -- ãã£ã¼ã«ãã«åå²ããã412 * split_fields -- フィールドに分割する。 429 413 */ 430 414 … … 450 434 451 435 /* 452 * put_status -- status line ãåºåããã436 * put_status -- status line を出力する。 453 437 */ 454 438 … … 465 449 466 450 /* 467 * put_content_length -- Content-length ãåºåããã451 * put_content_length -- Content-length を出力する。 468 452 */ 469 453 … … 484 468 485 469 /* 486 * get_method -- GET ã¡ã½ããã®å¦ç470 * get_method -- GET メソッドの処理 487 471 */ 488 472 … … 501 485 502 486 /* 503 * parse_request -- ãªã¯ã¨ã¹ãã解æããã487 * parse_request -- リクエストを解析する。 504 488 */ 505 489 … … 534 518 } 535 519 536 while ((len = get_line(cepid, line, srbuf)) > 0) { /* ããããã¹ãããããã*/520 while ((len = get_line(cepid, line, srbuf)) > 0) { /* ヘッダをスキップする。*/ 537 521 split_fields(line, ": "); 538 522 if (strcmp("Content-Length", &line->buf[line->off[0]]) == 0) … … 540 524 } 541 525 while (blen > 0 && (len = get_line(cepid, line, srbuf)) > 0) { 542 /* ã¨ã³ãã£ãã£ã»ããã£ãã¹ãããããã*/526 /* エンティティ・ボディをスキップする。*/ 543 527 blen -= line->len; 544 528 } … … 562 546 563 547 /* 564 * index_html -- /index.html ãã¡ã¤ã«548 * index_html -- /index.html ファイル 565 549 */ 566 550 … … 580 564 "<title>TINET TCP/IP Protocol Stack</title>\r\n" 581 565 "</head><body bgcolor=\"#ffffbb\">\r\n" 582 "<hr> ãã® WWW ãµã¼ãã¯<br>"566 "<hr>この WWW サーバは<br>" 583 567 584 568 #ifdef TARGET_KERNEL_ASP 585 "ASP Kernel Release 1.3 (patchlevel = 2) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"569 "ASP Kernel Release 1.3 (patchlevel = 2) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n" 586 570 #endif 587 571 588 572 #ifdef TARGET_KERNEL_JSP 589 "JSP Kernel Release 1.4 (patchlevel = 3) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"573 "JSP Kernel Release 1.4 (patchlevel = 3) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n" 590 574 #endif 591 575 592 "TINET TCP/IP ãããã³ã«ã¹ã¿ãã¯ã«ãããµã¼ãã¹ãã¦ãã¾ãã<br><hr>\r\n" 593 "<ul><li type=\"square\"><a href=\"stat.html\">ãããã¯ã¼ã¯çµ±è¨æ 594 å ±</a></ul><hr>\r\n" 576 "TINET TCP/IP プロトコルスタックによりサービスしています。<br><hr>\r\n" 577 "<ul><li type=\"square\"><a href=\"stat.html\">ネットワーク統計情報</a></ul><hr>\r\n" 595 578 "FreeBSD: Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995<br>\r\n" 596 579 "The Regents of the University of California. All rights reserved.<br><br>\r\n" … … 643 626 get_tim(&start); 644 627 len += put_status(cepid, srbuf, ST_OK); 645 len += put_content_length(cepid, srbuf, strlen(response) - 2); /* 2 ã¯æåã®\r\n */628 len += put_content_length(cepid, srbuf, strlen(response) - 2); /* 2 は最初の \r\n */ 646 629 len += put_str(cepid, srbuf, response); 647 630 get_tim(&finish); … … 664 647 665 648 static const char time_prefix[] = 666 " çµéæé: "649 "経過時間: " 667 650 ; 668 651 … … 677 660 static const char table_prefix_ip4[] = 678 661 "<h2>IPv4</h2><table border>\r\n" 679 "<tr><th>é 680 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 662 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 681 663 ; 682 664 … … 687 669 static const char table_prefix_ip6[] = 688 670 "<h2>IPv6</h2><table border>\r\n" 689 "<tr><th>é 690 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 671 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 691 672 ; 692 673 693 674 static const char table_prefix_icmp6[] = 694 675 "<h2>ICMPv6</h2><table border>\r\n" 695 "<tr><th>é 696 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 676 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 697 677 ; 698 678 699 679 static const char table_prefix_nd6[] = 700 "<h2>è¿é£æ¢ç´¢</h2><table border>\r\n" 701 "<tr><th>é 702 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 680 "<h2>近隣探索</h2><table border>\r\n" 681 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 703 682 ; 704 683 … … 707 686 static const char table_prefix_tcp[] = 708 687 "<h2>TCP</h2><table border>\r\n" 709 "<tr><th>é 710 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 688 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 711 689 ; 712 690 713 691 static const char table_prefix_net_buf[] = 714 "<h2> ãããã¯ã¼ã¯ãããã¡</h2><table border>\r\n"715 "<tr><th> ãµã¤ãº</th>"716 "<th> ç¨ææ°</th>"717 "<th> å²å½è¦æ±æ°</th>"718 "<th> å²å½æ°</th>"719 "<th> å²å½ã¦<br>ã¨ã©ã¼æ°</th></tr>\r\n"692 "<h2>ネットワークバッファ</h2><table border>\r\n" 693 "<tr><th>サイズ</th>" 694 "<th>用意数</th>" 695 "<th>割当要求数</th>" 696 "<th>割当数</th>" 697 "<th>割当て<br>エラー数</th></tr>\r\n" 720 698 ; 721 699 … … 723 701 724 702 static const char table_prefix_ppp[] = 725 "<h2>PPP ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n" 726 "<tr><th>é 727 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 703 "<h2>PPP ネットワークインタフェース</h2><table border>\r\n" 704 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 728 705 ; 729 706 730 707 static const char *ppp_item[NC_PPP_SIZE] = { 731 " åä¿¡ãªã¯ãããæ°",732 " éä¿¡ãªã¯ãããæ°",733 " åä¿¡ãã¬ã¼ã æ°",734 " éä¿¡ãã¬ã¼ã æ°",735 " åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",736 " éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",737 " ãããã¡å²ãå½ã¦å¤±ææ°",708 "受信オクテット数", 709 "送信オクテット数", 710 "受信フレーム数", 711 "送信フレーム数", 712 "受信エラーフレーム数", 713 "送信エラーフレーム数", 714 "バッファ割り当て失敗数", 738 715 }; 739 716 … … 743 720 744 721 static const char table_prefix_ether_nic[] = 745 "<h2>ã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n" 746 "<tr><th>é 747 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 722 "<h2>イーサネット・ネットワークインタフェース</h2><table border>\r\n" 723 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 748 724 ; 749 725 750 726 static const char *ether_nic_item[NC_ETHER_NIC_SIZE] = { 751 " ãªã»ããæ°",752 " éä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",753 " éä¿¡ã¿ã¤ã ã¢ã¦ãæ°",754 " è¡çªæ°",755 " éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",756 " éä¿¡ãã¬ã¼ã æ°",757 " éä¿¡ãªã¯ãããæ°",758 " åä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",759 " åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",760 " åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",761 " åä¿¡ãã¬ã¼ã æ°",762 " åä¿¡ãªã¯ãããæ°",727 "リセット数", 728 "送信セマフォ資源返却オーバー数", 729 "送信タイムアウト数", 730 "衝突数", 731 "送信エラーフレーム数", 732 "送信フレーム数", 733 "送信オクテット数", 734 "受信セマフォ資源返却オーバー数", 735 "受信バッファ割り当て失敗数", 736 "受信エラーフレーム数", 737 "受信フレーム数", 738 "受信オクテット数", 763 739 }; 764 740 … … 768 744 769 745 static const char *ip4_item[NC_IP4_SIZE] = { 770 "åå²éä¿¡ããã©ã°ã¡ã³ãæ°", 771 "åå²éä¿¡æ°", 772 "éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°", 773 "éä¿¡ãã¼ã¿ã°ã©ã æ°", 774 "éä¿¡ãªã¯ãããæ°", 775 "åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°", 776 "åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°", 777 "åå²åä¿¡ç ´æ£æ°", 778 "åå²åä¿¡åæ§ææåæ°", 779 "åå²åä¿¡ãã©ã°ã¡ã³ãæ°", 780 "åå²åä¿¡æ°", 781 "ãªãã·ã§ã³å 782 ¥åæ°", 783 "ãããã³ã«ã¨ã©ã¼æ°", 784 "ã¢ãã¬ã¹ã¨ã©ã¼æ°", 785 "ãã¼ã¸ã§ã³ã¨ã©ã¼æ°", 786 "é·ãã¨ã©ã¼æ°", 787 "ãã§ãã¯ãµã ã¨ã©ã¼æ°", 788 "åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°", 789 "åä¿¡ãã¼ã¿ã°ã©ã æ°", 790 "åä¿¡ãªã¯ãããæ°", 746 "分割送信、フラグメント数", 747 "分割送信数", 748 "送信エラーデータグラム数", 749 "送信データグラム数", 750 "送信オクテット数", 751 "分割受信タイムアウト数", 752 "分割受信バッファ割り当て失敗数", 753 "分割受信破棄数", 754 "分割受信再構成成功数", 755 "分割受信フラグメント数", 756 "分割受信数", 757 "オプション入力数", 758 "プロトコルエラー数", 759 "アドレスエラー数", 760 "バージョンエラー数", 761 "長さエラー数", 762 "チェックサムエラー数", 763 "受信エラーデータグラム数", 764 "受信データグラム数", 765 "受信オクテット数", 791 766 }; 792 767 … … 796 771 797 772 static const char *ip6_item[NC_IP6_SIZE] = { 798 " åå²éä¿¡ããã©ã°ã¡ã³ãæ°",799 " åå²éä¿¡æ°",800 " éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",801 " éä¿¡ãã¼ã¿ã°ã©ã æ°",802 " éä¿¡ãªã¯ãããæ°",803 " åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°",804 " åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",805 " åå²åä¿¡ç ´æ£æ°",806 " åå²åä¿¡åæ§ææåæ°",807 " åå²åä¿¡ãã©ã°ã¡ã³ãæ°",808 " åå²åä¿¡æ°",809 " ãããã³ã«ã¨ã©ã¼æ°",810 " ã¢ãã¬ã¹ã¨ã©ã¼æ°",811 " ãã¼ã¸ã§ã³ã¨ã©ã¼æ°",812 " é·ãã¨ã©ã¼æ°",813 " åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",814 " åä¿¡ãã¼ã¿ã°ã©ã æ°",815 " åä¿¡ãªã¯ãããæ°",773 "分割送信、フラグメント数", 774 "分割送信数", 775 "送信エラーデータグラム数", 776 "送信データグラム数", 777 "送信オクテット数 ", 778 "分割受信タイムアウト数", 779 "分割受信バッファ割り当て失敗数", 780 "分割受信破棄数", 781 "分割受信再構成成功数", 782 "分割受信フラグメント数", 783 "分割受信数", 784 "プロトコルエラー数 ", 785 "アドレスエラー数 ", 786 "バージョンエラー数 ", 787 "長さエラー数", 788 "受信エラーデータグラム数", 789 "受信データグラム数", 790 "受信オクテット数 ", 816 791 }; 817 792 818 793 static const char *icmp6_item[NC_ICMP6_SIZE] = { 819 " éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°",820 " éä¿¡ ICMP ãã¼ã¿æ°",821 " éä¿¡ ICMP ãªã¯ãããæ°",822 " é·ãã¨ã©ã¼æ°",823 " åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°",824 " åä¿¡ ICMP ãã¼ã¿æ°",825 " åä¿¡ ICMP ãªã¯ãããæ°",794 "送信エラー ICMP データ数 ", 795 "送信 ICMP データ数", 796 "送信 ICMP オクテット数", 797 "長さエラー数", 798 "受信エラー ICMP データ数 ", 799 "受信 ICMP データ数", 800 "受信 ICMP オクテット数", 826 801 }; 827 802 828 803 static const char *nd6_item[NC_ND6_SIZE] = { 829 " éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°",830 " è¿é£è¦è«éä¿¡æ°",831 " è¿é£è¦è«åä¿¡æ°",832 " è¿é£éç¥éä¿¡æ°",833 " è¿é£éç¥åä¿¡æ°",834 " ã«ã¼ã¿è¦è«åºåæ°",835 " ã«ã¼ã¿éç¥åä¿¡æ°",804 "重複アドレス検出送信数", 805 "近隣要請送信数", 806 "近隣要請受信数", 807 "近隣通知送信数", 808 "近隣通知受信数", 809 "ルータ要請出力数", 810 "ルータ通知受信数", 836 811 }; 837 812 … … 839 814 840 815 static const char *tcp_item[NC_TCP_SIZE] = { 841 " è½åãªã¼ãã³æ°",842 " ååãªã¼ãã³æ°",843 "RTT æ´æ°æ°",844 " éä¿¡ RST æ°",845 " éä¿¡ ACK æ°",846 " éä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",847 " éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",848 " åéã»ã°ã¡ã³ãæ°",849 " éä¿¡ã»ã°ã¡ã³ãæ°",850 " éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°",851 " éä¿¡ãã¼ã¿ãªã¯ãããæ°",852 " åä¿¡ãã¥ã¼è§£æ¾æ°",853 " åä¿¡å¤éæ°",854 " åä¿¡ç ´æ£æ°",855 " åä¿¡ RST æ°",856 " åä¿¡å¤é ACK æ°",857 " åä¿¡ ACK æ°",858 " åä¿¡ãã§ãã¯ãµã ä¸æ£æ°",859 " åä¿¡ãããä¸æ£æ°",860 " åä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",861 " åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",862 " åä¿¡ã»ã°ã¡ã³ãæ°",863 " åä¿¡ãã¼ã¿ãªã¯ãããæ°",864 " åä¿¡ãªã¯ãããæ°",816 "能動オープン数", 817 "受動オープン数", 818 "RTT 更新数", 819 "送信 RST 数", 820 "送信 ACK 数", 821 "送信緊急セグメント数", 822 "送信データセグメント数", 823 "再送セグメント数", 824 "送信セグメント数", 825 "送信制御セグメント数", 826 "送信データオクテット数", 827 "受信キュー解放数", 828 "受信多重数", 829 "受信破棄数", 830 "受信 RST 数", 831 "受信多重 ACK 数", 832 "受信 ACK 数", 833 "受信チェックサム不正数", 834 "受信ヘッダ不正数", 835 "受信緊急セグメント数", 836 "受信データセグメント数", 837 "受信セグメント数", 838 "受信データオクテット数", 839 "受信オクテット数", 865 840 }; 866 841 867 842 /* 868 * put_count_item1 -- ã«ã¦ã³ã¿ã®å 869 容ãåºåãããã°ã«ã¼ã 1 843 * put_count_item1 -- カウンタの内容を出力する。グループ 1 870 844 */ 871 845 … … 910 884 911 885 /* 912 * put_count_item2 -- ã«ã¦ã³ã¿ã®å 913 容ãåºåãããã°ã«ã¼ã 2 886 * put_count_item2 -- カウンタの内容を出力する。グループ 2 914 887 */ 915 888 … … 936 909 937 910 /* 938 * td_len_ppp -- put_count_ppp ã§åºåããæåæ°ã911 * td_len_ppp -- put_count_ppp で出力する文字数。 939 912 */ 940 913 … … 951 924 952 925 /* 953 * put_count_ppp -- ã«ã¦ã³ã¿ (PPP) ã®å 954 容ãåºåããã 926 * put_count_ppp -- カウンタ (PPP) の内容を出力する。 955 927 */ 956 928 … … 1023 995 1024 996 /* 1025 * td_len_ip4 -- put_count_ip4 ã§åºåããæåæ°ã997 * td_len_ip4 -- put_count_ip4 で出力する文字数。 1026 998 */ 1027 999 … … 1038 1010 1039 1011 /* 1040 * put_count_ip4 -- ã«ã¦ã³ã¿ (IP4) ã®å 1041 容ãåºåããã 1012 * put_count_ip4 -- カウンタ (IP4) の内容を出力する。 1042 1013 */ 1043 1014 … … 1068 1039 1069 1040 /* 1070 * td_len_nd6 -- put_count_nd6 ã§åºåããæåæ°ã1041 * td_len_nd6 -- put_count_nd6 で出力する文字数。 1071 1042 */ 1072 1043 … … 1083 1054 1084 1055 /* 1085 * put_count_nd6 -- ã«ã¦ã³ã¿ (ND6) ã®å 1086 容ãåºåããã 1056 * put_count_nd6 -- カウンタ (ND6) の内容を出力する。 1087 1057 */ 1088 1058 … … 1109 1079 1110 1080 /* 1111 * td_len_icmp6 -- put_count_icmp6 ã§åºåããæåæ°ã1081 * td_len_icmp6 -- put_count_icmp6 で出力する文字数。 1112 1082 */ 1113 1083 … … 1124 1094 1125 1095 /* 1126 * put_count_icmp6 -- ã«ã¦ã³ã¿ (ICMP6) ã®å 1127 容ãåºåããã 1096 * put_count_icmp6 -- カウンタ (ICMP6) の内容を出力する。 1128 1097 */ 1129 1098 … … 1150 1119 1151 1120 /* 1152 * td_len_ip6 -- put_count_ip6 ã§åºåããæåæ°ã1121 * td_len_ip6 -- put_count_ip6 で出力する文字数。 1153 1122 */ 1154 1123 … … 1165 1134 1166 1135 /* 1167 * put_count_ip6 -- ã«ã¦ã³ã¿ (IP6) ã®å 1168 容ãåºåããã 1136 * put_count_ip6 -- カウンタ (IP6) の内容を出力する。 1169 1137 */ 1170 1138 … … 1193 1161 1194 1162 /* 1195 * td_len_tcp -- put_count_tcp ã§åºåããæåæ°ã1163 * td_len_tcp -- put_count_tcp で出力する文字数。 1196 1164 */ 1197 1165 … … 1208 1176 1209 1177 /* 1210 * put_count_tcp -- ã«ã¦ã³ã¿ (TCP) ã®å 1211 容ãåºåããã 1178 * put_count_tcp -- カウンタ (TCP) の内容を出力する。 1212 1179 */ 1213 1180 … … 1234 1201 1235 1202 /* 1236 * put_elapse_time -- çµéæéãåºåããã1203 * put_elapse_time -- 経過時間を出力する。 1237 1204 */ 1238 1205 … … 1266 1233 1267 1234 /* 1268 * put_count_net_buf -- ã«ã¦ã³ã¿ (TCP) ã®å 1269 容ãåºåããã 1235 * put_count_net_buf -- カウンタ (TCP) の内容を出力する。 1270 1236 */ 1271 1237 … … 1307 1273 1308 1274 /* 1309 * td_len_ether_nic -- put_count_ether_nic ã§åºåããæåæ°ã1275 * td_len_ether_nic -- put_count_ether_nic で出力する文字数。 1310 1276 */ 1311 1277 … … 1322 1288 1323 1289 /* 1324 * put_count_ether_nic -- ã«ã¦ã³ã¿ (ETHER_NIC) ã®å 1325 容ãåºåããã 1290 * put_count_ether_nic -- カウンタ (ETHER_NIC) の内容を出力する。 1326 1291 */ 1327 1292 … … 1350 1315 1351 1316 /* 1352 * stat_html -- /stat.html ãã¡ã¤ã«1317 * stat_html -- /stat.html ファイル 1353 1318 */ 1354 1319 … … 1366 1331 #endif 1367 1332 1368 "<title>ãããã¯ã¼ã¯çµ±è¨æ 1369 å ±</title>\r\n" 1333 "<title>ネットワーク統計情報</title>\r\n" 1370 1334 "</head><body bgcolor=\"#ffffbb\">\r\n" 1371 "<hr><h1 align=\"center\">ãããã¯ã¼ã¯çµ±è¨æ 1372 å ±</h1><hr>\r\n" 1335 "<hr><h1 align=\"center\">ネットワーク統計情報</h1><hr>\r\n" 1373 1336 ; 1374 1337 … … 1378 1341 1379 1342 static const char table_prefix1[] = 1380 "<h2>ã°ã«ã¼ã 1</h2><table border>\r\n" 1381 "<tr><th>é 1382 ç®</th>\r\n" 1383 "<th>åä¿¡ãªã¯ãããæ°</th>" 1384 "<th>éä¿¡ãªã¯ãããæ°</th>\r\n" 1385 "<th>åä¿¡ãã±ããæ°</th>" 1386 "<th>éä¿¡ãã±ããæ°</th>\r\n" 1387 "<th>åä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th>" 1388 "<th>éä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th></tr>\r\n" 1343 "<h2>グループ 1</h2><table border>\r\n" 1344 "<tr><th>項目</th>\r\n" 1345 "<th>受信オクテット数</th>" 1346 "<th>送信オクテット数</th>\r\n" 1347 "<th>受信パケット数</th>" 1348 "<th>送信パケット数</th>\r\n" 1349 "<th>受信エラー<br>パケット数</th>" 1350 "<th>送信エラー<br>パケット数</th></tr>\r\n" 1389 1351 ; 1390 1352 … … 1392 1354 1393 1355 static const char table_prefix2[] = 1394 "<h2>ã°ã«ã¼ã 2</h2><table border>\r\n" 1395 "<tr><th>é 1396 ç®</th>" 1397 "<th>åä¿¡ãªã¯ãããæ°</th>" 1398 "<th>åä¿¡ãã¬ã¼ã æ°</th></tr>\r\n" 1356 "<h2>グループ 2</h2><table border>\r\n" 1357 "<tr><th>項目</th>" 1358 "<th>受信オクテット数</th>" 1359 "<th>受信フレーム数</th></tr>\r\n" 1399 1360 ; 1400 1361 … … 1489 1450 1490 1451 + content_len 1491 - 2); /* 2 ã¯æåã®\r\n */1452 - 2); /* 2 は最初の \r\n */ 1492 1453 1493 1454 len += put_str(cepid, srbuf, res_prefix); … … 1577 1538 1578 1539 /* 1579 * WWW ãµã¼ã1540 * WWW サーバ 1580 1541 */ 1581 1542 … … 1653 1614 1654 1615 /* 1655 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã1616 * get_tcp_rep -- TCP 受付口を獲得する。 1656 1617 */ 1657 1618 … … 1680 1641 1681 1642 /* 1682 * get_tcp_cep -- TCP é信端ç¹ã¨ãç²å¾ããã1643 * get_tcp_cep -- TCP 通信端点とを獲得する。 1683 1644 */ 1684 1645 … … 1711 1672 1712 1673 /* 1713 * WWW ãµã¼ãã¿ã¹ã¯1674 * WWW サーバタスク 1714 1675 */ 1715 1676 … … 1751 1712 1752 1713 /* 1753 * WWW ãµã¼ãã¿ã¹ã¯1714 * WWW サーバタスク 1754 1715 */ 1755 1716 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * WWW サーバのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 #ifdef USE_WWW_SRV 51 39 52 /* ã¿ã¹ã¯*/40 /* タスク */ 53 41 54 42 #ifdef USE_TCP_EXTENTIONS -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * WWW ãµã¼ã38 * WWW サーバ 51 39 */ 52 40 … … 64 52 65 53 #ifdef TOPPERS_S810_CLG3_85 66 #define WWW_SRV_STACK_SIZE 768 /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/54 #define WWW_SRV_STACK_SIZE 768 /* タスクのスタックサイズ */ 67 55 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 68 #define WWW_SRV_STACK_SIZE 1024 /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/56 #define WWW_SRV_STACK_SIZE 1024 /* タスクのスタックサイズ */ 69 57 #endif /* of #ifdef TOPPERS_S810_CLG3_85 */ 70 #define WWW_SRV_MAIN_PRIORITY 5 /* ã¿ã¹ã¯ã®åªå 71 度 */ 58 #define WWW_SRV_MAIN_PRIORITY 5 /* タスクの優先度 */ 72 59 73 60 /* 74 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº61 * TCP 送受信ウインドバッファサイズ 75 62 */ 76 63 … … 136 123 } T_WWW_RWBUF; 137 124 138 /* ã¿ã¹ã¯*/125 /* タスク */ 139 126 140 127 extern void www_srv_task (intptr_t exinf); 141 128 142 129 /* 143 * TCP éåä¿¡ãããã¡130 * TCP 送受信バッファ 144 131 */ 145 132 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ASP ç¨ WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * ASP 用 WWW サーバのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 /* 51 * å 52 ±é WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 39 * 共通 WWW サーバのシステムコンフィギュレーションファイルのインクルード 53 40 */ 54 41 … … 56 43 57 44 /* 58 * åºå®ã¡ã¢ãªãã¼ã«45 * 固定メモリプール 59 46 */ 60 47 61 /* åä¿¡ãããã¡*/48 /* 受信バッファ */ 62 49 63 50 CRE_MPF(MPF_WWW_RWBUF, { … … 69 56 }); 70 57 71 /* è¡ãããã¡*/58 /* 行バッファ */ 72 59 73 60 CRE_MPF(MPF_WWW_LINE, { -
EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_jsp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * JSP ç¨ WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * JSP 用 WWW サーバのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 /* 51 * å 52 ±é WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 39 * 共通 WWW サーバのシステムコンフィギュレーションファイルのインクルード 53 40 */ 54 41 … … 58 45 59 46 /* 60 * åºå®ã¡ã¢ãªãã¼ã«47 * 固定メモリプール 61 48 */ 62 49 63 /* åä¿¡ãããã¡*/50 /* 受信バッファ */ 64 51 65 52 CRE_MPF(MPF_WWW_RWBUF, { … … 70 57 }); 71 58 72 /* è¡ãããã¡*/59 /* 行バッファ */ 73 60 74 61 CRE_MPF(MPF_WWW_LINE, { -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/Makefile.tinet
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile;charset=UTF-8
r270 r321 5 5 # Tomakomai National College of Technology, JAPAN 6 6 # 7 # ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 # ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 # è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 # ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 # å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 # ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 # è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 # ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 # (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 # 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 # 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 # によって公表されている GNU General Public License の Version 2 に記 9 # 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 # を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 # 利用と呼ぶ)することを無償で許諾する. 12 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 # スコード中に含まれていること. 15 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 # の無保証規定を掲載すること. 19 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 # 用できない形で再配布する場合には,次の条件を満たすこと. 21 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 # 37 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 # å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 # æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 # 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 # 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 # 43 # @(#) $Id : Makefile.tinet,v 1.6 2012/07/18 04:13:23 abe Exp abe$31 # @(#) $Id$ 44 32 # 45 33 46 34 # 47 # ã³ã³ãã¤ã«ãªãã·ã§ã³35 # コンパイルオプション 48 36 # 49 37 INCLUDES := $(INCLUDES) -I$(TINET_ROOT)/netdev/$(NET_DEV) -
Property svn:mime-type
changed from
-
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 44 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 30 * 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 116 101 117 102 /* 118 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããã½ããã¦ã§ã¢æ 119 å ± 103 * ネットワークインタフェースに依存するソフトウェア情報 120 104 */ 121 105 … … 127 111 128 112 /* 129 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 130 å ± 131 */ 132 133 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããã½ããã¦ã§ã¢æ 134 å ± */ 113 * ネットワークインタフェースのソフトウェア情報 114 */ 115 116 /* ネットワークインタフェースに依存するソフトウェア情報 */ 135 117 136 118 static T_MBED_SOFTC mbed_softc; 137 119 138 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 139 å ± */ 120 /* ネットワークインタフェースに依存しないソフトウェア情報 */ 140 121 141 122 T_IF_SOFTC if_softc = { 142 {0,}, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 143 0, /* éä¿¡ã¿ã¤ã ã¢ã¦ã */ 144 &mbed_softc, /* ãã£ãã¤ã¹ä¾åã®ã½ããã¦ã§ã¢æ 145 å ± */ 146 SEM_IF_MBED_SBUF_READY, /* éä¿¡ã»ããã© */ 147 SEM_IF_MBED_RBUF_READY, /* åä¿¡ã»ããã© */ 123 {0,}, /* ネットワークインタフェースのアドレス */ 124 0, /* 送信タイムアウト */ 125 &mbed_softc, /* ディバイス依存のソフトウェア情報 */ 126 SEM_IF_MBED_SBUF_READY, /* 送信セマフォ */ 127 SEM_IF_MBED_RBUF_READY, /* 受信セマフォ */ 148 128 149 129 #ifdef SUPPORT_INET6 150 130 151 IF_MADDR_INIT, /* ãã«ããã£ã¹ãã¢ãã¬ã¹ãªã¹ã*/131 IF_MADDR_INIT, /* マルチキャストアドレスリスト */ 152 132 153 133 #endif /* of #ifdef SUPPORT_INET6 */ … … 155 135 156 136 /* 157 * å±æå¤æ°137 * 局所変数 158 138 */ 159 139 … … 167 147 168 148 /* 169 * ds_crc -- ã¤ã¼ãµãããã¢ãã¬ã¹ã® CRC ãè¨ç®ããã149 * ds_crc -- イーサネットアドレスの CRC を計算する。 170 150 */ 171 151 … … 195 175 196 176 /* 197 * ds_getmcaf -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ãªã¹ããããã«ããã£ã¹ãã¢ãã¬ã¹198 * ãã£ã«ã¿ãè¨ç®ããã177 * ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス 178 * フィルタを計算する。 199 179 */ 200 180 … … 214 194 215 195 /* 216 * mbed_setrcr -- åä¿¡æ§æã¬ã¸ã¹ã¿ (RCR) ãè¨å®ããã196 * mbed_setrcr -- 受信構成レジスタ (RCR) を設定する。 217 197 */ 218 198 … … 224 204 225 205 /* 226 * mbed_addmulti -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã追å ããã206 * mbed_addmulti -- マルチキャストアドレスを追加する。 227 207 */ 228 208 … … 237 217 238 218 /* 239 * mbed_stop -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãåæ¢ããã219 * mbed_stop -- ネットワークインタフェースを停止する。 240 220 * 241 * 注æ: NIC å²ãè¾¼ã¿ç¦æ¢ç¶æ 242 ã§å¼ã³åºããã¨ã 221 * 注意: NIC 割り込み禁止状態で呼び出すこと。 243 222 */ 244 223 … … 278 257 279 258 /* 280 * mbed_reset -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããªã»ããããã259 * mbed_reset -- ネットワークインタフェースをリセットする。 281 260 */ 282 261 … … 294 273 295 274 /* 296 * get_mbed_softc -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 297 å ±ãè¿ãã 275 * get_mbed_softc -- ネットワークインタフェースのソフトウェア情報を返す。 298 276 */ 299 277 … … 305 283 306 284 /* 307 * mbed_watchdog -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ã ã¢ã¦ã285 * mbed_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト 308 286 */ 309 287 … … 315 293 316 294 /* 317 * mbed_probe -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ¤åº295 * mbed_probe -- ネットワークインタフェースの検出 318 296 */ 319 297 … … 334 312 335 313 /* 336 * mbed_init -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå314 * mbed_init -- ネットワークインタフェースの初期化 337 315 */ 338 316 … … 342 320 T_MBED_SOFTC *sc = ic->sc; 343 321 344 /* mbed_init æ¬ä½ãå¼ã³åºãã*/322 /* mbed_init 本体を呼び出す。*/ 345 323 if_mbed_init_sub(ic); 346 324 … … 389 367 390 368 /* 391 * mbed_read -- ãã¬ã¼ã ã®èªã¿è¾¼ã¿369 * mbed_read -- フレームの読み込み 392 370 */ 393 371 … … 422 400 423 401 /* 424 * mbed_start -- éä¿¡ãã¬ã¼ã ããããã¡ãªã³ã°ããã402 * mbed_start -- 送信フレームをバッファリングする。 425 403 */ 426 404 … … 445 423 446 424 /* 447 * MBED Ethernet Controler éåä¿¡å²ãè¾¼ã¿ãã³ãã©425 * MBED Ethernet Controler 送受信割り込みハンドラ 448 426 */ 449 427 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 54 39 55 40 /* 56 * if_mbed ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«41 * if_mbed コンフィギュレーションファイル 57 42 */ 58 43 … … 61 46 INCLUDE("<ethernet_api.h>"); 62 47 63 /* PHY ç¨*/48 /* PHY用 */ 64 49 CRE_TSK(IF_MBED_PHY_TASK, { TA_NULL, 1, if_mbed_phy_task, IF_MBED_PHY_PRIORITY, IF_MBED_PHY_STACK_SIZE, NULL }); 65 50 66 /* å²ãè¾¼ã¿ãã³ãã©*/51 /* 割り込みハンドラ */ 67 52 68 53 DEF_INH(INHNO_IF_MBED, { TA_HLNG, if_mbed_eth_handler }); 69 54 70 /* å 71 ¥åºååæç¨ã»ããã© */ 55 /* 入出力同期用セマフォ */ 72 56 73 57 CRE_SEM(SEM_IF_MBED_SBUF_READY, { TA_TPRI, NUM_IF_MBED_TXBUF, NUM_IF_MBED_TXBUF }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 68 53 69 54 /* 70 * NIC ã®é¸æãã¯ã55 * NIC の選択マクロ 71 56 */ 72 57 … … 81 66 #define T_IF_ETHER_NIC_SOFTC struct t_mbed_softc 82 67 83 /* IPv6 é¢ä¿*/68 /* IPv6 関係 */ 84 69 85 #define IF_ETHER_NIC_IN6_IFID(i,a) get_mac6_ifid(i,a) /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åã®è¨å®*/86 #define IF_ETHER_NIC_ADDMULTI(s) if_mbed_addmulti(s) /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ç»é²*/70 #define IF_ETHER_NIC_IN6_IFID(i,a) get_mac6_ifid(i,a) /* インタフェース識別子の設定 */ 71 #define IF_ETHER_NIC_ADDMULTI(s) if_mbed_addmulti(s) /* マルチキャストアドレスの登録 */ 87 72 88 73 #define PHY_TASK_WAIT 200000 … … 93 78 94 79 /* 95 * åæ¹åç 96 § 80 * 前方参照 97 81 */ 98 82 … … 114 98 115 99 /* 116 * é¢æ°100 * 関数 117 101 */ 118 102 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 54 39 55 40 /* 56 * if_mbed ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«41 * if_mbed コンフィギュレーションファイル 57 42 */ 58 43 … … 62 47 #include "tinet_target_config.h" 63 48 64 /* PHY ç¨*/49 /* PHY用 */ 65 50 CRE_TSK(IF_MBED_PHY_TASK, { TA_ACT, 1, if_mbed_phy_task, IF_MBED_PHY_PRIORITY, IF_MBED_PHY_STACK_SIZE, NULL }); 66 51 67 /* å²ãè¾¼ã¿ãã³ãã©*/52 /* 割り込みハンドラ */ 68 53 69 54 DEF_INH(INHNO_IF_MBED, { TA_NULL, if_mbed_eth_handler }); 70 55 CFG_INT(INTNO_IF_MBED, { INTATR_IF_MBED, INTPRI_IF_MBED }); 71 56 72 /* å 73 ¥åºååæç¨ã»ããã© */ 57 /* 入出力同期用セマフォ */ 74 58 75 59 CRE_SEM(SEM_IF_MBED_SBUF_READY, { TA_TPRI, NUM_IF_MBED_TXBUF, NUM_IF_MBED_TXBUF }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 57 42 58 43 /* 59 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹å 60 é¨åã®ãªãã¼ã 44 * ネットワークインタフェース内部名のリネーム 61 45 */ 62 46 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 57 42 58 43 /* 59 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å 60 é¨èå¥åã®ãªãã¼ã 44 * ネットワークインタフェースの内部識別名のリネーム 61 45 */ 62 46 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2014 Cores Co., Ltd. Japan 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 57 42 58 43 /* 59 * T_ETHER_HDR ã§ãã¢ã©ã¤ã³ã調æ´ããå ´åã¯ã調æ´éãæå®ããã60 * 調æ´ããªãå ´åã¯ã0 ãæå®ããã44 * T_ETHER_HDR で、アラインを調整する場合は、調整量を指定する。 45 * 調整しない場合は、0 を指定する。 61 46 */ 62 47 #define IF_ETHER_NIC_HDR_ALIGN 0 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 117 105 118 106 /* 119 * ICMPv6 ããã107 * ICMPv6 ヘッダ 120 108 */ 121 109 122 110 typedef struct t_icmp6_hdr { 123 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/124 uint8_t code; /* ãµãå*/125 uint16_t sum; /* ãã§ãã¯ãµã*/111 uint8_t type; /* メッセージの型 */ 112 uint8_t code; /* サブ型 */ 113 uint16_t sum; /* チェックサム */ 126 114 union { 127 115 uint32_t data32; … … 134 122 #define icmp6_data16 data.data16 135 123 #define icmp6_data8 data.data8 136 #define icmp6_pptr data.data32 /* ãã©ã¡ã¼ã¿ç°å¸¸*/137 #define icmp6_mtu data.data32 /* ãã©ã¡ã¼ã¿ç°å¸¸*/138 #define icmp6_id data.data16[0] /* ã¨ã³ã¼è¦æ±ã¨å¿ç*/139 #define icmp6_seq data.data16[1] /* ã¨ã³ã¼è¦æ±ã¨å¿ç*/124 #define icmp6_pptr data.data32 /* パラメータ異常 */ 125 #define icmp6_mtu data.data32 /* パラメータ異常 */ 126 #define icmp6_id data.data16[0] /* エコー要求と応答 */ 127 #define icmp6_seq data.data16[1] /* エコー要求と応答 */ 140 128 141 129 #define ICMP6_HDR_SIZE (sizeof(T_ICMP6_HDR)) … … 149 137 150 138 /* 151 * ICMP6 ã¿ã¤ã 152 */ 153 154 #define ICMP6_DST_UNREACH UINT_C(1) /* å®å 155 å°éä¸å¯è½ */ 156 #define ICMP6_PACKET_TOO_BIG UINT_C(2) /* ãã±ããã大ããããã */ 157 #define ICMP6_TIME_EXCEEDED UINT_C(3) /* TTL ãè¶ 158 éããã */ 159 #define ICMP6_PARAM_PROB UINT_C(4) /* IPv6 ããããä¸æ£ã */ 160 161 #define ICMP6_ECHO_REQUEST UINT_C(128) /* ã¨ã³ã¼è¦æ± */ 162 #define ICMP6_ECHO_REPLY UINT_C(129) /* ã¨ã³ã¼å¿ç */ 163 164 #define ICMP6_MEMBERSHIP_QUERY UINT_C(130) /* ã°ã«ã¼ãã¡ã³ãç 165 §ä¼ */ 166 #define ICMP6_MEMBERSHIP_REPORT UINT_C(131) /* ã°ã«ã¼ãã¡ã³ãå ±å */ 167 #define ICMP6_MEMBERSHIP_REDUCTION UINT_C(132) /* ã°ã«ã¼ãã¡ã³ãçµäº */ 168 169 #define MLD_LISTENER_QUERY UINT_C(130) /* ãã«ããã£ã¹ãåä¿¡è 170 ç 171 §ä¼ */ 172 #define MLD_LISTENER_REPORT UINT_C(131) /* ãã«ããã£ã¹ãåä¿¡è 173 å ±å */ 174 #define MLD_LISTENER_DONE UINT_C(132) /* ãã«ããã£ã¹ãåä¿¡è 175 çµäº */ 176 177 #define ND_ROUTER_SOLICIT UINT_C(133) /* ã«ã¼ã¿è¦è« */ 178 #define ND_ROUTER_ADVERT UINT_C(134) /* ã«ã¼ã¿éç¥ */ 179 #define ND_NEIGHBOR_SOLICIT UINT_C(135) /* è¿é£è¦è« */ 180 #define ND_NEIGHBOR_ADVERT UINT_C(136) /* è¿é£éç¥ */ 181 #define ND_REDIRECT UINT_C(137) /* åãç´ã */ 182 183 #define ICMP6_ROUTER_RENUMBERING UINT_C(138) /* ã«ã¼ã¿çªå·åè¨å® */ 184 185 #define ICMP6_WRU_REQUEST UINT_C(139) /* è¦æ±ãã¼ãæ¢ç´¢ */ 186 #define ICMP6_WRU_REPLY UINT_C(140) /* å¿çãã¼ãæ¢ç´¢ */ 187 188 #define ICMP6_FQDN_QUERY UINT_C(139) /* FQDN ç 189 §ä¼ */ 190 #define ICMP6_FQDN_REPLY UINT_C(140) /* FQDN å¿ç */ 191 192 #define ICMP6_NI_QUERY UINT_C(139) /* ãã¼ãæ 193 å ±ç 194 §ä¼ */ 195 #define ICMP6_NI_REPLY UINT_C(140) /* ãã¼ãæ 196 å ±å¿ç */ 197 198 #define ICMP6_MAX_TYPE UINT_C(203) /* ICMP6 ã¿ã¤ãã®æå¤§å¤ */ 199 200 /* 201 * ICMP6 ã³ã¼ã 202 */ 203 204 /* å®å 205 å°éä¸å¯è½ */ 206 207 #define ICMP6_DST_UNREACH_NOROUTE UINT_C(0) /* å°éã«ã¼ããªãã */ 208 #define ICMP6_DST_UNREACH_ADMIN UINT_C(1) /* 管çè 209 ã«ããç¡å¹åä¸ã */ 210 #define ICMP6_DST_UNREACH_NOTEIGHBOR UINT_C(2) /* è¿é£è 211 ã§ã¯ãªããªã£ãã */ 212 #define ICMP6_DST_UNREACH_BEYOND_SCOPE UINT_C(2) /* ã¹ã³ã¼ããè¶ 213 ãã¦ããã */ 214 #define ICMP6_DST_UNREACH_ADDR UINT_C(3) /* å®å 215 ã¢ãã¬ã¹ã«å°éä¸å¯è½ã */ 216 #define ICMP6_DST_UNREACH_NOPORT UINT_C(4) /* å®å 217 ãã¼ãã«å°éä¸å¯è½ã */ 218 219 /* TTL è¶ 220 é */ 221 222 #define ICMP6_TIME_EXCEED_TRANSIT UINT_C(0) /* 転éæã« TTL==0 ã«ãªã£ãã */ 223 #define ICMP6_TIME_EXCEED_REASSEMBLY UINT_C(1) /* IP åæ§æã§ã¿ã¤ã ã¢ã¦ãããã*/ 224 225 /* ãããä¸æ£ */ 226 227 #define ICMP6_PARAMPROB_HEADER UINT_C(0) /* ãããã«ä¸æ£ããã£ãã */ 228 #define ICMP6_PARAMPROB_NEXT_HEADER UINT_C(1) /* 次ããããèªèã§ããªãã */ 229 #define ICMP6_PARAMPROB_OPTION UINT_C(2) /* ãªãã·ã§ã³ãèªèã§ããªãã */ 230 231 /* å 232 é¨ä½¿ç¨ */ 233 #define ND_REDIRECT_ONLINK UINT_C(0) /* ãªã³ãªã³ã¯ã¸ã®åãç´ã */ 234 #define ND_REDIRECT_ROUTER UINT_C(1) /* ã«ã¼ã¿ã¸ã®åãç´ã */ 235 236 /* 237 * å¶éå¤ 238 */ 239 240 /* ICMPv6 ã®æ大ãã¤ãã¼ãé· */ 139 * ICMP6 タイプ 140 */ 141 142 #define ICMP6_DST_UNREACH UINT_C(1) /* 宛先到達不可能 */ 143 #define ICMP6_PACKET_TOO_BIG UINT_C(2) /* パケットが大きすぎる。 */ 144 #define ICMP6_TIME_EXCEEDED UINT_C(3) /* TTL を超過した。 */ 145 #define ICMP6_PARAM_PROB UINT_C(4) /* IPv6 ヘッダが不正。 */ 146 147 #define ICMP6_ECHO_REQUEST UINT_C(128) /* エコー要求 */ 148 #define ICMP6_ECHO_REPLY UINT_C(129) /* エコー応答 */ 149 150 #define ICMP6_MEMBERSHIP_QUERY UINT_C(130) /* グループメンバ照会 */ 151 #define ICMP6_MEMBERSHIP_REPORT UINT_C(131) /* グループメンバ報告 */ 152 #define ICMP6_MEMBERSHIP_REDUCTION UINT_C(132) /* グループメンバ終了 */ 153 154 #define MLD_LISTENER_QUERY UINT_C(130) /* マルチキャスト受信者照会 */ 155 #define MLD_LISTENER_REPORT UINT_C(131) /* マルチキャスト受信者報告 */ 156 #define MLD_LISTENER_DONE UINT_C(132) /* マルチキャスト受信者終了 */ 157 158 #define ND_ROUTER_SOLICIT UINT_C(133) /* ルータ要請 */ 159 #define ND_ROUTER_ADVERT UINT_C(134) /* ルータ通知 */ 160 #define ND_NEIGHBOR_SOLICIT UINT_C(135) /* 近隣要請 */ 161 #define ND_NEIGHBOR_ADVERT UINT_C(136) /* 近隣通知 */ 162 #define ND_REDIRECT UINT_C(137) /* 向け直し */ 163 164 #define ICMP6_ROUTER_RENUMBERING UINT_C(138) /* ルータ番号再設定 */ 165 166 #define ICMP6_WRU_REQUEST UINT_C(139) /* 要求ノード探索 */ 167 #define ICMP6_WRU_REPLY UINT_C(140) /* 応答ノード探索 */ 168 169 #define ICMP6_FQDN_QUERY UINT_C(139) /* FQDN 照会 */ 170 #define ICMP6_FQDN_REPLY UINT_C(140) /* FQDN 応答 */ 171 172 #define ICMP6_NI_QUERY UINT_C(139) /* ノード情報照会 */ 173 #define ICMP6_NI_REPLY UINT_C(140) /* ノード情報応答 */ 174 175 #define ICMP6_MAX_TYPE UINT_C(203) /* ICMP6 タイプの最大値 */ 176 177 /* 178 * ICMP6 コード 179 */ 180 181 /* 宛先到達不可能 */ 182 183 #define ICMP6_DST_UNREACH_NOROUTE UINT_C(0) /* 到達ルートなし。 */ 184 #define ICMP6_DST_UNREACH_ADMIN UINT_C(1) /* 管理者により無効化中。 */ 185 #define ICMP6_DST_UNREACH_NOTEIGHBOR UINT_C(2) /* 近隣者ではなくなった。 */ 186 #define ICMP6_DST_UNREACH_BEYOND_SCOPE UINT_C(2) /* スコープを超えている。 */ 187 #define ICMP6_DST_UNREACH_ADDR UINT_C(3) /* 宛先アドレスに到達不可能。 */ 188 #define ICMP6_DST_UNREACH_NOPORT UINT_C(4) /* 宛先ポートに到達不可能。 */ 189 190 /* TTL 超過 */ 191 192 #define ICMP6_TIME_EXCEED_TRANSIT UINT_C(0) /* 転送時に TTL==0 になった。 */ 193 #define ICMP6_TIME_EXCEED_REASSEMBLY UINT_C(1) /* IP 再構成でタイムアウトした。*/ 194 195 /* ヘッダ不正 */ 196 197 #define ICMP6_PARAMPROB_HEADER UINT_C(0) /* ヘッダに不正があった。 */ 198 #define ICMP6_PARAMPROB_NEXT_HEADER UINT_C(1) /* 次ヘッダが認識できない。 */ 199 #define ICMP6_PARAMPROB_OPTION UINT_C(2) /* オプションが認識できない。 */ 200 201 /* 内部使用 */ 202 #define ND_REDIRECT_ONLINK UINT_C(0) /* オンリンクへの向け直し */ 203 #define ND_REDIRECT_ROUTER UINT_C(1) /* ルータへの向け直し */ 204 205 /* 206 * 制限値 207 */ 208 209 /* ICMPv6 の最大ペイロード長 */ 241 210 #define ICMPV6_PAYLOAD_MAXLEN (IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE)) 242 211 243 212 /* 244 * è¿é£è¦è«213 * 近隣要請 245 214 */ 246 215 … … 248 217 T_ICMP6_HDR hdr; 249 218 T_IN6_ADDR target; 250 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/219 /* この後にオプションが続く */ 251 220 } __attribute__((packed, aligned(2)))T_NEIGHBOR_SOLICIT_HDR; 252 221 … … 266 235 267 236 /* 268 * è¿é£éç¥237 * 近隣通知 269 238 */ 270 239 … … 272 241 T_ICMP6_HDR hdr; 273 242 T_IN6_ADDR target; 274 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/243 /* この後にオプションが続く */ 275 244 } __attribute__((packed, aligned(2)))T_NEIGHBOR_ADVERT_HDR; 276 245 277 /* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾©*/246 /* ICMP6 ヘッダのデータ部の定義 */ 278 247 279 248 #define nd_na_flags_reserved hdr.data.data32 … … 297 266 298 267 /* 299 * è¿é£éç¥ãã©ã°ãnd_na_flags_reserved (hdr.data32) ã«è¨å®ããã268 * 近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。 300 269 */ 301 270 302 271 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN 303 272 304 #define ND_NA_FLG_OVERRIDE ULONG_C(0x20000000) /* è¿é£ãã£ãã·ã¥ä¸æ¸ã*/305 #define ND_NA_FLG_SOLICITED ULONG_C(0x40000000) /* è¿é£è¦è«ã¸ã®å¿ç*/306 #define ND_NA_FLG_ROUTER ULONG_C(0x80000000) /* ã«ã¼ã¿éç¥*/273 #define ND_NA_FLG_OVERRIDE ULONG_C(0x20000000) /* 近隣キャッシュ上書き */ 274 #define ND_NA_FLG_SOLICITED ULONG_C(0x40000000) /* 近隣要請への応答 */ 275 #define ND_NA_FLG_ROUTER ULONG_C(0x80000000) /* ルータ通知 */ 307 276 308 277 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN 309 278 310 #define ND_NA_FLG_OVERRIDE ULONG_C(0x00000020) /* è¿é£ãã£ãã·ã¥ä¸æ¸ã*/311 #define ND_NA_FLG_SOLICITED ULONG_C(0x00000040) /* è¿é£è¦è«ã¸ã®å¿ç*/312 #define ND_NA_FLG_ROUTER ULONG_C(0x00000080) /* ã«ã¼ã¿éç¥*/279 #define ND_NA_FLG_OVERRIDE ULONG_C(0x00000020) /* 近隣キャッシュ上書き */ 280 #define ND_NA_FLG_SOLICITED ULONG_C(0x00000040) /* 近隣要請への応答 */ 281 #define ND_NA_FLG_ROUTER ULONG_C(0x00000080) /* ルータ通知 */ 313 282 314 283 #endif /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */ 315 284 316 285 /* 317 * ã«ã¼ã¿éç¥286 * ルータ通知 318 287 */ 319 288 320 289 typedef struct t_router_advert_hdr { 321 290 T_ICMP6_HDR hdr; 322 uint32_t reachable; /* [ms] å°éå¯è½æé*/323 uint32_t retransmit; /* [ms] è¿é£è¦è«éä¿¡éé*/324 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/291 uint32_t reachable; /* [ms] 到達可能時間 */ 292 uint32_t retransmit; /* [ms] 近隣要請送信間隔 */ 293 /* この後にオプションが続く */ 325 294 } __attribute__((packed, aligned(2)))T_ROUTER_ADVERT_HDR; 326 295 327 /* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾©*/296 /* ICMP6 ヘッダのデータ部の定義 */ 328 297 329 298 #define nd_ra_current_hoplimit hdr.data.data8[0] 330 299 #define nd_ra_flags hdr.data.data8[1] 331 #define nd_ra_router_lifetime hdr.data.data16[1] /* [s] ã«ã¼ã¿æå¹æé*/300 #define nd_ra_router_lifetime hdr.data.data16[1] /* [s] ルータ有効時間 */ 332 301 333 302 #define ROUTER_ADVERT_HDR_SIZE (sizeof(T_ROUTER_ADVERT_HDR)) … … 347 316 348 317 /* 349 * ã«ã¼ã¿éç¥ãããã®ãã©ã°318 * ルータ通知ヘッダのフラグ 350 319 */ 351 320 … … 355 324 356 325 /* 357 * ã«ã¼ã¿è¦è«326 * ルータ要請 358 327 */ 359 328 … … 362 331 } __attribute__((packed, aligned(2)))T_ROUTER_SOLICIT_HDR; 363 332 364 /* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾©*/333 /* ICMP6 ヘッダのデータ部の定義 */ 365 334 366 335 #define nd_rs_reserved hdr.data.data32 … … 383 352 384 353 /* 385 * è¿é£æ¢ç´¢ãªãã·ã§ã³386 */ 387 388 /* è¿é£æ¢ç´¢ããã*/354 * 近隣探索オプション 355 */ 356 357 /* 近隣探索ヘッダ */ 389 358 390 359 typedef struct t_neighbor_hdr { … … 393 362 } __attribute__((packed, aligned(2)))T_NEIGHBOR_HDR; 394 363 395 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ããã*/364 /* 近隣探索オプションヘッダ */ 396 365 397 366 typedef struct t_nd_opt_hdr { 398 uint8_t type; /* ãªãã·ã§ã³ã¿ã¤ã*/399 uint8_t len; /* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã*/367 uint8_t type; /* オプションタイプ */ 368 uint8_t len; /* オプション長、単位は 8 バイト */ 400 369 } __attribute__((packed, aligned(2)))T_ND_OPT_HDR; 401 370 402 371 #define ND_OPT_HDR_SIZE (sizeof(T_ND_OPT_HDR)) 403 372 404 #define ND_OPT_SOURCE_LINKADDR UINT_C(1) /* éä¿¡å 405 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 406 #define ND_OPT_TARGET_LINKADDR UINT_C(2) /* 対象ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 407 #define ND_OPT_PREFIX_INFORMATION UINT_C(3) /* ãã¬ãã£ãã¯ã¹æ 408 å ± */ 409 #define ND_OPT_REDIRECTED_HEADER UINT_C(4) /* ãªãã¤ã¬ã¯ãã»ããã */ 373 #define ND_OPT_SOURCE_LINKADDR UINT_C(1) /* 送信先ネットワークインタフェースのアドレス */ 374 #define ND_OPT_TARGET_LINKADDR UINT_C(2) /* 対象ネットワークインタフェースのアドレス */ 375 #define ND_OPT_PREFIX_INFORMATION UINT_C(3) /* プレフィックス情報 */ 376 #define ND_OPT_REDIRECTED_HEADER UINT_C(4) /* リダイレクト・ヘッダ */ 410 377 #define ND_OPT_MTU UINT_C(5) /* MTU */ 411 378 412 #define ND_OPT_PREFIX_INFO_COUNT UINT_C(6) /* ãã¬ãã£ãã¯ã¹æ 413 å ±ã®åæ° */ 414 #define ND_OPT_OFF_ARRAY_SIZE UINT_C(7) /* ND ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããé 415 åãµã¤ãº*/ 416 417 #define ND_OPT_OFF_ARRAY_IX(t) ((t)-1) /* ãªãã»ããé 418 åã®ã¤ã³ããã¯ã¹ */ 419 420 /* ãã¬ãã£ãã¯ã¹ãªãã·ã§ã³ */ 379 #define ND_OPT_PREFIX_INFO_COUNT UINT_C(6) /* プレフィックス情報の個数 */ 380 #define ND_OPT_OFF_ARRAY_SIZE UINT_C(7) /* ND オプションのオフセットを記録する配列サイズ*/ 381 382 #define ND_OPT_OFF_ARRAY_IX(t) ((t)-1) /* オフセット配列のインデックス */ 383 384 /* プレフィックスオプション */ 421 385 422 386 typedef struct t_nd_opt_prefix_info { 423 uint8_t type; /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¿ã¤ã= 3 */424 uint8_t len; /* ãªãã·ã§ã³é· = 8Ã4=32 */425 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é·*/426 uint8_t flags; /* ãã©ã°*/427 uint32_t valid; /* [s] æå¹æé*/428 uint32_t preferred; /* [s] æ¨å¥¨æå¹æé*/387 uint8_t type; /* 近隣探索オプションタイプ = 3 */ 388 uint8_t len; /* オプション長 = 8×4=32 */ 389 uint8_t prefix_len; /* プレフィックス長 */ 390 uint8_t flags; /* フラグ */ 391 uint32_t valid; /* [s] 有効時間 */ 392 uint32_t preferred; /* [s] 推奨有効時間 */ 429 393 uint32_t reserved; 430 T_IN6_ADDR prefix; /* ãã¬ãã£ãã¯ã¹*/394 T_IN6_ADDR prefix; /* プレフィックス */ 431 395 } __attribute__((packed, aligned(2)))T_ND_OPT_PREFIX_INFO; 432 396 433 #define ND_OPT_PI_FLAG_ONLINK UINT_C(0x80) /* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹*/434 #define ND_OPT_PI_FLAG_AUTO UINT_C(0x40) /* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®*/435 436 /* MTU ãªãã·ã§ã³ããã*/397 #define ND_OPT_PI_FLAG_ONLINK UINT_C(0x80) /* オンリンクプレフィックス */ 398 #define ND_OPT_PI_FLAG_AUTO UINT_C(0x40) /* ステートレス・アドレス自動設定*/ 399 400 /* MTU オプションヘッダ */ 437 401 438 402 typedef struct t_nd_opt_mtu_hdr { 439 uint8_t type; /* ãªãã·ã§ã³ã¿ã¤ã*/440 uint8_t len; /* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã*/403 uint8_t type; /* オプションタイプ */ 404 uint8_t len; /* オプション長、単位は 8 バイト*/ 441 405 uint16_t reserved; 442 406 uint32_t mtu; /* MTU */ … … 444 408 445 409 /* 446 * åãç´ã410 * 向け直し 447 411 */ 448 412 449 413 typedef struct t_nd_redirect_hdr { 450 414 T_ICMP6_HDR hdr; 451 T_IN6_ADDR target; /* ã«ã¼ã¿ã®ã¢ãã¬ã¹*/452 T_IN6_ADDR dst; /* åãç´ãã®çµç¹ã¢ãã¬ã¹*/453 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/415 T_IN6_ADDR target; /* ルータのアドレス */ 416 T_IN6_ADDR dst; /* 向け直しの終点アドレス */ 417 /* この後にオプションが続く */ 454 418 } __attribute__((packed, aligned(2)))T_ND_REDIRECT_HDR; 455 419 … … 459 423 460 424 /* 461 * SNMP 㮠管çæ 462 å ±ãã¼ã¹ (MIB) 425 * SNMP の 管理情報ベース (MIB) 463 426 */ 464 427 … … 505 468 506 469 /* 507 * é¢æ°470 * 関数 508 471 */ 509 472 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 86 74 87 75 /* 88 * SNMP 㮠管çæ 89 å ±ãã¼ã¹ (MIB) 76 * SNMP の 管理情報ベース (MIB) 90 77 */ 91 78 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 121 109 122 110 /* 123 * ARP ãã£ãã·ã¥ã¨ã³ããª111 * ARP キャッシュエントリ 124 112 */ 125 113 … … 127 115 128 116 /* 129 * é¢æ°117 * 関数 130 118 */ 131 119 … … 135 123 136 124 /* 137 * arp_lookup -- ARP ãã£ãã·ã¥ã®æ¢ç´¢ã¨ç»é² 138 * 139 * 注æ: SEM_ARP_CACHE_LOCK ãç²å¾ããç¶æ 140 ã§å¼åºãã㨠125 * arp_lookup -- ARP キャッシュの探索と登録 126 * 127 * 注意: SEM_ARP_CACHE_LOCK を獲得した状態で呼出すこと 141 128 */ 142 129 … … 152 139 } 153 140 154 /* create ãçãªããæ°ããªã¨ã³ããªãç»é²ããã*/141 /* create が真なら、新たなエントリを登録する。*/ 155 142 if (create) { 156 143 157 /* ã¾ãã空ããããã°ããã®ç©ºããå©ç¨ããã*/144 /* まず、空きがあれば、その空きを利用する。*/ 158 145 for (ix = NUM_ARP_ENTRY; ix -- > 0; ) { 159 146 if (arp_cache[ix].expire == 0) { … … 164 151 165 152 /* 166 * 空ãããªããã°ãã¿ã¤ã ã¢ã¦ãã¾ã§æéãæçã®167 * ã¨ã³ããªã¼ãç ´æ£ãã¦å©ç¨ããã153 * 空きがなければ、タイムアウトまで時間が最短の 154 * エントリーを破棄して利用する。 168 155 */ 169 156 syslog(LOG_NOTICE, "[ARP] cache busy, size=%d", NUM_ARP_ENTRY); … … 183 170 184 171 /* 185 * in_arpinput -- TCP/IP ç¨ ARP ã®å 186 ¥åé¢æ° 172 * in_arpinput -- TCP/IP 用 ARP の入力関数 187 173 */ 188 174 … … 200 186 et_arph = GET_ETHER_ARP_HDR(input); 201 187 202 ntoahl(saddr, et_arph->sproto); /* éä¿¡å 203 IP ã¢ãã¬ã¹ */ 204 ntoahl(taddr, et_arph->tproto); /* 解決対象 IP ã¢ãã¬ã¹ */ 205 206 /* 207 * 以ä¸ã®å ´åã¯ã¨ã©ã¼ 208 * ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ãèªå 209 * ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ãããã¼ããã£ã¹ã 188 ntoahl(saddr, et_arph->sproto); /* 送信元 IP アドレス */ 189 ntoahl(taddr, et_arph->tproto); /* 解決対象 IP アドレス */ 190 191 /* 192 * 以下の場合はエラー 193 * ・送信ホストの物理アドレスが自分 194 * ・送信ホストの物理アドレスがブロードキャスト 210 195 */ 211 196 if (memcmp(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN) == 0 || … … 214 199 215 200 /* 216 * éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹ãèªåã®å ´åã¯ãéè¤ãã¦ããã®ã§217 * ç¸æã«ãç¥ãããã201 * 送信ホストの IP アドレスが自分の場合は、重複しているので 202 * 相手にも知らせる。 218 203 */ 219 204 if (saddr == ifp->in_ifaddr.addr) { … … 240 225 241 226 /* 242 * 以ä¸ã®å ´åã¯ä½ãããªãã 243 * ã»è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹ãèªåã§ã¯ãªãã注: å 244 ã® FreeBSD ã® 245 * å®è£ 246 ã§ã¯ãARP PROXY çã®ãããèªå以å¤ã® IP ã¢ãã¬ã¹ã® 247 * 解決ãè¡ã£ã¦ããããæ¬å®è£ 248 ã§ã¯ãèªå以å¤ã® IP 249 * ã¢ãã¬ã¹ã®è§£æ±ºã¯è¡ããªãã 227 * 以下の場合は何もしない。 228 * ・解決対象 IP アドレスが自分ではない、注: 元の FreeBSD の 229 * 実装では、ARP PROXY 等のため、自分以外の IP アドレスの 230 * 解決も行っているが、本実装では、自分以外の IP 231 * アドレスの解決は行わない。 250 232 */ 251 233 if (taddr != ifp->in_ifaddr.addr) … … 253 235 254 236 /* 255 * éä¿¡å 256 IP ã¢ãã¬ã¹ã ARP ãã£ãã·ã¥ã«ããã調ã¹ãã 257 * ãã£ãã·ã¥ã«ãªããã°ãæ°ãã«ã¨ã³ããªãç»é²ããã 237 * 送信元 IP アドレスが ARP キャッシュにあるか調べる。 238 * キャッシュになければ、新たにエントリを登録する。 258 239 */ 259 240 syscall(wai_sem(SEM_ARP_CACHE_LOCK)); … … 264 245 265 246 /* 266 * éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°éä¿¡ããã247 * 送信がペンデングされているフレームがあれば送信する。 267 248 */ 268 249 if (ent->hold) { 269 250 270 /* ãã¬ã¼ã ã® Ethernet ããããè¨å®ããã*/251 /* フレームの Ethernet ヘッダを設定する。*/ 271 252 memcpy(GET_ETHER_HDR(ent->hold)->dhost, ent->mac_addr, ETHER_ADDR_LEN); 272 253 … … 275 256 syscall(sig_sem(SEM_ARP_CACHE_LOCK)); 276 257 277 /* ãã³ãã£ã³ã°ããã¦ãããã¬ã¼ã ãéä¿¡ããã*/258 /* ペンディングされているフレームを送信する。*/ 278 259 IF_RAW_OUTPUT(pending, TMO_FEVR); 279 260 … … 286 267 arph = GET_ARP_HDR(input); 287 268 288 /* ã¢ãã¬ã¹è§£æ±ºè¦æ±ã§ãªããã°çµäº*/269 /* アドレス解決要求でなければ終了 */ 289 270 if (ntohs(arph->opcode) != ARPOP_REQUEST) 290 271 goto buf_rel; 291 272 292 /* Ethernet ARP ããããè¨å®ããã*/273 /* Ethernet ARP ヘッダを設定する。*/ 293 274 memcpy(et_arph->thost, et_arph->shost, ETHER_ADDR_LEN); 294 275 memcpy(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN); … … 296 277 ahtonl(et_arph->sproto, taddr); 297 278 298 /* Ethernet ARP ããããè¨å®ããã*/279 /* Ethernet ARP ヘッダを設定する。*/ 299 280 arph->opcode = htons(ARPOP_REPLY); 300 281 301 /* Ethernet ããããè¨å®ããã*/282 /* Ethernet ヘッダを設定する。*/ 302 283 eth = GET_ETHER_HDR(input); 303 284 memcpy(eth->dhost, eth->shost, ETHER_ADDR_LEN); 304 285 memcpy(eth->shost, ifaddr->lladdr, ETHER_ADDR_LEN); 305 286 306 /* ARP å¿çãéä¿¡ããã*/287 /* ARP 応答を送信する。*/ 307 288 IF_RAW_OUTPUT(input, TMO_FEVR); 308 289 return; … … 315 296 316 297 /* 317 * arp_timer -- ARP ãã£ãã·ã¥ã®æ´æ°298 * arp_timer -- ARP キャッシュの更新 318 299 */ 319 300 … … 329 310 arp_cache[ix].expire -= ARP_TIMER_TMO; 330 311 if (arp_cache[ix].expire == 0) { 331 /* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/312 /* 送信がペンデングされているフレームがあれば捨てる。*/ 332 313 if (arp_cache[ix].hold) { 333 314 NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1); … … 344 325 345 326 /* 346 * arp_request -- MAC ã¢ãã¬ã¹è§£æ±ºè¦æ±327 * arp_request -- MAC アドレス解決要求 347 328 */ 348 329 … … 362 343 if ((error = tget_net_buf(&arp_req, IF_ARP_ETHER_HDR_SIZE, TMO_ARP_GET_NET_BUF)) == E_OK) { 363 344 364 /* ã¤ã¼ãµãããããããè¨å®ããã*/345 /* イーサネットヘッダを設定する。*/ 365 346 eth = GET_ETHER_HDR(arp_req); 366 347 memcpy(eth->dhost, ether_broad_cast_addr, ETHER_ADDR_LEN); … … 368 349 eth->type = htons(ETHER_TYPE_ARP); 369 350 370 /* ARP ããããè¨å®ããã*/351 /* ARP ヘッダを設定する。*/ 371 352 arph = GET_ARP_HDR(arp_req); 372 353 arph->hrd_addr = htons(ARPHRD_ETHER); … … 376 357 arph->opcode = htons(ARPOP_REQUEST); 377 358 378 /* ã¤ã¼ãµããã ARP ããããè¨å®ããã*/359 /* イーサネット ARP ヘッダを設定する。*/ 379 360 et_arph = GET_ETHER_ARP_HDR(arp_req); 380 361 src = IF_GET_IFNET()->in_ifaddr.addr; … … 384 365 ahtonl(et_arph->tproto, dst); 385 366 386 /* éä¿¡ããã*/367 /* 送信する。*/ 387 368 error = IF_RAW_OUTPUT(arp_req, TMO_ARP_OUTPUT); 388 369 } … … 393 374 394 375 /* 395 * arp_get_cache -- ARP ãã£ãã·ã¥ãç²å¾ããã376 * arp_get_cache -- ARP キャッシュを獲得する。 396 377 */ 397 378 … … 403 384 404 385 /* 405 * arp_input -- ARP ã®å 406 ¥åé¢æ° 386 * arp_input -- ARP の入力関数 407 387 */ 408 388 … … 415 395 NET_COUNT_ARP(net_count_arp.in_packets, 1); 416 396 417 /* ARP ãããã®é·ãããã§ãã¯ããã*/397 /* ARP ヘッダの長さをチェックする。*/ 418 398 if (input->len < IF_ARP_HDR_SIZE) 419 399 goto buf_rel; … … 422 402 423 403 /* 424 * ç©çã¢ãã¬ã¹ãã©ã¼ãããã Ehternet 以å¤425 * ã¾ãã¯ããããã³ã«ã IP 以å¤ã¯ã¨ã©ã¼ã404 * 物理アドレスフォーマットが Ehternet 以外 405 * または、プロトコルが IP 以外はエラー。 426 406 */ 427 407 if (ntohs(arph->hrd_addr) != ARPHRD_ETHER || … … 429 409 goto buf_rel; 430 410 431 /* ARP ããã + Ether ARP ãããã®é·ãããã§ãã¯ããã*/411 /* ARP ヘッダ + Ether ARP ヘッダの長さをチェックする。*/ 432 412 if (input->len < IF_ARP_ETHER_HDR_SIZE) 433 413 goto buf_rel; … … 442 422 443 423 /* 444 * arp_resolve -- MAC ã¢ãã¬ã¹è§£æ±º445 * 446 * ã¢ãã¬ã¹è§£æ±ºãã§ããã°ãæ»ãå¤ã¯ true ãè¿ããã§ããªããã°447 * éä¿¡ããã³ãã£ã³ã°ãã¦ãæ»ãå¤ã¯ false ãè¿ãã424 * arp_resolve -- MAC アドレス解決 425 * 426 * アドレス解決ができれば、戻り値は true を返し、できなければ 427 * 送信をペンディングして、戻り値は false を返す。 448 428 */ 449 429 … … 458 438 459 439 /* 460 * 次ã®å ´åã¯ãã¤ã¼ãµãããã®ããã¼ããã£ã¹ãã¢ãã¬ã¹ãè¿ãã440 * 次の場合は、イーサネットのブロードキャストアドレスを返す。 461 441 * 462 * ã»å 463 ¨ãããã 1 464 * ã»ãã¹ãé¨ã®å 465 ¨ãããã 1 ã§ããããã¯ã¼ã¯é¨ããã¼ã«ã«ã¢ãã¬ã¹ 442 * ・全ビットが 1 443 * ・ホスト部の全ビットが 1 で、ネットワーク部がローカルアドレス 466 444 */ 467 445 if (gw == IPV4_ADDR_BROADCAST || … … 471 449 } 472 450 473 /* éä¿¡å 474 GW ã® IP ã¢ãã¬ã¹ã ARP ãã£ãã·ã¥ã«ããã調ã¹ãã*/ 451 /* 送信先 GW の IP アドレスが ARP キャッシュにあるか調べる。*/ 475 452 syscall(wai_sem(SEM_ARP_CACHE_LOCK)); 476 453 ent = arp_lookup(gw, true); … … 481 458 } 482 459 else { 483 /* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/460 /* 送信がペンデングされているフレームがあれば捨てる。*/ 484 461 if (ent->hold) { 485 462 NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1); … … 488 465 489 466 /* 490 * éä¿¡ããã³ãã£ã³ã°ããã491 * IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨å®ããã¦ããã¨ãã¯ã492 * éä¿¡ããã³ãã£ã³ã°ããªãã467 * 送信をペンディングする。 468 * IF でネットワークバッファを開放しないフラグが設定されているときは、 469 * 送信をペンディングしない。 493 470 */ 494 471 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) … … 500 477 syscall(sig_sem(SEM_ARP_CACHE_LOCK)); 501 478 502 /* ã¢ãã¬ã¹è§£æ±ºè¦æ±ãéä¿¡ããã*/479 /* アドレス解決要求を送信する。*/ 503 480 arp_request(ifaddr, gw); 504 481 return false; … … 507 484 508 485 /* 509 * arp_init -- ARP åæå486 * arp_init -- ARP 初期化 510 487 */ 511 488 … … 518 495 #ifdef ETHER_CFG_MULTICAST 519 496 /* 520 * ether_map_ipv4_multicast -- IPv4 ãã«ããã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ497 * ether_map_ipv4_multicast -- IPv4 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換 521 498 */ 522 499 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * Ethernet ARP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * Ethernet ARP コンフィギュレーションファイル 48 36 */ 49 37 50 38 #ifdef SUPPORT_ETHER 51 39 52 /* ARP ãã£ãã·ã¥æ´æ°ç¨ã»ããã©*/40 /* ARP キャッシュ更新用セマフォ */ 53 41 54 42 CRE_SEM(SEM_ARP_CACHE_LOCK, { TA_TPRI, 1, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 88 76 * Ethernet Address Resolution Protocol. 89 77 * 90 * RFC 826 åç 91 § 78 * RFC 826 参照 92 79 */ 93 80 94 81 typedef struct t_ether_arp_hdr { 95 uint8_t shost[ETHER_ADDR_LEN]; /* éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹*/96 uint8_t sproto[IPV4_ADDR_LEN]; /* éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹*/97 uint8_t thost[ETHER_ADDR_LEN]; /* 解決対象ç©çã¢ãã¬ã¹*/98 uint8_t tproto[IPV4_ADDR_LEN]; /* 解決対象 IP ã¢ãã¬ã¹*/82 uint8_t shost[ETHER_ADDR_LEN]; /* 送信ホストの物理アドレス */ 83 uint8_t sproto[IPV4_ADDR_LEN]; /* 送信ホストの IP アドレス */ 84 uint8_t thost[ETHER_ADDR_LEN]; /* 解決対象物理アドレス */ 85 uint8_t tproto[IPV4_ADDR_LEN]; /* 解決対象 IP アドレス */ 99 86 } __attribute__((packed, aligned(2)))T_ETHER_ARP_HDR; 100 87 … … 105 92 106 93 /* 107 * ARP ãã£ãã·ã¥ã¨ã³ããª94 * ARP キャッシュエントリ 108 95 */ 109 96 110 97 typedef struct arp_entry { 111 T_NET_BUF *hold; /* ARP ã®è§£æ±ºå¾ 112 ã¡åºåãã¬ã¼ã */ 113 T_IN4_ADDR ip_addr; /* IP ã¢ãã¬ã¹ */ 114 uint16_t expire; /* ç ´æ£ã¾ã§ã®æéã0 ãªãæªä½¿ç¨ */ 115 uint8_t mac_addr[ETHER_ADDR_LEN]; /* MAC ã¢ãã¬ã¹ */ 98 T_NET_BUF *hold; /* ARP の解決待ち出力フレーム */ 99 T_IN4_ADDR ip_addr; /* IP アドレス */ 100 uint16_t expire; /* 破棄までの時間、0 なら未使用 */ 101 uint8_t mac_addr[ETHER_ADDR_LEN]; /* MAC アドレス */ 116 102 } __attribute__((packed, aligned(2)))T_ARP_ENTRY; 117 103 118 104 /* 119 * é¢æ°105 * 関数 120 106 */ 121 107 … … 131 117 132 118 /* 133 * TINET ç¬èªAPI119 * TINET 独自 API 134 120 */ 135 121 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 88 76 89 77 /* 90 * TINET ã®ãã¼ã¸ã§ã³æ 91 å ± 92 */ 93 94 #define TINET_PRVER UINT_C(0x1054) /* TINET ã®ãã¼ã¸ã§ã³çªå· */ 95 96 /* 97 * ã¤ã³ã¿ã¼ãããã·ã¹ãã ã®å®ç¾©ãRFC790 åç 98 § 99 */ 100 101 /* 102 * ãããã³ã« (RFC1700) 103 */ 104 105 #define IPPROTO_IP UINT_C(0) /* IP ã®ããã¼ */ 106 #define IPPROTO_HOPOPTS UINT_C(0) /* IPv6 ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ */ 78 * TINET のバージョン情報 79 */ 80 81 #define TINET_PRVER UINT_C(0x1054) /* TINET のバージョン番号 */ 82 83 /* 84 * インターネットシステムの定義、RFC790 参照 85 */ 86 87 /* 88 * プロトコル (RFC1700) 89 */ 90 91 #define IPPROTO_IP UINT_C(0) /* IP のダミー */ 92 #define IPPROTO_HOPOPTS UINT_C(0) /* IPv6 中継点 (Hop-by-Hop) オプション */ 107 93 #define IPPROTO_ICMP UINT_C(1) /* ICMP */ 108 94 #define IPPROTO_TCP UINT_C(6) /* TCP */ 109 95 #define IPPROTO_UDP UINT_C(17) /* UDP */ 110 96 #define IPPROTO_IPV6 UINT_C(41) /* IPv6 */ 111 #define IPPROTO_ROUTING UINT_C(43) /* çµè·¯å¶å¾¡ãªãã·ã§ã³*/112 #define IPPROTO_FRAGMENT UINT_C(44) /* æçåãªãã·ã§ã³*/97 #define IPPROTO_ROUTING UINT_C(43) /* 経路制御オプション */ 98 #define IPPROTO_FRAGMENT UINT_C(44) /* 断片化オプション */ 113 99 #define IPPROTO_RSVP UINT_C(46) /* RSVP */ 114 #define IPPROTO_ESP UINT_C(50) /* IPv6 æå·åãªãã·ã§ã³*/115 #define IPPROTO_AH UINT_C(51) /* IPv6 èªè¨¼ãªãã·ã§ã³*/100 #define IPPROTO_ESP UINT_C(50) /* IPv6 暗号化オプション */ 101 #define IPPROTO_AH UINT_C(51) /* IPv6 認証オプション */ 116 102 #define IPPROTO_ICMPV6 UINT_C(58) /* ICMPv6 */ 117 #define IPPROTO_NONE UINT_C(59) /* IPv6 次ãããç¡ã */ 118 #define IPPROTO_DSTOPTS UINT_C(60) /* IPv6 çµç¹ãªãã·ã§ã³ */ 119 #define IPPROTO_IPCOMP UINT_C(108) /* ãã¤ãã¼ãå§ç¸® */ 120 #define IPPROTO_DONE UINT_C(257) /* IPv6 ã§ä¸ä½ãããã³ã«å 121 ¥åçµäº */ 122 123 /* 124 * IPv4 ã¢ãã¬ã¹ 125 */ 126 127 /* åæ¹åç 128 § */ 103 #define IPPROTO_NONE UINT_C(59) /* IPv6 次ヘッダ無し */ 104 #define IPPROTO_DSTOPTS UINT_C(60) /* IPv6 終点オプション */ 105 #define IPPROTO_IPCOMP UINT_C(108) /* ペイロード圧縮 */ 106 #define IPPROTO_DONE UINT_C(257) /* IPv6 で上位プロトコル入力終了 */ 107 108 /* 109 * IPv4 アドレス 110 */ 111 112 /* 前方参照 */ 129 113 130 114 #ifndef T_IN4_ADDR_DEFINED … … 137 121 138 122 /* 139 * ITRON TCP/IPv4 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©123 * ITRON TCP/IPv4 アドレス/ポート番号の定義 140 124 */ 141 125 142 126 typedef struct t_ipv4ep { 143 uint32_t ipaddr; /* IPv4 ã¢ãã¬ã¹*/144 uint16_t portno; /* ãã¼ãçªå·*/127 uint32_t ipaddr; /* IPv4 アドレス */ 128 uint16_t portno; /* ポート番号 */ 145 129 } T_IPV4EP; 146 130 147 131 /* 148 * ã¢ãã¬ã¹/ãã¼ãã®é·ã132 * アドレス/ポートの長さ 149 133 */ 150 134 … … 153 137 154 138 /* 155 * ãã¼ãçªå·ã®å®ç¾©156 */ 157 158 #define TCP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP æ¨æº*/159 #define UDP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP æ¨æº*/160 161 #define TCP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known çµäºçªå·*/162 #define TCP_PORT_FIRST_AUTO UINT_C(1024) /* èªåå²ãå½ã¦éå§çªå·*/163 #define TCP_PORT_LAST_AUTO UINT_C(4999) /* èªåå²ãå½ã¦çµäºçªå·*/164 165 #define UDP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known çµäºçªå·*/166 #define UDP_PORT_FIRST_AUTO UINT_C(1024) /* èªåå²ãå½ã¦éå§çªå·*/167 #define UDP_PORT_LAST_AUTO UINT_C(4999) /* èªåå²ãå½ã¦çµäºçªå·*/168 169 /* 170 * IP ã¢ãã¬ã¹ã®å®ç¾©171 */ 172 173 #define IPV4_ADDRANY ULONG_C(0x00000000) /* ITRON TCP/IP æ¨æº*/139 * ポート番号の定義 140 */ 141 142 #define TCP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP 標準 */ 143 #define UDP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP 標準 */ 144 145 #define TCP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known 終了番号 */ 146 #define TCP_PORT_FIRST_AUTO UINT_C(1024) /* 自動割り当て開始番号 */ 147 #define TCP_PORT_LAST_AUTO UINT_C(4999) /* 自動割り当て終了番号 */ 148 149 #define UDP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known 終了番号 */ 150 #define UDP_PORT_FIRST_AUTO UINT_C(1024) /* 自動割り当て開始番号 */ 151 #define UDP_PORT_LAST_AUTO UINT_C(4999) /* 自動割り当て終了番号 */ 152 153 /* 154 * IP アドレスの定義 155 */ 156 157 #define IPV4_ADDRANY ULONG_C(0x00000000) /* ITRON TCP/IP 標準 */ 174 158 175 159 #define IPV4_ADDR_LOOPBACK ULONG_C(0x7f000001) … … 209 193 210 194 /* 211 * åççæç¨ TCP é信端ç¹195 * 動的生成用 TCP 通信端点 212 196 */ 213 197 214 198 typedef struct t_tcp_ccep { 215 /* æ¨æº */ 216 ATR cepatr; /* é信端ç¹å±æ§ */ 217 void *sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ */ 218 int_t sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 219 void *rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ */ 220 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 221 FP callback; /* ã³ã¼ã«ãã㯠*/ 222 /* å®è£ 223 ä¾å */ 199 /* 標準 */ 200 ATR cepatr; /* 通信端点属性 */ 201 void *sbuf; /* 送信用ウィンドバッファ */ 202 int_t sbufsz; /* 送信用ウィンドバッファサイズ */ 203 void *rbuf; /* 受信用ウィンドバッファ */ 204 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 205 FP callback; /* コールバック */ 206 /* 実装依存 */ 224 207 } T_TCP_CCEP; 225 208 226 209 /* 227 * åççæç¨ TCP åä»å£210 * 動的生成用 TCP 受付口 228 211 */ 229 212 … … 231 214 232 215 typedef struct t_tcp_crep { 233 /* æ¨æº */ 234 ATR repatr; /* åä»å£å±æ§ */ 235 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 236 /* å®è£ 237 ä¾å */ 216 /* 標準 */ 217 ATR repatr; /* 受付口属性 */ 218 T_IPV4EP myaddr; /* 自分のアドレス */ 219 /* 実装依存 */ 238 220 } T_TCP_CREP; 239 221 … … 241 223 242 224 /* 243 * åççæç¨ UDP é信端ç¹225 * 動的生成用 UDP 通信端点 244 226 */ 245 227 … … 247 229 248 230 typedef struct t_udp_ccep { 249 /* æ¨æº */ 250 ATR cepatr; /* UDP é信端ç¹å±æ§ */ 251 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 252 FP callback; /* ã³ã¼ã«ããã¯é¢æ° */ 253 /* å®è£ 254 ä¾å */ 231 /* 標準 */ 232 ATR cepatr; /* UDP 通信端点属性 */ 233 T_IPV4EP myaddr; /* 自分のアドレス */ 234 FP callback; /* コールバック関数 */ 235 /* 実装依存 */ 255 236 } T_UDP_CCEP; 256 237 … … 258 239 259 240 /* 260 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã241 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 261 242 */ 262 243 … … 278 259 279 260 /* 280 * TINET ç¬èªAPI261 * TINET 独自 API 281 262 */ 282 263 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * API æ©è½ã»äºè±¡ã³ã¼ã38 * API 機能・事象コード 51 39 */ 52 40 53 /* TCP é¢ä¿*/41 /* TCP 関係 */ 54 42 55 43 #define TFN_TCP_CRE_REP (-0x201) … … 76 64 #define TEV_TCP_RCV_OOB (-0x201) 77 65 78 /* UDP é¢ä¿*/66 /* UDP 関係 */ 79 67 80 68 #define TFN_UDP_CRE_CEP (-0x221) … … 89 77 #define TEV_UDP_RCV_DAT (-0x221) 90 78 91 /* ä¸è¬*/79 /* 一般 */ 92 80 93 #define NADR ((void*)(-1)) /* ç¡å¹ã¢ãã¬ã¹*/81 #define NADR ((void*)(-1)) /* 無効アドレス */ 94 82 #define IS_PTR_DEFINED(a) ((void*)(a)!=NADR&&(void*)(a)!=NULL) 95 83 #define TCP_REP_NONE UINT_C(0) … … 98 86 99 87 /* 100 * é¢æ°88 * 関数 101 89 */ 102 90 103 /* TCP é¢ä¿*/91 /* TCP 関係 */ 104 92 105 /* ãæ¨æºæ©è½ã*/93 /* 【標準機能】 */ 106 94 107 95 extern ER tcp_acp_cep (ID cepid, ID repid, T_IPV4EP *p_dstaddr, TMO tmout); … … 120 108 extern ER tcp6_con_cep (ID cepid, T_IPV6EP *p_myaddr, T_IPV6EP *p_dstaddr, TMO tmout); 121 109 122 /* ãæ¡å¼µæ©è½ã*/110 /* 【拡張機能】 */ 123 111 124 112 extern ER tcp_del_rep (ID cepid); … … 133 121 extern ER tcp6_cre_rep (ID repid, T_TCP6_CREP *pk_crep); 134 122 135 /* UDP é¢ä¿*/123 /* UDP 関係 */ 136 124 137 /* ãæ¨æºæ©è½ã*/125 /* 【標準機能】 */ 138 126 139 127 extern ER_UINT udp_snd_dat (ID cepid, T_IPV4EP *p_dstaddr, void *data, int_t len, TMO tmout); … … 144 132 extern ER_UINT udp6_rcv_dat (ID cepid, T_IPV6EP *p_dstaddr, void *data, int_t len, TMO tmout); 145 133 146 /* ãæ¡å¼µæ©è½ã*/134 /* 【拡張機能】 */ 147 135 148 136 extern ER udp_del_cep (ID cepid); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * TCP/IP ãããã³ã«ã¹ã¿ãã¯å 51 é¨åã®ãªãã¼ã 38 * TCP/IP プロトコルスタック内部名のリネーム 52 39 */ 53 40 … … 154 141 #define tmax_tcp_repid _tinet_tmax_tcp_repid 155 142 #define tmax_tcp_cepid _tinet_tmax_tcp_cepid 156 #define tmax_tcp_crepid _tinet_tmax_tcp_repid /* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©*/157 #define tmax_tcp_ccepid _tinet_tmax_tcp_cepid /* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©*/143 #define tmax_tcp_crepid _tinet_tmax_tcp_repid /* TINET 1.3 との互換性のための定義 */ 144 #define tmax_tcp_ccepid _tinet_tmax_tcp_cepid /* TINET 1.3 との互換性のための定義 */ 158 145 159 146 /* netinet/udp_input.c */ … … 179 166 #define udp_cep _tinet_udp_cep 180 167 #define tmax_udp_cepid _tinet_tmax_udp_cepid 181 #define tmax_udp_ccepid _tinet_tmax_udp_cepid /* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©*/168 #define tmax_udp_ccepid _tinet_tmax_udp_cepid /* TINET 1.3 との互換性のための定義 */ 182 169 183 170 /* netinet/ip_icmp.c */ -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 122 110 123 111 /* 124 * in4_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ããã¢ãã¬ã¹ãè¿ãã112 * in4_get_ifaddr -- インタフェースに設定されているアドレスを返す。 125 113 */ 126 114 … … 134 122 135 123 /* 136 * ip2str -- IPv4 ã¢ãã¬ã¹ãæååã«å¤æããã124 * ip2str -- IPv4 アドレスを文字列に変換する。 137 125 */ 138 126 … … 166 154 167 155 /* 168 * in4_set_header -- IPv4 ããããè¨å®ããã156 * in4_set_header -- IPv4 ヘッダを設定する。 169 157 */ 170 158 … … 176 164 T_IFNET *ifp = IF_GET_IFNET(); 177 165 178 /* IP ããããè¨å®ããã*/166 /* IP ヘッダを設定する。*/ 179 167 ip4h->vhl = IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2); 180 168 ip4h->len = htons(IP4_HDR_SIZE + len); … … 184 172 ip4h->id = ip4h->flg_off = ip4h->sum = 0; 185 173 186 /* IP ã¢ãã¬ã¹ãè¨å®ããã*/174 /* IP アドレスを設定する。*/ 187 175 ip4h->dst = htonl(*dstaddr); 188 176 … … 196 184 197 185 /* 198 * in4_get_datagram -- IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨å®ããã186 * in4_get_datagram -- IPv4 データグラムを獲得し、ヘッダを設定する。 199 187 */ 200 188 … … 207 195 uint_t align; 208 196 209 /* ãã¼ã¿é·ã 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/197 /* データ長を 4 オクテット境界に調整する。*/ 210 198 align = (len + 3) >> 2 << 2; 211 199 212 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/200 /* ネットワークバッファを獲得する。*/ 213 201 if ((error = tget_net_buf_ex(nbuf, (uint_t)(IF_IP4_HDR_SIZE + align), 214 202 (uint_t)(IF_IP4_HDR_SIZE + maxlen), nbatr, tmout)) != E_OK) … … 216 204 217 205 /* 218 * ãã大ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ãã調æ´ããã219 * ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®220 * çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã206 * より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。 207 * より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの 208 * 省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。 221 209 */ 222 210 if ((nbatr & NBA_SEARCH_ASCENT) != 0) 223 211 (*nbuf)->len = (uint16_t)(IF_IP4_HDR_SIZE + len); 224 212 225 /* IP ããããè¨å®ããã*/213 /* IP ヘッダを設定する。*/ 226 214 if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK) 227 215 return error; 228 216 229 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/217 /* 4 オクテット境界までパディングで埋める。*/ 230 218 if (align > len) 231 219 memset((GET_IP4_SDU(*nbuf) + len), 0, (size_t)(align - len)); … … 235 223 236 224 /* 237 * in4_cksum -- IPv4 ã®ãã©ã³ã¹ãã¼ã層ãããã®ãã§ãã¯ãµã ãè¨ç®ããã238 * 239 * 注æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã225 * in4_cksum -- IPv4 のトランスポート層ヘッダのチェックサムを計算する。 226 * 227 * 注意: 戻り値はネットワークバイトオーダ 240 228 */ 241 229 … … 246 234 uint_t align; 247 235 248 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/236 /* 4 オクテット境界のデータ長 */ 249 237 align = (len + 3) >> 2 << 2; 250 238 251 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/239 /* 4 オクテット境界までパディングで埋める。*/ 252 240 if (align > len) 253 241 memset((uint8_t*)nbuf->buf + off + len, 0, (size_t)(align - len)); … … 262 250 263 251 /* 264 * in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨265 * 266 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã267 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨268 * ä¾å¤ãçºçããå¯è½æ§ãããã269 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã270 * 271 * æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã252 * in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用 253 * 254 * 注意: data は 4 オクテット単位でパディングすること。 255 * data が 2 オクテット単位にアラインされていないと 256 * 例外が発生する可能性がある。 257 * len は 4 オクテット単位にアラインされていること。 258 * 259 * 戻り値はネットワークバイトオーダ 272 260 */ 273 261 274 262 uint16_t 275 in_cksum (void *data, uint_t len /* ãªã¯ãããåä½*/)263 in_cksum (void *data, uint_t len /*オクテット単位*/) 276 264 { 277 265 uint16_t sum; … … 282 270 283 271 /* 284 * in4_is_dstaddr_accept -- å®å 285 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 286 * 287 * 注æ: dstaddr ã¯ã 288 * TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã 289 * TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã 272 * in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 273 * 274 * 注意: dstaddr は、 275 * TINET-1.2 からネットワークバイトオーダ、 276 * TINET-1.1 までは、ホストバイトオーダ 290 277 */ 291 278 … … 300 287 301 288 /* 302 * in4_ifawithifp -- å®å 303 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 304 ã¢ãã¬ã¹ãã 305 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã 306 * in6_ifawithifp ãã·ãã¥ã¬ã¼ãããã ãã§ã 307 * ã¨ã©ã¼ãè¿ããã¨ã¯ãªãã 289 * in4_ifawithifp -- 宛先アドレスにふさわしい送信元アドレスを、 290 * ネットワークインタフェースから探索する。 291 * in6_ifawithifp をシミュレートするだけで、 292 * エラーを返すことはない。 308 293 */ 309 294 … … 315 300 316 301 /* 317 * in4_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨å®ããã302 * in4_add_ifaddr -- インタフェースに IPv4 アドレスを設定する。 318 303 */ 319 304 … … 331 316 332 317 /* 333 * in4_add_route -- çµè·¯è¡¨ã«ã¨ã³ããªãè¨å®ããã318 * in4_add_route -- 経路表にエントリを設定する。 334 319 */ 335 320 … … 351 336 352 337 /* 353 * in4_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã338 * in4_rtalloc -- ルーティング表を探索する。 354 339 */ 355 340 … … 374 359 375 360 /* 376 * in4_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã377 * 378 * 注æ: å¼æ° tmo ã®åä½ã¯ [ms]ã361 * in4_rtredirect -- ルーティング表にエントリを登録する。 362 * 363 * 注意: 引数 tmo の単位は [ms]。 379 364 */ 380 365 … … 393 378 394 379 /* 395 * in4_timer -- IPv4 å 396 ±éã¿ã¤ãã¼ 397 * 398 * 1ç§å¨æã§èµ·åãããã 380 * in4_timer -- IPv4 共通タイマー 381 * 382 * 1秒周期で起動される。 399 383 */ 400 384 … … 418 402 419 403 /* 420 * in4_init -- IPv4 å 421 ±éæ©è½ãåæåããã 404 * in4_init -- IPv4 共通機能を初期化する。 422 405 */ 423 406 … … 439 422 440 423 /* 441 * in_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã424 * in_rtinit -- ルーティング表を初期化する。 442 425 */ 443 426 … … 455 438 456 439 /* 457 * in_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã440 * in_rtnewentry -- 新しいエントリを獲得する。 458 441 */ 459 442 … … 465 448 int_t ix; 466 449 467 /* 空ãã¨ã³ããªãæ¢ãã*/450 /* 空きエントリを探す。*/ 468 451 for (ix = NUM_STATIC_ROUTE_ENTRY; ix < NUM_ROUTE_ENTRY; ix ++) { 469 452 rt = &routing_tbl[ix]; … … 474 457 } 475 458 476 /* expire ã®åä½ã¯ [s]ã*/459 /* expire の単位は [s]。*/ 477 460 syscall(get_tim(&now)); 478 461 now /= SYSTIM_HZ; 479 462 480 463 if (frt == NULL) { 481 /* 空ãããªããã°ãæå¹æéããã£ã¨ãçãã¨ã³ããªã空ãã«ããã*/464 /* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/ 482 465 T_IN_RTENTRY *srt = NULL; 483 466 int_t diff, sdiff = INT_MAX; … … 488 471 diff = (int_t)(rt->expire - now); 489 472 if (diff <= 0) { /* rt->expire <= now */ 490 /* æ¢ã«ãæå¹æéãéãã¦ããã*/473 /* 既に、有効時間が過ぎている。*/ 491 474 frt = rt; 492 475 break; … … 509 492 510 493 /* 511 * in_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼494 * in_rttimer -- ルーティング表の管理タイマー 512 495 */ 513 496 … … 518 501 int_t ix; 519 502 520 /* expire ã®åä½ã¯ [s]ã*/503 /* expire の単位は [s]。*/ 521 504 syscall(get_tim(&now)); 522 505 now /= SYSTIM_HZ; … … 533 516 534 517 /* 535 * in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°536 * 537 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã538 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨539 * ä¾å¤ãçºçããå¯è½æ§ãããã540 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã541 * 542 * æ»ãå¤ã¯ãã¹ããã¤ããªã¼ã518 * in_cksum_sum -- チェックサムの合計計算関数 519 * 520 * 注意: data は 4 オクテット単位でパディングすること。 521 * data が 2 オクテット単位にアラインされていないと 522 * 例外が発生する可能性がある。 523 * len は 4 オクテット単位にアラインされていること。 524 * 525 * 戻り値はホストバイトオーダ 543 526 */ 544 527 545 528 uint32_t 546 in_cksum_sum (void *data, uint_t len /* ãªã¯ãããåä½*/)529 in_cksum_sum (void *data, uint_t len /*オクテット単位*/) 547 530 { 548 531 uint32_t sum = 0; … … 562 545 563 546 /* 564 * in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°565 * 566 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã567 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨568 * ä¾å¤ãçºçããå¯è½æ§ãããã569 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã547 * in_cksum_carry -- チェックサムの桁上げ計算関数 548 * 549 * 注意: data は 4 オクテット単位でパディングすること。 550 * data が 2 オクテット単位にアラインされていないと 551 * 例外が発生する可能性がある。 552 * len は 4 オクテット単位にアラインされていること。 570 553 */ 571 554 … … 584 567 585 568 /* 586 * in_strtfn -- API æ©è½ã³ã¼ãã®æå表ç¾ãè¿ãã569 * in_strtfn -- API 機能コードの文字表現を返す。 587 570 */ 588 571 … … 592 575 switch (fncd) { 593 576 594 /* TCP é¢ä¿*/577 /* TCP 関係 */ 595 578 596 579 case TFN_TCP_CRE_REP: … … 655 638 break; 656 639 657 /* UDP é¢ä¿*/640 /* UDP 関係 */ 658 641 659 642 case TFN_UDP_CRE_CEP: -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 90 78 91 79 /* 92 * ç¬èªã®ã¨ã©ã¼ã³ã¼ã 93 */ 94 95 #define EV_NOPND (-97) /* ãã³ãã£ã³ã°ãã¦ããªã */ 96 97 /* 98 * ãããã¯ã¼ã¯ã¨ã©ã¼ã³ã¼ã 99 */ 100 101 #define EV_MSIZE (-98) /* ãã¼ã¿ã°ã©ã é·è¶ 102 é */ 103 #define EV_NURCH (-99) /* ãããã¯ã¼ã¯å°éä¸è½ */ 104 #define EV_HDOWN (-100) /* ãã¹ããã¦ã³ */ 105 #define EV_HURCH (-101) /* ãã¹ãå°éä¸è½ */ 106 #define EV_CNNRF (-102) /* æ¥ç¶ä¸è½ */ 107 #define EV_CNRST (-103) /* æ¥ç¶ãªã»ãã */ 108 #define EV_REXMTMO (-104) /* åéã¿ã¤ã ã¢ã¦ã */ 109 110 /* 111 * å 112 ±éã¿ã¤ãã®èµ·åå¨æã®å®ç¾© 80 * 独自のエラーコード 81 */ 82 83 #define EV_NOPND (-97) /* ペンディングしていない */ 84 85 /* 86 * ネットワークエラーコード 87 */ 88 89 #define EV_MSIZE (-98) /* データグラム長超過 */ 90 #define EV_NURCH (-99) /* ネットワーク到達不能 */ 91 #define EV_HDOWN (-100) /* ホストダウン */ 92 #define EV_HURCH (-101) /* ホスト到達不能 */ 93 #define EV_CNNRF (-102) /* 接続不能 */ 94 #define EV_CNRST (-103) /* 接続リセット */ 95 #define EV_REXMTMO (-104) /* 再送タイムアウト */ 96 97 /* 98 * 共通タイマの起動周期の定義 113 99 */ 114 100 … … 116 102 117 103 /* 118 * ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½104 * インタフェースアドレス構造体 119 105 */ 120 106 121 107 typedef struct t_in4_ifaddr { 122 T_IN4_ADDR addr; /* IPv4 ã¢ãã¬ã¹*/123 T_IN4_ADDR mask; /* ãµãããããã¹ã¯*/108 T_IN4_ADDR addr; /* IPv4 アドレス */ 109 T_IN4_ADDR mask; /* サブネットマスク */ 124 110 } T_IN4_IFADDR; 125 111 126 112 /* 127 * ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½113 * ルーティング表エントリ構造体 128 114 */ 129 115 130 116 typedef struct t_in4_rtentry { 131 T_IN4_ADDR target; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹*/132 T_IN4_ADDR mask; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹ã®ãµãããããã¹ã¯*/133 T_IN4_ADDR gateway; /* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹*/134 uint32_t expire; /* æå¹æéãåããæå»[s] */135 uint8_t flags; /* ãã©ã°*/117 T_IN4_ADDR target; /* 目標ネットワークアドレス */ 118 T_IN4_ADDR mask; /* 目標ネットワークアドレスのサブネットマスク */ 119 T_IN4_ADDR gateway; /* ゲートウェイの IP アドレス */ 120 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 121 uint8_t flags; /* フラグ */ 136 122 } T_IN4_RTENTRY; 137 123 138 124 /* 139 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©125 * TINET 1.1 との互換性のための定義 140 126 */ 141 127 … … 150 136 #define NUM_ROUTE_ENTRY \ 151 137 (NUM_STATIC_ROUTE_ENTRY + NUM_REDIRECT_ROUTE_ENTRY) 152 /* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°*/138 /* ルーティング表のエントリ数 */ 153 139 154 140 #endif /* of #ifdef NUM_ROUTE_ENTRY */ 155 141 156 142 /* 157 * ã«ã¼ãã£ã³ã°ã¨ã³ããªç¶æ 158 ãã©ã° 159 */ 160 161 #define IN_RTF_DEFINED UINT_C(0x01) /* å®ç¾©æ¸ã¿ */ 162 #define IN_RTF_REDIRECT UINT_C(0x10) /* åãç´ãã«ããèªåè¨å®ããã */ 163 164 /* 165 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã 143 * ルーティングエントリ状態フラグ 144 */ 145 146 #define IN_RTF_DEFINED UINT_C(0x01) /* 定義済み */ 147 #define IN_RTF_REDIRECT UINT_C(0x10) /* 向け直しにより自動設定された */ 148 149 /* 150 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 166 151 */ 167 152 … … 182 167 183 168 /* 184 * ã«ã¼ãã£ã³ã°è¡¨169 * ルーティング表 185 170 */ 186 171 … … 188 173 189 174 /* 190 * åæ¹åç 191 § 175 * 前方参照 192 176 */ 193 177 … … 203 187 204 188 /* 205 * é¢æ°189 * 関数 206 190 */ 207 191 … … 223 207 224 208 /* 225 * in4_is_dstaddr_accept -- å®å 226 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 227 * 228 * 注æ: dstaddr ã¯ã 229 * TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã 230 * TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã 209 * in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 210 * 211 * 注意: dstaddr は、 212 * TINET-1.2 からネットワークバイトオーダ、 213 * TINET-1.1 までは、ホストバイトオーダ 231 214 */ 232 215 extern bool_t in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr); 233 216 234 217 /* 235 * in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨236 * 237 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã238 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨239 * ä¾å¤ãçºçããå¯è½æ§ãããã240 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã241 */ 242 extern uint16_t in_cksum(void *data, uint_t len /* ãªã¯ãããåä½*/);243 244 /* 245 * in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°246 * 247 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã248 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨249 * ä¾å¤ãçºçããå¯è½æ§ãããã250 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã251 */ 252 extern uint32_t in_cksum_sum (void *data, uint_t len /* ãªã¯ãããåä½*/);253 254 /* 255 * in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°256 * 257 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã258 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨259 * ä¾å¤ãçºçããå¯è½æ§ãããã260 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã218 * in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用 219 * 220 * 注意: data は 4 オクテット単位でパディングすること。 221 * data が 2 オクテット単位にアラインされていないと 222 * 例外が発生する可能性がある。 223 * len は 4 オクテット単位にアラインされていること。 224 */ 225 extern uint16_t in_cksum(void *data, uint_t len /*オクテット単位*/); 226 227 /* 228 * in_cksum_sum -- チェックサムの合計計算関数 229 * 230 * 注意: data は 4 オクテット単位でパディングすること。 231 * data が 2 オクテット単位にアラインされていないと 232 * 例外が発生する可能性がある。 233 * len は 4 オクテット単位にアラインされていること。 234 */ 235 extern uint32_t in_cksum_sum (void *data, uint_t len /*オクテット単位*/); 236 237 /* 238 * in_cksum_carry -- チェックサムの桁上げ計算関数 239 * 240 * 注意: data は 4 オクテット単位でパディングすること。 241 * data が 2 オクテット単位にアラインされていないと 242 * 例外が発生する可能性がある。 243 * len は 4 オクテット単位にアラインされていること。 261 244 */ 262 245 extern uint32_t in_cksum_carry (uint32_t sum); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * IPv4 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã35 * IPv4 で使用するカーネルオブジェクト 48 36 */ 49 37 … … 52 40 #ifdef IP4_CFG_FRAGMENT 53 41 54 /* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æ*/42 /* データグラムの分割・再構成 */ 55 43 56 44 CRE_SEM(SEM_IP4_FRAG_QUEUE, { TA_TPRI, 1, 1 }); … … 60 48 #if NUM_REDIRECT_ROUTE_ENTRY > 0 61 49 62 /* ã«ã¼ãã£ã³ã°è¡¨ï¼åãç´ãï¼*/50 /* ルーティング表(向け直し)*/ 63 51 64 52 CRE_SEM(SEM_IN_ROUTING_TBL, { TA_TPRI, 1, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * IPv4 ã®å®ç¾©ãRFC791 åç 87 § 74 * IPv4 の定義、RFC791 参照 88 75 */ 89 76 … … 91 78 92 79 /* 93 * IPv4 ãããã®å®ç¾©80 * IPv4 ヘッダの定義 94 81 */ 95 82 96 83 typedef struct t_ip4_hdr { 97 84 uint8_t vhl; /* version << 4 | header length >> 2 */ 98 /* length 㯠4 octets åä½*/85 /* length は 4 octets 単位 */ 99 86 uint8_t type; /* type of services */ 100 87 uint16_t len; /* total length */ … … 114 101 115 102 /* 116 * IPv4 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã103 * IPv4 ヘッダ構造体メンバアクセスマクロ 117 104 */ 118 105 … … 126 113 127 114 /* 128 * IPv4 ãããã®ãã£ã¼ã«ãã®å¤ã®å®ç¾©115 * IPv4 ヘッダのフィールドの値の定義 129 116 */ 130 117 131 #define IP4_VHL_BORING UINT_C(0x45) /* ãªãã·ã§ã³ããªã VHL å¤*/132 #define IP4_RF UINT_C(0x8000) /* off: äºç´*/133 #define IP4_DF UINT_C(0x4000) /* off: åå²ç¦æ¢*/134 #define IP4_MF UINT_C(0x2000) /* off: åå²ãã*/135 #define IP4_OFFMASK UINT_C(0x1fff) /* ãªãã»ããé¨ã®ãã¹ã¯å¤*/118 #define IP4_VHL_BORING UINT_C(0x45) /* オプションがない VHL 値 */ 119 #define IP4_RF UINT_C(0x8000) /* off: 予約 */ 120 #define IP4_DF UINT_C(0x4000) /* off: 分割禁止 */ 121 #define IP4_MF UINT_C(0x2000) /* off: 分割あり */ 122 #define IP4_OFFMASK UINT_C(0x1fff) /* オフセット部のマスク値 */ 136 123 137 124 /* 138 * å¶éå¤125 * 制限値 139 126 */ 140 127 141 #define IP4_MAXPACKET UINT_C(65535) /* æ大ãã±ãããµã¤ãº*/142 #define IP4_MAXTTL UINT_C(255) /* TTL æ大å¤*/143 #define IP4_DEFTTL UINT_C(64) /* TTL è¦å®å¤(RFC1340) */144 #define IP4_FRAGTTL UINT_C(60) /* åå²ããããã¼ã¿ã°ã©ã ã®çåæéï¼ç§ï¼*/145 #define IP4_MSS UINT_C(576) /* æ大ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤*/128 #define IP4_MAXPACKET UINT_C(65535) /* 最大パケットサイズ */ 129 #define IP4_MAXTTL UINT_C(255) /* TTL 最大値 */ 130 #define IP4_DEFTTL UINT_C(64) /* TTL 規定値 (RFC1340) */ 131 #define IP4_FRAGTTL UINT_C(60) /* 分割されたデータグラムの生存時間(秒)*/ 132 #define IP4_MSS UINT_C(576) /* 最大セグメントサイズの規定値 */ 146 133 147 /* IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã*/134 /* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */ 148 135 149 136 #if defined(SUPPORT_INET4) -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 117 105 118 106 /* 119 * IPv6 ã®å®ç¾©ãRFC2460 åç 120 § 107 * IPv6 の定義、RFC2460 参照 121 108 */ 122 109 … … 124 111 125 112 /* 126 * IPv6 ãããã®å®ç¾©113 * IPv6 ヘッダの定義 127 114 */ 128 115 … … 141 128 142 129 /* 143 * IPv6 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã130 * IPv6 ヘッダ構造体メンバアクセスマクロ 144 131 */ 145 132 … … 151 138 152 139 /* 153 * æ¡å¼µããã140 * 拡張ヘッダ 154 141 */ 155 142 156 143 typedef struct t_ip6_ext_hdr { 157 144 uint8_t next; /* Next Header */ 158 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ã*/145 uint8_t len; /* 8 オクテット単位の長さ */ 159 146 } __attribute__((packed, aligned(2)))T_IP6_EXT_HDR; 160 147 161 148 /* 162 * ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ããã149 * 中継点 (Hop-by-Hop) オプションヘッダ 163 150 */ 164 151 165 152 typedef struct t_ip6_hbh_hdr { 166 153 uint8_t next; /* Next Header */ 167 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 168 * ãã®ãªãã·ã§ã³ãããå 169 ¨ä½ã®ãªã¯ãããæ°ã 170 * 8 ã§å²ã£ãå¤ã® - 1 ãå 171 ¥ãã 154 uint8_t len; /* 8 オクテット単位の長さ。ただし、 155 * このオプションヘッダ全体のオクテット数を 156 * 8 で割った値の - 1 が入る。 172 157 */ 173 158 } __attribute__((packed, aligned(2)))T_IP6_HBH_HDR; 174 159 175 160 /* 176 * çµç¹ (Destination) ãªãã·ã§ã³ããã161 * 終点 (Destination) オプションヘッダ 177 162 */ 178 163 179 164 typedef struct t_ip6_dest_hdr { 180 165 uint8_t next; /* Next Header */ 181 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 182 * ãã®ãªãã·ã§ã³ãããå 183 ¨ä½ã®ãªã¯ãããæ°ã 184 * 8 ã§å²ã£ãå¤ã® - 1 ãå 185 ¥ãã 166 uint8_t len; /* 8 オクテット単位の長さ。ただし、 167 * このオプションヘッダ全体のオクテット数を 168 * 8 で割った値の - 1 が入る。 186 169 */ 187 170 } __attribute__((packed, aligned(2)))T_IP6_DEST_HDR; 188 171 189 /* ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³*/172 /* 中継点 (Hop-by-Hop) オプション */ 190 173 191 174 #define IP6OPT_PAD1 UINT_C(0x00) /* 00 0 00000 */ … … 196 179 #define IP6OPT_RTR_ALERT UINT_C(0x05) /* 00 0 00101 */ 197 180 198 #define IP6OPT_MINLEN 2 /* ãªãã·ã§ã³ã®æçé·*/199 200 /* æªç¥ã®ãªãã·ã§ã³ã®å¦çã®æå®*/201 202 #define IP6OPT_TYPE_SKIP UINT_C(0x00) /* ç¡è¦ããã*/203 #define IP6OPT_TYPE_DISCARD UINT_C(0x40) /* ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/204 #define IP6OPT_TYPE_FORCEICMP UINT_C(0x80) /* ç ´æ£ãã¦ãICMP ãè¿éããã*/181 #define IP6OPT_MINLEN 2 /* オプションの最短長 */ 182 183 /* 未知のオプションの処理の指定 */ 184 185 #define IP6OPT_TYPE_SKIP UINT_C(0x00) /* 無視する。 */ 186 #define IP6OPT_TYPE_DISCARD UINT_C(0x40) /* データグラムを破棄する。 */ 187 #define IP6OPT_TYPE_FORCEICMP UINT_C(0x80) /* 破棄して、ICMP を返送する。 */ 205 188 #define IP6OPT_TYPE_ICMP UINT_C(0xc0) 206 /* ç ´æ£ãã¦ããã«ããã£ã¹ãã§ãªããã° ICMP ãè¿éããã*/189 /* 破棄して、マルチキャストでなければ ICMP を返送する。 */ 207 190 208 191 #define IP6OPT_TYPE(o) ((o)&UINT_C(0xc0)) 209 192 210 193 /* 211 * çµè·¯å¶å¾¡ããã194 * 経路制御ヘッダ 212 195 */ 213 196 214 197 typedef struct t_ip6_rt_hdr { 215 198 uint8_t next; /* Next Header */ 216 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 217 * ãã®ãªãã·ã§ã³ãããå 218 ¨ä½ã®ãªã¯ãããæ°ã 219 * 8 ã§å²ã£ãå¤ã® - 1 ãå 220 ¥ãã 221 */ 222 uint8_t type; /* çµè·¯å¶å¾¡ã¿ã¤ã */ 223 uint8_t segleft; /* ã»ã°ã¡ã³ãã®æ®ã */ 199 uint8_t len; /* 8 オクテット単位の長さ。ただし、 200 * このオプションヘッダ全体のオクテット数を 201 * 8 で割った値の - 1 が入る。 202 */ 203 uint8_t type; /* 経路制御タイプ */ 204 uint8_t segleft; /* セグメントの残り */ 224 205 } __attribute__((packed, aligned(2)))T_IP6_RT_HDR; 225 206 226 207 /* 227 * ã¿ã¤ã 0 çµè·¯å¶å¾¡ããã208 * タイプ 0 経路制御ヘッダ 228 209 */ 229 210 230 211 typedef struct t_ip6_rt0_hdr { 231 212 uint8_t next; /* Next Header */ 232 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 233 * ãã®ãªãã·ã§ã³ãããå 234 ¨ä½ã®ãªã¯ãããæ°ã 235 * 8 ã§å²ã£ãå¤ã® - 1 ãå 236 ¥ãã 237 */ 238 uint8_t type; /* çµè·¯å¶å¾¡ã¿ã¤ã */ 239 uint8_t segleft; /* ã»ã°ã¡ã³ãã®æ®ã */ 240 uint32_t reserved; /* äºç´ */ 213 uint8_t len; /* 8 オクテット単位の長さ。ただし、 214 * このオプションヘッダ全体のオクテット数を 215 * 8 で割った値の - 1 が入る。 216 */ 217 uint8_t type; /* 経路制御タイプ */ 218 uint8_t segleft; /* セグメントの残り */ 219 uint32_t reserved; /* 予約 */ 241 220 } __attribute__((packed, aligned(2)))T_IP6_RT0_HDR; 242 221 243 222 /* 244 * æçããã223 * 断片ヘッダ 245 224 */ 246 225 … … 248 227 uint8_t next; /* Next Header */ 249 228 uint8_t reserved; 250 uint16_t off_flag; /* ãªãã»ããã¨ãã©ã°*/251 uint32_t ident; /* åå²èå¥å*/229 uint16_t off_flag; /* オフセットとフラグ */ 230 uint32_t ident; /* 分割識別子 */ 252 231 } __attribute__((packed, aligned(2)))T_IP6_FRAG_HDR; 253 232 254 /* æçãããã®ãªãã»ããã¨ãã©ã°*/233 /* 断片ヘッダのオフセットとフラグ */ 255 234 256 235 #ifdef _NET_CFG_BYTE_ORDER … … 258 237 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN 259 238 260 #define IP6F_OFF_MASK UINT_C(0xfff8) /* ãªãã»ãããååºããã¹ã¯*/261 #define IP6F_RESERVED_MASK UINT_C(0x0006) /* äºç´ãååºããã¹ã¯*/262 #define IP6F_MORE_FRAG UINT_C(0x0001) /* ä¸éãã©ã°ã¡ã³ã*/239 #define IP6F_OFF_MASK UINT_C(0xfff8) /* オフセットを取出すマスク */ 240 #define IP6F_RESERVED_MASK UINT_C(0x0006) /* 予約を取出すマスク */ 241 #define IP6F_MORE_FRAG UINT_C(0x0001) /* 中間フラグメント */ 263 242 264 243 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN 265 244 266 #define IP6F_OFF_MASK UINT_C(0xf8ff) /* ãªãã»ãããååºããã¹ã¯*/267 #define IP6F_RESERVED_MASK UINT_C(0x0600) /* äºç´ãååºããã¹ã¯*/268 #define IP6F_MORE_FRAG UINT_C(0x0100) /* ä¸éãã©ã°ã¡ã³ã*/245 #define IP6F_OFF_MASK UINT_C(0xf8ff) /* オフセットを取出すマスク */ 246 #define IP6F_RESERVED_MASK UINT_C(0x0600) /* 予約を取出すマスク */ 247 #define IP6F_MORE_FRAG UINT_C(0x0100) /* 中間フラグメント */ 269 248 270 249 #endif /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */ … … 273 252 274 253 /* 275 * å¶éå¤276 */ 277 278 #define IPV6_MAXHLIM UINT_C(255) /* ããããªãããã®æ大å¤*/279 #define IPV6_DEFHLIM UINT_C(64) /* ããããªãããã®è¦å®å¤*/280 #define IPV6_FRAGTTL UINT_C(60) /* åå²ããããã¼ã¿ã°ã©ã ã®çåæéï¼ç§ï¼*/281 #define IPV6_MMTU UINT_C(1280) /* æå° MTUããã¤ãã¼ã (1024) + ããã(256) */282 #define IPV6_MAXPACKET UINT_C(65535) /* ã¸ã£ã³ããã¤ãã¼ããé¤ãæ大ãã±ãããµã¤ãº*/283 284 /* 285 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã286 */ 287 288 /* 289 * ããããªãããã®è¦å®å¤ã¯ãã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ããã254 * 制限値 255 */ 256 257 #define IPV6_MAXHLIM UINT_C(255) /* ホップリミットの最大値 */ 258 #define IPV6_DEFHLIM UINT_C(64) /* ホップリミットの規定値 */ 259 #define IPV6_FRAGTTL UINT_C(60) /* 分割されたデータグラムの生存時間(秒) */ 260 #define IPV6_MMTU UINT_C(1280) /* 最小 MTU。ペイロード (1024) + ヘッダ (256) */ 261 #define IPV6_MAXPACKET UINT_C(65535) /* ジャンボペイロードを除く最大パケットサイズ */ 262 263 /* 264 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 265 */ 266 267 /* 268 * ホップリミットの規定値は、ルータ通知により変更されることがある 290 269 */ 291 270 292 271 #if NUM_ND6_DEF_RTR_ENTRY > 0 293 272 294 /* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤*/273 /* ルータ通知を受信する場合は、通知された値 */ 295 274 296 275 #define IP_DEFTTL ip6_defhlim … … 298 277 #else /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */ 299 278 300 /* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤*/279 /* ルータ通知を受信しない場合の値は既定値 */ 301 280 302 281 #define IP_DEFTTL IPV6_DEFHLIM -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 122 110 123 111 /* 124 * å¤æ°112 * 変数 125 113 */ 126 114 … … 128 116 129 117 /* 130 * SNMP 㮠管çæ 131 å ±ãã¼ã¹ (MIB) 118 * SNMP の 管理情報ベース (MIB) 132 119 */ 133 120 … … 137 124 138 125 /* 139 * é¢æ°126 * 関数 140 127 */ 141 128 … … 150 137 151 138 /* 152 * icmp_echo -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç153 * 154 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã139 * icmp_echo -- エコー要求を受信したときの処理 140 * 141 * input には IF ヘッダと IP ヘッダも含まれている。 155 142 */ 156 143 … … 164 151 NET_COUNT_MIB(icmp_stats.icmpInEchos, 1); 165 152 166 /* ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (8) ãã ã¨ã³ã¼å¿ç (0) ã«*/167 /* å¤æ´ãã¦éãè¿ãã*/153 /* メッセージの型をエコー要求 (8) から エコー応答 (0) に */ 154 /* 変更して送り返す。 */ 168 155 169 156 icmp4h = GET_ICMP4_HDR(input, ihoff); 170 157 icmp4h->type = ICMP4_ECHO_REPLY; 171 158 172 /* IP ãããã®å®å 173 ã¨çºä¿¡å 174 ã交æããã*/ 159 /* IP ヘッダの宛先と発信元を交換する。*/ 175 160 ip4h = GET_IP4_HDR(input); 176 161 addr = ip4h->src; … … 178 163 ip4h->dst = addr; 179 164 180 /* ãã§ãã¯ãµã ãè¨ç®ããã*/165 /* チェックサムを計算する。*/ 181 166 icmp4h->sum = 0; 182 167 icmp4h->sum = in_cksum(icmp4h, 183 168 (uint_t)(((input->len - GET_IF_IP4_HDR_SIZE(input)) + 3) >> 2 << 2)); 184 169 185 /* éä¿¡ããã*/170 /* 送信する。*/ 186 171 NET_COUNT_ICMP4(net_count_icmp4.out_octets, 187 172 input->len - GET_IF_IP4_HDR_SIZE(input)); … … 193 178 194 179 /* 195 * icmp_unreach -- ICMP4_UNREACH ãåä¿¡ããã¨ãã®å¦ç180 * icmp_unreach -- ICMP4_UNREACH を受信したときの処理 196 181 */ 197 182 … … 245 230 246 231 /* 247 * icmp_redirect -- åãç´ãã¡ãã»ã¼ã¸ãåä¿¡ããã¨ãã®å¦ç248 * 249 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã232 * icmp_redirect -- 向け直しメッセージを受信したときの処理 233 * 234 * input には IF ヘッダと IP ヘッダも含まれている。 250 235 */ 251 236 … … 261 246 262 247 /* 263 * å 264 容ãã§ãã¯ã以ä¸ã®å ´åã¯ã¨ã©ã¼ 248 * 内容チェック、以下の場合はエラー 265 249 * 266 * ã»ICMP ã³ã¼ãããICMP4_REDIRECT_PORT_AND_HOST (3) 以ä¸267 * ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå°é·ããçã (IP ããã + ICMP ããã + IP ããã+ 8)268 * ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æ大é·ããçã269 * ã»250 * ・ICMP コードが、ICMP4_REDIRECT_PORT_AND_HOST (3) 以上 251 * ・データグラム長が、ICMP の最小長より短い (IP ヘッダ + ICMP ヘッダ + IP ヘッダ + 8) 252 * ・データグラム長が、ICMP の最大長より短い 253 * ・ 270 254 */ 271 255 if (icmp4h->code > ICMP4_REDIRECT_PORT_AND_HOST || … … 282 266 283 267 /* 284 * icmp_input -- ICMP ã®å 285 ¥åé¢æ° 286 * 287 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã 268 * icmp_input -- ICMP の入力関数 269 * 270 * input には IF ヘッダと IP ヘッダも含まれている。 288 271 */ 289 272 … … 300 283 NET_COUNT_ICMP4(net_count_icmp4.in_packets, 1); 301 284 302 /* ICMP ãããã®é·ãããã§ãã¯ããã*/285 /* ICMP ヘッダの長さをチェックする。*/ 303 286 if (input->len < IF_IP4_ICMP4_HDR_SIZE) { 304 287 NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1); … … 309 292 icmp4h = (T_ICMP4_HDR *)(input->buf + *offp); 310 293 311 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/294 /* 4 オクテット境界のデータ長 */ 312 295 len = input->len - *offp; 313 296 align = (len + 3) >> 2 << 2; 314 297 315 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/298 /* 4 オクテット境界までパディングで埋める。*/ 316 299 if (align > len) 317 300 memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len)); 318 301 319 /* ãã§ãã¯ãµã ãè¨ç®ããã*/302 /* チェックサムを計算する。*/ 320 303 if (in_cksum(icmp4h, align) != 0) { 321 304 NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1); … … 323 306 } 324 307 325 /* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/308 /* メッセージの型により分岐する。*/ 326 309 switch (icmp4h->type) { 327 310 case ICMP4_ECHO_REQUEST: … … 371 354 372 355 /* 373 * icmp_error -- ICMP ã¨ã©ã¼éä¿¡é¢æ°ã374 * 375 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã376 * icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ã377 * å¼åºãå´ã§ãéæ¾ãã¦ããçµäºããã356 * icmp_error -- ICMP エラー送信関数。 357 * 358 * input には IF ヘッダと IP ヘッダも含まれている。 359 * icmp_error では、ネットワークバッファ input を返却しないので、 360 * 呼出し側で、開放してから終了する。 378 361 */ 379 362 … … 390 373 ip4hl = GET_IP4_HDR_SIZE(ip4h); 391 374 392 /* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/375 /* 送信用の IP データグラムを獲得する。*/ 393 376 if (input->len - ip4hl < 8) 394 377 len = input->len - ip4hl; … … 402 385 return; 403 386 404 /* ICMP ããããè¨å®ããã*/387 /* ICMP ヘッダを設定する。*/ 405 388 icmp4h = GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET); 406 389 icmp4h->type = ICMP4_UNREACH; … … 408 391 icmp4h->data.addr= 0; 409 392 410 /* ã¨ã©ã¼ãçºçãã IP ããã㨠ãã¼ã¿ 8 ãªã¯ããããã³ãã¼ããã*/393 /* エラーが発生した IP ヘッダと データ 8 オクテットをコピーする。*/ 411 394 memcpy(GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET), 412 395 GET_IP4_HDR(input), (size_t)(ip4hl + len)); 413 396 414 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/397 /* 4 オクテット境界のデータ長 */ 415 398 align = (len + 3) >> 2 << 2; 416 399 417 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/400 /* 4 オクテット境界までパディングで埋める。*/ 418 401 if (align > len) 419 402 memset((uint8_t*)GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + ip4hl + len, 420 403 0, (size_t)(align - len)); 421 404 422 /* ãã§ãã¯ãµã ãè¨ç®ããã*/405 /* チェックサムを計算する。*/ 423 406 icmp4h->sum = 0; 424 407 icmp4h->sum = in_cksum(icmp4h, (uint_t)(ICMP4_HDR_SIZE + ip4hl + align)); 425 408 426 /* éä¿¡ããã*/409 /* 送信する。*/ 427 410 NET_COUNT_ICMP4(net_count_icmp4.out_octets, 428 411 output->len - GET_IF_IP4_HDR_SIZE(output)); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * ICMP ãããã®å®ç¾©ãRFC 79274 * ICMP ヘッダの定義、RFC 792 87 75 */ 88 76 89 77 typedef struct t_icmp_hdr { 90 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/91 uint8_t code; /* ãµãå*/92 uint16_t sum; /* ãã§ãã¯ãµã*/78 uint8_t type; /* メッセージの型 */ 79 uint8_t code; /* サブ型 */ 80 uint16_t sum; /* チェックサム */ 93 81 union { 94 82 struct id_seq { … … 114 102 115 103 /* 116 * ã¡ãã»ã¼ã¸ã®å104 * メッセージの型 117 105 */ 118 106 119 #define ICMP4_ECHO_REPLY UINT_C(0) /* ã¨ã³ã¼å¿ç*/120 #define ICMP4_UNREACH UINT_C(3) /* ã¨ã©ã¼*/121 #define ICMP4_SOURCE_QUENCH UINT_C(4) /* çºä¿¡å¶é*/122 #define ICMP4_REDIRECT UINT_C(5) /* æ¹åå¤æ´*/123 #define ICMP4_ECHO_REQUEST UINT_C(8) /* ã¨ã³ã¼è¦æ±*/124 #define ICMP4_TIME_EXCEEDED UINT_C(11) /* çºä¿¡å¶é*/125 #define ICMP4_PARAMETER UINT_C(12) /* ãã©ã¡ã¼ã¿ç°å¸¸*/126 #define ICMP4_TIME_REQUEST UINT_C(13) /* ã¿ã¤ã ã¹ã¿ã³ãè¦æ±*/127 #define ICMP4_TIME_REPLY UINT_C(14) /* ã¿ã¤ã ã¹ã¿ã³ãå¿ç*/128 #define ICMP4_MASK_REQUEST UINT_C(17) /* ã¢ãã¬ã¹ãã¹ã¯è¦æ±*/129 #define ICMP4_MASK_REPLY UINT_C(18) /* ã¢ãã¬ã¹ãã¹ã¯å¿ç*/107 #define ICMP4_ECHO_REPLY UINT_C(0) /* エコー応答 */ 108 #define ICMP4_UNREACH UINT_C(3) /* エラー */ 109 #define ICMP4_SOURCE_QUENCH UINT_C(4) /* 発信制限 */ 110 #define ICMP4_REDIRECT UINT_C(5) /* 方向変更 */ 111 #define ICMP4_ECHO_REQUEST UINT_C(8) /* エコー要求 */ 112 #define ICMP4_TIME_EXCEEDED UINT_C(11) /* 発信制限 */ 113 #define ICMP4_PARAMETER UINT_C(12) /* パラメータ異常 */ 114 #define ICMP4_TIME_REQUEST UINT_C(13) /* タイムスタンプ要求 */ 115 #define ICMP4_TIME_REPLY UINT_C(14) /* タイムスタンプ応答 */ 116 #define ICMP4_MASK_REQUEST UINT_C(17) /* アドレスマスク要求 */ 117 #define ICMP4_MASK_REPLY UINT_C(18) /* アドレスマスク応答 */ 130 118 131 119 /* 132 * ãµãå120 * サブ型 133 121 */ 134 122 135 123 /* ICMP4_UNREACH (3) */ 136 124 137 #define ICMP4_UNREACH_NET UINT_C(0) /* ãããã¯ã¼ã¯*/138 #define ICMP4_UNREACH_HOST UINT_C(1) /* ãã¹ã*/139 #define ICMP4_UNREACH_PROTOCOL UINT_C(2) /* ãããã³ã«*/140 #define ICMP4_UNREACH_PORT UINT_C(3) /* ãã¼ã*/141 #define ICMP4_UNREACH_FLAG UINT_C(4) /* åå²*/142 #define ICMP4_UNREACH_SRC_FAIL UINT_C(5) /* ã½ã¼ã¹çµè·¯*/143 #define ICMP4_UNREACH_NET_UNKNOWN UINT_C(6) /* ãããã¯ã¼ã¯ä¸æ*/144 #define ICMP4_UNREACH_HOST_UNKNOWN UINT_C(7) /* ãã¹ãä¸æ*/145 #define ICMP4_UNREACH_ISOLATED UINT_C(8) /* åé¢*/125 #define ICMP4_UNREACH_NET UINT_C(0) /* ネットワーク */ 126 #define ICMP4_UNREACH_HOST UINT_C(1) /* ホスト */ 127 #define ICMP4_UNREACH_PROTOCOL UINT_C(2) /* プロトコル */ 128 #define ICMP4_UNREACH_PORT UINT_C(3) /* ポート */ 129 #define ICMP4_UNREACH_FLAG UINT_C(4) /* 分割 */ 130 #define ICMP4_UNREACH_SRC_FAIL UINT_C(5) /* ソース経路 */ 131 #define ICMP4_UNREACH_NET_UNKNOWN UINT_C(6) /* ネットワーク不明 */ 132 #define ICMP4_UNREACH_HOST_UNKNOWN UINT_C(7) /* ホスト不明 */ 133 #define ICMP4_UNREACH_ISOLATED UINT_C(8) /* 分離 */ 146 134 #define ICMP4_UNREACH_NET_PROHIB UINT_C(9) /* */ 147 135 #define ICMP4_UNREACH_HOST_PROHIB UINT_C(10) /* */ 148 #define ICMP4_UNREACH_TOS_NET UINT_C(11) /* ãããã¯ã¼ã¯ã¸ã®ä¸æ£TOS*/149 #define ICMP4_UNREACH_TOS_HOST UINT_C(12) /* ãã¹ãã¸ã®ä¸æ£TOS */136 #define ICMP4_UNREACH_TOS_NET UINT_C(11) /* ネットワークへの不正TOS*/ 137 #define ICMP4_UNREACH_TOS_HOST UINT_C(12) /* ホストへの不正TOS */ 150 138 #define ICMP4_UNREACH_FILTER_PROHIB UINT_C(13) /* */ 151 139 #define ICMP4_UNREACH_HOST_PRECEDENCE UINT_C(14) /* */ … … 154 142 /* ICMP4_REDIRECT (5) */ 155 143 156 #define ICMP4_REDIRECT_NET UINT_C(0) /* ãããã¯ã¼ã¯*/157 #define ICMP4_REDIRECT_HOST UINT_C(1) /* ãã¹ã*/158 #define ICMP4_REDIRECT_PORT_AND_NET UINT_C(2) /* ãã¼ãçªå·ã¨ããã*/159 #define ICMP4_REDIRECT_PORT_AND_HOST UINT_C(3) /* ãã¼ãçªå·ã¨ãã¹ã*/144 #define ICMP4_REDIRECT_NET UINT_C(0) /* ネットワーク */ 145 #define ICMP4_REDIRECT_HOST UINT_C(1) /* ホスト */ 146 #define ICMP4_REDIRECT_PORT_AND_NET UINT_C(2) /* ポート番号とネット */ 147 #define ICMP4_REDIRECT_PORT_AND_HOST UINT_C(3) /* ポート番号とホスト */ 160 148 161 149 /* 162 * å 163 ¨åå¤æ° 150 * 全域変数 164 151 */ 165 152 166 153 /* 167 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã154 * 関数シミュレーションマクロ 168 155 */ 169 156 … … 175 162 176 163 /* 177 * é¢æ°164 * 関数 178 165 */ 179 166 … … 187 174 188 175 /* 189 * TINET ç¬èªAPI176 * TINET 独自 API 190 177 */ 191 178 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 136 124 137 125 /* 138 * å¤æ°126 * 変数 139 127 */ 140 128 … … 142 130 143 131 /* 144 * SNMP 㮠管çæ 145 å ±ãã¼ã¹ (MIB) 132 * SNMP の 管理情報ベース (MIB) 146 133 */ 147 134 … … 153 140 154 141 /* 155 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼142 * データグラム再構成キュー 156 143 */ 157 144 … … 160 147 161 148 /* 162 * é¢æ°149 * 関数 163 150 */ 164 151 … … 167 154 168 155 /* 169 * ip_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ãç²å¾ããã156 * ip_get_frag_queue -- データグラム再構成キューを獲得する。 170 157 */ 171 158 … … 177 164 178 165 /* 179 * ip_freef -- ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã解æ¾ããã166 * ip_freef -- データグラム再構成キューを解放する。 180 167 */ 181 168 … … 195 182 196 183 /* 197 * ip_frag_timer -- ãã¼ã¿ã°ã©ã åæ§æ管çã¿ã¤ã184 * ip_frag_timer -- データグラム再構成管理タイマ 198 185 */ 199 186 … … 218 205 219 206 /* 220 * ip_reass -- ãã¼ã¿ã°ã©ã ãåæ§æããã207 * ip_reass -- データグラムを再構成する。 221 208 */ 222 209 … … 242 229 243 230 /* 244 * ID ãIPã¢ãã¬ã¹ãä¸ä½ãããã³ã«ãç°ãªããã©ã°ã¡ã³ãããã¥ã¼ã«æãã°ç ´æ£ããã231 * ID、IPアドレス、上位プロトコルが異なるフラグメントがキューに有れば破棄する。 245 232 */ 246 233 frag = ip_frag_queue[ix]; … … 259 246 NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN], 1); 260 247 261 /* æ°è¦ã® ID ãªããå®å 262 ã¢ãã¬ã¹ãä¿åãã¦ããã¥ã¼ã«ã¤ãªãã*/ 248 /* 新規の ID なら、宛先アドレスを保存して、キューにつなぐ。*/ 263 249 frag_dst [ix] = dst; 264 250 ip_frag_queue[ix] = input; … … 266 252 input = NULL; 267 253 268 /* åæ§æã¿ã¤ã ã¢ã¦ããè¨å®ããã*/254 /* 再構成タイムアウトを設定する。*/ 269 255 ip4h->ttl = IP4_FRAGTTL; 270 256 } 271 257 else { 272 258 273 /* æ£ããä½ç½®ã«æ¿å 274 ¥ããã*/ 259 /* 正しい位置に挿入する。*/ 275 260 prev = NULL; 276 261 while (frag != NULL && … … 289 274 input = NULL; 290 275 291 /* å 292 ¨ã¦ã®ãã©ã°ã¡ã³ããæã£ã¦ããã調ã¹ãã*/ 276 /* 全てのフラグメントが揃っているか調べる。*/ 293 277 off = 0; 294 278 for (frag = ip_frag_queue[ix]; frag != NULL; frag = GET_QIP4_HDR(frag)->next) { 295 279 if ((IP4_FLGOFF_OFF(GET_QIP4_HDR(frag)->flg_off) << 3) != off) { 296 /* éä¸ãæãã¦ãããçµäºããã*/280 /* 途中が抜けていたら終了する。*/ 297 281 syscall(sig_sem(SEM_IP4_FRAG_QUEUE)); 298 282 return NULL; … … 302 286 } 303 287 304 /* å 305 ¨ã¦ã®ãã©ã°ã¡ã³ããæã£ããåæ§æããã*/ 288 /* 全てのフラグメントが揃ったら再構成する。*/ 306 289 if ((GET_QIP4_HDR(prev)->flg_off & IP4_MF) == 0) { 307 290 308 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/291 /* ネットワークバッファを獲得する。*/ 309 292 if (tget_net_buf(&input, IF_IP4_HDR_SIZE + off, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) { 310 293 NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_OK], 1); 311 294 NET_COUNT_MIB(ip_stats.ipReasmOKs, 1); 312 295 313 /* IPv4 ããããè¨å®ããã*/296 /* IPv4 ヘッダを設定する。*/ 314 297 frag = ip_frag_queue[ix]; 315 298 ip4h = GET_IP4_HDR(input); … … 321 304 ip4h->flg_off = ip4h->id = 0; 322 305 323 /* ãã¼ã¿ã°ã©ã ãåæ§æããã*/306 /* データグラムを再構成する。*/ 324 307 off = IP4_HDR_SIZE; 325 308 while (frag != NULL) { … … 335 318 NET_COUNT_MIB(ip_stats.ipReasmFails, 1); 336 319 } 337 /* ãã¥ã¼ã空ã«ããã*/320 /* キューを空にする。*/ 338 321 ip_freef(ix); 339 322 } … … 346 329 347 330 /* 348 * ip_init -- IP ã®åæå331 * ip_init -- IP の初期化 349 332 */ 350 333 … … 356 339 357 340 /* 358 * ip_remove_options -- IPv4 ãããã®ãªãã·ã§ã³ãåé¤ãã以éãåã«è©°ããã341 * ip_remove_options -- IPv4 ヘッダのオプションを削除し、以降を前に詰める。 359 342 */ 360 343 … … 378 361 379 362 /* 380 * ip_input -- IP ã®å 381 ¥åé¢æ° 363 * ip_input -- IP の入力関数 382 364 */ 383 365 384 366 #if defined(SUPPORT_IPSEC) 385 367 /* 386 * TODO: IPsec SPãæ¤ç´¢ãããã±ããããªã¸ã§ã¯ããããã©ããå¤å®ããå¦çãå®è£ 387 ãã 368 * TODO: IPsec SPを検索し、パケットをリジェクトするかどうか判定する処理を実装する 388 369 */ 389 370 #endif /* of defined(SUPPORT_IPSEC) */ … … 401 382 NET_COUNT_MIB(ip_stats.ipInReceives, 1); 402 383 403 /* IP ãããã®é·ãããã§ãã¯ããã*/384 /* IP ヘッダの長さをチェックする。*/ 404 385 if (input->len < IF_IP4_HDR_SIZE) { 405 386 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1); … … 411 392 hlen = GET_IP4_HDR_SIZE(ip4h); 412 393 413 /* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/394 /* バージョンをチェックする。*/ 414 395 if (IP4_VHL_V(ip4h->vhl) != IPV4_VERSION) { 415 396 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_VER], 1); … … 418 399 } 419 400 420 /* IP ãããã®é·ãããã§ãã¯ãããªãã·ã§ã³ã解æããã*/401 /* IP ヘッダの長さをチェックし、オプションを解析する。*/ 421 402 if (hlen > IP4_HDR_SIZE) { 422 403 NET_COUNT_IP4(net_count_ip4[NC_IP4_OPTS], 1); 423 /* %%% ãªãã·ã§ã³ã®è§£æ%%% */424 } 425 426 /* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/404 /* %%% オプションの解析 %%% */ 405 } 406 407 /* データグラム長をチェックする。*/ 427 408 if (ntohs(ip4h->len) > input->len - IF_HDR_SIZE) { 428 409 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1); … … 431 412 } 432 413 433 /* ãããã¯ã¼ã¯ãããã¡ã®é·ãããã¼ã¿ã°ã©ã é·ã«èª¿æ´ããã*/414 /* ネットワークバッファの長さをデータグラム長に調整する。*/ 434 415 input->len = (uint16_t)(ntohs(ip4h->len) + IF_HDR_SIZE); 435 416 436 /* ãã§ãã¯ãµã ããã§ãã¯ããã*/417 /* チェックサムをチェックする。*/ 437 418 if (in_cksum(ip4h, hlen) != 0) { 438 419 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_CKSUM], 1); … … 441 422 } 442 423 443 /* IP ãããã®é·ãããã§ãã¯ããä¸ä½ã ICMP 以å¤ã¯ãªãã·ã§ã³ãæ¶å»ããã*/424 /* IP ヘッダの長さをチェックし、上位が ICMP 以外はオプションを消去する。*/ 444 425 if (hlen > IP4_HDR_SIZE && ip4h->proto != IPPROTO_ICMP) { 445 426 memset((uint8_t*)ip4h + IP4_HDR_SIZE, 0, hlen - IP4_HDR_SIZE); 446 427 } 447 428 448 /* éä¿¡å 449 ã¢ãã¬ã¹ããã§ãã¯ããã*/ 429 /* 送信元アドレスをチェックする。*/ 450 430 src = ntohl(ip4h->src); 451 431 bc = (ifp->in_ifaddr.addr & ifp->in_ifaddr.mask) | ~ifp->in_ifaddr.mask; … … 469 449 #endif /* of #ifdef SUPPORT_LOOP */ 470 450 471 /* ãã¦å 472 ã¢ãã¬ã¹ããã§ãã¯ããã*/ 451 /* あて先アドレスをチェックする。*/ 473 452 dst = ntohl(ip4h->dst); 474 453 … … 476 455 477 456 /* 478 * DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ããã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©ã®479 * å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã457 * DHCP_CFG が定義されているときは、ローカルアドレスが未定義の 458 * 場合もデータグラムを受信する。 480 459 */ 481 460 … … 511 490 #ifdef IP4_CFG_FRAGMENT 512 491 513 /* åå²ããã¦ããããã§ãã¯ããã*/492 /* 分割されているかチェックする。*/ 514 493 if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) { 515 494 if ((input = ip_reass(ip4h, input)) == NULL) … … 519 498 #else /* of #ifdef IP4_CFG_FRAGMENT */ 520 499 521 /* åå²ããã¦ããããã§ãã¯ããã*/500 /* 分割されているかチェックする。*/ 522 501 if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) { 523 502 T_IN4_ADDR src; … … 537 516 538 517 #if defined(SUPPORT_IPSEC) 539 /* ããã§ipsec4_in_rejectãå®è¡ãã*/518 /* ここでipsec4_in_rejectを実行する */ 540 519 if ((ip4h->proto != IPPROTO_ESP) && ipsec4_in_reject (input)) { 541 520 goto buf_rel; … … 543 522 #endif /* of #if defined(SUPPORT_IPSEC) */ 544 523 545 /* ãããã³ã«ãé¸æãã*/524 /* プロトコルを選択する */ 546 525 switch (ip4h->proto) { 547 526 … … 580 559 NET_COUNT_MIB(ip_stats.ipInUnknownProtos, 1); 581 560 582 /* ãã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/561 /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/ 583 562 if (dst == ifp->in_ifaddr.addr) { 584 563 T_IN4_ADDR src; … … 589 568 } 590 569 /* 591 * icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§592 * éæ¾ãã¦ããçµäºããã570 * icmp_error では、ネットワークバッファ input を返却しないので 571 * 開放してから終了する。 593 572 */ 594 573 break; -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_output.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 120 108 121 109 /* 122 * IP output -- IP ã®åºåé¢æ°123 * 124 * 注æ: ãã¼ã¸ã§ã³ã¨ãããé·ã¯ä¸ä½å±¤ã§è¨å®ããã110 * IP output -- IP の出力関数 111 * 112 * 注意: バージョンとヘッダ長は上位層で設定する。 125 113 */ 126 114 … … 141 129 142 130 #ifdef SUPPORT_IPSEC 143 /* XXX: IPsec ã®å¦çã¯ãã±ããæçåã®åã«è¡ããã*/144 145 /* SPD ãåå¾ãã*/131 /* XXX: IPsecの処理はパケット断片化の前に行われる */ 132 133 /* SPDを取得する */ 146 134 sp = ipsec4_getpolicybyaddr(output, IPSEC_DIR_OUTBOUND, &ipsec_error); 147 135 if (sp==NULL) { … … 150 138 } 151 139 152 /* ããªã·ããã§ãã¯ãã*/140 /* ポリシをチェックする*/ 153 141 #if 0 154 142 switch (sp->policy) { … … 162 150 163 151 case IPSEC_POLICY_IPSEC: 164 /* XXX: SH2 ã§ã¯ããã§illegal Instructionãçºçãããã³ã³ãã¤ã©ã®ãã°? */152 /* XXX: SH2ではここでillegal Instructionが発生する。コンパイラのバグ? */ 165 153 if (sp->req == NULL) { 166 /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã*/154 /* 鍵交換デーモンに対してSAの取得を要求する */ 167 155 goto bad; 168 156 } … … 170 158 171 159 default: 172 /* ä¸æ£ãªããªã·*/160 /* 不正なポリシ */ 173 161 goto bad; 174 162 break; 175 163 } 176 164 #else /* 0 */ 177 /* XXX: ã³ã³ãã¤ã©ã®ä¸å 178 ·ååé¿ã®ãã switchãããifæã§æ¸ãç´ãã */ 165 /* XXX: コンパイラの不具合回避のため switchをやめif文で書き直した */ 179 166 policy = sp->spinitb->policy; 180 167 … … 185 172 else if (policy == IPSEC_POLICY_IPSEC) { 186 173 if (sp->req == NULL) 187 /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã*/174 /* 鍵交換デーモンに対してSAの取得を要求する */ 188 175 goto bad; 189 176 } else … … 196 183 197 184 state.m = output; 198 /* XXX: ipsec4_output()å 199 ã§ã¯ãip->{len,off}ããããã¯ã¼ã¯ãã¤ããªã¼ãã¨ãã */ 185 /* XXX: ipsec4_output()内では、ip->{len,off}をネットワークバイトオーダとする */ 200 186 error = ipsec4_output (&state, sp, 0 /* flags */ ); 201 187 output = state.m; 202 188 203 189 if (error) { 204 /* net_buf ã¯ipsec4_outputã«ãã£ã¦æ¢ã«è§£æ¾ããã¦ãã*/190 /* net_buf はipsec4_outputによって既に解放されている */ 205 191 switch (error) { 206 192 default: … … 210 196 } 211 197 212 /* ipsec4_outputã«å½±é¿ãåããå¤ãæ´æ°ãã */ 213 /* XXX: å¿ 214 è¦ã? */ 198 /* ipsec4_outputに影響を受けた値を更新する */ 199 /* XXX: 必要か? */ 215 200 216 201 skip_ipsec: … … 224 209 225 210 /* 226 * ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶ 227 ãã¦ããã°ã 228 * åå²ãã¦éä¿¡ããã 211 * データグラムサイズがネットワークの MTU を超えていれば、 212 * 分割して送信する。 229 213 */ 230 214 if (ntohs(ip4h->len) > IF_MTU) { … … 244 228 flen = len - off; 245 229 246 /* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/230 /* データ長は 4 オクテット境界に調整する。 */ 247 231 align = (flen + 3) >> 2 << 2; 248 232 249 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/233 /* ネットワークバッファを獲得する。*/ 250 234 if (tget_net_buf(&frag, align + IF_IP4_HDR_SIZE, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) { 251 235 252 /* ãã©ã°ã¡ã³ããã³ãã¼ããã*/236 /* フラグメントをコピーする。*/ 253 237 memcpy(GET_IP4_SDU(frag), (uint8_t *)ip4h + off, flen); 254 238 255 /* ããããåããã*/239 /* ヘッダを埋める。*/ 256 240 fip4h = GET_IP4_HDR(frag); 257 241 *fip4h = *ip4h; … … 276 260 } 277 261 else { 278 /* ç²å¾ã§ããªããã°ãéä¿¡ããããããã*/262 /* 獲得できなければ、送信をあきらめる。*/ 279 263 syscall(rel_net_buf(output)); 280 264 NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1); … … 291 275 else { 292 276 293 /* ããããåããã*/277 /* ヘッダを埋める。*/ 294 278 ip4h->id = htons(frag_id); 295 279 frag_id ++; … … 309 293 ip4h = GET_IP4_HDR(output); 310 294 311 /* ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶ 312 ãã¦ããã°ã¨ã©ã¼ */ 295 /* データグラムサイズがネットワークの MTU を超えていればエラー */ 313 296 if (ntohs(ip4h->len) > IF_MTU) 314 297 return E_PAR; 315 298 316 /* ããããåããã*/299 /* ヘッダを埋める。*/ 317 300 ip4h->id = htons(frag_id); 318 301 frag_id ++; … … 324 307 325 308 #ifdef ETHER_CFG_MULTICAST 326 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯IPã¢ãã¬ã¹ã¯ãã®ã¾ã¾*/309 /* マルチキャストアドレスの場合はIPアドレスはそのまま */ 327 310 gw = ntohl(ip4h->dst); 328 311 if(!IN4_IS_ADDR_MULTICAST(gw)) -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * IPv4 ãããã»ãã¤ãã¼ãã¢ã¯ã»ã¹ãã¯ã74 * IPv4 ヘッダ・ペイロードアクセスマクロ 87 75 */ 88 76 … … 99 87 100 88 /* 101 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã89 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 102 90 */ 103 91 … … 124 112 125 113 /* 126 * IP ã® MSS ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡114 * IP の MSS サイズのネットワークバッファ 127 115 */ 128 116 129 117 typedef struct t_net_buf_ip_mss { 130 uint16_t len; /* ãã¼ã¿ã®é·ã*/131 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/132 uint8_t flags; /* ãã©ã°*/118 uint16_t len; /* データの長さ */ 119 uint8_t idix; /* mpfid のインデックス */ 120 uint8_t flags; /* フラグ */ 133 121 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 134 122 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 138 126 #endif 139 127 uint8_t buf[IF_HDR_SIZE + IP4_MSS]; 140 /* ãããã¡æ¬ä½*/128 /* バッファ本体 */ 141 129 } T_NET_BUF_IP_MSS; 142 130 143 131 /* 144 * 65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡132 * 65536 オクテットサイズのネットワークバッファ 145 133 */ 146 134 147 135 typedef struct t_net_buf4_65536 { 148 uint16_t len; /* ãã¼ã¿ã®é·ã*/149 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/150 uint8_t flags; /* ãã©ã°*/136 uint16_t len; /* データの長さ */ 137 uint8_t idix; /* mpfid のインデックス */ 138 uint8_t flags; /* フラグ */ 151 139 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 152 140 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 156 144 #endif 157 145 uint8_t buf[IF_IP4_HDR_SIZE + 65536]; 158 /* ãããã¡æ¬ä½*/146 /* バッファ本体 */ 159 147 #if defined(IF_PDU_HDR_PADDING) 160 148 uint8_t padding[IF_PDU_HDR_PADDING]; 161 #endif /* ãããã®ä½å*/149 #endif /* ヘッダの余分 */ 162 150 } T_NET_BUF4_65536; 163 151 … … 165 153 166 154 /* 167 * åæ§æãã¥ã¼ç¨ IPv4 ãããã®å®ç¾©155 * 再構成キュー用 IPv4 ヘッダの定義 168 156 */ 169 157 170 158 typedef struct t_qip4_hdr { 171 159 uint8_t vhl; /* version << 4 | header length >> 2 */ 172 /* length 㯠4 octets åä½*/160 /* length は 4 octets 単位 */ 173 161 uint8_t type; /* type of services */ 174 162 uint16_t len; /* total length */ … … 183 171 uint32_t src; /* source address */ 184 172 185 T_NET_BUF *next; /* 次㮠IPv4 ãã©ã°ã¡ã³ã*/173 T_NET_BUF *next; /* 次の IPv4 フラグメント */ 186 174 } __attribute__((packed, aligned(2)))T_QIP4_HDR; 187 175 … … 196 184 197 185 /* 198 * ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡186 * データグラム再構成用ネットワークバッファ 199 187 */ 200 188 201 189 typedef struct t_net_buf4_reassm { 202 uint16_t len; /* ãã¼ã¿ã®é·ã*/203 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/204 uint8_t flags; /* ãã©ã°*/190 uint16_t len; /* データの長さ */ 191 uint8_t idix; /* mpfid のインデックス */ 192 uint8_t flags; /* フラグ */ 205 193 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 206 194 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 210 198 #endif 211 199 uint8_t buf[IP4_CFG_FRAG_REASSM_SIZE]; 212 /* ãããã¡æ¬ä½*/200 /* バッファ本体 */ 213 201 } T_NET_BUF4_REASSM; 214 202 … … 216 204 217 205 /* 218 * TCP ã®åæ§æãã¥ã¼ã«ããã IPv4 ãããã®å®ç¾©206 * TCP の再構成キューにおける IPv4 ヘッダの定義 219 207 */ 220 208 221 209 typedef struct t_tcp_ip4_q_hdr { 222 210 uint8_t vhl; /* version << 4 | header length >> 2 */ 223 /* length 㯠4 octets åä½*/211 /* length は 4 octets 単位 */ 224 212 uint8_t type; /* type of services */ 225 213 uint16_t len; /* total length */ … … 230 218 uint8_t ttl; /* time to live */ 231 219 uint8_t proto; /* protocol */ 232 uint16_t thoff; /* TCP ãããã®ãªãã»ãã*/220 uint16_t thoff; /* TCP ヘッダのオフセット */ 233 221 234 222 T_IN4_ADDR src; /* source address */ … … 239 227 240 228 /* 241 * SNMP 㮠管çæ 242 å ±ãã¼ã¹ (MIB) 229 * SNMP の 管理情報ベース (MIB) 243 230 */ 244 231 … … 282 269 283 270 /* 284 * é¢æ°271 * 関数 285 272 */ 286 273 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TCP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã35 * TCP で使用するカーネルオブジェクト 48 36 */ 49 37 50 38 #ifdef SUPPORT_TCP 51 39 52 /* åºåã¿ã¹ã¯*/40 /* 出力タスク */ 53 41 54 42 CRE_TSK(TCP_OUTPUT_TASK, { … … 61 49 }); 62 50 63 /* ã»ããã©*/51 /* セマフォ */ 64 52 65 53 CRE_SEM(SEM_TCP_POST_OUTPUT, { TA_TPRI, 0, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * TCP ããããRFC 793 åç 87 § 74 * TCP ヘッダ、RFC 793 参照 88 75 */ 89 76 90 77 typedef struct t_tcp_hdr { 91 uint16_t sport; /* éä¿¡å 92 ãã¼ãçªå· */ 93 uint16_t dport; /* å®å 94 ãã¼ãçªå· */ 78 uint16_t sport; /* 送信元ポート番号 */ 79 uint16_t dport; /* 宛先ポート番号 */ 95 80 96 uint32_t seq; /* SEQ çªå·*/81 uint32_t seq; /* SEQ 番号 */ 97 82 98 uint32_t ack; /* ACK çªå·*/83 uint32_t ack; /* ACK 番号 */ 99 84 100 uint8_t doff; /* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã) */101 uint8_t flags; /* ãã©ã°(ä¸ä½6ããã) */102 uint16_t win; /* ã¦ã£ã³ããµã¤ãº*/85 uint8_t doff; /* データオフセット(上位4ビット) */ 86 uint8_t flags; /* フラグ(下位6ビット) */ 87 uint16_t win; /* ウィンドサイズ */ 103 88 104 uint16_t sum; /* ãã§ãã¯ãµã*/105 uint16_t urp; /* ç·æ¥ãã¤ã³ã¿*/89 uint16_t sum; /* チェックサム */ 90 uint16_t urp; /* 緊急ポインタ */ 106 91 } __attribute__((packed, aligned(2)))T_TCP_HDR; 107 92 … … 109 94 110 95 /* 111 * TCP ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã96 * TCP ヘッダ構造体メンバアクセスマクロ 112 97 */ 113 98 … … 117 102 118 103 /* 119 * TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ã®å®ç¾©104 * TCP ヘッダのフラグフィールドの値の定義 120 105 */ 121 106 122 #define TCP_FLG_FIN UINT_C(0x01) /* FIN: æçµ */ 123 #define TCP_FLG_SYN UINT_C(0x02) /* SYN: åæ */ 124 #define TCP_FLG_RST UINT_C(0x04) /* RST: ã³ãã¯ã·ã§ã³ã®ãªã»ãã */ 125 #define TCP_FLG_PUSH UINT_C(0x08) /* PUSH:ããã·ã¥æ©è½ */ 126 #define TCP_FLG_ACK UINT_C(0x10) /* ACK: è¯å®å¿ç */ 127 #define TCP_FLG_URG UINT_C(0x20) /* URG: ç·æ¥æ 128 å ± */ 107 #define TCP_FLG_FIN UINT_C(0x01) /* FIN: 最終 */ 108 #define TCP_FLG_SYN UINT_C(0x02) /* SYN: 同期 */ 109 #define TCP_FLG_RST UINT_C(0x04) /* RST: コネクションのリセット */ 110 #define TCP_FLG_PUSH UINT_C(0x08) /* PUSH:プッシュ機能 */ 111 #define TCP_FLG_ACK UINT_C(0x10) /* ACK: 肯定応答 */ 112 #define TCP_FLG_URG UINT_C(0x20) /* URG: 緊急情報 */ 129 113 130 114 /* 131 * TCP ãªãã·ã§ã³ã®å®ç¾©115 * TCP オプションの定義 132 116 */ 133 117 134 /* ãªãã·ã§ã³ã®å*/118 /* オプションの型 */ 135 119 136 #define TCP_OPT_EOL UINT_C(0) /* æçµ*/137 #define TCP_OPT_NOP UINT_C(1) /* ä½ãããªã*/138 #define TCP_OPT_MAXSEG UINT_C(2) /* æ大ã»ã°ã¡ã³ãé·*/139 #define TCP_OPT_WINDOW UINT_C(3) /* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°*/140 #define TCP_OPT_SACK_PERM UINT_C(4) /* é¸æ ACK 許å¯*/141 #define TCP_OPT_SACK UINT_C(5) /* é¸æACK */142 #define TCP_OPT_TIMESTAMP UINT_C(8) /* ã¿ã¤ã ã¹ã¿ã³ã*/143 #define TCP_OPT_CC UINT_C(11) /* æ¥ç¶ã«ã¦ã³ã*/144 #define TCP_OPT_CCNEW UINT_C(12) /* æ¥ç¶ã«ã¦ã³ã*/145 #define TCP_OPT_CCECHO UINT_C(13) /* æ¥ç¶ã«ã¦ã³ã*/120 #define TCP_OPT_EOL UINT_C(0) /* 最終 */ 121 #define TCP_OPT_NOP UINT_C(1) /* 何もしない */ 122 #define TCP_OPT_MAXSEG UINT_C(2) /* 最大セグメント長 */ 123 #define TCP_OPT_WINDOW UINT_C(3) /* ウィンドスケーリング */ 124 #define TCP_OPT_SACK_PERM UINT_C(4) /* 選択 ACK 許可 */ 125 #define TCP_OPT_SACK UINT_C(5) /* 選択 ACK */ 126 #define TCP_OPT_TIMESTAMP UINT_C(8) /* タイムスタンプ */ 127 #define TCP_OPT_CC UINT_C(11) /* 接続カウント */ 128 #define TCP_OPT_CCNEW UINT_C(12) /* 接続カウント */ 129 #define TCP_OPT_CCECHO UINT_C(13) /* 接続カウント */ 146 130 147 /* ãªãã·ã§ã³ã®é·ã*/131 /* オプションの長さ */ 148 132 149 #define TCP_OPT_LEN_MAXSEG 4 /* æ大ã»ã°ã¡ã³ãé·*/150 #define TCP_OPT_LEN_WINDOW 3 /* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°*/151 #define TCP_OPT_LEN_SACK_PERM 4 /* é¸æ ACK 許å¯*/152 #define TCP_OPT_LEN_SACK 5 /* é¸æACK */153 #define TCP_OPT_LEN_TIMESTAMP 10 /* ã¿ã¤ã ã¹ã¿ã³ã*/154 #define TCP_OPT_LEN_CC 6 /* æ¥ç¶ã«ã¦ã³ã*/155 #define TCP_OPT_LEN_CCNEW 6 /* æ¥ç¶ã«ã¦ã³ã*/156 #define TCP_OPT_LEN_CCECHO 6 /* æ¥ç¶ã«ã¦ã³ã*/133 #define TCP_OPT_LEN_MAXSEG 4 /* 最大セグメント長 */ 134 #define TCP_OPT_LEN_WINDOW 3 /* ウィンドスケーリング */ 135 #define TCP_OPT_LEN_SACK_PERM 4 /* 選択 ACK 許可 */ 136 #define TCP_OPT_LEN_SACK 5 /* 選択 ACK */ 137 #define TCP_OPT_LEN_TIMESTAMP 10 /* タイムスタンプ */ 138 #define TCP_OPT_LEN_CC 6 /* 接続カウント */ 139 #define TCP_OPT_LEN_CCNEW 6 /* 接続カウント */ 140 #define TCP_OPT_LEN_CCECHO 6 /* 接続カウント */ 157 141 158 142 /* 159 * TCP æ大ã»ã°ã¡ã³ããµã¤ãº143 * TCP 最大セグメントサイズ 160 144 */ 161 145 162 146 /* 163 * IPv4 ã® TCP æ大ã»ã°ã¡ã³ããµã¤ãº164 * IP4_MSS 㯠576 ã§ãæ¨æºã® IPv4 ãããé· (20) ã¨165 * TCP ãããé· (20) ãå¼ããå¤ 536 ã§ãããã512 ãæ¨æºã¨ããã147 * IPv4 の TCP 最大セグメントサイズ 148 * IP4_MSS は 576 で、標準の IPv4 ヘッダ長 (20) と 149 * TCP ヘッダ長 (20) を引いた値 536 であるが、512 を標準とする。 166 150 */ 167 151 … … 169 153 170 154 /* 171 * IPv6 ã® TCP æ大ã»ã°ã¡ã³ããµã¤ãº172 * IPV6_MMTU 㯠1280 ã§ãæ¨æºã® IPv6 ãããé· (40) ã¨173 * TCP ãããé· (20) ãå¼ããå¤ 1220 ã§ãããã1024 ãæ¨æºã¨ããã155 * IPv6 の TCP 最大セグメントサイズ 156 * IPV6_MMTU は 1280 で、標準の IPv6 ヘッダ長 (40) と 157 * TCP ヘッダ長 (20) を引いた値 1220 であるが、1024 を標準とする。 174 158 */ 175 159 … … 177 161 178 162 /* 179 * TCP æå°ã»ã°ã¡ã³ããµã¤ãº163 * TCP 最小セグメントサイズ 180 164 * 181 * 256 ï¼æå°ãªã³ã¯ MTUï¼- 40 = 216165 * 256(最小リンク MTU)- 40 = 216 182 166 */ 183 167 … … 185 169 186 170 /* 187 * TCP æ大ã¦ã£ã³ãã¦ãµã¤ãº171 * TCP 最大ウィンドウサイズ 188 172 */ 189 173 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * TCP FSM ç¶æ 87 ã®å®ç¾©ãRFC 793 åç 88 § 74 * TCP FSM 状態の定義、RFC 793 参照 89 75 */ 90 76 91 #define TCP_FSM_CLOSED 0 /* ã¯ãã¼ãº */ 92 #define TCP_FSM_LISTEN 1 /* ååãªã¼ãã³ */ 93 #define TCP_FSM_SYN_SENT 2 /* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿ */ 94 #define TCP_FSM_SYN_RECVD 3 /* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿ */ 95 #define TCP_FSM_ESTABLISHED 4 /* ã³ãã¯ã·ã§ã³éè¨å®äº */ 96 #define TCP_FSM_CLOSE_WAIT 5 /* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾ 97 ã¡ */ 98 #define TCP_FSM_FIN_WAIT_1 6 /* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾ 99 ã¡ */ 100 #define TCP_FSM_CLOSING 7 /* åæã¯ãã¼ãºãFIN 交ææ¸ã¿ãACK å¾ 101 ã¡ */ 102 #define TCP_FSM_LAST_ACK 8 /* APP ãçµäºãACK å¾ 103 ã¡ */ 104 #define TCP_FSM_FIN_WAIT_2 9 /* ç¸æããã® FIN å¾ 105 ã¡ */ 106 #define TCP_FSM_TIME_WAIT 10 /* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾ 107 ã¡ */ 77 #define TCP_FSM_CLOSED 0 /* クローズ */ 78 #define TCP_FSM_LISTEN 1 /* 受動オープン */ 79 #define TCP_FSM_SYN_SENT 2 /* 能動オープン、SYN 送信済み */ 80 #define TCP_FSM_SYN_RECVD 3 /* 受動オープン、SYN 受信済み */ 81 #define TCP_FSM_ESTABLISHED 4 /* コネクション開設完了 */ 82 #define TCP_FSM_CLOSE_WAIT 5 /* 相手から FIN 受信、APP の終了待ち */ 83 #define TCP_FSM_FIN_WAIT_1 6 /* APP が終了、FIN 送信済み、ACK 待ち */ 84 #define TCP_FSM_CLOSING 7 /* 同時クローズ、FIN 交換済み、ACK 待ち */ 85 #define TCP_FSM_LAST_ACK 8 /* APP が終了、ACK 待ち */ 86 #define TCP_FSM_FIN_WAIT_2 9 /* 相手からの FIN 待ち */ 87 #define TCP_FSM_TIME_WAIT 10 /* 相手からの FIN 受信済み、時間待ち */ 108 88 109 89 /* 110 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã90 * 関数シミュレーションマクロ 111 91 */ 112 92 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 132 120 133 121 /* 134 * æ»ãå¤122 * 戻り値 135 123 * 136 * RET_OK æ£å¸¸137 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã138 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã124 * RET_OK 正常 125 * RET_DROP エラー、セグメントを破棄する。 126 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 139 127 */ 140 128 … … 146 134 147 135 /* 148 * é¢æ°136 * 関数 149 137 */ 150 138 … … 165 153 166 154 /* 167 * ã¿ã¹ã¯ããã® Time Wait ç¶æ 168 CEP åé¢æ©è½ 169 */ 170 171 /* 172 * é¢æ° 155 * タスクからの Time Wait 状態 CEP 分離機能 156 */ 157 158 /* 159 * 関数 173 160 */ 174 161 … … 177 164 178 165 /* 179 * å¤æ°166 * 変数 180 167 */ 181 168 … … 183 170 184 171 /* 185 * tcp_find_twcep -- ãã¼ãçªå·ãã Time Wait ç¨ TCP é信端ç¹ãå¾ãã172 * tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。 186 173 * 187 * 注æ: dstaddr ã¯ããããã¯ã¼ã¯ãã¤ããªã¼ã174 * 注意: dstaddr は、ネットワークバイトオーダ 188 175 */ 189 176 … … 194 181 195 182 /* 196 * ç¶æ 197 ã TIME WAIT ã§ã 198 * IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããé信端ç¹ãæ¢ç´¢ããã 183 * 状態が TIME WAIT で、 184 * IP アドレスとポート番号が一致する通信端点を探索する。 199 185 */ 200 186 for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) { … … 211 197 212 198 /* 213 * å¿ 214 è¦ãªæ 215 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã¦ã 216 * æ¨æºã® TCP é信端ç¹ãéæ¾ããã 199 * 必要な情報を Time Wait 用 TCP 通信端点に移して、 200 * 標準の TCP 通信端点を開放する。 217 201 */ 218 202 … … 222 206 T_TCP_TWCEP* twcep; 223 207 224 /* 空ãã® Time Wait ç¨ TCP é信端ç¹ãæ¢ç´¢ããã*/208 /* 空きの Time Wait 用 TCP 通信端点を探索する。*/ 225 209 for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) { 226 210 if (twcep->fsm_state != TCP_FSM_TIME_WAIT) { 227 211 228 212 /* 229 * é信端ç¹ãããã¯ãã 230 * å¿ 231 è¦ãªæ 232 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã 213 * 通信端点をロックし、 214 * 必要な情報を Time Wait 用 TCP 通信端点に移す。 233 215 */ 234 216 syscall(wai_sem(cep->semid_lock)); … … 242 224 twcep->timer_2msl = cep->timer[TCP_TIM_2MSL]; 243 225 244 /* é信端ç¹ãããã¯ã解é¤ããã*/226 /* 通信端点をロックを解除する。*/ 245 227 syscall(sig_sem(cep->semid_lock)); 246 228 247 /* æ¨æº TCP é信端ç¹ãéæ¾ããã*/229 /* 標準 TCP 通信端点を開放する。*/ 248 230 tcp_close(cep); 249 231 … … 256 238 257 239 /* 258 * parse_option -- TCP ãããã®ãªãã·ã§ã³ã解æããã240 * parse_option -- TCP ヘッダのオプションを解析する。 259 241 */ 260 242 … … 311 293 312 294 /* 313 * set_rexmt_timer -- æ°ããå¾å¾©æéãåéããåéã¿ã¤ããæ´æ°ããã295 * set_rexmt_timer -- 新しい往復時間を収集し、再送タイマを更新する。 314 296 */ 315 297 … … 322 304 if (cep->srtt != 0) { 323 305 /* 324 * srtt: å¹³æ»åãããRTT306 * srtt: 平滑化された RTT 325 307 * 326 * è¨æ¸¬ããã RTT (rtt) ã¨ç¾å¨ã®å¹³æ»åããã RTT (srtt) ã®å·® (delta) ãæ±ããã308 * 計測された RTT (rtt) と現在の平滑化された RTT (srtt) の差 (delta) を求める。 327 309 * 328 * delta 㯠2 ãããå·¦ã·ãã ( 4 å) ããå¤ã§ä¿æããã329 * srtt 㯠5 ãããå·¦ã·ãã (32 å) ããå¤ã§ä¿æããã¦ããã310 * delta は 2 ビット左シフト ( 4 倍) した値で保持する。 311 * srtt は 5 ビット左シフト (32 倍) した値で保持されている。 330 312 * 331 313 * delta = rtt / 8 - srtt / 8 332 314 * 333 * æ°ãã srtt ã¯315 * 新しい srtt は 334 316 * 335 317 * srtt = rtt / 8 + srtt * 7 / 8 336 318 * = srtt + (rtt / 8 - srtt / 8) 337 319 * 338 * ã§è¨ç®ããã339 * ãã®ãããrtt ã 2 ãããå·¦ã·ããããsrtt ã (5 - 2) ãããå³ã·ããã㦠delta ãæ±ããã320 * で計算する。 321 * このため、rtt を 2 ビット左シフトし、srtt を (5 - 2) ビット右シフトして delta を求める。 340 322 */ 341 323 delta = ((rtt - 1) << TCP_DELTA_SHIFT) - (cep->srtt >> (TCP_SRTT_SHIFT - TCP_DELTA_SHIFT)); … … 345 327 346 328 /* 347 * delta ã®çµ¶å¯¾å¤ | delta | ãæ±ããã329 * delta の絶対値 | delta | を求める。 348 330 */ 349 331 if (delta < 0) … … 351 333 352 334 /* 353 * rttvar: å¹³æ»åãããåæ£335 * rttvar: 平滑化された分散 354 336 * 355 * rttvar 㯠4 ãããå·¦ã·ãã (16 å) ããå¤ã§ä¿æããã¦ããã337 * rttvar は 4 ビット左シフト (16 倍) した値で保持されている。 356 338 * 357 339 * delta = |delta| / 4 - rttvar / 4 358 340 * 359 * æ°ãã rttvar ã¯341 * 新しい rttvar は 360 342 * 361 343 * rttvar = |delta|/ 4 + rttvar * 3 /4 362 344 * = rttvar + (|delta| / 4 - rttvar / 4) 363 345 * 364 * ã§è¨ç®ããã346 * で計算する。 365 347 */ 366 348 delta -= cep->rttvar >> (TCP_RTTVAR_SHIFT - TCP_DELTA_SHIFT); … … 371 353 else { 372 354 /* 373 * ã¾ã srtt ã®è¨å®ãè¡ããã¦ããªãã¨ãã¯ãä»åè¨æ¸¬ããã RTT ã使ç¨ããã374 * å¹³æ»åããã RTT (srtt) ã«ã¯ãRTT ã 5 ãããå·¦ã·ãã (32å) ããå¤ã375 * å¹³æ»åãããåæ£ (rttvar) ã«ã¯ãRTT ã® 1/2 ã 4 ãããå·¦ã·ãã (16å) ããå¤ã355 * まだ srtt の設定が行われていないときは、今回計測された RTT を使用する。 356 * 平滑化された RTT (srtt) には、RTT を 5 ビット左シフト (32倍) した値。 357 * 平滑化された分散 (rttvar) には、RTT の 1/2 を 4 ビット左シフト (16倍) した値。 376 358 */ 377 359 cep->srtt = rtt << TCP_SRTT_SHIFT; … … 380 362 381 363 /* 382 * rtt ã®æ¸¬å®ãçµäºããåéåæ°ããªã»ããããã364 * rtt の測定を終了し、再送回数をリセットする。 383 365 */ 384 366 cep->rtt = cep->rxtshift = 0; 385 367 386 368 /* 387 * RTT ã«è¨±ãããæå°å¤ 㨠rtt + 2 ã®å¤§ããªå¤ã®æ¹ãåéã¿ã¤ã ã¢ã¦ãã®æå°å¤ã«ããã369 * RTT に許される最小値 と rtt + 2 の大きな値の方を再送タイムアウトの最小値にする。 388 370 */ 389 371 if (rtt + 2 < TCP_TVAL_MIN) … … 398 380 399 381 /* 400 * reassemble -- åä¿¡ã»ã°ã¡ã³ããåæ§æãããé çªéãã«åä¿¡ããã¨ãã®å¦ç382 * reassemble -- 受信セグメントを再構成する。順番通りに受信したときの処理 401 383 */ 402 384 … … 410 392 if (tcph->sum > cep->rbufsz - cep->rwbuf_count) { 411 393 /* 412 * åä¿¡ã¦ã£ã³ããããã¡ã«ç©ºãããªãã¨ãã¯ç ´æ£ããã394 * 受信ウィンドバッファに空きがないときは破棄する。 413 395 */ 414 396 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DROP_SEGS], 1); … … 421 403 cep->fsm_state == TCP_FSM_ESTABLISHED) { 422 404 /* 423 * é çªéãã«ã»ã°ã¡ã³ããåä¿¡ããæã®å¦ç424 * åä¿¡ã»ã°ã¡ã³ãã®ä¸¦ã¹æ¿ãã¯ä¸è¦ãªã®ã§425 * ãã®ã¾ã¾åä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã405 * 順番通りにセグメントを受信した時の処理 406 * 受信セグメントの並べ替えは不要なので 407 * そのまま受信ウィンドバッファに書き込む。 426 408 */ 427 409 … … 438 420 qhdr = GET_TCP_Q_HDR(input, thoff); 439 421 440 /* TCP ãããã®ä½ç½®ãä¿åããã*/422 /* TCP ヘッダの位置を保存する。*/ 441 423 GET_TCP_IP_Q_HDR(input)->thoff = thoff; 442 424 443 /* SDU ã®ãªãã»ããï¼å 444 ã¯ã¦ã£ã³ããµã¤ãºï¼ããªã»ããããã*/ 425 /* SDU のオフセット(元はウィンドサイズ)をリセットする。*/ 445 426 qhdr->soff = 0; 446 427 447 /* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/428 /* データを受信ウィンドバッファに書き込む。*/ 448 429 TCP_WRITE_RWBUF(cep, input, thoff); 449 430 } … … 456 437 457 438 /* 458 * listening -- ååãªã¼ãã³ãã¦ï¼ç¶æ 459 ã LISTEN ã®å¦ç 439 * listening -- 受動オープンして,状態が LISTEN の処理 460 440 * 461 * æ»ãå¤:462 * RET_OK æ£å¸¸463 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã464 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã441 * 戻り値: 442 * RET_OK 正常 443 * RET_DROP エラー、セグメントを破棄する。 444 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 465 445 */ 466 446 … … 475 455 476 456 /* 477 * ãã©ã°ã« RST ãã»ããããã¦ããã°ç ´æ£ããã457 * フラグに RST がセットされていれば破棄する。 478 458 */ 479 459 if (tcph->flags & TCP_FLG_RST) … … 481 461 482 462 /* 483 * ãã©ã°ã« ACK ãã»ãããã¦ãããã°ã484 * ãªã»ãããéã£ã¦ç ´æ£ããã463 * フラグに ACK がセットさてれいれば、 464 * リセットを送って破棄する。 485 465 */ 486 466 if (tcph->flags & TCP_FLG_ACK) … … 488 468 489 469 /* 490 * ãã©ã°ã« SYN ãã»ããããã¦ããªããã°ãã°ç ´æ£ããã470 * フラグに SYN がセットされていなければれば破棄する。 491 471 */ 492 472 if ((tcph->flags & TCP_FLG_SYN) == 0) … … 498 478 499 479 /* 500 * 次ã®ã¨ãã¯ç ´æ£ããã501 * ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã502 * ãã ãããã¼ã«ã«ã«ã¼ããã㯠(127.0.0.1) ãªãè¯ãã503 * ã»ãã«ããã£ã¹ãã¢ãã¬ã¹480 * 次のときは破棄する。 481 * ・ポート番号が同一で、送受信 IP アドレス が同一。 482 * ただし、ローカルループバック (127.0.0.1) なら良い。 483 * ・マルチキャストアドレス 504 484 */ 505 485 … … 511 491 512 492 /* 513 * 次ã®ã¨ãã¯ç ´æ£ããã514 * ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã515 * ã»ãã«ããã£ã¹ãã¢ãã¬ã¹493 * 次のときは破棄する。 494 * ・ポート番号が同一で、送受信 IP アドレス が同一。 495 * ・マルチキャストアドレス 516 496 */ 517 497 … … 526 506 527 507 /* 528 * 次ã®ã¨ãã¯ç ´æ£ããã529 * ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã530 * ã»ãã«ããã£ã¹ãã¢ãã¬ã¹508 * 次のときは破棄する。 509 * ・ポート番号が同一で、送受信 IP アドレス が同一。 510 * ・マルチキャストアドレス 531 511 */ 532 512 … … 539 519 return RET_DROP; 540 520 541 /* ç¸æã®ã¢ãã¬ã¹ãè¨é²ããã*/521 /* 相手のアドレスを記録する。*/ 542 522 IN_COPY_TO_HOST(&cep->dstaddr.ipaddr, &iph->src); 543 523 cep->dstaddr.portno = tcph->sport; 544 524 545 /* ãªãã·ã§ã³ãå¦çããã*/525 /* オプションを処理する。*/ 546 526 parse_option(tcph, cep); 547 527 548 /* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/528 /* シーケンス番号を初期化する。*/ 549 529 if (tcp_iss == 0) 550 530 tcp_init_iss(); 551 531 552 /* èªåã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/532 /* 自分のシーケンス番号の初期値を記録する。*/ 553 533 if (iss != 0) 554 534 cep->iss = iss; … … 558 538 tcp_iss += TCP_ISS_INCR() / 4; 559 539 560 /* ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/540 /* 相手のシーケンス番号の初期値を記録する。*/ 561 541 cep->irs = tcph->seq; 562 542 563 /* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/543 /* 送受信シーケンス番号を初期化する。*/ 564 544 init_send_seq(cep); 565 545 init_receive_seq(cep); 566 546 567 /* éä¿¡ã¦ã¤ã³ããµã¤ãºãè¨å®ããã*/547 /* 送信ウインドサイズを設定する。*/ 568 548 cep->snd_wnd = tcph->win; 569 549 570 /* æçµè¨å®*/550 /* 最終設定 */ 571 551 cep->flags |= TCP_CEP_FLG_ACK_NOW; 572 552 cep->fsm_state = TCP_FSM_SYN_RECVD; … … 577 557 578 558 /* 579 * syn_sent -- è½åãªã¼ãã³ãã¦ãç¶æ 580 ã SYN éä¿¡æ¸ã®å¦ç 559 * syn_sent -- 能動オープンして、状態が SYN 送信済の処理 581 560 * 582 * æ»ãå¤:583 * RET_OK æ£å¸¸584 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã585 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã561 * 戻り値: 562 * RET_OK 正常 563 * RET_DROP エラー、セグメントを破棄する。 564 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 586 565 */ 587 566 … … 592 571 593 572 /* 594 * ç¸æããå信確èªãéããã¦æ¥ã¦ãã573 * 相手から受信確認が送られて来ても、 595 574 * 596 * ACK <= iss && éä¿¡ããæ大SEQ (snd_max) < ACK575 * ACK <= iss && 送信した最大 SEQ (snd_max) < ACK 597 576 * 598 * ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã577 * なら、リセットを送ってセグメントを破棄する。 599 578 */ 600 579 if ((tcph->flags & TCP_FLG_ACK) && … … 603 582 604 583 /* 605 * RST/ACK ãã©ã°ã®å¿çãããã°ããã¼ããéãã¦ããªã606 * ãã¨ãæå³ãã¦ããã584 * RST/ACK フラグの応答があれば、ポートが開いていない 585 * ことを意味している。 607 586 */ 608 587 if (tcph->flags & TCP_FLG_RST) { … … 615 594 616 595 /* 617 * SYN ãã©ã°ããªããã°ã»ã°ã¡ã³ããç ´æ£ããã596 * SYN フラグがなければセグメントを破棄する。 618 597 */ 619 598 if ((tcph->flags & TCP_FLG_SYN) == 0) 620 599 return RET_DROP; 621 600 622 cep->snd_wnd = tcph->win; /* snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº*/623 cep->irs = tcph->seq; /* irs: ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤*/624 init_receive_seq(cep); /* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/601 cep->snd_wnd = tcph->win; /* snd_wnd: 相手の受信可能ウィンドサイズ */ 602 cep->irs = tcph->seq; /* irs: 相手のシーケンス番号の初期値 */ 603 init_receive_seq(cep); /* 送受信シーケンス番号を初期化する。 */ 625 604 626 605 if (tcph->flags & TCP_FLG_ACK) { 627 606 /* 628 * ACK ãã©ã°ãããã¨ãã®å¦ç607 * ACK フラグがあるときの処理 629 608 * 630 * åä¿¡ãæå¾ 631 ãã¦ããæ大㮠SEQ (rcv_adv) ã 632 * åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº (rcv_wnd) åé²ããã 633 */ 634 cep->rcv_adv += cep->rcv_wnd; /* rcv_adv: åä¿¡ãæå¾ 635 ãã¦ããæ大㮠SEQ */ 636 /* rcv_wnd: åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº */ 637 638 /* æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã SYN å (1 ãªã¯ããã) é²ããã*/ 609 * 受信を期待している最大の SEQ (rcv_adv) を 610 * 受信可能なウィンドサイズ (rcv_wnd) 分進める。 611 */ 612 cep->rcv_adv += cep->rcv_wnd; /* rcv_adv: 受信を期待している最大の SEQ */ 613 /* rcv_wnd: 受信可能なウィンドサイズ */ 614 615 /* 未確認の最小送信 SEQ (snd_una) を SYN 分 (1 オクテット) 進める。*/ 639 616 cep->snd_una ++; 640 617 641 618 #ifdef TCP_CFG_DELAY_ACK 642 619 643 if (tcph->sum != 0) /* tcph->sum 㯠SDU é·*/620 if (tcph->sum != 0) /* tcph->sum は SDU 長 */ 644 621 cep->flags |= TCP_CEP_FLG_DEL_ACK; 645 622 else … … 654 631 if (cep->flags & TCP_CEP_FLG_NEED_FIN) { 655 632 /* 656 * CEP 㧠FIN éä¿¡ãè¦æ±ããã¦ããã°ã 657 * åæå¦çãéå§ãã 658 * CEP ã®ç¶æ 659 ã FIN Wait 1 ã«ããã 633 * CEP で FIN 送信が要求されていれば、 634 * 切断処理を開始し、 635 * CEP の状態を FIN Wait 1 にする。 660 636 */ 661 637 cep->fsm_state = TCP_FSM_FIN_WAIT_1; … … 665 641 else { 666 642 /* 667 * ç¸æãã ACK ãå¿çãããã®ã§ã 668 * CEP ã®ç¶æ 669 ã ã³ãã¯ã·ã§ã³éè¨å®äºç¶æ 670 ã«ããã 643 * 相手から ACK が応答されたので、 644 * CEP の状態を コネクション開設完了状態にする。 671 645 */ 672 646 cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE; … … 679 653 if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) { 680 654 681 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/655 /* 相手のアドレスをコピーする。*/ 682 656 *cep->p_dstaddr = cep->dstaddr; 683 657 … … 715 689 } 716 690 else { 717 /* ACK ãã©ã°ããªãã¨ãã¯ãACK ãéã£ã¦ãCEP ã®ç¶æ 718 ã SYN åä¿¡æ¸ã¿ã«ããã*/ 691 /* ACK フラグがないときは、ACK を送って、CEP の状態を SYN 受信済みにする。*/ 719 692 cep->flags |= TCP_CEP_FLG_ACK_NOW; 720 693 cep->timer[TCP_TIM_REXMT] = 0; … … 726 699 727 700 /* 728 * trim_length -- åä¿¡ãã SDU é·ã調æ´ããã701 * trim_length -- 受信した SDU 長を調整する。 729 702 */ 730 703 … … 733 706 { 734 707 tcph->seq ++; 735 if (tcph->sum > cep->rcv_wnd) { /* 注æ: tcph->sum 㯠SDU é·*/736 /* 737 * SDU é·ãåä¿¡ã¦ã£ã³ããµã¤ãºãã大ããã¨ãã¯ãåä¿¡ã¦ã£ã³ããµã¤ãºä»¥éã¯738 * ç ´æ£ããFIN ã«å¿çããªããã¨ã§ãç ´æ£ãããã¼ã¿ãåéãããã708 if (tcph->sum > cep->rcv_wnd) { /* 注意: tcph->sum は SDU 長 */ 709 /* 710 * SDU 長が受信ウィンドサイズより大きいときは、受信ウィンドサイズ以降は 711 * 破棄し、FIN に応答しないことで、破棄したデータを再送させる。 739 712 */ 740 713 tcph->sum = (uint16_t)cep->rcv_wnd; 741 714 tcph->flags &= ~TCP_FLG_FIN; 742 715 } 743 cep->snd_wl1 = tcph->seq - 1; /* cep->snd_wl1: ã¦ã£ã³ãæ´æ° SEQ çªå·*/716 cep->snd_wl1 = tcph->seq - 1; /* cep->snd_wl1: ウィンド更新 SEQ 番号 */ 744 717 745 718 #ifdef TCP_CFG_EXTENTIONS 746 cep->rcv_up = tcph->seq; /* cep->rcv_up : åä¿¡ããç·æ¥ãã¤ã³ã¿*/719 cep->rcv_up = tcph->seq; /* cep->rcv_up : 受信した緊急ポインタ */ 747 720 #endif 748 721 } 749 722 750 723 /* 751 * proc_ack2 -- ACK ã®å¦ç(2)724 * proc_ack2 -- ACK の処理 (2) 752 725 * 753 * æ»ãå¤726 * 戻り値 754 727 * 755 * RET_OK æ£å¸¸756 * RET_RETURN æ£å¸¸ããªã¿ã¼ã³ããã757 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã758 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã728 * RET_OK 正常 729 * RET_RETURN 正常、リターンする。 730 * RET_DROP エラー、セグメントを破棄する。 731 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 759 732 */ 760 733 … … 770 743 771 744 /* 772 * ç¸æã«å信確èªããã ACK ãããã¾ã 確èªããã¦ããªã773 * æå°éä¿¡ SEQ (snd_una) ãå¼ãã¨ãéä¿¡ã¦ã£ã³ããããã¡ãã774 * åé¤ãã¦ãããªã¯ãããæ° (acked) ã«ãªãã745 * 相手に受信確認された ACK から、まだ確認されていない 746 * 最小送信 SEQ (snd_una) を引くと、送信ウィンドバッファから 747 * 削除してよいオクテット数 (acked) になる。 775 748 */ 776 749 acked = tcph->ack - cep->snd_una; … … 778 751 779 752 /* 780 * å¾å¾©æéè¨æ¸¬ (rtt) ãè¨å®ããã¦ãã¦ãè¨æ¸¬éå§ SEQ ãã781 * å¾ã® ACK ãåä¿¡ããããã¿ã¤ãããã¯ãªãããã£ã³ã»ã«ãã782 * åéã¿ã¤ããåè¨å®ããã753 * 往復時間計測 (rtt) が設定されていて、計測開始 SEQ より 754 * 後の ACK を受信したら、タイマバックオフをキャンセルし、 755 * 再送タイマを再設定する。 783 756 */ 784 757 if (cep->rtt && SEQ_GT(tcph->ack, cep->rtseq)) { … … 787 760 788 761 /* 789 * å 790 ¨ã¦ã®æªç¢ºèªãã¼ã¿ã ACK ãããããåéã¿ã¤ããåæ¢ãã 791 * åéãè¨æ¶ãã (ããã«åºåãæç¶)ã 792 * ãããACK ãã¹ããããã«å¤ãã®ãã¼ã¿ããããªããåéã¿ã¤ãã« 793 * ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ããè¨å®ããã 794 */ 795 if (tcph->ack == cep->snd_max) { /* cep->snd_max: éä¿¡ããæ大 SEQ */ 762 * 全ての未確認データが ACK されたら、再送タイマを停止し、 763 * 再開を記憶する (さらに出力か持続)。 764 * もし、ACK すべき、さらに多くのデータがあるなら、再送タイマに 765 * 現在の再送タイムアウトを設定する。 766 */ 767 if (tcph->ack == cep->snd_max) { /* cep->snd_max: 送信した最大 SEQ */ 796 768 797 769 #ifdef TCP_CFG_SWBUF_CSAVE 798 770 799 771 /* 800 * éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã¯ã801 * éä¿¡æ¸ã¿ã§ãACKãå®äºããã¾ã§åéã¿ã¤ããå¤æ´ããªãã772 * 送信ウィンドバッファの省コピー機能が有効の場合は、 773 * 送信済みで、ACKが完了するまで再送タイマを変更しない。 802 774 */ 803 775 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_ACKED) … … 813 785 } 814 786 else if (cep->timer[TCP_TIM_PERSIST] == 0) { 815 cep->timer[TCP_TIM_REXMT] = cep->rxtcur; /* cep->rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã*/816 } 817 818 /* ç¸æãå信確èªãããã¼ã¿ãããã¨ãã®å¦ç*/787 cep->timer[TCP_TIM_REXMT] = cep->rxtcur; /* cep->rxtcur: 現在の再送タイムアウト */ 788 } 789 790 /* 相手が受信確認したデータがあるときの処理 */ 819 791 if (acked) { 820 uint32_t cw = cep->snd_cwnd; /* cep->snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº*/821 uint32_t incr = cep->maxseg; /* cep->maxseg: æ大ã»ã°ã¡ã³ããµã¤ãº*/822 823 /* 824 * æ°ãã«ç¸æãå信確èªãããã¼ã¿ããã£ãã¨ãã¯ã825 * 輻輳ã¦ã£ã³ããµã¤ãºã大ããããã826 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã827 * 輻輳ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ãã大ããã¨ãã¯828 * 輻輳åé¿å¶å¾¡ãè¡ãã792 uint32_t cw = cep->snd_cwnd; /* cep->snd_cwnd: 輻輳ウィンドサイズ */ 793 uint32_t incr = cep->maxseg; /* cep->maxseg: 最大セグメントサイズ */ 794 795 /* 796 * 新たに相手が受信確認したデータがあったときは、 797 * 輻輳ウィンドサイズを大きくする。 798 * 輻輳ウィンドサイズ (snd_cwnd) が 799 * 輻輳ウィンドサイズのしきい値 (snd_ssthresh) より大きいときは 800 * 輻輳回避制御を行い。 829 801 * 830 802 * snd_cwnd = snd_cwnd + maxseg * maxseg / snd_cwnd; 831 803 * 832 * çãããå°ããã¨ãã¯ãã¹ãã¼ã¹ã¿ã¼ãå¶å¾¡ãè¡ãã804 * 等しいか小さいときは、スロースタート制御を行う。 833 805 * 834 806 * snd_cwnd = snd_cwnd + maxseg … … 836 808 */ 837 809 if (cw > cep->snd_ssthresh) 838 /* 輻輳åé¿å¶å¾¡*/810 /* 輻輳回避制御 */ 839 811 incr = incr * incr / cw; 840 812 … … 845 817 846 818 /* 847 * éä¿¡ã¦ã£ã³ããããã¡ãããç¸æãå信確èªãããã¼ã¿æ° (acked) ã®ãã¼ã¿ãåé¤ããã819 * 送信ウィンドバッファから、相手が受信確認したデータ数 (acked) のデータを削除する。 848 820 */ 849 821 if (acked > cep->swbuf_count) { … … 858 830 } 859 831 860 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/832 /* 送信ウィンドバッファに空きができたことを知らせる。*/ 861 833 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); 862 834 863 835 /* 864 * éé確èªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ã865 * ä»åéé確èªããã ACK ã¾ã§é²ãã866 * 次ã®éä¿¡ãã¼ã¿ã® SEQ (snd_nxt) ããæ°ãã867 * éé確èªããã¦ããªãæå°éä¿¡SEQ (snd_una)868 * ã¾ã§é²ããã836 * 送達確認されていない最小送信 SEQ (snd_una) を 837 * 今回送達確認された ACK まで進め、 838 * 次の送信データの SEQ (snd_nxt) も、新しい 839 * 送達確認されていない最小送信 SEQ (snd_una) 840 * まで進める。 869 841 */ 870 842 cep->snd_una += acked; … … 873 845 874 846 /* 875 * ç¶æ 876 ã«ããåå² 847 * 状態により分岐 877 848 */ 878 849 switch (cep->fsm_state) { 879 case TCP_FSM_FIN_WAIT_1: /* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾ 880 ã¡ */ 850 case TCP_FSM_FIN_WAIT_1: /* APP が終了、FIN 送信済み、ACK 待ち */ 881 851 if (ourfinisacked) { 882 852 cep->fsm_state = TCP_FSM_FIN_WAIT_2; … … 884 854 } 885 855 break; 886 case TCP_FSM_CLOSING: /* åæã¯ãã¼ãºãFIN 交ææ¸ã¿ãACK å¾ 887 ã¡ */ 856 case TCP_FSM_CLOSING: /* 同時クローズ、FIN 交換済み、ACK 待ち */ 888 857 if (ourfinisacked) { 889 858 /* 890 * éä¿¡ãã FIN ã確èªããã¦ããã°ç¶æ 891 ãå¤æ´ãã 892 * ãã¹ã¦ã®ã¿ã¤ãããªã»ããããå¾ã2MSL ã¿ã¤ããè¨å®ããã 859 * 送信した FIN が確認されていれば状態を変更し、 860 * すべてのタイマをリセットした後、2MSL タイマを設定する。 893 861 */ 894 862 cep->fsm_state = TCP_FSM_TIME_WAIT; … … 897 865 } 898 866 break; 899 case TCP_FSM_LAST_ACK: /* APP ãçµäºãACK å¾ 900 ã¡ */ 867 case TCP_FSM_LAST_ACK: /* APP が終了、ACK 待ち */ 901 868 if (ourfinisacked) { 902 869 /* 903 * éä¿¡ãã FIN ã確èªããã¦ããã°ãcep ãã¯ãã¼ãºãã904 * ã»ã°ã¡ã³ããç ´æ£ããã870 * 送信した FIN が確認されていれば、cep をクローズし、 871 * セグメントを破棄する。 905 872 */ 906 873 cep = tcp_close(cep); … … 908 875 } 909 876 break; 910 case TCP_FSM_TIME_WAIT: /* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾ 911 ã¡ */ 877 case TCP_FSM_TIME_WAIT: /* 相手からの FIN 受信済み、時間待ち */ 912 878 /* 913 * ç¸æãã FIN ãåéããããããä¸åº¦2MSL ã¿ã¤ããè¨å®ãã914 * ACK éä¿¡å¾ãã»ã°ã¡ã³ããç ´æ£ããã879 * 相手から FIN が再送された。もう一度2MSL タイマを設定し、 880 * ACK 送信後、セグメントを破棄する。 915 881 */ 916 882 cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL; … … 923 889 924 890 /* 925 * proc_ack1 -- ACK ã®å¦ç(1)891 * proc_ack1 -- ACK の処理 (1) 926 892 * 927 * æ»ãå¤:928 * RET_OK æ£å¸¸929 * RET_RETURN æ£å¸¸ããªã¿ã¼ã³ããã930 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã931 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã893 * 戻り値: 894 * RET_OK 正常 895 * RET_RETURN 正常、リターンする。 896 * RET_DROP エラー、セグメントを破棄する。 897 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 932 898 * 933 899 */ … … 939 905 940 906 switch (cep->fsm_state) { 941 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿ */ 942 943 /* ç¶æ 944 ãå¤æ´ããã*/ 907 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 908 909 /* 状態を変更する。*/ 945 910 if (cep->flags & TCP_CEP_FLG_NEED_FIN) { 946 911 cep->fsm_state = TCP_FSM_FIN_WAIT_1; … … 951 916 cep->fsm_state = TCP_FSM_ESTABLISHED; 952 917 953 /* TCP é信端ç¹ããTCP åä»å£ã解æ¾ããã*/918 /* TCP 通信端点からTCP 受付口を解放する。*/ 954 919 cep->rep = NULL; 955 920 … … 960 925 if (cep->rcv_nblk_tfn == TFN_TCP_ACP_CEP) { 961 926 962 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/927 /* 相手のアドレスをコピーする。*/ 963 928 *cep->p_dstaddr = cep->dstaddr; 964 929 … … 996 961 if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) { 997 962 998 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/963 /* 相手のアドレスをコピーする。*/ 999 964 *cep->p_dstaddr = cep->dstaddr; 1000 965 … … 1044 1009 1045 1010 /* 1046 * SDU ããªã FIN ãã¤ãã¦ããªããã°ãtcp_move_ra2rw() ãå¼åºãã1047 */ 1048 if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0) /* tcph->sum 㯠SDU é·*/1011 * SDU がなく FIN がついていなければ、tcp_move_ra2rw() を呼出す。 1012 */ 1013 if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0) /* tcph->sum は SDU 長 */ 1049 1014 tcph->flags = tcp_move_ra2rw(cep, tcph->flags); 1050 1015 1051 cep->snd_wl1 = tcph->seq - 1; /* snd_wl1: ã¦ã£ã³ãæ´æ°SEQ */1052 1053 /* break; ä¸ã«è½ã¡ãã*/1016 cep->snd_wl1 = tcph->seq - 1; /* snd_wl1: ウィンド更新 SEQ */ 1017 1018 /* break; 下に落ちる。*/ 1054 1019 1055 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº */ 1056 case TCP_FSM_FIN_WAIT_1: /* çµäºãã¦ãFIN éä¿¡æ¸ã¿ */ 1057 case TCP_FSM_FIN_WAIT_2: /* çµäºãFIN ä¼é確èªåä¿¡ãFINå¾ 1058 ã¡*/ 1059 case TCP_FSM_CLOSE_WAIT: /* FIN åä¿¡ãã¯ãã¼ãºå¾ 1060 ã¡ */ 1061 case TCP_FSM_CLOSING: /* çµäºãFIN 交ææ¸ã¿ãACK å¾ 1062 ã¡ */ 1063 case TCP_FSM_LAST_ACK: /* FIN åä¿¡ãçµäºãACK å¾ 1064 ã¡ */ 1065 case TCP_FSM_TIME_WAIT: /* çµäºãæéå¾ 1066 ã¡ */ 1020 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 1021 case TCP_FSM_FIN_WAIT_1: /* 終了して、FIN 送信済み */ 1022 case TCP_FSM_FIN_WAIT_2: /* 終了、FIN 伝達確認受信、FIN待ち*/ 1023 case TCP_FSM_CLOSE_WAIT: /* FIN 受信、クローズ待ち */ 1024 case TCP_FSM_CLOSING: /* 終了、FIN 交換済み、ACK 待ち */ 1025 case TCP_FSM_LAST_ACK: /* FIN 受信、終了、ACK 待ち */ 1026 case TCP_FSM_TIME_WAIT: /* 終了、時間待ち */ 1067 1027 1068 1028 if (SEQ_LE(tcph->ack, cep->snd_una)) { 1069 1029 1070 1030 /* 1071 * åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã¨åãã以åã®ã¨ãã®å¦ç1072 * ã¤ã¾ããå¤éã« ACK ãåä¿¡ãããã¨ãæå³ãã¦ããã1031 * 受信確認 ACK が 未確認の最小送信 SEQ (snd_una) と同じか以前のときの処理 1032 * つまり、多重に ACK を受信したことを意味している。 1073 1033 */ 1074 1034 1075 if (tcph->sum == 0 && tcph->win == cep->snd_wnd) { /* tcph->sum 㯠SDU é·*/1035 if (tcph->sum == 0 && tcph->win == cep->snd_wnd) { /* tcph->sum は SDU 長 */ 1076 1036 1077 1037 /* 1078 * SDU ããªããç¸æã®ã¦ã£ã³ããµã¤ãºãå¤æ´ããã¦ããªããã°ã1079 * ãã§ã«éä¿¡ããã»ã°ã¡ã³ãã®ä¸ã§ãACK (tcph->ack) ã¨1080 * åã SEQ ããå§ã¾ãã»ã°ã¡ã³ãããéä¸ã§æ¶å¤±ããå¯è½æ§ãããã1081 * ãã®å ´åã¯ãé«éå転éã¨é«éãªã«ããªãè¡ãã1038 * SDU がなく、相手のウィンドサイズが変更されていなければ、 1039 * すでに送信したセグメントの中で、ACK (tcph->ack) と 1040 * 同じ SEQ から始まるセグメントが、途中で消失した可能性がある。 1041 * この場合は、高速再転送と高速リカバリを行う。 1082 1042 */ 1083 1043 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DUP_ACKS], 1); … … 1086 1046 1087 1047 /* 1088 * åéã¿ã¤ããã»ããããã¦ããªãã¨ãã1089 * ã¾ãã¯ãACK (tcph->ack) ã¨æªç¢ºèªã®æå°éä¿¡ SEQã1090 * ä¸è´ããªãã¨ãã¯ãå¤é ACK æ°ã 0 ã«ããã1048 * 再送タイマがセットされていないとき、 1049 * または、ACK (tcph->ack) と未確認の最小送信 SEQが 1050 * 一致しないときは、多重 ACK 数を 0 にする。 1091 1051 */ 1092 1052 cep->dupacks = 0; … … 1096 1056 1097 1057 /* 1098 * å¤é ACK æ°ããããå¤ (æ¨æº 3) ã«ãªã£ãã1099 * é«éå転éå¦çãéå§ããã1058 * 多重 ACK 数がしきい値 (標準 3) になったら 1059 * 高速再転送処理を開始する。 1100 1060 */ 1101 1061 uint_t win; 1102 1062 1103 1063 /* 1104 * 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®ãããå¤ãè¨å®ããã1064 * 輻輳ウィンドサイズ(snd_cwnd)のしきい値を設定する。 1105 1065 * 1106 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã1107 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã® 1/2ã1108 * ãã ãã2 * maxseg 以ä¸ã1066 * 相手の受信可能ウィンドサイズ (snd_wnd) か 1067 * 輻輳ウィンドサイズ (snd_cwnd) の 1/2。 1068 * ただし、2 * maxseg 以上。 1109 1069 * 1110 1070 */ … … 1117 1077 cep->snd_ssthresh = win * cep->maxseg; 1118 1078 1119 /* åéã¿ã¤ãã¨å¾å¾©æéããªã»ããããã*/1079 /* 再送タイマと往復時間をリセットする。*/ 1120 1080 cep->timer[TCP_TIM_REXMT] = 0; 1121 1081 cep->rtt = 0; 1122 1082 1123 /* æ¶å¤±ããã»ã°ã¡ã³ããéä¿¡ããã*/1083 /* 消失したセグメントを送信する。*/ 1124 1084 cep->snd_old_nxt = cep->snd_nxt; 1125 1085 cep->snd_nxt = tcph->ack; … … 1127 1087 1128 1088 /* 1129 * snd_nxt ãå 1130 ã«æ»ãããã«è¨å®ã㦠1131 * éä¿¡ãæ示ããã 1089 * snd_nxt を元に戻すように設定して 1090 * 送信を指示する。 1132 1091 */ 1133 1092 cep->flags |= TCP_CEP_FLG_POST_OUTPUT | … … 1137 1096 sig_sem(SEM_TCP_POST_OUTPUT); 1138 1097 1139 /* 輻輳ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/1098 /* 輻輳ウィンドサイズを更新する。*/ 1140 1099 cep->snd_cwnd = (uint16_t)(cep->snd_ssthresh 1141 1100 + cep->maxseg * cep->dupacks); … … 1147 1106 1148 1107 /* 1149 * å¤é ACK æ°ããããå¤ (æ¨æº 3) ãè¶ 1150 ããã 1151 * 輻輳ã¦ã£ã³ããµã¤ãºãå¢å ããªããåéããã 1108 * 多重 ACK 数がしきい値 (標準 3) を超えたら 1109 * 輻輳ウィンドサイズを増加しながら再送する。 1152 1110 */ 1153 1111 cep->snd_cwnd += cep->maxseg; 1154 1112 1155 /* éä¿¡ãæ示ããã*/1113 /* 送信を指示する。*/ 1156 1114 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1157 1115 sig_sem(SEM_TCP_POST_OUTPUT); … … 1166 1124 1167 1125 /* 1168 * åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) 以éã®ã¨ãã®å¦ç1126 * 受信確認 ACK が 未確認の最小送信 SEQ (snd_una) 以降のときの処理 1169 1127 */ 1170 1128 if (cep->dupacks >= MAX_TCP_REXMT_THRESH && cep->snd_cwnd > cep->snd_ssthresh) 1171 1129 /* 1172 * é«éå転éãè¡ã£ã¦ããã¨ãã¯ã輻輳ã¦ã£ã³ããµã¤ãºããããå¤ã¾ã§æ»ãã1130 * 高速再転送を行っていたときは、輻輳ウィンドサイズをしきい値まで戻す。 1173 1131 */ 1174 1132 cep->snd_cwnd = (uint16_t)cep->snd_ssthresh; … … 1178 1136 if (SEQ_GT(tcph->ack, cep->snd_max)) 1179 1137 /* 1180 * åä¿¡ãã ACK ãéä¿¡ããæ大 SEQ ãè¶ 1181 ãã¦ããã¨ãã®å¦ç 1138 * 受信した ACK が送信した最大 SEQ を超えていたときの処理 1182 1139 */ 1183 1140 return drop_after_ack(input, cep, thoff); … … 1185 1142 if (cep->flags & TCP_CEP_FLG_NEED_SYN) { 1186 1143 /* 1187 * SYN éä¿¡è¦æ±ãåãæ¶ãã¦ãæªç¢ºèªã®æå°éä¿¡ SEQ ãé²ããã1144 * SYN 送信要求を取り消して、未確認の最小送信 SEQ を進める。 1188 1145 */ 1189 1146 cep->flags &= ~TCP_CEP_FLG_NEED_SYN; … … 1198 1155 1199 1156 /* 1200 * update_wnd -- ã¦ã£ã³ããµã¤ãºãæ´æ°ããã1157 * update_wnd -- ウィンドサイズを更新する。 1201 1158 * 1202 * æ»ãå¤: éä¿¡ãå¿ 1203 è¦ãªã true ãè¿ãã 1159 * 戻り値: 送信が必要なら true を返す。 1204 1160 */ 1205 1161 … … 1209 1165 1210 1166 /* 1211 * æ´æ°æ¡ä»¶1167 * 更新条件 1212 1168 * 1213 * ACK ãã©ã°ãã»ããããã¦ãã&&1214 * ( ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ããå||1215 * ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ã¨åã&&1216 * ( ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ããå||1217 * ( ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ã¨åã&&1218 * WIN ãç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ãã大ãã1169 * ACK フラグがセットされている && 1170 * (前回ウィンドを更新した SEQ (snd_wl1) が SEQ より前 || 1171 * 前回ウィンドを更新した SEQ (snd_wl1) が SEQ と同じ && 1172 * (前回ウィンドを更新した ACK (snd_wl2) が ACK より前 || 1173 * (前回ウィンドを更新した ACK (snd_wl2) が ACK と同じ && 1174 * WIN が相手の受信可能ウィンドサイズ (snd_wnd) より大きい 1219 1175 * ) 1220 1176 * ) … … 1232 1188 1233 1189 if (cep->snd_wnd > cep->max_sndwnd) 1234 /* ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/1190 /* 今までの最大送信ウィンドサイズを更新する。*/ 1235 1191 cep->max_sndwnd = cep->snd_wnd; 1236 1192 … … 1240 1196 1241 1197 /* 1242 * éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ä¸ã§ã 1243 * ç¸æã®åä¿¡ã¦ã£ã³ãã空ãã®ãå¾ 1244 ã£ã¦ããã¨ãã®å¦ç 1198 * 送信ウィンドバッファ用のネットワークバッファ割り当て中で、 1199 * 相手の受信ウィンドが空くのを待っているときの処理 1245 1200 */ 1246 1201 if (cep->snd_wnd > 0) { 1247 1202 1248 1203 /* 1249 * ç¸æã®åä¿¡ã¦ã£ã³ãã空ããã¨ãã¯ã1250 * éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ãåéããã1204 * 相手の受信ウィンドが空いたときは、 1205 * 送信ウィンドバッファ用のネットワークバッファ割り当てを再開する。 1251 1206 */ 1252 1207 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) … … 1265 1220 1266 1221 /* 1267 * proc_urg -- ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç1222 * proc_urg -- 緊急データつきのセグメントの処理 1268 1223 */ 1269 1224 … … 1276 1231 TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) { 1277 1232 1278 /* ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç*/1233 /* 緊急データつきのセグメントの処理 */ 1279 1234 1280 1235 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_URG_SEGS], 1); … … 1282 1237 1283 1238 /* 1284 * ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ãåä¿¡ã¦ã£ã³ããããã¡ã® 1285 * ç¯å²ãè¶ 1286 ããã¨ãã¯ä½ãããªãã 1239 * 緊急ポインタの位置が受信ウィンドバッファの 1240 * 範囲を超えるときは何もしない。 1287 1241 */ 1288 1242 tcph->urp = 0; … … 1291 1245 1292 1246 if (SEQ_GT(tcph->seq + tcph->urp, cep->rcv_up)) 1293 /* ç·æ¥ãã¤ã³ã¿ãæ´æ°ãããã¨ãã®å¦ç*/1247 /* 緊急ポインタが更新されたときの処理 */ 1294 1248 cep->rcv_up = tcph->seq + tcph->urp; 1295 1249 1296 if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) { /* tcph->sum 㯠TCP ã® SDU é·*/1250 if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) { /* tcph->sum は TCP の SDU 長 */ 1297 1251 1298 1252 /* 1299 * ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ããä»ååä¿¡ããã»ã°ã¡ã³ãå 1300 ã®å ´åã¯ã 1301 * ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã 1253 * 緊急ポインタの位置が、今回受信したセグメント内の場合は、 1254 * コールバック関数を呼び出す。 1302 1255 */ 1303 1256 cep->urg_tcph = tcph; … … 1322 1275 1323 1276 if (cep->urg_tcph != NULL) { 1324 /* ã³ã¼ã«ããã¯é¢æ°å 1325 㧠tcp_rcv_oob() ãå¼åºããªãã£ãã*/ 1277 /* コールバック関数内で tcp_rcv_oob() を呼出さなかった。*/ 1326 1278 cep->urg_tcph = NULL; 1327 1279 tcph->urp = 0; … … 1329 1281 else { 1330 1282 /* 1331 * ã³ã¼ã«ããã¯é¢æ°å 1332 㧠tcp_rcv_oob() ãå¼åºããæã¯ã 1333 * SDU é·ã®è£æ£å¤ãè¨å®ããã 1283 * コールバック関数内で tcp_rcv_oob() を呼出した時は、 1284 * SDU 長の補正値を設定する。 1334 1285 */ 1335 1286 tcph->urp = 1; … … 1358 1309 1359 1310 /* 1360 * drop_after_ack -- åä¿¡ã»ã°ã¡ã³ããç ´æ£ããå¾ãACK ãè¿ã (注æ: ååã¨ã¯åã£ã¦ããªã)ã1311 * drop_after_ack -- 受信セグメントを破棄した後、ACK を返す (注意: 名前とは合っていない)。 1361 1312 * 1362 * æ»ãå¤:1363 * RET_RETURN æ£å¸¸ããªã¿ã¼ã³ããã1364 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã1313 * 戻り値: 1314 * RET_RETURN 正常、リターンする。 1315 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 1365 1316 */ 1366 1317 … … 1371 1322 1372 1323 /* 1373 * SYN åä¿¡ç¶æ 1374 ã§ãACK ãéé確èªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ãã 1375 * åã®å¤ããéä¿¡ãããæ大 SEQ (snd_max) ããå¾ã®å¤ã®å ´åã¯ãç¸æã« RST ã 1376 * éã£ã¦çµäºãããããã¯ã"LAND" DoS æ»æã¸ã®é²å¾¡ã§ãããå½é ããã SYN 1377 * ã»ã°ã¡ã³ããéä¿¡ãã¤ã¥ãããã¼ãéã§ã® ACK ã¹ãã¼ã ãé²ãã 1324 * SYN 受信状態で、ACK が送達確認されていない最小送信 SEQ (snd_una) より 1325 * 前の値か、送信された最大 SEQ (snd_max) より後の値の場合は、相手に RST を 1326 * 送って終了する。これは、"LAND" DoS 攻撃への防御であり、偽造された SYN 1327 * セグメントを送信しつづけるポート間での ACK ストームを防ぐ。 1378 1328 */ 1379 1329 if (cep->fsm_state == TCP_FSM_SYN_RECVD && (tcph->flags & TCP_FLG_ACK) && … … 1384 1334 syscall(rel_net_buf(input)); 1385 1335 1386 /* éä¿¡ãæ示ããã*/1336 /* 送信を指示する。*/ 1387 1337 cep->flags |= TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_POST_OUTPUT; 1388 1338 sig_sem(SEM_TCP_POST_OUTPUT); … … 1391 1341 1392 1342 /* 1393 * close_connection -- ã³ãã¯ã·ã§ã³éæ¾å¦çãç¸æãã FIN ãåä¿¡ããã1343 * close_connection -- コネクション開放処理、相手から FIN を受信した。 1394 1344 */ 1395 1345 … … 1416 1366 1417 1367 switch (cep->fsm_state) { 1418 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿*/1419 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº*/1368 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 1369 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 1420 1370 cep->fsm_state = TCP_FSM_CLOSE_WAIT; 1421 1371 break; 1422 1372 1423 case TCP_FSM_FIN_WAIT_1: /* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾ 1424 ã¡ */ 1373 case TCP_FSM_FIN_WAIT_1: /* APP が終了、FIN 送信済み、ACK 待ち */ 1425 1374 cep->fsm_state = TCP_FSM_CLOSING; 1426 1375 break; 1427 1376 1428 case TCP_FSM_FIN_WAIT_2: /* ç¸æããã® FIN å¾ 1429 ã¡ */ 1377 case TCP_FSM_FIN_WAIT_2: /* 相手からの FIN 待ち */ 1430 1378 cep->fsm_state = TCP_FSM_TIME_WAIT; 1431 1379 tcp_cancel_timers(cep); … … 1433 1381 1434 1382 /* 1435 * FIN WAIT 2 ç¶æ 1436 ã§ã¯ã 1437 * åä¿¡ã¯å¯è½ã§ãããããã§ã«éä¿¡ã¯çµäºãã¦ããã 1438 * ç¸æã®éä¿¡ãçµäºããã®ã§ãå 1439 ¥åã¿ã¹ã¯ã®ã¿èµ·åºããã 1383 * FIN WAIT 2 状態では、 1384 * 受信は可能であるが、すでに送信は終了している。 1385 * 相手の送信も終了したので、入力タスクのみ起床する。 1440 1386 */ 1441 1387 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); … … 1443 1389 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 1444 1390 1445 /* ç¸æããã® FIN ã«å¯¾ãã¦å¿çãè¿ãã*/1391 /* 相手からの FIN に対して応答を返す。*/ 1446 1392 tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una, 1447 1393 cep->rbufsz - cep->rwbuf_count, TCP_FLG_ACK); … … 1450 1396 1451 1397 /* 1452 * å¿ 1453 è¦ãªæ 1454 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã¦ã 1455 * æ¨æºã® TCP é信端ç¹ãéæ¾ããã 1398 * 必要な情報を Time Wait 用 TCP 通信端点に移して、 1399 * 標準の TCP 通信端点を開放する。 1456 1400 */ 1457 1401 tcp_move_twcep(cep); … … 1461 1405 break; 1462 1406 1463 case TCP_FSM_TIME_WAIT: /* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾ 1464 ã¡ */ 1407 case TCP_FSM_TIME_WAIT: /* 相手からの FIN 受信済み、時間待ち */ 1465 1408 cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL; 1466 1409 break; … … 1469 1412 1470 1413 /* 1471 * tcp_input -- TCP ã®å 1472 ¥åé¢æ° 1414 * tcp_input -- TCP の入力関数 1473 1415 * 1474 * 注æ: input ã«ã¯ IF ããã㨠IP ããããå 1475 é ã«ããã 1416 * 注意: input には IF ヘッダと IP ヘッダが先頭にある。 1476 1417 */ 1477 1418 … … 1500 1441 NET_COUNT_MIB(tcp_stats.tcpInSegs, 1); 1501 1442 1502 /* ãããé·ããã§ãã¯ããã*/1443 /* ヘッダ長をチェックする。*/ 1503 1444 if (input->len < IF_IP_TCP_HDR_SIZE) { 1504 1445 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1); … … 1509 1450 tcph = GET_TCP_HDR(input, *offp); 1510 1451 1511 seglen = input->len - *offp; /* TCP ã®ã»ã°ã¡ã³ãé·*/1452 seglen = input->len - *offp; /* TCP のセグメント長 */ 1512 1453 1513 1454 if (IN_CKSUM(input, IPPROTO_TCP, *offp, (uint_t)seglen) != 0) { … … 1516 1457 } 1517 1458 1518 /* TCP ãããé·ããã§ãã¯ããã*/1459 /* TCP ヘッダ長をチェックする。*/ 1519 1460 if (TCP_HDR_LEN(tcph->doff) < TCP_HDR_SIZE || TCP_HDR_LEN(tcph->doff) > seglen) { 1520 1461 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1); 1521 1462 goto drop; 1522 1463 } 1523 tcph->sum = seglen - TCP_HDR_LEN(tcph->doff); /* ãããã tcph->sum 㯠TCP ã® SDU é·*/1524 1525 /* 1526 * SYN 㨠FIN ã®ä¸¡ããããã»ããããã¦ããã°ç ´æ£ãããnmap çã®å¯¾ç1527 * ãã ããRFC1644 T/TCP æ¡å¼µæ©è½ã¨ç«¶åããã1464 tcph->sum = seglen - TCP_HDR_LEN(tcph->doff); /* ここから tcph->sum は TCP の SDU 長 */ 1465 1466 /* 1467 * SYN と FIN の両ビットがセットされていれば破棄する。nmap 等の対策 1468 * ただし、RFC1644 T/TCP 拡張機能と競合する。 1528 1469 */ 1529 1470 if ((tcph->flags & (TCP_FLG_SYN | TCP_FLG_FIN)) == (TCP_FLG_SYN | TCP_FLG_FIN)) 1530 1471 goto drop; 1531 1472 1532 /* ãããã¯ã¼ã¯ãªã¼ãã¼ãããã¹ããªã¼ãã¼ã«å¤æããã*/1473 /* ネットワークオーダーからホストオーダーに変換する。*/ 1533 1474 1534 1475 NTOHL(tcph->seq); … … 1544 1485 1545 1486 /* 1546 * ç¶æ 1547 ã Time Wait ä¸ã® CEP ãæ¢ç´¢ããã 1487 * 状態が Time Wait 中の CEP を探索する。 1548 1488 */ 1549 1489 twcep = tcp_find_twcep(&iph->dst, tcph->dport, &iph->src, tcph->sport); 1550 1490 if (twcep != NULL) { 1551 1491 1552 if (tcph->flags & TCP_FLG_RST) /* RST ãã©ã°ãåä¿¡ããã¨ãã¯ç¡è¦ããã*/1492 if (tcph->flags & TCP_FLG_RST) /* RST フラグを受信したときは無視する。*/ 1553 1493 goto drop; 1554 1494 else { 1555 1495 1556 1496 /* 1557 * TCP é信端ç¹ã Time Wait ã®æãç¸æãã¹ãããã»ã°ã¡ã³ããæ¥ãã¨ãã¯ã1558 * ç¸æãã¹ãã® FIN ã«å¯¾ããèªãã¹ãã® ACK ã»ã°ã¡ã³ããéä¸ã§1559 * æ失ãããã¨ãæå³ãã¦ããã®ã§ãACK ã»ã°ã¡ã³ããåéããã1497 * TCP 通信端点が Time Wait の時、相手ホストからセグメントが来たときは、 1498 * 相手ホストの FIN に対する自ホストの ACK セグメントが途中で 1499 * 損失したことを意味しているので、ACK セグメントを再送する。 1560 1500 */ 1561 1501 1562 /* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/1502 /* ホストオーダーからネットワークオーダーに戻す。*/ 1563 1503 HTONS(tcph->sport); 1564 1504 HTONS(tcph->dport); … … 1569 1509 } 1570 1510 else 1571 /* æ¨æºã® TCP é信端ç¹ãå¾ãã*/1511 /* 標準の TCP 通信端点を得る。*/ 1572 1512 cep = tcp_find_cep(&iph->dst, tcph->dport, &iph->src, tcph->sport); 1573 1513 1574 1514 #else /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */ 1575 1515 1576 /* TCP é信端ç¹ãå¾ãã*/1516 /* TCP 通信端点を得る。*/ 1577 1517 cep = tcp_find_cep(&iph->dst, tcph->dport, &iph->src, tcph->sport); 1578 1518 … … 1580 1520 1581 1521 /* 1582 * TCP é信端ç¹ããªãå ´å㨠CEP ã®ç¶æ 1583 ãã¯ãã¼ãºãªãç ´æ£ããã 1522 * TCP 通信端点がない場合と CEP の状態がクローズなら破棄する。 1584 1523 */ 1585 1524 if (cep == NULL) { … … 1599 1538 1600 1539 /* 1601 * ã³ãã¯ã·ã§ã³éè¨æ¸ã¿ã§ã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã1602 * ã¢ã¤ãã«æéã¨çå確èªã¿ã¤ãããªã»ããããã1540 * コネクション開設済みでセグメントを受信したときは、 1541 * アイドル時間と生存確認タイマをリセットする。 1603 1542 */ 1604 1543 cep->idle = 0; … … 1607 1546 } 1608 1547 1609 /* CEP ã®ç¶æ 1610 ã LISTEN 以å¤ã®æã¯ããªãã·ã§ã³ãå¦çããã*/ 1548 /* CEP の状態が LISTEN 以外の時は、オプションを処理する。*/ 1611 1549 if (cep->fsm_state != TCP_FSM_LISTEN) 1612 1550 parse_option(tcph, cep); 1613 1551 1614 1552 /* 1615 * åä¿¡å¯è½ã¦ã£ã³ããµã¤ãºãè¨ç®ããã1553 * 受信可能ウィンドサイズを計算する。 1616 1554 * 1617 * rcv_nxt: åä¿¡ãæå¾ 1618 ãã¦ããæå°ã® SEQï¼ãã以åã¯åä¿¡æ¸ã¿ï¼ 1619 * rcv_adv: åä¿¡ãæå¾ 1620 ãã¦ããæ大㮠SEQ 1621 * rbufsz: åä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº 1622 * rwbuf_count: åä¿¡ã¦ã£ã³ããããã¡ã«ãããã¼ã¿é 1623 * tcph->sum: ä»ååä¿¡ãã SDU ãµã¤ãº 1555 * rcv_nxt: 受信を期待している最小の SEQ(これ以前は受信済み) 1556 * rcv_adv: 受信を期待している最大の SEQ 1557 * rbufsz: 受信ウィンドバッファサイズ 1558 * rwbuf_count: 受信ウィンドバッファにあるデータ量 1559 * tcph->sum: 今回受信した SDU サイズ 1624 1560 * 1625 * ä»ååä¿¡ããã»ã°ã¡ã³ããé åºæ´åãã¥ã¼ã«é£çµãã 1626 * å¯è½æ§ãããã®ã§ tcph->sum ãèæ 1627 ®ããã 1561 * 今回受信したセグメントを順序整列キューに連結する 1562 * 可能性があるので tcph->sum を考慮する。 1628 1563 * 1629 1564 */ … … 1636 1571 cep->rcv_wnd = cep->rcv_adv - cep->rcv_nxt; 1637 1572 1638 /* CEP ã®ç¶æ 1639 ã«ããå¦çãè¡ãã*/ 1640 1641 if (cep->fsm_state == TCP_FSM_LISTEN) { /* ååãªã¼ãã³ (LISTEN) ã®å¦çã*/ 1573 /* CEP の状態により処理を行う。*/ 1574 1575 if (cep->fsm_state == TCP_FSM_LISTEN) { /* 受動オープン (LISTEN) の処理。*/ 1642 1576 if ((ret = listening(input, cep, *offp, iss)) == RET_RST_DROP) 1643 1577 goto reset_drop; 1644 1578 else if (ret == RET_DROP) 1645 1579 goto drop; 1646 trim_length(tcph, cep); /* åä¿¡ãã SDU é·ã調æ´ããã*/1647 1648 if (tcph->flags & TCP_FLG_ACK) { /* ACK ãã©ã°ã®å¦ç*/1580 trim_length(tcph, cep); /* 受信した SDU 長を調整する。*/ 1581 1582 if (tcph->flags & TCP_FLG_ACK) { /* ACK フラグの処理 */ 1649 1583 if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP) 1650 1584 goto drop; … … 1655 1589 } 1656 1590 } 1657 else if (cep->fsm_state == TCP_FSM_SYN_SENT) { /* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿*/1591 else if (cep->fsm_state == TCP_FSM_SYN_SENT) { /* 能動オープン、SYN 送信済み */ 1658 1592 if ((ret = syn_sent(tcph, cep)) == RET_RST_DROP) 1659 1593 goto reset_drop; 1660 1594 else if (ret == RET_DROP) 1661 1595 goto drop; 1662 trim_length(tcph, cep); /* åä¿¡ãã SDU é·ã調æ´ããã*/1663 1664 if (tcph->flags & TCP_FLG_ACK) { /* ACK ãã©ã°ã®å¦ç*/1596 trim_length(tcph, cep); /* 受信した SDU 長を調整する。*/ 1597 1598 if (tcph->flags & TCP_FLG_ACK) { /* ACK フラグの処理 */ 1665 1599 if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP) 1666 1600 goto drop; … … 1672 1606 } 1673 1607 else { 1674 if (cep->fsm_state == TCP_FSM_SYN_RECVD) { /* SYN ãåä¿¡ãSYN éä¿¡æ¸ã¿*/1608 if (cep->fsm_state == TCP_FSM_SYN_RECVD) { /* SYN を受信、SYN 送信済み */ 1675 1609 /* 1676 * ç¸æããå信確èªãéããã¦æ¥ã¦ãã1610 * 相手から受信確認が送られて来ても、 1677 1611 * 1678 * ACK <= æªç¢ºèªã®æå°éä¿¡SEQ (snd_una) &&1679 * éä¿¡ããæ大SEQ (snd_max) < ACK1612 * ACK <= 未確認の最小送信 SEQ (snd_una) && 1613 * 送信した最大 SEQ (snd_max) < ACK 1680 1614 * 1681 * ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã1615 * なら、リセットを送ってセグメントを破棄する。 1682 1616 */ 1683 1617 if ((tcph->flags & TCP_FLG_ACK) && … … 1688 1622 1689 1623 /* 1690 * RST ãã©ã°ãåä¿¡ããã¨ãã®å¦ç (ç°å¸¸åæ)1624 * RST フラグを受信したときの処理 (異常切断) 1691 1625 */ 1692 1626 if (tcph->flags & TCP_FLG_RST) { … … 1694 1628 SEQ_LT(tcph->seq, cep->last_ack_sent + cep->rcv_wnd)) { 1695 1629 /* 1696 * åä¿¡ããã»ã°ã¡ã³ãã® SEQ ããæå¾ã«éä¿¡ããACK (last_ack_sent)1697 * ãããåä¿¡ã¦ã¤ã³ãã¦ãµã¤ãºã¾ã§ã®éã®å¦ç1630 * 受信したセグメントの SEQ が、最後に送信した ACK (last_ack_sent) 1631 * から、受信ウインドウサイズまでの間の処理 1698 1632 */ 1699 1633 switch (cep->fsm_state) { 1700 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿*/1701 1702 cep->net_error = EV_CNNRF; /* æ¥ç¶ä¸è½*/1634 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 1635 1636 cep->net_error = EV_CNNRF; /* 接続不能 */ 1703 1637 cep->error = E_CLS; 1704 1638 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1); … … 1707 1641 break; 1708 1642 1709 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº */ 1710 case TCP_FSM_CLOSE_WAIT: /* FIN åä¿¡ãã¯ãã¼ãºå¾ 1711 ã¡ */ 1643 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 1644 case TCP_FSM_CLOSE_WAIT: /* FIN 受信、クローズ待ち */ 1712 1645 NET_COUNT_MIB(tcp_stats.tcpEstabResets, 1); 1713 1646 /* fallthrough */ 1714 1647 1715 case TCP_FSM_FIN_WAIT_1: /* çµäºãã¦ãFIN éä¿¡æ¸ã¿ */ 1716 case TCP_FSM_FIN_WAIT_2: /* çµäºãFIN ä¼é確èªåä¿¡ãFINå¾ 1717 ã¡ */ 1718 1719 cep->net_error = EV_CNRST; /* æ¥ç¶ãªã»ãã */ 1648 case TCP_FSM_FIN_WAIT_1: /* 終了して、FIN 送信済み */ 1649 case TCP_FSM_FIN_WAIT_2: /* 終了、FIN 伝達確認受信、FIN待ち */ 1650 1651 cep->net_error = EV_CNRST; /* 接続リセット */ 1720 1652 cep->error = E_CLS; 1721 1653 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1); 1722 1654 /* no break; */ 1723 1655 1724 case TCP_FSM_CLOSING: /* çµäºãFIN 交ææ¸ã¿ãACK å¾ 1725 ã¡ */ 1726 case TCP_FSM_LAST_ACK: /* FIN åä¿¡ãçµäºãACK å¾ 1727 ã¡ */ 1656 case TCP_FSM_CLOSING: /* 終了、FIN 交換済み、ACK 待ち */ 1657 case TCP_FSM_LAST_ACK: /* FIN 受信、終了、ACK 待ち */ 1728 1658 1729 1659 cep = tcp_close(cep); … … 1735 1665 1736 1666 /* 1737 * CEP ã®ç¶æ 1738 ã SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿ã®å ´åã¯ã 1739 * åä¿¡ã¦ã£ã³ãã«åã¾ãããã«ãã¼ã¿ã 1740 * 調æ´ããåã«ããã®æ¥ç¶ã«ãããã±ãããã©ãããæ¤è¨¼ããã 1667 * CEP の状態が SYN を受信し、SYN 送信済みの場合は、 1668 * 受信ウィンドに収まるようにデータを 1669 * 調整する前に、この接続によるパケットかどうかを検証する。 1741 1670 * 1742 * åä¿¡ããç¸æã® SEQ < ç¸æã® SEQ ã®åæå¤(irs)1671 * 受信した相手の SEQ < 相手の SEQ の初期値 (irs) 1743 1672 * 1744 * ããã¯ã"LAND" DoS æ»æã®é²å¾¡ã§ããã1673 * これは、"LAND" DoS 攻撃の防御である。 1745 1674 */ 1746 1675 if (cep->fsm_state == TCP_FSM_SYN_RECVD && SEQ_LT(tcph->seq, cep->irs)) { … … 1749 1678 1750 1679 /* 1751 * åä¿¡ãæå¾ 1752 ãã¦ããæå°ã® SEQ (rcv_nxt) - åä¿¡ããç¸æã® SEQ ã 1753 * æ£ãªããrcv_nxt 以åã®ãã¼ã¿ã¯ãã§ã«åä¿¡ãã¦ããã®ã§ããã®é¨åã 1754 * åé¤ããã 1680 * 受信を期待している最小の SEQ (rcv_nxt) - 受信した相手の SEQ が 1681 * 正なら、rcv_nxt 以前のデータはすでに受信しているので、その部分を 1682 * 削除する。 1755 1683 * <---------- rcv_wnd ---------> 1756 1684 * rcv_nxt rcv_nxt + rcv_wnd … … 1764 1692 * ^ ^ 1765 1693 * seq seq + len 1766 * <---------------> åé¤ããã1694 * <---------------> 削除する。 1767 1695 */ 1768 1696 todrop = cep->rcv_nxt - tcph->seq; … … 1770 1698 1771 1699 /* 1772 * SYN ãã©ã°ãã¤ãã¦ããã¨ãã¯ããã®å (1 ãªã¯ããã)1773 * SEQ ãé²ããç·æ¥ãã¤ã³ã¿ã¨åé¤ããé·ãã調æ´ããã1700 * SYN フラグがついているときは、その分 (1 オクテット) 1701 * SEQ を進め、緊急ポインタと削除する長さを調整する。 1774 1702 */ 1775 1703 if (tcph->flags & TCP_FLG_SYN) { … … 1784 1712 1785 1713 /* 1786 * åé¤ããé·ãã SDU ããé·ããã¤ã¾ããåä¿¡ãæå¾ 1787 ãã¦ãã 1788 * æå°ã® SEQ (rcv_nxt) ã«éãã¦ããªããã 1789 * åé¤ããé·ãã SDU ã¨åãã§ãFIN ãã©ã°ãã¤ãã¦ãªããã° 1790 * å 1791 ¨ã¦åé¤ããã 1714 * 削除する長さが SDU より長い、つまり、受信を期待している 1715 * 最小の SEQ (rcv_nxt) に達していないか、 1716 * 削除する長さが SDU と同じで、FIN フラグがついてなければ 1717 * 全て削除する。 1792 1718 */ 1793 if ( todrop > tcph->sum || /* tcph->sum 㯠TCP ã® SDU é·*/1719 if ( todrop > tcph->sum || /* tcph->sum は TCP の SDU 長 */ 1794 1720 (todrop == tcph->sum && (tcph->flags & TCP_FLG_FIN) == 0)) { 1795 1721 tcph->flags &= ~TCP_FLG_FIN; 1796 1722 cep->flags |= TCP_CEP_FLG_ACK_NOW; 1797 todrop = tcph->sum; /* tcph->sum 㯠TCP ã® SDU é·*/1723 todrop = tcph->sum; /* tcph->sum は TCP の SDU 長 */ 1798 1724 } 1799 1725 1800 1726 /* 1801 * SDU ãåã«è©°ããã1727 * SDU を前に詰める。 1802 1728 */ 1803 if (todrop < tcph->sum) { /* tcph->sum 㯠TCP ã® SDU é·*/1729 if (todrop < tcph->sum) { /* tcph->sum は TCP の SDU 長 */ 1804 1730 memcpy(GET_TCP_SDU(input, *offp), 1805 1731 GET_TCP_SDU(input, *offp) + todrop, (size_t)(tcph->sum - todrop)); … … 1807 1733 1808 1734 /* 1809 * SEQ 㨠SDU é·ã調æ´ããã1735 * SEQ と SDU 長を調整する。 1810 1736 */ 1811 1737 tcph->seq += todrop; 1812 tcph->sum -= (uint16_t)todrop; /* tcph->sum 㯠TCP ã® SDU é·*/1738 tcph->sum -= (uint16_t)todrop; /* tcph->sum は TCP の SDU 長 */ 1813 1739 1814 1740 /* 1815 * ç·æ¥ãã¤ã³ã¿ã調æ´ããã1741 * 緊急ポインタを調整する。 1816 1742 */ 1817 1743 if (tcph->urp > todrop) … … 1826 1752 1827 1753 /* 1828 * ããã¦ã¼ã¶ã¿ã¹ã¯ãçµäºããå¾ã«ããã¼ã¿ãåä¿¡ãã1829 * å ´åã¯ãRST ãéãã1830 */ 1831 if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) { /* tcph->sum 㯠TCP ã® SDU é·*/1754 * もしユーザタスクが終了した後に、データを受信した 1755 * 場合は、RST を送る。 1756 */ 1757 if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) { /* tcph->sum は TCP の SDU 長 */ 1832 1758 cep = tcp_close(cep); 1833 1759 goto reset_drop; … … 1835 1761 1836 1762 /* 1837 * åä¿¡ã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããè¶ 1838 ããå ´åã¯ã 1839 * è¶ 1840 ããåãåãã 1763 * 受信セグメントが受信ウィンドを超える場合は、 1764 * 超えた分を削る。 1841 1765 * 1842 1766 * <---------- rcv_wnd ---------> … … 1851 1775 * ^ ^ 1852 1776 * seq seq + len 1853 * <-----> åé¤ããã1854 */ 1855 todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd); /* tcph->sum 㯠TCP ã® SDU é·*/1777 * <-----> 削除する。 1778 */ 1779 todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd); /* tcph->sum は TCP の SDU 長 */ 1856 1780 if (todrop > 0) { 1857 if (todrop > tcph->sum) { /* tcph->sum 㯠TCP ã® SDU é·*/1781 if (todrop > tcph->sum) { /* tcph->sum は TCP の SDU 長 */ 1858 1782 /* 1859 * åä¿¡ãã SDU ã®å 1860 ¨ã¦ãåä¿¡ã¦ã£ã³ããè¶ 1861 ããå ´åã 1783 * 受信した SDU の全てが受信ウィンドを超える場合。 1862 1784 * 1863 * TIME_WAIT ä¸ã«ãæ°ããªæ¥ç¶è¦æ±ãåä¿¡ããã1864 * å¤ãæ¥ç¶ãç ´æ£ããæ°ããªæ¥ç¶ãéå§ããã1865 * ãã ããSEQ ã¯åããé²ãã§ããªããã°ãªããªãã1785 * TIME_WAIT 中に、新たな接続要求を受信したら 1786 * 古い接続を破棄し、新たな接続を開始する。 1787 * ただし、SEQ は前より進んでいなければならない。 1866 1788 */ 1867 1789 if ((tcph->flags & TCP_FLG_SYN) && … … 1875 1797 1876 1798 /* 1877 * åä¿¡ã¦ã£ã³ãã 0 ã§ãåä¿¡ãã SEQ 㨠1878 * åä¿¡ãæå¾ 1879 ãã¦ããæå°ã® SEQ ãä¸è´ããã¨ã㯠1880 * ACK ãè¿ãããã以å¤ã¯ãã¼ã¿ãç ´æ£ããACK ãè¿ãã 1799 * 受信ウィンドが 0 で、受信した SEQ と 1800 * 受信を期待している最小の SEQ が一致したときは 1801 * ACK を返す。それ以外はデータを破棄し、ACK を返す。 1881 1802 */ 1882 1803 if (cep->rcv_wnd == 0 && (tcph->seq == cep->rcv_nxt || tcph->sum == 0)) { … … 1889 1810 } 1890 1811 } 1891 tcph->sum -= (uint16_t)todrop; /* tcph->sum 㯠TCP ã® SDU é·*/1812 tcph->sum -= (uint16_t)todrop; /* tcph->sum は TCP の SDU 長 */ 1892 1813 tcph->flags &= ~(TCP_FLG_PUSH | TCP_FLG_FIN); 1893 1814 } 1894 1815 1895 1816 /* 1896 * ãããSYN ãã»ããããã¦ããã°ã1897 * ã¨ã©ã¼ãªã®ã§ RST ãéããæ¥ç¶ãç ´æ£ããã1817 * もし、SYN がセットされていれば、 1818 * エラーなので RST を送り、接続を破棄する。 1898 1819 */ 1899 1820 if (tcph->flags & TCP_FLG_SYN) { … … 1904 1825 1905 1826 /* 1906 * ãããACK ãã»ããããã¦ããªãå ´åã¯ã 1907 * ç¶æ 1908 ã SYN åä¿¡æ¸ã¿ã 1909 * SYN ãéä¿¡ãããã¨ãã¦ããã°ãå¦çãç¶ãããã 1910 * ãã以å¤ã¯ã»ã°ã¡ã³ããç ´æ£ãã¦çµäºããã 1827 * もし、ACK がセットされていない場合は、 1828 * 状態が SYN 受信済みか 1829 * SYN を送信しようとしていれば、処理を続けるが、 1830 * それ以外はセグメントを破棄して終了する。 1911 1831 */ 1912 1832 if ((tcph->flags & TCP_FLG_ACK) == 0) { … … 1916 1836 else { 1917 1837 /* 1918 * ACK ã®å¦ç1838 * ACK の処理 1919 1839 */ 1920 1840 ret = proc_ack1(input, cep, *offp, &needoutput); … … 1930 1850 /* step 6 */ 1931 1851 1932 /* éä¿¡ã¦ã£ã³ããæ´æ°ããã*/1852 /* 送信ウィンドを更新する。*/ 1933 1853 if (update_wnd(tcph, cep) == true) 1934 1854 needoutput = true; 1935 1855 1936 /* ç·æ¥ãã¼ã¿ãå¦çããã*/1856 /* 緊急データを処理する。*/ 1937 1857 proc_urg(tcph, cep); 1938 1858 … … 1940 1860 1941 1861 /* 1942 * SDU ãããããFIN ãæªåä¿¡ã®ç¶æ 1943 ã§ãæåã« FIN ãåä¿¡ããã¨ãã 1944 * åä¿¡ã»ã°ã¡ã³ããã¥ã¼ã« net_buf ã追å ããã 1945 * ãã以å¤ã®å ´åã¯ãã»ã°ã¡ã³ããç ´æ£ããã 1862 * SDU があるか、FIN を未受信の状態で、最初に FIN を受信したとき、 1863 * 受信セグメントキューに net_buf を追加する。 1864 * それ以外の場合は、セグメントを破棄する。 1946 1865 */ 1947 1866 flags = tcph->flags; 1948 if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) && /* tcph->sum 㯠TCP ã® SDU é·*/1867 if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) && /* tcph->sum は TCP の SDU 長 */ 1949 1868 TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) { 1950 1869 flags = reassemble(input, cep, *offp, flags); … … 1956 1875 1957 1876 /* 1958 * FIN ãåä¿¡ãããã³ãã¯ã·ã§ã³ãã¯ãã¼ãºããã1877 * FIN を受信したらコネクションをクローズする。 1959 1878 */ 1960 1879 if (flags & TCP_FLG_FIN) 1961 1880 close_connection(cep, &needoutput); 1962 1881 1963 /* åºåãè¡ã£ãå¾çµäºããã*/1882 /* 出力を行った後終了する。*/ 1964 1883 if (needoutput == true || (cep->flags & TCP_CEP_FLG_ACK_NOW)) { 1965 /* éä¿¡ãæ示ããã*/1884 /* 送信を指示する。*/ 1966 1885 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1967 1886 sig_sem(SEM_TCP_POST_OUTPUT); … … 1972 1891 reset_drop: 1973 1892 /* 1974 * RST éä¿¡å¦ç1893 * RST 送信処理 1975 1894 */ 1976 1895 … … 1978 1897 goto drop; 1979 1898 1980 /* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/1899 /* ホストオーダーからネットワークオーダーに戻す。*/ 1981 1900 1982 1901 HTONS(tcph->sport); … … 1993 1912 else { 1994 1913 if (tcph->flags & TCP_FLG_SYN) 1995 tcph->sum ++; /* tcph->sum 㯠SDU é·*/1914 tcph->sum ++; /* tcph->sum は SDU 長 */ 1996 1915 tcp_respond(input, cep, tcph->seq + tcph->sum, 0, rbfree, TCP_FLG_RST | TCP_FLG_ACK); 1997 1916 } 1998 1917 1999 /* input 㯠tcp_respoond ã§è¿å´ãããã*/1918 /* input は tcp_respoond で返却される。*/ 2000 1919 NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_RSTS], 1); 2001 1920 NET_COUNT_MIB(tcp_stats.tcpOutRsts, 1); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 127 115 128 116 /* 129 * é¢æ°117 * 関数 130 118 */ 131 119 … … 134 122 135 123 /* 136 * å¤æ°124 * 変数 137 125 */ 138 126 139 /* åºåæã®ãã©ã°ã FSM ç¶æ 140 ã«ããé¸æããããã®è¡¨ */ 127 /* 出力時のフラグを FSM 状態により選択するための表 */ 141 128 142 129 const static uint8_t tcp_outflags[] = { 143 TCP_FLG_RST | TCP_FLG_ACK, /* 0, ã¯ãã¼ãº */ 144 0, /* 1, ååãªã¼ãã³ */ 145 TCP_FLG_SYN, /* 2, è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿ */ 146 TCP_FLG_SYN | TCP_FLG_ACK, /* 3, SYM ãåä¿¡ããSYN éä¿¡æ¸ã¿ */ 147 TCP_FLG_ACK, /* 4, ã³ãã¯ã·ã§ã³éè¨å®äº */ 148 TCP_FLG_ACK, /* 5, FIN åä¿¡ãã¯ãã¼ãºå¾ 149 ã¡ */ 150 TCP_FLG_FIN | TCP_FLG_ACK, /* 6, çµäºãã¦ãFIN éä¿¡æ¸ã¿ */ 151 TCP_FLG_FIN | TCP_FLG_ACK, /* 7, çµäºãFIN 交ææ¸ã¿ãACK å¾ 152 ã¡ */ 153 TCP_FLG_FIN | TCP_FLG_ACK, /* 8, FIN åä¿¡ãçµäºãACK å¾ 154 ã¡ */ 155 TCP_FLG_ACK, /* 9, çµäºãFIN ä¼é確èªåä¿¡ãFINå¾ 156 ã¡ */ 157 TCP_FLG_ACK, /* 10, çµäºãæéå¾ 158 ã¡ */ 130 TCP_FLG_RST | TCP_FLG_ACK, /* 0, クローズ */ 131 0, /* 1, 受動オープン */ 132 TCP_FLG_SYN, /* 2, 能動オープン、SYN 送信済み */ 133 TCP_FLG_SYN | TCP_FLG_ACK, /* 3, SYM を受信し、SYN 送信済み */ 134 TCP_FLG_ACK, /* 4, コネクション開設完了 */ 135 TCP_FLG_ACK, /* 5, FIN 受信、クローズ待ち */ 136 TCP_FLG_FIN | TCP_FLG_ACK, /* 6, 終了して、FIN 送信済み */ 137 TCP_FLG_FIN | TCP_FLG_ACK, /* 7, 終了、FIN 交換済み、ACK 待ち */ 138 TCP_FLG_FIN | TCP_FLG_ACK, /* 8, FIN 受信、終了、ACK 待ち */ 139 TCP_FLG_ACK, /* 9, 終了、FIN 伝達確認受信、FIN待ち */ 140 TCP_FLG_ACK, /* 10, 終了、時間待ち */ 159 141 }; 160 142 161 143 /* 162 * send_segment -- TCP åºåå¦ç144 * send_segment -- TCP 出力処理 163 145 */ 164 146 … … 190 172 191 173 /* 192 * ã»ã°ã¡ã³ãé·ããç¸æã®æ大åä¿¡ã»ã°ã¡ã³ãé·ã«èª¿æ´ããã 193 * ãããè¶ 194 ãã¦ããå ´åã¯ãè¶ 195 ããåãå¾ã§éä¿¡ããã 196 * ãã®ãããFIN ããããã¯ãªã¢ããã 174 * セグメント長を、相手の最大受信セグメント長に調整する。 175 * もし、超えている場合は、超えた分を後で送信する。 176 * このため、FIN ビットをクリアする。 197 177 * 198 * ãªãªã¸ãã«ã§ã¯ãt_maxopd ãå¶éé·ã«ãã¦ãããã 199 * æ¬å®è£ 200 ã§ã¯ãç¸æã®æ大åä¿¡ã»ã°ã¡ã³ãã«ããã 178 * オリジナルでは、t_maxopd を制限長にしているが、 179 * 本実装では、相手の最大受信セグメントにする。 201 180 */ 202 181 if (len + optlen > cep->maxseg) { … … 207 186 208 187 /* 209 * éä¿¡ãããã¡ã空ã«ãªãã¨ã㯠PUSH ãã©ã°ãè¨å®ããã188 * 送信バッファが空になるときは PUSH フラグを設定する。 210 189 */ 211 190 if (len && doff + len >= cep->swbuf_count) … … 218 197 219 198 /* 220 * éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã221 * ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã199 * 送信ウインドバッファが開放されないようにして、 200 * ネットワークバッファを出力に移す。 222 201 */ 223 202 cep->swbufq->flags |= NB_FLG_NOREL_IFOUT; … … 227 206 228 207 /* 229 * ACK å®äºç¶æ 230 ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã 231 * ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã 208 * ACK 完了状態で、この関数が呼び出されることもある。 209 * この時は、len を 0 にして、処理を継続する。 232 210 */ 233 211 len = 0; … … 256 234 257 235 /* 258 * éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã259 * ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã236 * 送信ウインドバッファが開放されないようにして、 237 * ネットワークバッファを出力に移す。 260 238 */ 261 239 cep->swbufq->flags |= NB_FLG_NOREL_IFOUT; … … 265 243 266 244 /* 267 * ACK å®äºç¶æ 268 ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã 269 * ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã 245 * ACK 完了状態で、この関数が呼び出されることもある。 246 * この時は、len を 0 にして、処理を継続する。 270 247 */ 271 248 len = 0; … … 292 269 293 270 /* 294 * TCP ãªãã·ã§ã³ã®è¨å®ãè¡ãã 295 * æ¬å®è£ 296 ã§ã¯ãæ大ã»ã°ã¡ã³ããµã¤ãºã®ã¿è¨å®ããã 271 * TCP オプションの設定を行う。 272 * 本実装では、最大セグメントサイズのみ設定する。 297 273 */ 298 274 if (flags & TCP_FLG_SYN) { … … 310 286 } 311 287 312 /* TCP SDU ã«éä¿¡ãã¼ã¿ãã³ãã¼ããã*/288 /* TCP SDU に送信データをコピーする。*/ 313 289 314 290 if (len > 0) { … … 336 312 337 313 /* 338 * snd_max: éä¿¡ããæ大SEQ339 * snd_nxt: 次ã«éä¿¡ããSEQ314 * snd_max: 送信した最大 SEQ 315 * snd_nxt: 次に送信する SEQ 340 316 * 341 * ç¸æãã FIN ãåä¿¡ããã¾ã FIN ãéä¿¡ãã¦ããªããã342 * éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã343 * ã»ã°ã¡ã³ããéä¿¡ããããSEQ ã¯é²ããªãã317 * 相手から FIN を受信し、まだ FIN を送信していないか、 318 * 送るデータがないときは、FIN を相手に届けるため、 319 * セグメントを送信するが、SEQ は進めない。 344 320 */ 345 321 if ((flags & TCP_FLG_FIN) && (cep->flags & TCP_CEP_FLG_SENT_FIN) && … … 351 327 352 328 /* 353 * SEQ ãACKããã©ã°ã®è¨å®ã329 * SEQ、ACK、フラグの設定。 354 330 */ 355 331 if (len > 0 || (flags & (TCP_FLG_SYN | TCP_FLG_FIN)) || cep->timer[TCP_TIM_PERSIST] != 0) … … 359 335 360 336 /* 361 * rcv_nxt: åä¿¡ãæå¾ 362 ãã¦ããæå°ã® SEQ 337 * rcv_nxt: 受信を期待している最小の SEQ 363 338 */ 364 339 tcph->ack = htonl(cep->rcv_nxt); … … 366 341 367 342 /* 368 * åä¿¡ã¦ã£ã³ãã®è¨ç®343 * 受信ウィンドの計算 369 344 * 370 * rbufsz: åä¿¡ç¨ãããã¡ãµã¤ãº371 * maxseg: ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº345 * rbufsz: 受信用バッファサイズ 346 * maxseg: 相手の最大受信セグメントサイズ 372 347 */ 373 348 if (win < (cep->rbufsz / 4) && win < cep->maxseg) … … 375 350 376 351 /* 377 * rcv_nxt: åä¿¡ãæå¾ 378 ãã¦ããæå°ã® SEQ 379 * rcv_adv: åä¿¡ãæå¾ 380 ãã¦ããæ大㮠SEQ 352 * rcv_nxt: 受信を期待している最小の SEQ 353 * rcv_adv: 受信を期待している最大の SEQ 381 354 */ 382 355 if ((int32_t)win < (int32_t)(cep->rcv_adv - cep->rcv_nxt)) … … 388 361 389 362 /* 390 * ç·æ¥ãã¤ã³ã¿ã®è¨å®363 * 緊急ポインタの設定 391 364 */ 392 365 if (SEQ_GT(cep->snd_up, cep->snd_nxt)) { … … 403 376 404 377 /* 405 * ãã§ãã¯ãµã ãè¨å®ããã378 * チェックサムを設定する。 406 379 */ 407 380 tcph->sum = 0; … … 409 382 GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len); 410 383 411 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/384 /* ネットワークバッファ長を調整する。*/ 412 385 output->len = (uint16_t)(GET_IF_IP_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len); 413 386 414 387 /* 415 * ã¿ã¤ãã®èª¿æ´388 * タイマの調整 416 389 */ 417 390 if ((cep->flags & TCP_CEP_FLG_FORCE) == 0 || cep->timer[TCP_TIM_PERSIST] == 0) { … … 419 392 420 393 /* 421 * 次ã«éä¿¡ãã SEQ (snd_nxt) ãä»åéä¿¡ãããã¼ã¿æ°åé²ããã394 * 次に送信する SEQ (snd_nxt) を今回送信するデータ数分進める。 422 395 */ 423 396 if (flags & TCP_FLG_SYN) … … 431 404 432 405 /* 433 * 次ã«éä¿¡ãã SEQ (snd_nxt) ã434 * éä¿¡ããæ大 SEQ (snd_max) ããé²ãã§ããã°ã435 * éä¿¡ããæ大 SEQ (snd_max) ãæ´æ°ããã406 * 次に送信する SEQ (snd_nxt) が 407 * 送信した最大 SEQ (snd_max) より進んでいれば、 408 * 送信した最大 SEQ (snd_max) を更新する。 436 409 */ 437 410 if (SEQ_GT(cep->snd_nxt, cep->snd_max)) { 438 411 cep->snd_max = cep->snd_nxt; 439 412 /* 440 * ãããå¾å¾©æéè¨æ¸¬ãè¡ã£ã¦ããªããã°ã441 * ãã®éä¿¡ã«æéãåãããã413 * もし、往復時間計測を行っていなければ、 414 * この送信に時間を合わせる。 442 415 */ 443 416 if (cep->rtt == 0) { 444 417 cep->rtt = 1; 445 cep->rtseq = startseq; /* æ´æ°åã®cep->snd_nxt */446 } 447 } 448 449 /* 450 * ããè¨å®ããã¦ããªãããACK ã¾ãã¯ä¿çãçºçãã¦ããªããã°ã451 * åéã¿ã¤ããè¨å®ãããè¨å®ããåæå¤ã¯ã452 * ãæ»ãããªå¾å¾©æé + 2 à å¾å¾©æéå¤åãã§ããã453 * åéæéã®ããã¯ãªãã«ä½¿ãããã·ããã«ã¦ã³ããåæåããã418 cep->rtseq = startseq; /* 更新前の cep->snd_nxt */ 419 } 420 } 421 422 /* 423 * もし設定されていないか、ACK または保留が発生していなければ、 424 * 再送タイマを設定する。設定する初期値は、 425 * 「滑らかな往復時間 + 2 × 往復時間変動」である。 426 * 再送時間のバックオフに使われるシフトカウントも初期化する。 454 427 */ 455 428 if (cep->timer[TCP_TIM_REXMT] == 0 && cep->snd_nxt != cep->snd_una) { … … 463 436 464 437 /* 465 * 次ã«éä¿¡ãã SEQ (snd_nxt) + ä»åéä¿¡ãããã¼ã¿æ° (len) ã466 * éä¿¡ããæ大 SEQ (snd_max) ããé²ãã§ããã°ã467 * éä¿¡ããæ大 SEQ (snd_max) ãæ´æ°ããã438 * 次に送信する SEQ (snd_nxt) + 今回送信するデータ数 (len) が 439 * 送信した最大 SEQ (snd_max) より進んでいれば、 440 * 送信した最大 SEQ (snd_max) を更新する。 468 441 */ 469 442 else if (SEQ_GT(cep->snd_nxt + len, cep->snd_max)) … … 483 456 #endif /* of #ifdef TCP_CFG_TRACE */ 484 457 485 /* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/458 /* ネットワーク層 (IP) の出力関数を呼び出す。*/ 486 459 if ((error = IP_OUTPUT(output, TMO_TCP_OUTPUT)) != E_OK) 487 460 goto err_ret; 488 461 489 462 /* 490 * ç¸æã«ä¼ããã¦ã£ã³ãã¦ãµã¤ãº (win) ã 0 以ä¸ã§ã 491 * åä¿¡ãæå¾ 492 ãã¦ããæå°ã® SEQ (rcv_nxt) + win ã 493 * åä¿¡ãæå¾ 494 ãã¦ããæ大㮠SEQ (rcv_adv) ããé²ãã§ããã° 495 * åä¿¡ãæå¾ 496 ãã¦ããæ大㮠SEQ ãæ´æ°ããã 463 * 相手に伝えたウィンドウサイズ (win) が 0 以上で、 464 * 受信を期待している最小の SEQ (rcv_nxt) + win が 465 * 受信を期待している最大の SEQ (rcv_adv) より進んでいれば 466 * 受信を期待している最大の SEQ を更新する。 497 467 */ 498 468 if (win > 0 && SEQ_GT(cep->rcv_nxt + win, cep->rcv_adv)) { … … 501 471 502 472 /* 503 * æå¾ã«éä¿¡ãã ACK (last_ack_sent) ãæ´æ°ããã473 * 最後に送信した ACK (last_ack_sent) を更新する。 504 474 */ 505 475 cep->last_ack_sent = cep->rcv_nxt; 506 476 507 477 /* 508 * ãã©ã°ã®è¨å®ãè¡ãã478 * フラグの設定を行う。 509 479 */ 510 480 cep->flags &= ~(TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_DEL_ACK); … … 516 486 err_ret: 517 487 /* 518 * 以ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã519 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½520 * ã»åçãªé信端ç¹ã®çæã»åé¤æ©è½488 * 以下に関係しないフラグをクリアーする。 489 * ・送受信ウィンドバッファの省コピー機能 490 * ・動的な通信端点の生成・削除機能 521 491 */ 522 492 cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | … … 527 497 528 498 /* 529 * tcp_output -- TCP åºåå¦ç499 * tcp_output -- TCP 出力処理 530 500 */ 531 501 … … 540 510 541 511 /* 542 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ ã¾ãã¯ã確èªãããæ大éä¿¡SEQ543 * snd_max: éä¿¡ããæ大SEQ512 * snd_una: 未確認の最小送信 SEQ または、確認された最大送信 SEQ 513 * snd_max: 送信した最大 SEQ 544 514 */ 545 515 idle = (cep->snd_max == cep->snd_una); 546 516 547 517 /* 548 * idle: ã¢ã¤ãã«æé549 * rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã518 * idle: アイドル時間 519 * rxtcur: 現在の再送タイムアウト 550 520 */ 551 521 if (idle && cep->idle >= cep->rxtcur) 552 522 553 523 /* 554 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº555 * maxseg : ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº524 * snd_cwnd: 輻輳ウィンドサイズ 525 * maxseg : 相手の最大受信セグメントサイズ 556 526 * 557 * é·æéã¢ã¤ãã«ã ã£ãã®ã§ã¹ãã¼ã¹ã¿ã¼ãå¶å¾¡ã«è¨å®ããã527 * 長時間アイドルだったのでスロースタート制御に設定する。 558 528 */ 559 529 cep->snd_cwnd = cep->maxseg; … … 563 533 564 534 /* 565 * snd_nxt: 次ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ããSEQ566 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæ大éä¿¡SEQ535 * snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ 536 * snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ 567 537 * 568 * doff: éä¿¡ãéå§ãããªãã»ããã569 * swbuf_count ( éä¿¡ãããã¡ã«ãããªã¯ãããæ°)538 * doff: 送信を開始するオフセット。 539 * swbuf_count (送信バッファにあるオクテット数) 570 540 * 0 V 571 541 * +-------------------------------------------+ … … 573 543 * +-------------------------------------------+ 574 544 * ^ ^ 575 * |<------------->snd_nxt ( ååéä¿¡ããSEQ)545 * |<------------->snd_nxt (前回送信した SEQ) 576 546 * | doff 577 * snd_una ( ã¾ã 確èªããã¦ããªã)547 * snd_una (まだ確認されていない) 578 548 */ 579 549 doff = (uint_t)(cep->snd_nxt - cep->snd_una); 580 550 581 551 /* 582 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº583 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº552 * snd_wnd: 相手の受信可能ウィンドサイズ 553 * snd_cwnd: 輻輳ウィンドサイズ 584 554 * 585 * win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨å®ããã555 * win: どちらか小さいウィンドサイズに設定する。 586 556 */ 587 557 win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd; 588 558 589 /* åºåãã©ã°ã®è¨å®*/559 /* 出力フラグの設定 */ 590 560 flags = tcp_outflags[cep->fsm_state]; 591 561 if (cep->flags & TCP_CEP_FLG_NEED_FIN) … … 596 566 597 567 /* 598 * ãããéä¿¡ã¦ã¤ã³ããµã¤ãº (win) ã 0 ãªã 1 ãªã¯ãããéä¿¡ããã599 * ããã§ãªããã°ãæç¶ã¿ã¤ã ã¢ã¦ãããã£ã³ã»ã«ãã600 * åéä¿¡åæ° (rxtshift) ã 0 ã«ããã568 * もし、送信ウインドサイズ (win) が 0 なら 1 オクテット送信する。 569 * そうでなければ、持続タイムアウトをキャンセルし、 570 * 再送信回数 (rxtshift) を 0 にする。 601 571 */ 602 572 if (win == 0) { 603 573 604 574 /* 605 * doff: éä¿¡ãããªã¯ãããæ°ã606 * swbuf_count: éä¿¡ãããã¡ã®ä½¿ç¨ä¸ãµã¤ãº575 * doff: 送信するオクテット数。 576 * swbuf_count: 送信バッファの使用中サイズ 607 577 * 608 * éä¿¡ãããã¡ã«æ®ã£ã¦ãããªã¯ããããããããã609 * éä¿¡ãããã¨ãã¦ãããªã¯ãããæ°ããå¤ããã°610 * FIN ãã©ã°ãã¯ãªã¢ããã578 * 送信バッファに残っているオクテットが、これから 579 * 送信しようとしているオクテット数より多ければ 580 * FIN フラグをクリアする。 611 581 */ 612 582 if (doff < cep->swbuf_count) … … 616 586 else { 617 587 /* 618 * TCP_TIM_PERSIST: æç¶ã¿ã¤ã619 * rxtshift: åéä¿¡åæ°ã®log(2)588 * TCP_TIM_PERSIST: 持続タイマ 589 * rxtshift: 再送信回数の log(2) 620 590 */ 621 591 cep->timer[TCP_TIM_PERSIST] = 0; … … 625 595 626 596 /* 627 * len: ä»åéä¿¡ãããªã¯ãããæ°628 * swbuf_count ( éä¿¡ãããã¡ã«ãããªã¯ãããæ°)597 * len: 今回送信するオクテット数 598 * swbuf_count (送信バッファにあるオクテット数) 629 599 * | 630 600 * 0 V … … 634 604 * ^ ^<-------------> 635 605 * | | len 636 * |<------------->snd_nxt ( ååéä¿¡ããSEQ)606 * |<------------->snd_nxt (前回送信した SEQ) 637 607 * | doff 638 * snd_una ( ã¾ã 確èªããã¦ããªã)608 * snd_una (まだ確認されていない) 639 609 */ 640 610 if (cep->swbuf_count < win) … … 644 614 645 615 /* 646 * ãã§ã«éä¿¡ããã¦ããã°ãSYN ãããããªãããã647 * ãããã以ä¸ã®æ¡ä»¶ã§ã¯éä¿¡ãæ§ããã616 * すでに送信されていれば、SYN ビットをオフする。 617 * しかし、以下の条件では送信を控える。 648 618 * 649 * ã»ç¶æ 650 ã SYN éä¿¡ã 651 * ã»ã»ã°ã¡ã³ãããã¼ã¿ãå«ãã§ããã 619 * ・状態が SYN 送信。 620 * ・セグメントがデータを含んでいる。 652 621 */ 653 622 if ((flags & TCP_FLG_SYN) && SEQ_GT(cep->snd_nxt, cep->snd_una)) { 654 623 flags &= ~TCP_FLG_SYN; 655 doff --; /* -1 㯠SYN ãã©ã°å*/656 len ++; /* +1 㯠SYN ãã©ã°å*/624 doff --; /* -1 は SYN フラグ分 */ 625 len ++; /* +1 は SYN フラグ分 */ 657 626 if (len > 0 && cep->fsm_state == TCP_FSM_SYN_SENT) 658 627 break; … … 667 636 668 637 /* 669 * len ã 0 以ä¸ãªãã0 ã«è¨å®ããã670 * ãããéä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ãªãã671 * åéä¿¡ã¿ã¤ãããã£ã³ã»ã«ãã672 * ååéä¿¡ãã SEQ (snd_nxt) ã673 * 確èªãããæ大éä¿¡ SEQ (snd_una) ã«æ»ãã674 * ããã¦ãæç¶ã¿ã¤ãã¼ãæ¢ã¾ã£ã¦ããã°ãåè¨å®ããã638 * len が 0 以下なら、0 に設定する。 639 * もし、送信ウィンドウサイズが 0 なら、 640 * 再送信タイマをキャンセルし、 641 * 前回送信した SEQ (snd_nxt) を 642 * 確認された最大送信 SEQ (snd_una) に戻す。 643 * そして、持続タイマーが止まっていれば、再設定する。 675 644 */ 676 645 len = 0; … … 686 655 687 656 /* 688 * ä»åéä¿¡ãããªã¯ãããæ° (len) ã¯ã 689 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶ 690 ããªãããã«ããã 657 * 今回送信するオクテット数 (len) は、 658 * 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。 691 659 */ 692 660 if (len > cep->maxseg) { … … 696 664 697 665 /* 698 * swbuf_count ( éä¿¡ãããã¡ã«ãããªã¯ãããæ°)666 * swbuf_count (送信バッファにあるオクテット数) 699 667 * | 700 668 * 0 V … … 704 672 * ^ ^<-------------> 705 673 * | | len 706 * |<------------->snd_nxt ( ååéä¿¡ããSEQ)674 * |<------------->snd_nxt (前回送信した SEQ) 707 675 * | doff 708 * snd_una ( ã¾ã 確èªããã¦ããªã)676 * snd_una (まだ確認されていない) 709 677 * 710 * ä»åéä¿¡å¾ããéä¿¡ãããã¡ã«ãã¼ã¿ãæ®ã£ã¦ããã°711 * FIN ãã©ã°ãã¯ãªã¢ããã678 * 今回送信後も、送信バッファにデータが残っていれば 679 * FIN フラグをクリアする。 712 680 */ 713 681 if (SEQ_LT(cep->snd_nxt + len, cep->snd_una + cep->swbuf_count)) … … 715 683 716 684 /* 717 * ãããã win ã¯ãåä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã718 * åä¿¡ãããã¡ã®ç©ºã容é685 * ここから win は、受信ウィンドウサイズ。 686 * 受信バッファの空き容量 719 687 */ 720 688 win = cep->rbufsz - cep->rwbuf_count; 721 689 722 690 /* 723 * æããªã¦ã£ã³ãã¦ã»ã·ã³ããã¼ã ã®åé¿å¦ç (éä¿¡å´)691 * 愚かなウィンドウ・シンドロームの回避処理 (送信側) 724 692 * 725 * 以ä¸ã®æ¡ä»¶ã§ãéä¿¡ãè¡ãã693 * 以下の条件で、送信を行う。 726 694 * 727 * ã»ãã«ãµã¤ãº (maxseg) ã®ã»ã°ã¡ã³ããéããã¨ãã§ããã 728 * ã»ç¸æã®æ大ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ã®ãã¼ã¿ã 729 * éããã¨ãã§ããã 730 * ã»éä¿¡ãããã¡ã空ã«ã§ããã¢ã¤ãã«ãéé 731 延ãªãã·ã§ã³ãæå¹ãªã¨ãã 695 * ・フルサイズ (maxseg) のセグメントを送ることができる。 696 * ・相手の最大の受信ウィンドウサイズの 1/2 のデータを 697 * 送ることができる。 698 * ・送信バッファを空にでき、アイドルか非遅延オプションが有効なとき。 732 699 */ 733 700 if (len) { 734 701 735 702 /* 736 * ä»åéä¿¡ãããªã¯ãããæ° (len) ã737 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã«738 * ä¸è´ããã¨ãã¯éä¿¡ããã703 * 今回送信するオクテット数 (len) が 704 * 相手の最大受信セグメントサイズ (maxseg) に 705 * 一致するときは送信する。 739 706 */ 740 707 if (len == cep->maxseg) { … … 744 711 745 712 /* 746 * ä»åã®éä¿¡ã§ãéä¿¡ãããã¡ã空ã«ã§ãã747 * ã¢ã¤ãã«ãé PUSH ãªãã·ã§ã³ãæå¹ãªã¨ãã713 * 今回の送信で、送信バッファを空にでき、 714 * アイドルか非 PUSH オプションが有効なとき。 748 715 */ 749 716 if ((idle || (cep->flags & TCP_CEP_FLG_NO_DELAY)) && … … 755 722 756 723 /* 757 * max_sndwnd: ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãº758 * snd_nxt: 次ã«éä¿¡ããSEQ759 * snd_max: éä¿¡ããæ大SEQ724 * max_sndwnd: 今までの最大送信ウィンドサイズ 725 * snd_nxt: 次に送信する SEQ 726 * snd_max: 送信した最大 SEQ 760 727 * 761 * 次ã®æ¡ä»¶ã§ã¯éä¿¡ãè¡ãã728 * 次の条件では送信を行う。 762 729 * 763 * ã»å¼·å¶éä¿¡ãã©ã°ãã»ããããã¦ããã764 * ã»ãã¼ã¿é·ãç¸æã®æ大ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 以ä¸ã§ã765 * ç¸æã®æ大ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ãã大ããã766 * ã»æ¬¡ã«éä¿¡ãã SEQ ãéä¿¡ããæ大 SEQ ããå°ããã767 * ã¤ã¾ããåéããã¨ãã730 * ・強制送信フラグがセットされている。 731 * ・データ長が相手の最大の受信ウィンドウサイズの 1/2 以上で、 732 * 相手の最大の受信ウィンドウサイズが 0 より大きい。 733 * ・次に送信する SEQ が送信した最大 SEQ より小さい、 734 * つまり、再送するとき。 768 735 */ 769 736 if ((cep->flags & TCP_CEP_FLG_FORCE) || … … 777 744 778 745 /* 779 * æããªã¦ã£ã³ãã¦ã»ã·ã³ããã¼ã ã®åé¿å¦ç (åä¿¡å´)746 * 愚かなウィンドウ・シンドロームの回避処理 (受信側) 780 747 * 781 * ã¦ã£ã³ãã¦ãµã¤ãºããã«ãµã¤ãºã® 2 åã®ã»ã°ã¡ã³ãããããã¯782 * åä¿¡ãããã¡å®¹éã® 1/2 ã®ãããããå°ããã»ãã®783 * ãµã¤ãºã§å¢å ãããå ´åã¯ãã¦ã£ã³ãã¦ãµã¤ãºã®æ´æ°ãè¡ãã748 * ウィンドウサイズがフルサイズの 2 倍のセグメント、あるいは 749 * 受信バッファ容量の 1/2 の、いずれか小さいほうの 750 * サイズで増加される場合は、ウィンドウサイズの更新を行う。 784 751 */ 785 752 if (win > 0) { … … 787 754 788 755 /* 789 * win: åä¿¡ãããã¡ã®ç©ºã容é 790 * MAX_TCP_WIN_SIZE: TCP ãããã® win ãã£ã¼ã«ãã«è¨å®ã§ããæå¤§å¤ 791 * rcv_adv: åä¿¡ãæå¾ 792 ãã¦ããæ大㮠SEQ 793 * rcv_nxt: åä¿¡ãæå¾ 794 ãã¦ããæå°ã® SEQ 756 * win: 受信バッファの空き容量 757 * MAX_TCP_WIN_SIZE: TCP ヘッダの win フィールドに設定できる最大値 758 * rcv_adv: 受信を期待している最大の SEQ 759 * rcv_nxt: 受信を期待している最小の SEQ 795 760 */ 796 761 if (win < MAX_TCP_WIN_SIZE) … … 807 772 808 773 /* 809 * ACK ãéä¿¡ããã774 * ACK を送信する。 810 775 */ 811 776 if (cep->flags & TCP_CEP_FLG_ACK_NOW) { … … 830 795 831 796 /* 832 * snd_nxt: 次ã«éä¿¡ããSEQ833 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæ大éä¿¡SEQ797 * snd_nxt: 次に送信する SEQ 798 * snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ 834 799 * 835 * ç¸æãã FIN ãåä¿¡ããã¾ã FIN ãéä¿¡ãã¦ããªããã836 * éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã837 * ã»ã°ã¡ã³ããéä¿¡ããã800 * 相手から FIN を受信し、まだ FIN を送信していないか、 801 * 送るデータがないときは、FIN を相手に届けるため、 802 * セグメントを送信する。 838 803 */ 839 804 if ((flags & TCP_FLG_FIN) && … … 844 809 845 810 /* 846 * éä¿¡ãã¹ããã¼ã¿ããããåéã¿ã¤ãã¨æç¶ã¿ã¤ããåãã¦ããã¨ãã¯847 * æç¶ã¿ã¤ããè¨å®ããã811 * 送信すべきデータがあり、再送タイマと持続タイマが切れているときは 812 * 持続タイマを設定する。 848 813 */ 849 814 if (cep->swbuf_count && cep->timer[TCP_TIM_REXMT ] == 0 && … … 860 825 861 826 /* 862 * tcptsk_alloc_swbufq -- éä¿¡ã¦ã£ã³ããããã¡å²ãå½ã¦827 * tcptsk_alloc_swbufq -- 送信ウィンドバッファ割り当て 863 828 */ 864 829 … … 870 835 871 836 /* 872 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº873 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº837 * snd_wnd: 相手の受信可能ウィンドサイズ 838 * snd_cwnd: 輻輳ウィンドサイズ 874 839 * 875 * win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨å®ããã840 * win: どちらか小さいウィンドサイズに設定する。 876 841 */ 877 842 win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd; 878 843 879 844 /* 880 * ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾ 881 æ©ããã 845 * 相手の受信ウィンドが閉じている場合は、開くまで待機する。 882 846 */ 883 847 if (win == 0) { … … 888 852 #ifdef TCP_CFG_NON_BLOCKING 889 853 890 /* ãã³ããããã³ã°ã³ã¼ã«*/854 /* ノンブロッキングコール */ 891 855 if (!IS_PTR_DEFINED(cep->callback)) { 892 856 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 893 857 894 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/858 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 895 859 cep->snd_tskid = TA_NULL; 896 860 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 907 871 (GET_TCP_CEPID(cep) & NBA_ID_MASK)), TMO_POL)) != E_OK) { 908 872 909 /* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/873 /* ネットワークバッファを予約する。*/ 910 874 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_PEND; 911 875 } 912 876 else { 913 877 914 /* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/878 /* 送信ウィンドバッファを初期化する。*/ 915 879 tcp_init_swbuf(cep); 916 880 … … 921 885 uint_t len; 922 886 923 /* éä¿¡ã¦ã£ã³ããããã¡ã®æ¸ãè¾¼ã¿ã¢ãã¬ã¹ãè¨å®ããã*/887 /* 送信ウィンドバッファの書き込みアドレスを設定する。*/ 924 888 len = TCP_GET_SWBUF_ADDR(cep, cep->snd_p_buf); 925 889 926 890 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 927 891 928 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/892 /* コールバック関数を呼び出す。*/ 929 893 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len); 930 894 931 895 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 932 896 933 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/897 /* コールバック関数を呼び出す。*/ 934 898 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len); 935 899 … … 937 901 938 902 939 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/903 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 940 904 cep->snd_tskid = TA_NULL; 941 905 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 947 911 uint_t len; 948 912 949 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/913 /* 送信ウィンドバッファにデータを書き込む。*/ 950 914 len = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len); 951 915 952 916 #ifdef TCP_CFG_EXTENTIONS 953 917 954 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/918 /* 送信緊急ポインタを設定する。*/ 955 919 if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB) 956 920 cep->snd_up = cep->snd_una + len; … … 958 922 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 959 923 960 /* ãã©ã°ããéä¿¡å¯è½ã«è¨å®ããå¼·å¶çã«éä¿¡ããã*/924 /* フラグを、送信可能に設定し、強制的に送信する。*/ 961 925 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR | TCP_CEP_FLG_POST_OUTPUT; 962 926 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 963 927 964 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/928 /* コールバック関数を呼び出す。*/ 965 929 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len); 966 930 967 931 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 968 932 969 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/933 /* コールバック関数を呼び出す。*/ 970 934 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len); 971 935 … … 973 937 974 938 975 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/939 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 976 940 cep->snd_tskid = TA_NULL; 977 941 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 985 949 986 950 /* 987 * tcptsk_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡éæ¾951 * tcptsk_free_swbufq -- 送信ウィンドバッファ開放 988 952 */ 989 953 … … 992 956 { 993 957 /* 994 * å信確èªãå®äºãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããã®995 * åºåãå®äºããã¨ãã¯ãéä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã996 */ 997 998 /* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãºããªã»ããããã*/958 * 受信確認が完了し、ネットワークインタフェースからの 959 * 出力も完了したときは、送信ウィンドバッファキューを解放する。 960 */ 961 962 /* 送信ウィンドバッファの使用中サイズをリセットする。*/ 999 963 cep->swbuf_count = 0; 1000 964 1001 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/965 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 1002 966 syscall(rel_net_buf(cep->swbufq)); 1003 967 cep->swbufq = NULL; 1004 968 1005 /* ãã©ã°ã空ãã«è¨å®ããã*/969 /* フラグを空きに設定する。*/ 1006 970 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_FREE; 1007 971 1008 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/972 /* 送信ウィンドバッファに空きができたことを知らせる。*/ 1009 973 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); 1010 974 1011 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾ 1012 ã¡ã®ã¨ãã¯ãTCP åºåã¿ã¹ã¯ãèµ·åããã*/ 975 /* 送信ウィンドバッファの空き待ちのときは、TCP 出力タスクを起動する。*/ 1013 976 if ((cep->flags & TCP_CEP_FLG_WBCS_NBUF_REQ) != 0) { 1014 977 sig_sem(SEM_TCP_POST_OUTPUT); … … 1019 982 1020 983 /* 1021 * TCP åºåã¿ã¹ã¯984 * TCP 出力タスク 1022 985 */ 1023 986 … … 1038 1001 #ifdef SUPPORT_INET6 1039 1002 1040 /* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ãå®è¡ããã*/1003 /* IPv6 のステートレス・アドレス自動設定を実行する。*/ 1041 1004 in6_if_up(IF_GET_IFNET()); 1042 1005 … … 1045 1008 while (true) { 1046 1009 1047 /* åºåããã¹ããããã¾ã§å¾ 1048 ã¤ã*/ 1010 /* 出力がポストされるまで待つ。*/ 1049 1011 syscall(wai_sem(SEM_TCP_POST_OUTPUT)); 1050 1012 … … 1071 1033 1072 1034 /* 1073 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµãã£ã¦ããªãã¨ãã¯ã1074 * éä¿¡ãäºç´ããã1035 * ネットワークインタフェースから送信が終わっていないときは、 1036 * 送信を予約する。 1075 1037 */ 1076 1038 if (cep->flags & TCP_CEP_FLG_POST_OUTPUT && … … 1087 1049 1088 1050 /* 1089 * éä¿¡äºç´ä¸ã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµäºãããã 1090 * éä¿¡ãéå§ããããã ããå®å 1091 ¨ã«éä¿¡ãçµäºããã¨ãã¯ä½ãããªãã 1051 * 送信予約中に、ネットワークインタフェースから送信が終了したら、 1052 * 送信を開始する。ただし、完全に送信が終了したときは何もしない。 1092 1053 */ 1093 1054 if (cep->flags & TCP_CEP_FLG_RESERVE_OUTPUT) { … … 1112 1073 1113 1074 /* 1114 * tcp_con_cep ã®ãã³ããããã³ã°ã³ã¼ã«ã§ã1115 * æªå²å½ã®ã®å ´åã¯ããã¼ãçªå·ãå²ãå½ã¦ãã1116 * p_myaddr ã NADR (-1) ãã1117 * èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã1075 * tcp_con_cep のノンブロッキングコールで、 1076 * 未割当のの場合は、ポート番号を割り当てる。 1077 * p_myaddr が NADR (-1) か、 1078 * 自ポート番号が TCP_PORTANY なら、自動で割り当てる。 1118 1079 */ 1119 1080 if (cep->p_myaddr == NADR || cep->p_myaddr->portno == TCP_PORTANY) … … 1136 1097 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 1137 1098 1138 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/1099 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 1139 1100 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; 1140 1101 cep->snd_tskid = TA_NULL; … … 1148 1109 1149 1110 if (cep->flags & TCP_CEP_FLG_CLOSE_AFTER_OUTPUT) { 1150 /* ã³ãã¯ã·ã§ã³ãéããã*/1111 /* コネクションを閉じる。*/ 1151 1112 tcp_close(cep); 1152 1113 cep->flags &= ~TCP_CEP_FLG_CLOSE_AFTER_OUTPUT; … … 1154 1115 1155 1116 if (cep->flags & TCP_CEP_FLG_RESTORE_NEXT_OUTPUT) { 1156 /* snd_nxt ãå 1157 ã«æ»ãã*/ 1117 /* snd_nxt を元に戻す。*/ 1158 1118 if (SEQ_GT(cep->snd_old_nxt, cep->snd_nxt)) 1159 1119 cep->snd_nxt = cep->snd_old_nxt; … … 1168 1128 } while (ix != last_ix); 1169 1129 1170 /* 次åã¯ãå¦çããé信端ç¹ãå¾åãã«ããã*/1130 /* 次回は、処理した通信端点を後回しにする。*/ 1171 1131 last_ix = sel_ix; 1172 1132 } -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_seq.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * SEQ 㨠ACK çªå·ã¯ã32 ããã符å·ä»æ´æ°ã§æ¯è¼ããã74 * SEQ と ACK 番号は、32 ビット符号付整数で比較する。 87 75 */ 88 76 … … 93 81 94 82 /* 95 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã83 * 関数シミュレーションマクロ 96 84 */ 97 85 … … 99 87 100 88 /* 101 * å 102 ¨åå¤æ° 89 * 全域変数 103 90 */ 104 91 105 extern T_TCP_SEQ tcp_iss; /* TCP ã® SEQ ã®åæå¤*/92 extern T_TCP_SEQ tcp_iss; /* TCP の SEQ の初期値 */ 106 93 107 94 /* 108 * ã¤ã³ã©ã¤ã³é¢æ°95 * インライン関数 109 96 */ 110 97 111 98 /* 112 * init_receive_seq -- åä¿¡ SEQ çªå·ãåæåããã99 * init_receive_seq -- 受信 SEQ 番号を初期化する。 113 100 */ 114 101 … … 120 107 121 108 /* 122 * init_send_seq -- éä¿¡ SEQ çªå·ãåæåããã109 * init_send_seq -- 送信 SEQ 番号を初期化する。 123 110 */ 124 111 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 135 123 136 124 /* 137 * å 138 ¨åå¤æ° 139 */ 140 141 /* 142 * TCP ã® SEQ ã®åæå¤ãããã°ã©ã ãèµ·åãã¦ãæåã« TCP ã»ã°ã¡ã³ãã 143 * éåä¿¡ããã¨ãã«ãget_tim() ã«ããåæåããã 125 * 全域変数 126 */ 127 128 /* 129 * TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを 130 * 送受信するときに、get_tim() により初期化する。 144 131 */ 145 132 T_TCP_SEQ tcp_iss = 0; … … 148 135 149 136 /* 150 * SNMP 㮠管çæ 151 å ±ãã¼ã¹ (MIB) 137 * SNMP の 管理情報ベース (MIB) 152 138 */ 153 139 … … 157 143 158 144 /* 159 * å±æå¤æ°160 */ 161 162 static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO; /* èªåå²ãå½ã¦çªå·*/163 164 /* 165 * tcp_free_reassq -- åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã145 * 局所変数 146 */ 147 148 static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO; /* 自動割り当て番号 */ 149 150 /* 151 * tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。 166 152 * 167 * 注æ: 168 * å¿ 169 è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãé信端ç¹ãããã¯ãã 170 * æ»ã£ãå¾ã解é¤ããå¿ 171 è¦ãããã 153 * 注意: 154 * 必要であれば、この関数を呼び出す前に、通信端点をロックし、 155 * 戻った後、解除する必要がある。 172 156 */ 173 157 … … 186 170 187 171 /* 188 * tcp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨å®ããã172 * tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。 189 173 */ 190 174 … … 245 229 246 230 /* 247 * tcp_alloc_port -- æå®ããããã¼ãçªå·ãè¨å®ããã231 * tcp_alloc_port -- 指定されたポート番号を設定する。 248 232 */ 249 233 … … 265 249 266 250 /* 267 * tcp_init -- TCP ã¢ã¸ã¥ã¼ã«ã®åæå251 * tcp_init -- TCP モジュールの初期化 268 252 */ 269 253 … … 281 265 282 266 /* 283 * tcp_init_iss ã·ã¼ã±ã³ã¹çªå·ãåæåããã267 * tcp_init_iss シーケンス番号を初期化する。 284 268 */ 285 269 … … 311 295 312 296 /* 313 * tcp_close -- ã³ãã¯ã·ã§ã³ãéæ¾ããã297 * tcp_close -- コネクションを開放する。 314 298 */ 315 299 … … 317 301 tcp_close (T_TCP_CEP *cep) 318 302 { 319 /* ã¿ã¤ãã¼ãåæ¢ããã*/303 /* タイマーを停止する。*/ 320 304 tcp_cancel_timers(cep); 321 305 322 306 /* 323 * é信端ç¹ãããã¯ãã324 * åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã307 * 通信端点をロックし、 308 * 受信再構成キューのネットワークバッファを解放する。 325 309 */ 326 310 syscall(wai_sem(cep->semid_lock)); … … 328 312 syscall(sig_sem(cep->semid_lock)); 329 313 330 /* ç¶æ 331 ãæªä½¿ç¨ã«ããã*/ 314 /* 状態を未使用にする。*/ 332 315 cep->fsm_state = TCP_FSM_CLOSED; 333 316 334 317 /* 335 * 以ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã336 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½337 * ã»åçãªé信端ç¹ã®çæã»åé¤æ©è½318 * 以下に関係しないフラグをクリアーする。 319 * ・送受信ウィンドバッファの省コピー機能 320 * ・動的な通信端点の生成・削除機能 338 321 */ 339 322 cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | … … 343 326 344 327 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF || cep->rcv_nblk_tfn != TFN_TCP_UNDEF) { 345 /* ãã³ããããã³ã°ã³ã¼ã«*/328 /* ノンブロッキングコール */ 346 329 347 330 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 … … 356 339 357 340 case TFN_TCP_ACP_CEP: 358 /* TCP é信端ç¹ããTCP åä»å£ã解æ¾ããã*/341 /* TCP 通信端点からTCP 受付口を解放する。*/ 359 342 cep->rep = NULL; 360 343 (*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)E_CLS); … … 363 346 case TFN_TCP_RCV_BUF: 364 347 365 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/348 /* 受信ウィンドバッファの空アドレスを獲得する。*/ 366 349 len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf); 367 350 368 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/351 /* 異常切断等のエラーを設定する。*/ 369 352 if (cep->error == E_TMOUT) 370 353 len = E_CLS; … … 377 360 case TFN_TCP_RCV_DAT: 378 361 379 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/362 /* 受信ウィンドバッファからデータを取り出す。*/ 380 363 len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len); 381 364 382 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/365 /* 異常切断等のエラーを設定する。*/ 383 366 if (cep->error == E_TMOUT) 384 367 len = E_CLS; … … 402 385 } 403 386 404 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/387 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 405 388 cep->rcv_tskid = TA_NULL; 406 389 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 412 395 413 396 case TFN_TCP_CON_CEP: 414 /* TCP é信端ç¹ãã TCP åä»å£ã解æ¾ããã*/397 /* TCP 通信端点から TCP 受付口を解放する。*/ 415 398 cep->rep = NULL; 416 399 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)E_CLS); … … 430 413 } 431 414 432 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/415 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 433 416 cep->snd_tskid = TA_NULL; 434 417 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 448 431 449 432 case TFN_TCP_ACP_CEP: 450 /* TCP é信端ç¹ããTCP åä»å£ã解æ¾ããã*/433 /* TCP 通信端点からTCP 受付口を解放する。*/ 451 434 cep->rep = NULL; 452 435 len = E_CLS; … … 456 439 case TFN_TCP_RCV_BUF: 457 440 458 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/441 /* 受信ウィンドバッファの空アドレスを獲得する。*/ 459 442 len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf); 460 443 461 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/444 /* 異常切断等のエラーを設定する。*/ 462 445 if (cep->error == E_TMOUT) 463 446 len = E_CLS; … … 470 453 case TFN_TCP_RCV_DAT: 471 454 472 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/455 /* 受信ウィンドバッファからデータを取り出す。*/ 473 456 len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len); 474 457 475 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/458 /* 異常切断等のエラーを設定する。*/ 476 459 if (cep->error == E_TMOUT) 477 460 len = E_CLS; … … 495 478 } 496 479 497 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/480 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 498 481 cep->rcv_tskid = TA_NULL; 499 482 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 506 489 507 490 case TFN_TCP_CON_CEP: 508 /* TCP é信端ç¹ãã TCP åä»å£ã解æ¾ããã*/491 /* TCP 通信端点から TCP 受付口を解放する。*/ 509 492 cep->rep = NULL; 510 493 len = E_CLS; … … 526 509 } 527 510 528 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/511 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 529 512 cep->snd_tskid = TA_NULL; 530 513 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 536 519 537 520 /* 538 * é信端ç¹ãããã¯ãã539 * éåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã521 * 通信端点をロックし、 522 * 送受信ウィンドバッファキューのネットワークバッファを解放する。 540 523 */ 541 524 syscall(wai_sem(cep->semid_lock)); … … 544 527 syscall(sig_sem(cep->semid_lock)); 545 528 546 /* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/529 /* 未使用になったことを知らせる。*/ 547 530 syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED)); 548 531 } 549 else { /* éãã³ããããã³ã°ã³ã¼ã«*/532 else { /* 非ノンブロッキングコール */ 550 533 551 534 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 552 535 553 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/536 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 554 537 cep->snd_tskid = cep->rcv_tskid = TA_NULL; 555 538 cep->snd_tfn = cep->rcv_tfn = TFN_TCP_UNDEF; 556 539 557 540 /* 558 * é信端ç¹ãããã¯ãã559 * éåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã541 * 通信端点をロックし、 542 * 送受信ウィンドバッファキューのネットワークバッファを解放する。 560 543 */ 561 544 syscall(wai_sem(cep->semid_lock)); … … 564 547 syscall(sig_sem(cep->semid_lock)); 565 548 566 /* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/549 /* 未使用になったことを知らせる。*/ 567 550 syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED)); 568 551 569 552 /* 570 * å 571 ¥åºåã¿ã¹ã¯ãèµ·åºãã¦ã 572 * éåä¿¡ä¸å¯ã«ãªã£ããã¨ãç¥ãããã 553 * 入出力タスクを起床して、 554 * 送受信不可になったことを知らせる。 573 555 */ 574 556 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); … … 585 567 586 568 /* 587 * tcp_drop -- TCP æ¥ç¶ãç ´æ£ããã569 * tcp_drop -- TCP 接続を破棄する。 588 570 */ 589 571 … … 603 585 cep->fsm_state = TCP_FSM_CLOSED; 604 586 605 /* éä¿¡ã¨ãéä¿¡å¾ã³ãã¯ã·ã§ã³ã®åæãæ示ããã*/587 /* 送信と、送信後コネクションの切断を指示する。*/ 606 588 cep->flags |= TCP_CEP_FLG_POST_OUTPUT | TCP_CEP_FLG_CLOSE_AFTER_OUTPUT; 607 589 sig_sem(SEM_TCP_POST_OUTPUT); … … 613 595 614 596 /* 615 * tcp_respond -- TCP ã®åä¸ã¡ãã»ã¼ã¸ãéä¿¡ããã597 * tcp_respond -- TCP の単一メッセージを送信する。 616 598 */ 617 599 … … 628 610 629 611 /* 630 * output ã NULL ã§ãªããã°ãããã¯å 631 ¥åããã»ã°ã¡ã³ãã® 632 * net_buf ã§ããã®ã¾ã¾åå©ç¨ããã 612 * output が NULL でなければ、これは入力したセグメントの 613 * net_buf で、そのまま再利用する。 633 614 */ 634 615 if (output != NULL) { … … 637 618 638 619 /* 639 * IPv4 ã§ã¯ãIP ãããã®ãªãã·ã§ã³ãåé¤ããã640 * IPv6 ã§ã¯ãæ¡å¼µããããåé¤ããã620 * IPv4 では、IP ヘッダのオプションを削除する。 621 * IPv6 では、拡張ヘッダを削除する。 641 622 */ 642 623 if (IP_REMOVE_OPTIONS(output) != E_OK) { … … 647 628 iph = GET_IP_HDR(output); 648 629 649 /* IP ã¢ãã¬ã¹ã交æããã*/630 /* IP アドレスを交換する。*/ 650 631 ipaddr = iph->src; 651 632 iph->src = iph->dst; … … 654 635 #if defined(SUPPORT_INET6) 655 636 656 /* ãã©ããã¯ã¯ã©ã¹ã¨ããã¼ã©ãã«ãã¯ãªã¢ããã*/637 /* トラヒッククラスとフローラベルをクリアする。*/ 657 638 iph->vcf = htonl(IP6_MAKE_VCF(IP6_VCF_V(ntohl(iph->vcf)), 0)); 658 639 659 640 #endif /* of #if defined(SUPPORT_INET6) */ 660 641 661 /* TCP SDU é·ã 0 ã«ããã*/642 /* TCP SDU 長を 0 にする。*/ 662 643 SET_IP_SDU_SIZE(iph, TCP_HDR_SIZE); 663 644 664 645 tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET); 665 646 666 /* ãã¼ãçªå·ã交æããã*/647 /* ポート番号を交換する。*/ 667 648 portno = tcph->sport; 668 649 tcph->sport = tcph->dport; 669 650 tcph->dport = portno; 670 651 671 /* TCP ãããã«æ 672 å ±ãè¨å®ããã*/ 652 /* TCP ヘッダに情報を設定する。*/ 673 653 tcph->doff = TCP_MAKE_DATA_OFF(TCP_HDR_SIZE); 674 654 } 675 655 676 /* cep ã NULL ã§ããã°ãä½ãããªãã§çµäºããã*/656 /* cep が NULL であれば、何もしないで終了する。*/ 677 657 else if (cep == NULL) 678 658 return; … … 693 673 694 674 /* 695 * ãã§ãã¯ãµã ãè¨å®ããã675 * チェックサムを設定する。 696 676 */ 697 677 tcph->sum = IN_CKSUM(output, IPPROTO_TCP, IF_IP_TCP_HDR_OFFSET, 698 678 (uint_t)GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET)); 699 679 700 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/680 /* ネットワークバッファ長を調整する。*/ 701 681 output->len = (uint16_t)GET_IF_IP_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET); 702 682 … … 707 687 #endif /* of #ifdef TCP_CFG_TRACE */ 708 688 709 /* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/689 /* ネットワーク層 (IP) の出力関数を呼び出す。*/ 710 690 IP_OUTPUT(output, TMO_TCP_OUTPUT); 711 691 } 712 692 713 693 /* 714 * tcp_set_header -- TCP ããããè¨å®ããã694 * tcp_set_header -- TCP ヘッダを設定する。 715 695 */ 716 696 … … 720 700 T_TCP_HDR *tcph = GET_TCP_HDR(nbuf, thoff); 721 701 722 /* TCP ãããã«æ 723 å ±ãè¨å®ããã*/ 702 /* TCP ヘッダに情報を設定する。*/ 724 703 tcph->sport = htons(cep->myaddr.portno); 725 704 tcph->dport = htons(cep->dstaddr.portno); … … 729 708 730 709 /* 731 * tcp_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨å®ããã710 * tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。 732 711 * 733 * æ»ãå¤ ã¨ã©ã¼ã³ã¼ã734 * optlen ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½735 * len TCP SDU ãµã¤ãº712 * 戻り値 エラーコード 713 * optlen オプションサイズ、4 オクテット単位 714 * len TCP SDU サイズ 736 715 */ 737 716 … … 742 721 ER error; 743 722 744 /* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/723 /* IP データグラムを獲得する。*/ 745 724 if ((error = IN_GET_DATAGRAM(nbuf, 746 725 (uint_t)(TCP_HDR_SIZE + optlen + len), … … 754 733 } 755 734 756 /* TCP ãããã«æ 757 å ±ãè¨å®ããã*/ 735 /* TCP ヘッダに情報を設定する。*/ 758 736 tcp_set_header(*nbuf, cep, IF_IP_TCP_HDR_OFFSET, optlen); 759 737 … … 762 740 763 741 /* 764 * tcp_can_send_more -- éä¿¡ã§ããããé信端ç¹ã®ç¶æ 765 ãè¦ãã 742 * tcp_can_send_more -- 送信できるか、通信端点の状態を見る。 766 743 */ 767 744 … … 771 748 ER error; 772 749 773 /* éä¿¡ã§ããããCEP ã® FSM ç¶æ 774 ãè¦ãã*/ 750 /* 送信できるか、CEP の FSM 状態を見る。*/ 775 751 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) { 776 752 if ((error = cep->error) == E_OK) … … 779 755 #ifdef TCP_CFG_NON_BLOCKING 780 756 781 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/782 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/757 /* タイムアウトをチェックする。*/ 758 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 783 759 784 760 if (!IS_PTR_DEFINED(cep->callback)) … … 788 764 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 789 765 790 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/766 /* コールバック関数を呼び出す。*/ 791 767 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error); 792 768 793 769 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 794 770 795 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/771 /* コールバック関数を呼び出す。*/ 796 772 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error); 797 773 … … 817 793 #ifdef TCP_CFG_NON_BLOCKING 818 794 819 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/820 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/795 /* タイムアウトをチェックする。*/ 796 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 821 797 if (!IS_PTR_DEFINED(cep->callback)) 822 798 error = E_OBJ; … … 825 801 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 826 802 827 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/803 /* コールバック関数を呼び出す。*/ 828 804 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)E_OBJ); 829 805 830 806 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 831 807 832 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/808 /* コールバック関数を呼び出す。*/ 833 809 error = E_OBJ; 834 810 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error); … … 856 832 857 833 /* 858 * tcp_can_recv_more -- åä¿¡ã§ããããé信端ç¹ã®ç¶æ 859 ãè¦ãã 834 * tcp_can_recv_more -- 受信できるか、通信端点の状態を見る。 860 835 * 861 * 注æ: æ»ãå¤836 * 注意: 戻り値 862 837 * 863 * E_OK åä¿¡å¯è½864 * E_OBJ ç¸æããåæãããããã¨ã©ã¼ãçºçããã838 * E_OK 受信可能 839 * E_OBJ 相手から切断されたか、エラーが発生した。 865 840 */ 866 841 … … 869 844 { 870 845 /* 871 * åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãå ´åã¯872 * é·ã 0ãã¾ãã¯ã¨ã©ã¼ãè¿ãã846 * 受信できるか、fsm_state を見る。受信できない場合は 847 * 長さ 0、またはエラーを返す。 873 848 */ 874 849 if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) && … … 878 853 #ifdef TCP_CFG_NON_BLOCKING 879 854 880 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/881 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/855 /* タイムアウトをチェックする。*/ 856 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 882 857 883 858 if (!IS_PTR_DEFINED(cep->callback)) … … 886 861 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 887 862 888 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/863 /* コールバック関数を呼び出す。*/ 889 864 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error); 890 865 891 866 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 892 867 893 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/868 /* コールバック関数を呼び出す。*/ 894 869 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error); 895 870 … … 903 878 904 879 /* 905 * é信端ç¹ãããã¯ãã¦ã906 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã880 * 通信端点をロックして、 881 * 受信ウィンドバッファキューのネットワークバッファを解放する。 907 882 */ 908 883 syscall(wai_sem(cep->semid_lock)); … … 920 895 #ifdef TCP_CFG_NON_BLOCKING 921 896 922 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/923 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/897 /* タイムアウトをチェックする。*/ 898 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 924 899 if (!IS_PTR_DEFINED(cep->callback)) 925 900 *error = E_OBJ; … … 928 903 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 929 904 930 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/905 /* コールバック関数を呼び出す。*/ 931 906 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)E_OBJ); 932 907 933 908 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 934 909 935 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/910 /* コールバック関数を呼び出す。*/ 936 911 *error = E_OBJ; 937 912 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error); … … 958 933 959 934 /* 960 * tcp_wait_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå 961 ¥ãã®ãå¾ 962 ã¤ã 935 * tcp_wait_rwbuf -- 受信ウィンドバッファにデータが入るのを待つ。 963 936 */ 964 937 … … 970 943 971 944 if (cep->rwbuf_count == 0) { 972 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå 973 ¥åãããã¾ã§å¾ 974 ã¤ã*/ 945 /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/ 975 946 while (cep->rwbuf_count == 0) { 976 947 if ((error = twai_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) { … … 980 951 981 952 /* 982 * åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãç¶æ 983 ã§ã 984 * åä¿¡ã¦ã£ã³ããããã¡ã«æåããªãå ´åã¯çµäºããã 953 * 受信できるか、fsm_state を見る。受信できない状態で、 954 * 受信ウィンドバッファに文字がない場合は終了する。 985 955 */ 986 956 if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) && … … 988 958 989 959 /* 990 * é信端ç¹ãããã¯ãã¦ã991 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã960 * 通信端点をロックして、 961 * 受信ウィンドバッファキューのネットワークバッファを解放する。 992 962 */ 993 963 #ifdef TCP_CFG_RWBUF_CSAVE … … 1008 978 1009 979 /* 1010 * tcp_move_ra2rw -- åä¿¡åæ§æãã¥ã¼ã§åæ§æããã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã980 * tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。 1011 981 */ 1012 982 … … 1018 988 1019 989 /* 1020 * åä¿¡ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ã¿ã1021 * rcv_nxt ãå®äºãã SEQ ã ãé²ããã990 * 受信データを受信ウィンドバッファに書き込み、 991 * rcv_nxt を完了した SEQ だけ進める。 1022 992 */ 1023 993 if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) { … … 1028 998 break; 1029 999 1030 /* 次ã®ã»ã°ã¡ã³ãã«é²ãã*/1000 /* 次のセグメントに進む。*/ 1031 1001 cep->reassq = qhdr->next; 1032 1002 1033 /* FIN ãã©ã°ã®ã¿æ®ãã*/1003 /* FIN フラグのみ残す。*/ 1034 1004 flags &= TCP_FLG_FIN; 1035 1005 1036 /* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/1006 /* データを受信ウィンドバッファに書き込む。*/ 1037 1007 TCP_WRITE_RWBUF(cep, q, (uint_t)(GET_TCP_IP_Q_HDR(q)->thoff)); 1038 1008 } … … 1046 1016 1047 1017 /* 1048 * tcp_write_raque -- åä¿¡ã»ã°ã¡ã³ããåæ§æãã¦ãåä¿¡åæ§æãã¥ã¼ã«ç¹ãã1018 * tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。 1049 1019 */ 1050 1020 … … 1057 1027 int32_t len; 1058 1028 1059 /* TCP ãããã®ä½ç½®ãä¿åããã*/1029 /* TCP ヘッダの位置を保存する。*/ 1060 1030 GET_TCP_IP_Q_HDR(input)->thoff = thoff; 1061 1031 1062 1032 /* 1063 * MAX_TCP_REALLOC_SIZE 以ä¸ã®å ´åã¯ãæ°ãã«ãããã¯ã¼ã¯ãããã¡ã1064 * å²å½ã¦ã¦ããã¼ã¿ãã³ãã¼ããã1065 * ãã®ã¨ããIP ã®ãªãã·ã§ã³ï¼æ¡å¼µãããï¼ã¨ TCP ã®ãªãã·ã§ã³ã¯åé¤ããã1033 * MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを 1034 * 割当てて、データをコピーする。 1035 * このとき、IP のオプション(拡張ヘッダ)と TCP のオプションは削除する。 1066 1036 */ 1067 1037 len = IF_IP_TCP_HDR_SIZE + inqhdr->slen; … … 1070 1040 1071 1041 /* 1072 * ãããã¯ã¼ã¯ãããã¡ã確ä¿ã§ããªãã¨ãã¯å²å½ã¦ãªãã1042 * ネットワークバッファが確保できないときは割当てない。 1073 1043 */ 1074 1044 if (tget_net_buf(&new, (uint_t)len, TMO_TCP_GET_NET_BUF) != E_OK) … … 1095 1065 1096 1066 /* 1097 * ä»å追å ããã»ã°ã¡ã³ãããå(p)ã¨å¾(q)ã®ã»ã°ã¡ã³ããæ¢ãã1067 * 今回追加するセグメントより前(p)と後(q)のセグメントを探す。 1098 1068 * 1099 1069 * +-------------------------+ … … 1118 1088 1119 1089 /* 1120 * å(p)ã®ã»ã°ã¡ã³ããããã°ãæ¢ã«ãä»åã¨åãã»ã°ã¡ã³ãã 1121 * ãããã¨ãããããã®å ´åã¯ããã®é¨åã¾ãã¯å 1122 ¨ã¦ãç ´æ£ããã 1090 * 前(p)のセグメントがあれば、既に、今回と同じセグメントが 1091 * あることもある。その場合は、その部分または全てを破棄する。 1123 1092 * 1124 1093 * qhdr->seq … … 1142 1111 1143 1112 /* 1144 * len ãæ£ã§ããã°ãå(p) ã®ã»ã°ã¡ã³ãã¨ä»åã®1145 * ã»ã°ã¡ã³ããéãªã£ã¦ããã1113 * len が正であれば、前(p) のセグメントと今回の 1114 * セグメントが重なっている。 1146 1115 */ 1147 1116 if (len >= inqhdr->slen) { 1148 1117 1149 1118 /* 1150 * len ãä»åã®ã»ã°ã¡ã³ãã¨åããªã1151 * ã¾ã£ããåãã»ã°ã¡ã³ããªã®ã§ä½ãããªãã1119 * len が今回のセグメントと同じなら 1120 * まったく同じセグメントなので何もしない。 1152 1121 */ 1153 1122 if (new != NULL) { … … 1160 1129 1161 1130 /* 1162 * 追å ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã1131 * 追加するセグメントの SDU を len 分前に詰める。 1163 1132 */ 1164 1133 inqhdr->seq += len; … … 1169 1138 1170 1139 /* 1171 * ãã¥ã¼ã«ã¤ãªãåã«ãæ°ãããããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ã移ãã1172 * TCP ã®ãªãã·ã§ã³ã¯åé¤ããã1140 * キューにつなぐ前に、新しいネットワークバッファにデータを移す。 1141 * TCP のオプションは削除する。 1173 1142 */ 1174 1143 if (new != NULL) { … … 1183 1152 1184 1153 /* 1185 * éãªãå¾(q)ã®ã»ã°ã¡ã³ãã調æ´ããã1154 * 重なる後(q)のセグメントを調整する。 1186 1155 * 1187 1156 * inqhdr->seq … … 1203 1172 len = inqhdr->seq + inqhdr->slen - qhdr->seq; 1204 1173 if (len <= 0) 1205 /* len ãè² ãªãéãªã£ã¦ããªãã*/1174 /* len が負なら重なっていない。*/ 1206 1175 break; 1207 1176 else if (len < qhdr->slen) { 1208 1177 1209 1178 /* 1210 * å¾ãã§éãªã£ã¦ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã1179 * 後ろで重なっているセグメントの SDU を len 分前に詰める。 1211 1180 * 1212 1181 * inqhdr->seq … … 1252 1221 1253 1222 /* 1254 * tcp_rexmt_val -- åéã¿ã¤ã ã¢ã¦ãå¤ãè¿ãã1223 * tcp_rexmt_val -- 再送タイムアウト値を返す。 1255 1224 */ 1256 1225 … … 1268 1237 1269 1238 /* 1270 * tcp_init_cep -- é信端ç¹ãåæåããã1239 * tcp_init_cep -- 通信端点を初期化する。 1271 1240 */ 1272 1241 … … 1276 1245 #ifdef TCP_CFG_RWBUF_CSAVE 1277 1246 /* 1278 * åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããå ´åã 1279 * åä¿¡ã¦ã£ã³ããããã¡ãå 1280 ¨ã¦è§£æ¾ãããªããã¨ãããã®ã§ã 1281 * ããã§è§£æ¾ããã 1247 * 受信ウィンドバッファの省コピー機能を有効にした場合、 1248 * 受信ウィンドバッファが全て解放されないことがあるので、 1249 * ここで解放する。 1282 1250 */ 1283 1251 if (cep->rwbufq != NULL) { … … 1293 1261 cep->rbuf_rptr = cep->rbuf_wptr = cep->rbuf; 1294 1262 1295 cep->maxseg = DEF_TCP_SND_SEG; /* éä¿¡æ大ã»ã°ã¡ã³ããµã¤ãº*/1296 cep->srtt = TCP_TVAL_SRTT_BASE; /* æ»ãããªç§»åå¹³å*/1263 cep->maxseg = DEF_TCP_SND_SEG; /* 送信最大セグメントサイズ */ 1264 cep->srtt = TCP_TVAL_SRTT_BASE; /* 滑らかな移動平均 */ 1297 1265 cep->rttvar = ((TCP_TVAL_RTO_BASE - TCP_TVAL_SRTT_BASE) << TCP_RTTVAR_SHIFT) / 4; 1298 /* æ»ãããªåæ£*/1299 cep->rxtcur = TCP_TVAL_RTO_BASE; /* ç¾å¨ã®åéå¤*/1300 cep->snd_cwnd = MAX_TCP_WIN_SIZE; /* 輻輳ã¦ã£ã³ããµã¤ãº*/1301 cep->snd_ssthresh= MAX_TCP_WIN_SIZE; /* 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã® å¶éå¤*/1266 /* 滑らかな分散 */ 1267 cep->rxtcur = TCP_TVAL_RTO_BASE; /* 現在の再送値 */ 1268 cep->snd_cwnd = MAX_TCP_WIN_SIZE; /* 輻輳ウィンドサイズ */ 1269 cep->snd_ssthresh= MAX_TCP_WIN_SIZE; /* 輻輳ウィンドサイズ(snd_cwnd)の 制限値 */ 1302 1270 1303 1271 /* 1304 * 以ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã1305 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½1306 * ã»åçãªé信端ç¹ã®çæã»åé¤æ©è½1272 * 以下に関係しないフラグをクリアーする。 1273 * ・送受信ウィンドバッファの省コピー機能 1274 * ・動的な通信端点の生成・削除機能 1307 1275 */ 1308 1276 cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | 1309 1277 TCP_CEP_FLG_DYNAMIC | TCP_CEP_FLG_VALID); 1310 1278 1311 /* ã»ããã©ãåæåããã*/1279 /* セマフォを初期化する。*/ 1312 1280 sig_sem (cep->semid_lock); 1313 1281 1314 /* ãã©ã°ãåæåããã*/1282 /* フラグを初期化する。*/ 1315 1283 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); 1316 1284 syscall(clr_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY)); … … 1318 1286 1319 1287 /* 1320 * tcp_notify -- ICMP ã¨ã©ã¼ã®å¦ç1288 * tcp_notify -- ICMP エラーの処理 1321 1289 */ 1322 1290 … … 1334 1302 1335 1303 /* 1336 * ã³ãã¯ã·ã§ã³éè¨æ¸ã§ããã¹ãå°éä¸è½ã¨ã©ã¼ã®å ´åã¯ã1337 * åéã«ããå¦çããã1304 * コネクション開設済で、ホスト到達不能エラーの場合は、 1305 * 再送により処理する。 1338 1306 */ 1339 1307 if (cep->fsm_state == TCP_FSM_ESTABLISHED && … … 1342 1310 1343 1311 /* 1344 * ã³ãã¯ã·ã§ã³éè¨ä¸ãåãã¨ã©ã¼ãä½åº¦ãåä¿¡ããå ´åã¯ã 1345 * å¾ 1346 ã¡ç¶æ 1347 ã解é¤ãã対å¿ããé¢æ°ã«ã¨ã©ã¼ãè¿ãããã 1312 * コネクション開設中、同じエラーを何度か受信した場合は、 1313 * 待ち状態を解除し、対応する関数にエラーを返させる。 1348 1314 */ 1349 1315 if (cep->fsm_state < TCP_FSM_ESTABLISHED && cep->rxtshift > 3 && cep->net_error != E_OK) { … … 1354 1320 cep->net_error = error; 1355 1321 1356 /* éä¿¡ãæ示ããã*/1322 /* 送信を指示する。*/ 1357 1323 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1358 1324 sig_sem(SEM_TCP_POST_OUTPUT); … … 1362 1328 1363 1329 /* 1364 * tcp_find_cep -- ãã¼ãçªå·ãã TCP é信端ç¹ãå¾ãã1330 * tcp_find_cep -- ポート番号から TCP 通信端点を得る。 1365 1331 * 1366 * 注æ: dstaddr ã¯ã1367 * TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã1368 * TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã1332 * 注意: dstaddr は、 1333 * TINET-1.2 からネットワークバイトオーダ、 1334 * TINET-1.1 までは、ホストバイトオーダ 1369 1335 */ 1370 1336 … … 1375 1341 1376 1342 /* 1377 * ç¶æ 1378 ã SYN éä¿¡æ¸ã¿ä»¥å¾ã¯ã 1379 * IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããé信端ç¹ãæ¢ç´¢ããã 1343 * 状態が SYN 送信済み以後は、 1344 * IP アドレスとポート番号が一致する通信端点を探索する。 1380 1345 */ 1381 1346 for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) { … … 1388 1353 } 1389 1354 1390 /* ååãªã¼ãã³ä¸ã®é信端ç¹ãæ¢ç´¢ããã*/1355 /* 受動オープン中の通信端点を探索する。*/ 1391 1356 for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) { 1392 1357 if (cep->fsm_state == TCP_FSM_LISTEN && … … 1400 1365 1401 1366 /* 1402 * tcp_lock_cep -- TCP é信端ç¹ãããã¯ããã1367 * tcp_lock_cep -- TCP 通信端点をロックする。 1403 1368 */ 1404 1369 … … 1411 1376 *p_cep = NULL; 1412 1377 1413 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1378 /* TCP 通信端点 ID をチェックする。*/ 1414 1379 if (!VAID_TCP_CEPID(cepid)) 1415 1380 return E_ID; 1416 1381 1417 /* TCP é信端ç¹ãå¾ãã*/1382 /* TCP 通信端点を得る。*/ 1418 1383 cep = GET_TCP_CEP(cepid); 1419 1384 1420 /* TCP é信端ç¹ãããã¯ããã*/1385 /* TCP 通信端点をロックする。*/ 1421 1386 syscall(wai_sem(cep->semid_lock)); 1422 1387 1423 /* TCP é信端ç¹ããã§ãã¯ããã*/1388 /* TCP 通信端点をチェックする。*/ 1424 1389 if (!VALID_TCP_CEP(cep)) { 1425 1390 syscall(sig_sem(cep->semid_lock)); … … 1428 1393 1429 1394 /* 1430 * API æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1431 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1395 * API 機能コードとタスク識別子を記録する。 1396 * すでに記録されていれば、ペンディング中なのでエラー 1432 1397 */ 1433 1398 if (IS_TFN_TCP_RCV(tfn)) { … … 1451 1416 } 1452 1417 1453 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1418 /* 通信端点のロックを解除する。*/ 1454 1419 syscall(sig_sem(cep->semid_lock)); 1455 1420 … … 1465 1430 1466 1431 /* 1467 * ã³ãã¯ã·ã§ã³ã®ç¶æ 1468 1432 * コネクションの状態 1469 1433 */ 1470 1434 … … 1484 1448 1485 1449 /* 1486 * trace_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æååºå1450 * trace_putchar -- シリアルポートへの文字出力 1487 1451 */ 1488 1452 … … 1495 1459 1496 1460 /* 1497 * ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºåã©ã¤ãã©ãª1498 */ 1499 1500 /* 1501 * æ°å¤å¤æã®ããã®å¤æ表1461 * シリアルポートへの書式付文字列出力ライブラリ 1462 */ 1463 1464 /* 1465 * 数値変換のための変換表 1502 1466 */ 1503 1467 … … 1506 1470 1507 1471 /* 1508 * convert -- trace_printf ã®æ°å¤å¤æ1472 * convert -- trace_printf の数値変換 1509 1473 */ 1510 1474 … … 1543 1507 1544 1508 /* 1545 * trace_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºå1509 * trace_printf -- シリアルポートへの書式付文字列出力 1546 1510 */ 1547 1511 … … 1556 1520 va_start(ap, fmt); 1557 1521 while ((ch = *fmt ++) != '\0') { 1558 if (ch != '%') { /* æ¸å¼æå®ä»¥å¤*/1522 if (ch != '%') { /* 書式指定以外 */ 1559 1523 trace_putchar(portid, (char)ch); 1560 1524 continue; … … 1563 1527 width = longflag = 0; 1564 1528 padchar = ' '; 1565 if ((ch = *fmt ++) == '0') { /* ä¸ä½æ¡ã®0 */1529 if ((ch = *fmt ++) == '0') { /* 上位桁の 0 */ 1566 1530 padchar = '0'; 1567 1531 ch = *fmt ++; 1568 1532 } 1569 1533 1570 while ('0' <= ch && ch <= '9') { /* åºåå¹ 1571 */ 1534 while ('0' <= ch && ch <= '9') { /* 出力幅 */ 1572 1535 width = width * 10 + ch - '0'; 1573 1536 ch = *fmt ++; 1574 1537 } 1575 1538 1576 while (ch == 'l') { /* long (long) ã®æå®*/1539 while (ch == 'l') { /* long (long) の指定 */ 1577 1540 longflag ++; 1578 1541 ch = *fmt ++; … … 1635 1598 1636 1599 /* 1637 * TCP ãã©ã°æåå1600 * TCP フラグ文字列 1638 1601 */ 1639 1602 … … 1654 1617 1655 1618 /* 1656 * éä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå1619 * 送信 TCP ヘッダのトレース出力 1657 1620 */ 1658 1621 … … 1705 1668 1706 1669 /* 1707 * åä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå1670 * 受信 TCP ヘッダのトレース出力 1708 1671 * 1709 * 注æ: TCP ãããå 1710 ã¯ããã§ã«ãã¹ããã¤ããªã¼ã 1672 * 注意: TCP ヘッダ内は、すでにホストバイトオーダ 1711 1673 */ 1712 1674 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 137 125 138 126 /* 139 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å140 * ãã ããé信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ï¼cep->sbufï¼ã®å¤ã«ããã141 * TCP é信端ç¹æ¯ã«éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ãããã142 * 使ç¨ããªãããåãæ¿ããã143 */ 144 145 /* 146 * tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼é¸æï¼ã127 * TCP 通信端点の送信ウィンドバッファの省コピー機能が有効な場合 128 * ただし、通信端点の送信ウィンドバッファ(cep->sbuf)の値により、 129 * TCP 通信端点毎に送信ウィンドバッファの省コピー機能を使用するか、 130 * 使用しないかを切り替える。 131 */ 132 133 /* 134 * tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する(選択)。 147 135 */ 148 136 … … 157 145 158 146 /* 159 * tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼é¸æï¼ã147 * tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む(選択)。 160 148 */ 161 149 … … 170 158 171 159 /* 172 * tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèªã¿åºãï¼é¸æï¼ã160 * tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す(選択)。 173 161 */ 174 162 … … 181 169 182 170 /* 183 * tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾ 184 ã¤ï¼é¸æï¼ã 171 * tcp_wait_swbuf -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ(選択)。 185 172 */ 186 173 … … 195 182 196 183 /* 197 * tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼é¸æï¼ã184 * tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する(選択)。 198 185 */ 199 186 … … 208 195 209 196 /* 210 * tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼é¸æï¼ã197 * tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする(選択)。 211 198 */ 212 199 … … 221 208 222 209 /* 223 * tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®è§£æ¾ãæ示ããï¼é¸æï¼ã210 * tcp_free_swbufq -- 送信ウィンドバッファキューの解放を指示する(選択)。 224 211 */ 225 212 … … 232 219 233 220 /* 234 * tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããï¼é¸æï¼ã221 * tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(選択)。 235 222 */ 236 223 … … 243 230 244 231 /* 245 * tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼é¸æï¼ã232 * tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする(選択)。 246 233 */ 247 234 … … 258 245 259 246 /* 260 * tcp_drop_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼å°ç¨ï¼ã247 * tcp_drop_swbuf_cs -- 送信ウィンドバッファから指定されたオクテット分削除する(専用)。 261 248 */ 262 249 … … 265 252 { 266 253 267 /* éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã*/254 /*送信ウィンドバッファから指定されたオクテット分削除する。*/ 268 255 cep->swbuf_count -= (uint16_t)len; 269 256 270 /* éä¿¡æ¸ã¿ã§ãACKå¾ 271 ã¡ã®æã¯ãACKå®äºã«å¤æ´ããã*/ 257 /* 送信済みで、ACK待ちの時は、ACK完了に変更する。*/ 272 258 if (len > 0 && (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT) { 273 259 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED; … … 277 263 278 264 /* 279 * tcp_write_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼å°ç¨ï¼ã265 * tcp_write_swbuf_cs -- 送信ウィンドバッファにデータを書き込む(専用)。 280 266 */ 281 267 … … 285 271 ER_UINT error; 286 272 287 /* é信端ç¹ãããã¯ããã*/273 /* 通信端点をロックする。*/ 288 274 syscall(wai_sem(cep->semid_lock)); 289 275 … … 298 284 * <---------------- error ---------------> 299 285 * ^ 300 * net_buf 㧠4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã286 * net_buf で 4 オクテット境界にアラインされている。 301 287 * 302 * tcp_output 㨠ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã 303 * n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã 304 * ãããã£ã³ã°ããããã®åãèæ 305 ®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã® 306 * 空ããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã 288 * tcp_output と ip_output で、チェックサムを計算するとき、 289 * n が 4 オクテット境界になるように SDU の後ろに 0 を 290 * パッディングする。その分を考慮して送信ウィンドバッファの 291 * 空きサイズを 4 オクテット境界に調整する。 307 292 */ 308 293 error = (uint_t)(((error - IF_IP_TCP_HDR_SIZE) >> 2 << 2) + IF_IP_TCP_HDR_SIZE); … … 313 298 len = (uint_t)(error - IF_IP_TCP_HDR_SIZE); 314 299 315 /* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºã調æ´ããã*/300 /* 送信ウインドサイズによりサイズを調整する。*/ 316 301 if (len > cep->snd_wnd) 317 302 len = cep->snd_wnd; … … 319 304 len = cep->snd_cwnd; 320 305 321 /* ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶ 322 ããªãããã«ããã*/ 306 /* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/ 323 307 if (len > cep->maxseg) 324 308 len = cep->maxseg; 325 309 326 /* ãã¼ã¿ã移ãã*/310 /* データを移す。*/ 327 311 memcpy(cep->sbuf_wptr, (void*)((uint8_t*)data), (size_t)len); 328 312 cep->sbuf_wptr += len; … … 330 314 error = len; 331 315 332 /* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨å®ããã*/316 /* ネットワークバッファ長と IP データグラム長を設定する。*/ 333 317 cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_HDR_SIZE); 334 318 SET_IP_SDU_SIZE(GET_IP_HDR(cep->swbufq), cep->swbuf_count + TCP_HDR_SIZE); 335 319 336 /* ãã©ã°ããéä¿¡å¯è½ã«è¨å®ããã*/320 /* フラグを、送信可能に設定する。*/ 337 321 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY; 338 322 } 339 323 340 else { /* éä¿¡ã¦ã¤ã³ããããã¡ãä¸æ£*/324 else { /* 送信ウインドバッファが不正 */ 341 325 syslog(LOG_WARNING, "[TCP] illegal window buff for send, CEP: %d, %4d < %4d.", 342 326 GET_TCP_CEPID(cep), error, IF_IP_TCP_HDR_SIZE); 343 327 344 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/328 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 345 329 tcp_free_swbufq_cs(cep); 346 330 } 347 331 348 /* é信端ç¹ã®ããã¯ã解é¤ããã*/332 /* 通信端点のロックを解除する。*/ 349 333 syscall(sig_sem(cep->semid_lock)); 350 334 … … 353 337 354 338 /* 355 * tcp_wait_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾ 356 ã¤ï¼å°ç¨ï¼ã 339 * tcp_wait_swbuf_cs -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ(専用)。 357 340 */ 358 341 … … 366 349 367 350 368 /* éä¿¡ã¦ã£ã³ããããã¡ãå²å½ã¦æ¸ã¿ã§ã空ããããã°çµäºããã*/351 /* 送信ウィンドバッファが割当て済みで、空きがあれば終了する。*/ 369 352 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_READY && 370 353 (cep->swbuf_count + IF_IP_TCP_HDR_SIZE) < net_buf_siz(cep->swbufq)) 371 354 return E_OK; 372 355 373 /* éä¿¡ä¸ã§ããã°ãçµäºããã¾ã§å¾ 374 æ©ããã*/ 356 /* 送信中であれば、終了するまで待機する。*/ 375 357 while ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) { 376 358 377 /* éä¿¡å¾ 378 ã¡ã®æéã tmout ããæ¸ããã*/ 359 /* 送信待ちの時間を tmout から減ずる。*/ 379 360 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) 380 361 syscall(get_tim(&before)); … … 385 366 syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY))); 386 367 387 /* éä¿¡å¾ 388 ã¡ã®æéã tmout ããæ¸ããã*/ 368 /* 送信待ちの時間を tmout から減ずる。*/ 389 369 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) { 390 370 syscall(get_tim(&after)); … … 395 375 396 376 /* 397 * éä¿¡ã§ããããCEP ã® FSM ç¶æ 398 ãè¦ãã 399 * éä¿¡ã¦ã¤ã³ããããã¡ã空ãã¾ã§å¾ 400 ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã 401 * ã³ãã¯ã·ã§ã³ãåæããããã¨ãæå³ãã¦ããã 377 * 送信できるか、CEP の FSM 状態を見る。 378 * 送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、 379 * コネクションが切断されたことを意味している。 402 380 */ 403 381 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) … … 405 383 } 406 384 407 /* ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾ 408 æ©ããã*/ 385 /* 相手の受信ウィンドが閉じている場合は、開くまで待機する。*/ 409 386 while (true) { 410 387 411 388 /* 412 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº413 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº389 * snd_wnd: 相手の受信可能ウィンドサイズ 390 * snd_cwnd: 輻輳ウィンドサイズ 414 391 * 415 * win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨å®ããã392 * win: どちらか小さいウィンドサイズに設定する。 416 393 */ 417 394 win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd; … … 419 396 break; 420 397 421 /* éãå¾ 422 ã¡ã®æéã tmout ããæ¸ããã*/ 398 /* 開き待ちの時間を tmout から減ずる。*/ 423 399 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) 424 400 syscall(get_tim(&before)); … … 429 405 syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY))); 430 406 431 /* éãå¾ 432 ã¡ã®æéã tmout ããæ¸ããã*/ 407 /* 開き待ちの時間を tmout から減ずる。*/ 433 408 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) { 434 409 syscall(get_tim(&after)); … … 439 414 440 415 /* 441 * éä¿¡ã§ããããCEP ã® FSM ç¶æ 442 ãè¦ãã 443 * éä¿¡ã¦ã¤ã³ããããã¡ã空ãã¾ã§å¾ 444 ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã 445 * ã³ãã¯ã·ã§ã³ãåæããããã¨ãæå³ãã¦ããã 416 * 送信できるか、CEP の FSM 状態を見る。 417 * 送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、 418 * コネクションが切断されたことを意味している。 446 419 */ 447 420 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) … … 449 422 } 450 423 451 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/424 /* ネットワークバッファを獲得する。*/ 452 425 if ((error = tcp_get_segment(&cep->swbufq, cep, 0, 453 426 TCP_CFG_SWBUF_CSAVE_MIN_SIZE, … … 456 429 return error; 457 430 458 /* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/431 /* 送信ウィンドバッファを初期化する。*/ 459 432 tcp_init_swbuf(cep); 460 433 … … 463 436 464 437 /* 465 * tcp_get_swbuf_addr_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼å°ç¨ï¼ã438 * tcp_get_swbuf_addr_cs -- 送信ウィンドバッファの空きアドレスを獲得する(専用)。 466 439 */ 467 440 … … 471 444 ER_UINT error; 472 445 473 /* é信端ç¹ãããã¯ããã*/446 /* 通信端点をロックする。*/ 474 447 syscall(wai_sem(cep->semid_lock)); 475 448 … … 483 456 * <---------------- error ---------------> 484 457 * ^ 485 * net_buf 㧠4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã458 * net_buf で 4 オクテット境界にアラインされている。 486 459 * 487 * tcp_output 㨠ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã 488 * n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã 489 * ãããã£ã³ã°ããããã®åãèæ 490 ®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã® 491 * 空ããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã 460 * tcp_output と ip_output で、チェックサムを計算するとき、 461 * n が 4 オクテット境界になるように SDU の後ろに 0 を 462 * パッディングする。その分を考慮して送信ウィンドバッファの 463 * 空きサイズを 4 オクテット境界に調整する。 492 464 */ 493 465 error = (uint_t)(((error - IF_IP_TCP_HDR_SIZE) >> 2 << 2) - cep->swbuf_count); 494 466 495 /* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºã調æ´ããã*/467 /* 送信ウインドサイズによりサイズを調整する。*/ 496 468 if (error > cep->snd_wnd) 497 469 error = cep->snd_wnd; … … 499 471 error = cep->snd_cwnd; 500 472 501 /* ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶ 502 ããªãããã«ããã*/ 473 /* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/ 503 474 if (error > cep->maxseg) 504 475 error = cep->maxseg; 505 476 506 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/477 /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/ 507 478 cep->get_buf_len = error; 508 479 509 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å 510 é ãè¨å®ããã*/ 480 /* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/ 511 481 *p_buf = cep->sbuf_wptr; 512 482 } 513 483 514 else { /* ãããã¯ã¼ã¯ãããã¡ãä¸æ£*/515 516 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/484 else { /* ネットワークバッファが不正 */ 485 486 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 517 487 tcp_free_swbufq_cs(cep); 518 488 } 519 489 520 /* é信端ç¹ã®ããã¯ã解é¤ããã*/490 /* 通信端点のロックを解除する。*/ 521 491 syscall(sig_sem(cep->semid_lock)); 522 492 … … 525 495 526 496 /* 527 * tcp_send_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼å°ç¨ï¼ã497 * tcp_send_swbuf_cs -- 送信ウィンドバッファのデータを送信可能にする(専用)。 528 498 */ 529 499 … … 531 501 tcp_send_swbuf_cs (T_TCP_CEP *cep, uint_t len) 532 502 { 533 /* é信端ç¹ãããã¯ããã*/503 /* 通信端点をロックする。*/ 534 504 syscall(wai_sem(cep->semid_lock)); 535 505 … … 537 507 cep->swbuf_count += len; 538 508 539 /* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨å®ããã*/509 /* ネットワークバッファ長と IP データグラム長を設定する。*/ 540 510 cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_HDR_SIZE); 541 511 SET_IP_SDU_SIZE(GET_IP_HDR(cep->swbufq), len + TCP_HDR_SIZE); 542 512 543 /* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/513 /* tcp_get_buf の割当て長をリセットする。*/ 544 514 cep->get_buf_len = 0; 545 515 546 /* é信端ç¹ã®ããã¯ã解é¤ããã*/516 /* 通信端点のロックを解除する。*/ 547 517 syscall(sig_sem(cep->semid_lock)); 548 518 549 /* ãã©ã°ããéä¿¡å¯è½ã«è¨å®ããå¼·å¶çã«éä¿¡ããã*/519 /* フラグを、送信可能に設定し、強制的に送信する。*/ 550 520 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY 551 521 | TCP_CEP_FLG_FORCE … … 555 525 556 526 /* 557 * tcp_free_swbufq_cs -- éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®è§£æ¾ãæ示ããï¼å°ç¨ï¼ã527 * tcp_free_swbufq_cs -- 送信ウィンドバッファキューの解放を指示する(専用)。 558 528 * 559 * 注æ: 560 * å¿ 561 è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãé信端ç¹ãããã¯ãã 562 * æ»ã£ãå¾ã解é¤ããå¿ 563 è¦ãããã 529 * 注意: 530 * 必要であれば、この関数を呼び出す前に、通信端点をロックし、 531 * 戻った後、解除する必要がある。 564 532 */ 565 533 … … 567 535 tcp_free_swbufq_cs (T_TCP_CEP *cep) 568 536 { 569 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾ 570 ã¡ãåãæ¶ãã*/ 537 /* 送信ウィンドバッファの空き待ちを取り消す。*/ 571 538 cep->flags &= ~TCP_CEP_FLG_WBCS_NBUF_REQ; 572 539 573 540 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) { 574 541 /* 575 * éä¿¡ã¦ã£ã³ããããã¡ãåé¤ããããã«ããã©ã°ã ACK å®äºã«è¨å®ãã576 * TCP åºåã¿ã¹ã¯ãèµ·åããã542 * 送信ウィンドバッファを削除するために、フラグを ACK 完了に設定し、 543 * TCP 出力タスクを起動する。 577 544 */ 578 545 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED; … … 582 549 583 550 /* 584 * tcp_alloc_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããï¼å°ç¨ï¼ã551 * tcp_alloc_swbuf_cs -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(専用)。 585 552 */ 586 553 … … 591 558 592 559 /* 593 * éä¿¡ã¦ã£ã³ããããã¡ãæªä½¿ç¨ã®å ´åã®ã¿ã594 * éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããã560 * 送信ウィンドバッファが未使用の場合のみ、 561 * 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。 595 562 */ 596 563 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_FREE) … … 599 566 600 567 /* 601 * tcp_is_swbuf_full_cs -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼å°ç¨ï¼ã568 * tcp_is_swbuf_full_cs -- 送信ウィンドバッファが満杯かチェックする(専用)。 602 569 */ 603 570 … … 610 577 611 578 /* 612 * tcp_init_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãåæåããï¼å°ç¨ï¼ã579 * tcp_init_swbuf -- 送信ウィンドバッファを初期化する(専用)。 613 580 * 614 * 注æ: tcp_get_segment ã§ãããã¯ã¼ã¯ãããã¡ãç²å¾ãã615 * ç´å¾ã«å¼ã³åºããã¨ã581 * 注意: tcp_get_segment でネットワークバッファを獲得した 582 * 直後に呼び出すこと。 616 583 */ 617 584 … … 619 586 tcp_init_swbuf (T_TCP_CEP *cep) 620 587 { 621 /* éä¿¡ã¦ã¤ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãºããªã»ããããã*/588 /* 送信ウインドバッファの使用中サイズをリセットする。*/ 622 589 cep->swbuf_count = 0; 623 590 624 /* éä¿¡ã¦ã¤ã³ããããã¡ã®ã¢ãã¬ã¹ãè¨å®ããã*/591 /* 送信ウインドバッファのアドレスを設定する。*/ 625 592 cep->sbuf_wptr = cep->sbuf_rptr = GET_TCP_SDU(cep->swbufq, IF_IP_TCP_HDR_OFFSET); 626 593 627 /* ãã©ã°ãããããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿ã«è¨å®ããã*/594 /* フラグを、ネットワークバッファ割当て済みに設定する。*/ 628 595 cep->flags = (cep->flags & ~(TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK)) 629 596 | TCP_CEP_FLG_WBCS_NBUF_READY; … … 631 598 632 599 /* 633 * tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããï¼å°ç¨ï¼ã600 * tcp_push_res_nbuf -- ネットワークバッファを予約する(専用)。 634 601 */ 635 602 … … 649 616 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_PEND) { 650 617 651 /* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/618 /* ネットワークバッファを予約する。*/ 652 619 cep->swbufq = nbuf; 653 620 nbuf = NULL; 654 621 655 /* ãã©ã°ãäºç´ã«è¨å®ããã*/622 /* フラグを予約に設定する。*/ 656 623 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_RSVD; 657 624 sel_ix = ix; … … 668 635 669 636 /* 670 * tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãï¼å°ç¨ï¼ã637 * tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す(専用)。 671 638 */ 672 639 … … 680 647 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_RSVD) { 681 648 682 /* äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡ãè¿ãã*/649 /* 予約してあるネットワークバッファを返す。*/ 683 650 nbuf = cep->swbufq; 684 651 cep->swbufq = NULL; 685 652 686 /* TCP åºåã¿ã¹ã¯ãèµ·åããã*/653 /* TCP 出力タスクを起動する。*/ 687 654 sig_sem(SEM_TCP_POST_OUTPUT); 688 655 } … … 700 667 701 668 /* 702 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å703 * ãã ããé信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ï¼cep->rbufï¼ã®å¤ã«ããã704 * TCP é信端ç¹æ¯ã«åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ãããã705 * 使ç¨ããªãããåãæ¿ããã706 */ 707 708 /* 709 * tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã669 * TCP 通信端点の受信ウィンドバッファの省コピー機能が有効な場合 670 * ただし、通信端点の受信ウィンドバッファ(cep->rbuf)の値により、 671 * TCP 通信端点毎に受信ウィンドバッファの省コピー機能を使用するか、 672 * 使用しないかを切り替える。 673 */ 674 675 /* 676 * tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。 710 677 */ 711 678 … … 720 687 721 688 /* 722 * tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèªã¿åºãã689 * tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。 723 690 */ 724 691 … … 733 700 734 701 /* 735 * tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã702 * tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。 736 703 */ 737 704 … … 746 713 747 714 /* 748 * tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã715 * tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。 749 716 */ 750 717 … … 757 724 758 725 /* 759 * tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã726 * tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。 760 727 */ 761 728 … … 772 739 773 740 /* 774 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹775 */ 776 777 /* 778 * tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã741 * TCP 通信端点の受信ウィンドバッファの省コピー機能が有効 742 */ 743 744 /* 745 * tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。 779 746 */ 780 747 … … 789 756 cep->rwbuf_count -= len; 790 757 791 /* ãããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç¡ããªã£ãã解æ¾ããã*/758 /* ネットワークバッファにデータが無くなったら解放する。*/ 792 759 if (len == qhdr->slen) { 793 760 T_NET_BUF *next; … … 811 778 812 779 /* 813 * tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèªã¿åºãã780 * tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。 814 781 */ 815 782 … … 821 788 uint8_t *buf = (uint8_t*)data; 822 789 823 /* é信端ç¹ãããã¯ããã*/790 /* 通信端点をロックする。*/ 824 791 syscall(wai_sem(cep->semid_lock)); 825 792 826 793 /* 827 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã«ãããã¯ã¼ã¯ãããã¡ãç¡ããªãã828 * len ã 0 ã«ãªãã¾ã§ç¶ããã794 * 受信ウィンドバッファキューにネットワークバッファが無くなるか 795 * len が 0 になるまで続ける。 829 796 */ 830 797 while (cep->rwbufq != NULL && len > 0) { … … 832 799 833 800 /* 834 * len ã¨åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®å 835 é ãããã¯ã¼ã¯ãããã¡ã® 836 * ãã¼ã¿æ°ã®å°ããæ¹ã移ããã¼ã¿æ°ã«ããã 801 * len と受信ウィンドバッファキューの先頭ネットワークバッファの 802 * データ数の小さい方を移すデータ数にする。 837 803 */ 838 804 if (len > qhdr->slen) … … 846 812 847 813 /* 848 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã«849 * ãã¼ã¿ãç¡ããªã£ãã解æ¾ããã814 * 受信ウィンドバッファキューのネットワークバッファに 815 * データが無くなったら解放する。 850 816 */ 851 817 tcp_drop_rwbuf_cs(cep, blen); … … 856 822 } 857 823 858 /* é信端ç¹ã®ããã¯ã解é¤ããã*/824 /* 通信端点のロックを解除する。*/ 859 825 syscall(sig_sem(cep->semid_lock)); 860 826 … … 863 829 864 830 /* 865 * tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã831 * tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。 866 832 */ 867 833 … … 872 838 uint_t len; 873 839 874 /* é信端ç¹ãããã¯ããã*/840 /* 通信端点をロックする。*/ 875 841 syscall(wai_sem(cep->semid_lock)); 876 842 877 843 if (cep->rwbufq == NULL) { 878 844 879 /* åä¿¡ã¦ã£ã³ããããã¡ãå 880 ¨ã¦éæ¾ããã¦ããã¨ãã*/ 845 /* 受信ウィンドバッファが全て開放されているとき。*/ 881 846 *p_buf = NULL; 882 847 len = 0; … … 884 849 else { 885 850 886 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å 887 é ãè¨å®ããã*/ 851 /* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/ 888 852 qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff); 889 853 *p_buf = GET_TCP_SDU(cep->rwbufq, GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff) + qhdr->soff; 890 854 891 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/855 /* 受信ウィンドバッファのデータ長を計算する。*/ 892 856 len = qhdr->slen; 893 857 } 894 858 895 /* é信端ç¹ã®ããã¯ã解é¤ããã*/859 /* 通信端点のロックを解除する。*/ 896 860 syscall(sig_sem(cep->semid_lock)); 897 861 898 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/862 /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/ 899 863 cep->rcv_buf_len = len; 900 864 return len; … … 902 866 903 867 /* 904 * tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã868 * tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。 905 869 * 906 * 注æ: 907 * å¿ 908 è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãé信端ç¹ãããã¯ãã 909 * æ»ã£ãå¾ã解é¤ããå¿ 910 è¦ãããã 870 * 注意: 871 * 必要であれば、この関数を呼び出す前に、通信端点をロックし、 872 * 戻った後、解除する必要がある。 911 873 */ 912 874 … … 930 892 } 931 893 932 /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãºããªã»ããããã*/894 /* 受信ウィンドバッファの使用中サイズをリセットする。*/ 933 895 cep->rwbuf_count = 0; 934 896 } … … 936 898 937 899 /* 938 * tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã900 * tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。 939 901 * 940 * 注æ: 941 * å 942 ¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã 943 * 並ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã 944 * 追å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã 902 * 注意: 903 * 入力 input は、T_TCP_Q_HDR によりリンクされ、 904 * 並べ替えが終了していなければならない。また、 905 * 追加するデータは、受信ウィンドバッファに収まること。 945 906 */ 946 907 … … 952 913 uint_t inlen, last; 953 914 954 /* é信端ç¹ãããã¯ããã*/915 /* 通信端点をロックする。*/ 955 916 syscall(wai_sem(cep->semid_lock)); 956 917 … … 965 926 966 927 /* 967 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã 968 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æ大ã¨ã³ããªæ°ãè¶ 969 ããã¨ãã¯ã 970 * åä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã 971 * ãã ããSDU é·ã 0 ã®ã»ã°ã¡ã³ã㨠FIN ã»ã°ã¡ã³ãã¯ç ´æ£ããªãã 972 * ãªããæ£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã 928 * TCP 通信端点の受信ウィンドバッファの省コピー機能の、 929 * 受信ウィンドバッファキューの最大エントリ数を超えるときは、 930 * 受信したセグメントを破棄する。 931 * ただし、SDU 長が 0 のセグメントと FIN セグメントは破棄しない。 932 * なお、正常に受信したセグメントも破棄するため、再送回数が増加する。 973 933 */ 974 934 syscall(rel_net_buf(input)); 975 935 976 /* é信端ç¹ã®ããã¯ã解é¤ããã*/936 /* 通信端点のロックを解除する。*/ 977 937 syscall(sig_sem(cep->semid_lock)); 978 938 return; … … 985 945 qhdr = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff); 986 946 987 /* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/947 /* 受信済みシーケンス番号を更新する。*/ 988 948 cep->rcv_nxt += inlen; 989 949 990 /* ç·æ¥ãã¼ã¿ã® SDU è£æ£ãè¡ãã*/950 /* 緊急データの SDU 補正を行う。*/ 991 951 if (qhdr->urp > 0 && inlen > 0) { 992 952 inlen -= qhdr->urp; … … 997 957 last = cep->rwbuf_count; 998 958 999 /* ãããã¯ã¼ã¯ãããã¡ãåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æå¾ã«é£çµããã*/959 /* ネットワークバッファを受信ウィンドバッファキューの最後に連結する。*/ 1000 960 qhdr->next = NULL; 1001 961 nextp = &cep->rwbufq; … … 1005 965 1006 966 /* 1007 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã1008 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦1009 * ããªããã¨ãç¥ãããããã§ããã967 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 968 * これは、アプリケーションに、相手からこれ以上データが送られて 969 * こないことを知らせるためである。 1010 970 */ 1011 971 if (inlen > 0) { … … 1015 975 } 1016 976 1017 /* é信端ç¹ã®ããã¯ã解é¤ããã*/977 /* 通信端点のロックを解除する。*/ 1018 978 syscall(sig_sem(cep->semid_lock)); 1019 979 1020 980 #ifdef TCP_CFG_NON_BLOCKING 1021 981 1022 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ãã³ããããã³ã°ã³ã¼ã«*/982 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ノンブロッキングコール */ 1023 983 1024 984 int_t len; … … 1028 988 1029 989 /* 1030 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã1031 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦1032 * ããªããã¨ãç¥ãããããã§ããã990 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 991 * これは、アプリケーションに、相手からこれ以上データが送られて 992 * こないことを知らせるためである。 1033 993 */ 1034 994 if (len > 0 || inlen == 0) { 1035 995 1036 /* tcp_rcv_buf ã®å²å½ã¦é·ãè¨å®ããã*/996 /* tcp_rcv_buf の割当て長を設定する。*/ 1037 997 cep->rcv_buf_len = len; 1038 998 1039 /* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/999 /* 受信ウィンドバッファのアドレスを返す。*/ 1040 1000 *cep->rcv_p_buf = GET_TCP_SDU(cep->rwbufq, 1041 1001 GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff) + qhdr->soff; … … 1059 1019 1060 1020 /* 1061 * é信端ç¹ãããã¯ãã¦ã1062 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã1021 * 通信端点をロックして、 1022 * 受信ウィンドバッファキューのネットワークバッファを解放する。 1063 1023 */ 1064 1024 syscall(wai_sem(cep->semid_lock)); … … 1068 1028 } 1069 1029 1070 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/1030 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 1071 1031 cep->rcv_tskid = TA_NULL; 1072 1032 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; 1073 1033 } 1074 1034 1075 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ãã³ããããã³ã°ã³ã¼ã«*/1035 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ノンブロッキングコール */ 1076 1036 int_t len; 1077 1037 1078 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/1038 /* 受信ウィンドバッファからデータを取り出す。*/ 1079 1039 if ((len = tcp_read_rwbuf_cs(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) { 1080 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/1040 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 1081 1041 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1082 1042 sig_sem(SEM_TCP_POST_OUTPUT); … … 1084 1044 1085 1045 /* 1086 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã1087 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦1088 * ããªããã¨ãç¥ãããããã§ããã1046 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 1047 * これは、アプリケーションに、相手からこれ以上データが送られて 1048 * こないことを知らせるためである。 1089 1049 */ 1090 1050 if (len > 0 || inlen == 0) { … … 1106 1066 } 1107 1067 1108 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/1068 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 1109 1069 cep->rcv_tskid = TA_NULL; 1110 1070 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 1116 1076 if (inlen == 0 && cep->rwbuf_count == 0) { 1117 1077 /* 1118 * åä¿¡ã¦ã£ã³ããããã¡å 1119 ã®ãã¼ã¿æ°ã 0 ã§ã 1120 * ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã 1121 * é信端ç¹ãããã¯ãã¦ã 1122 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã 1078 * 受信ウィンドバッファ内のデータ数が 0 で、 1079 * 相手から FIN フラグが付いたセグメントを受信したときは、 1080 * 通信端点をロックして、 1081 * 受信ウィンドバッファキューのネットワークバッファを解放する。 1123 1082 */ 1124 1083 syscall(wai_sem(cep->semid_lock)); … … 1128 1087 1129 1088 /* 1130 * åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå 1131 ¥ããã inlen == 0 ã®æãå 1132 ¥åã¿ã¹ã¯ãèµ·åºããã 1133 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã 1134 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéãã㦠1135 * ããªããã¨ãç¥ãããããã§ããã 1089 * 受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。 1090 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 1091 * これは、アプリケーションに、相手からこれ以上データが送られて 1092 * こないことを知らせるためである。 1136 1093 */ 1137 1094 if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) { -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 135 123 136 124 /* 137 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹138 */ 139 140 /* 141 * tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèªã¿åºãã125 * TCP 通信端点の送信ウィンドバッファの省コピー機能が無効 126 */ 127 128 /* 129 * tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す。 142 130 */ 143 131 … … 147 135 uint8_t *wptr, *rptr; 148 136 149 /* SDU ã®å¤§ããããã§ãã¯ããã*/137 /* SDU の大きさをチェックする。*/ 150 138 if (GET_IP_SDU_SIZE(GET_IP_HDR(output)) < GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len) { 151 139 syslog(LOG_INFO, "[TCP] shrink SUD len: %d -> %d", … … 156 144 wptr = GET_TCP_SDU(output, IF_IP_TCP_HDR_OFFSET); 157 145 158 /* é信端ç¹ãããã¯ããã*/146 /* 通信端点をロックする。*/ 159 147 syscall(wai_sem(cep->semid_lock)); 160 148 … … 162 150 if (rptr - (uint8_t*)cep->sbuf > cep->sbufsz) { 163 151 164 /* 転ééå§ãéä¿¡ã¦ã£ã³ããããã¡ã®çµãããè¶ 165 ããã¨ãã®å¦çã*/ 152 /* 転送開始が送信ウィンドバッファの終わりを超えるときの処理 */ 166 153 rptr = (uint8_t*)cep->sbuf_rptr - (cep->sbufsz - doff); 167 154 } … … 169 156 uint_t sub; 170 157 171 /* 転éç¯å²ãã©ã¦ã³ãããã¨ãã®å¦ç*/158 /* 転送範囲がラウンドするときの処理 */ 172 159 sub = (uint_t)(cep->sbufsz - (rptr - (uint8_t*)cep->sbuf)); 173 160 memcpy((void*)wptr, rptr, (size_t)sub); … … 181 168 NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_DATA_OCTETS], len); 182 169 183 /* é信端ç¹ã®ããã¯ã解é¤ããã*/170 /* 通信端点のロックを解除する。*/ 184 171 syscall(sig_sem(cep->semid_lock)); 185 172 } 186 173 187 174 /* 188 * tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã175 * tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する。 189 176 */ 190 177 … … 194 181 uint_t last; 195 182 196 /* é信端ç¹ãããã¯ããã*/183 /* 通信端点をロックする。*/ 197 184 syscall(wai_sem(cep->semid_lock)); 198 185 … … 200 187 201 188 if (cep->sbuf_rptr + len > (uint8_t*)cep->sbuf + cep->sbufsz) 202 /* ã©ã¦ã³ãããã¨ãã®è¨ç®*/189 /* ラウンドするときの計算 */ 203 190 cep->sbuf_rptr -= cep->sbufsz - len; 204 191 else … … 206 193 cep->swbuf_count -= (uint16_t)len; 207 194 208 /* é信端ç¹ã®ããã¯ã解é¤ããã*/195 /* 通信端点のロックを解除する。*/ 209 196 syscall(sig_sem(cep->semid_lock)); 210 197 211 198 #ifdef TCP_CFG_NON_BLOCKING 212 199 213 if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) { /* ãã³ããããã³ã°ã³ã¼ã«*/214 215 /* é信端ç¹ãããã¯ããã*/200 if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) { /* ノンブロッキングコール */ 201 202 /* 通信端点をロックする。*/ 216 203 syscall(wai_sem(cep->semid_lock)); 217 204 218 /* éä¿¡ãã¼ã¿é·ãè¨ç®ããã*/205 /* 送信データ長を計算する。*/ 219 206 if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) 220 /* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/207 /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */ 221 208 len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)); 222 209 else 223 210 len = cep->sbufsz - cep->swbuf_count; 224 211 225 /* é信端ç¹ã®ããã¯ã解é¤ããã*/212 /* 通信端点のロックを解除する。*/ 226 213 syscall(sig_sem(cep->semid_lock)); 227 214 228 215 if (len > 0) { 229 216 230 /* tcp_get_buf ã®å²å½ã¦é·ãè¨å®ããã*/217 /* tcp_get_buf の割当て長を設定する。*/ 231 218 cep->get_buf_len = len; 232 219 233 /* éä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/220 /* 送信ウィンドバッファのアドレスを返す。*/ 234 221 *cep->snd_p_buf = cep->sbuf_wptr; 235 222 … … 248 235 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 249 236 250 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/237 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 251 238 cep->snd_tskid = TA_NULL; 252 239 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 257 244 258 245 else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT || 259 cep->snd_nblk_tfn == TFN_TCP_SND_OOB) { /* ãã³ããããã³ã°ã³ã¼ã«*/246 cep->snd_nblk_tfn == TFN_TCP_SND_OOB) { /* ノンブロッキングコール */ 260 247 261 248 #else /* of #ifdef TCP_CFG_EXTENTIONS */ 262 249 263 else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) { /* ãã³ããããã³ã°ã³ã¼ã«*/250 else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) { /* ノンブロッキングコール */ 264 251 265 252 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ … … 267 254 ER_UINT error; 268 255 269 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/256 /* 送信ウィンドバッファにデータを書き込む。*/ 270 257 error = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len); 271 258 272 259 #ifdef TCP_CFG_EXTENTIONS 273 260 274 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/261 /* 送信緊急ポインタを設定する。*/ 275 262 if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB) 276 263 cep->snd_up = cep->snd_una + error; … … 293 280 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 294 281 295 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/282 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 296 283 cep->snd_tskid = TA_NULL; 297 284 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 301 288 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 302 289 303 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããåºæ¥ããåºåã¿ã¹ã¯ãèµ·åºããã*/290 /* 送信ウィンドバッファに空きが出来たら出力タスクを起床する。*/ 304 291 if (last == cep->sbufsz && cep->swbuf_count < cep->sbufsz) 305 292 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); … … 312 299 313 300 if (cep->swbuf_count > 0) { 314 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°åºåããã¹ãããã*/301 /* 送信ウィンドバッファにデータがあれば出力をポストする。*/ 315 302 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 316 303 sig_sem(SEM_TCP_POST_OUTPUT); … … 319 306 320 307 /* 321 * tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã308 * tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む。 322 309 */ 323 310 … … 327 314 uint_t offset; 328 315 329 /* é信端ç¹ãããã¯ããã*/316 /* 通信端点をロックする。*/ 330 317 syscall(wai_sem(cep->semid_lock)); 331 318 332 /* len ã¨éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã®å°ããæ¹ã移ããã¼ã¿æ°ã«ããã*/319 /* len と送信ウィンドバッファの空きの小さい方を移すデータ数にする。*/ 333 320 if (len > (cep->sbufsz - cep->swbuf_count)) 334 321 len = cep->sbufsz - cep->swbuf_count; 335 322 336 /* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/323 /* 書き込みポインタがラウンドするときの処理 */ 337 324 if (len > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) { 338 325 offset = (uint_t)(cep->sbufsz - (cep->sbuf_wptr -(uint8_t*)cep->sbuf)); … … 348 335 cep->swbuf_count += len - offset; 349 336 350 /* é信端ç¹ã®ããã¯ã解é¤ããã*/337 /* 通信端点のロックを解除する。*/ 351 338 syscall(sig_sem(cep->semid_lock)); 352 339 … … 355 342 356 343 /* 357 * tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 358 ã¤ã 344 * tcp_wait_swbuf -- 送信ウィンドバッファが空くのを待つ。 359 345 */ 360 346 … … 367 353 while (cep->swbuf_count >= cep->sbufsz) { 368 354 /* 369 * éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãããªããã°ãåºåããã¹ããã¦ã 370 * éä¿¡ã¦ã£ã³ããããã¡ã空ãã¾ã§å¾ 371 ã¤ã 355 * 送信ウィンドバッファの空きがなければ、出力をポストして、 356 * 送信ウィンドバッファが空くまで待つ。 372 357 */ 373 358 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; … … 380 365 381 366 /* 382 * éä¿¡ã§ããããCEP ã® FSM ç¶æ 383 ãè¦ãã 384 * éä¿¡ã¦ã£ã³ããããã¡ã空ãã¾ã§å¾ 385 ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã 386 * ã³ãã¯ã·ã§ã³ãåæããããã¨ãæå³ãã¦ããã 367 * 送信できるか、CEP の FSM 状態を見る。 368 * 送信ウィンドバッファが空くまで待つ間に、送信不能になった場合は、 369 * コネクションが切断されたことを意味している。 387 370 */ 388 371 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) { … … 394 377 } 395 378 /* 396 * tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã379 * tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する。 397 380 */ 398 381 … … 402 385 uint_t len; 403 386 404 /* é信端ç¹ãããã¯ããã*/387 /* 通信端点をロックする。*/ 405 388 syscall(wai_sem(cep->semid_lock)); 406 389 407 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å 408 é ãè¨å®ããã*/ 390 /* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/ 409 391 *p_buf = cep->sbuf_wptr; 410 392 411 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããµã¤ãºãè¨ç®ããã*/393 /* 送信ウィンドバッファの空きサイズを計算する。*/ 412 394 if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) 413 /* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/395 /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */ 414 396 len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)); 415 397 else 416 398 len = cep->sbufsz - cep->swbuf_count; 417 399 418 /* é信端ç¹ã®ããã¯ã解é¤ããã*/400 /* 通信端点のロックを解除する。*/ 419 401 syscall(sig_sem(cep->semid_lock)); 420 402 421 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/403 /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/ 422 404 cep->get_buf_len = len; 423 405 return (ER_UINT)len; … … 425 407 426 408 /* 427 * tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã409 * tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする。 428 410 */ 429 411 … … 431 413 tcp_send_swbuf_ncs (T_TCP_CEP *cep, uint_t len) 432 414 { 433 /* é信端ç¹ãããã¯ããã*/415 /* 通信端点をロックする。*/ 434 416 syscall(wai_sem(cep->semid_lock)); 435 417 … … 437 419 cep->swbuf_count += len; 438 420 439 /* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/421 /* 書込みポインタがラウンドするときの処理 */ 440 422 if (cep->sbuf_wptr >= (uint8_t*)cep->sbuf + cep->sbufsz) 441 423 cep->sbuf_wptr = (uint8_t*)cep->sbuf; 442 424 443 /* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/425 /* tcp_get_buf の割当て長をリセットする。*/ 444 426 cep->get_buf_len = 0; 445 427 446 /* é信端ç¹ã®ããã¯ã解é¤ããã*/428 /* 通信端点のロックを解除する。*/ 447 429 syscall(sig_sem(cep->semid_lock)); 448 430 449 /* éä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/431 /* 送信ウィンドバッファがフルのときは強制的に送信する。*/ 450 432 if (cep->swbuf_count >= cep->sbufsz) 451 433 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR; … … 453 435 454 436 /* 455 * tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããã437 * tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする。 456 438 */ 457 439 … … 467 449 468 450 /* 469 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹470 */ 471 472 /* 473 * tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã451 * TCP 通信端点の受信ウィンドバッファの省コピー機能が無効 452 */ 453 454 /* 455 * tcp_drop_rwbuf -- 受信ウィンドバッファから指定されたオクテット分削除する。 474 456 */ 475 457 … … 480 462 cep->rbuf_rptr += len; 481 463 482 /* èªã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/464 /* 読み出しポインタがラウンドするときの処理 */ 483 465 if (cep->rbuf_rptr >= (uint8_t*)cep->rbuf + cep->rbufsz) 484 466 cep->rbuf_rptr = (uint8_t*)cep->rbuf; … … 486 468 487 469 /* 488 * tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèªã¿åºãã470 * tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。 489 471 */ 490 472 … … 494 476 uint_t offset; 495 477 496 /* é信端ç¹ãããã¯ããã*/478 /* 通信端点をロックする。*/ 497 479 syscall(wai_sem(cep->semid_lock)); 498 480 499 /* len ã¨åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿æ°ã®å°ããæ¹ãåãåºããã¼ã¿æ°ã«ããã*/481 /* len と受信ウィンドバッファのデータ数の小さい方を取り出すデータ数にする。*/ 500 482 if (len > cep->rwbuf_count) 501 483 len = cep->rwbuf_count; 502 484 503 /* èªã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/485 /* 読み出しポインタがラウンドするときの処理 */ 504 486 if (len > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) { 505 487 offset = (uint_t)(cep->rbufsz - (cep->rbuf_rptr -(uint8_t*)cep->rbuf)); … … 515 497 cep->rbuf_rptr += len - offset; 516 498 517 /* é信端ç¹ã®ããã¯ã解é¤ããã*/499 /* 通信端点のロックを解除する。*/ 518 500 syscall(sig_sem(cep->semid_lock)); 519 501 … … 522 504 523 505 /* 524 * tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã506 * tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。 525 507 */ 526 508 … … 530 512 uint_t len; 531 513 532 /* é信端ç¹ãããã¯ããã*/514 /* 通信端点をロックする。*/ 533 515 syscall(wai_sem(cep->semid_lock)); 534 516 535 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/517 /* 受信ウィンドバッファのデータ長を計算する。*/ 536 518 if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) 537 /* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/519 /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */ 538 520 len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)); 539 521 else 540 522 len = cep->rwbuf_count; 541 523 542 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å 543 é ãè¨å®ããã*/ 524 /* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/ 544 525 *p_buf = cep->rbuf_rptr; 545 526 546 /* é信端ç¹ã®ããã¯ã解é¤ããã*/527 /* 通信端点のロックを解除する。*/ 547 528 syscall(sig_sem(cep->semid_lock)); 548 529 549 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/530 /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/ 550 531 cep->rcv_buf_len = len; 551 532 return len; … … 553 534 554 535 /* 555 * tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã536 * tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。 556 537 * 557 * 注æ: 558 * å 559 ¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã 560 * 並ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã 561 * 追å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã 538 * 注意: 539 * 入力 input は、T_TCP_Q_HDR によりリンクされ、 540 * 並べ替えが終了していなければならない。また、 541 * 追加するデータは、受信ウィンドバッファに収まること。 562 542 */ 563 543 … … 568 548 uint_t offset, inlen, last; 569 549 570 /* é信端ç¹ãããã¯ããã*/550 /* 通信端点をロックする。*/ 571 551 syscall(wai_sem(cep->semid_lock)); 572 552 573 553 qhdr = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff); 574 554 575 /* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/555 /* 受信済みシーケンス番号を更新する。*/ 576 556 cep->rcv_nxt += qhdr->slen; 577 557 … … 579 559 inlen = qhdr->slen; 580 560 581 /* ç·æ¥ãã¼ã¿ã® SDU è£æ£ãè¡ãã*/561 /* 緊急データの SDU 補正を行う。*/ 582 562 if (qhdr->urp > 0 && inlen > 0) { 583 563 inlen -= qhdr->urp; … … 587 567 588 568 /* 589 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã590 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦591 * ããªããã¨ãç¥ãããããã§ããã569 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 570 * これは、アプリケーションに、相手からこれ以上データが送られて 571 * こないことを知らせるためである。 592 572 */ 593 573 if (inlen > 0) { 594 574 595 /* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/575 /* 書き込みポインタがラウンドするときの処理 */ 596 576 if (inlen > cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)) { 597 577 offset = (uint_t)(cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)); … … 616 596 #ifdef TCP_CFG_NON_BLOCKING 617 597 618 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ãã³ããããã³ã°ã³ã¼ã«*/598 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ノンブロッキングコール */ 619 599 620 600 int_t len; 621 601 622 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨ç®ããã*/602 /* 受信ウィンドバッファの空きデータ長を計算する。*/ 623 603 if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) { 624 /* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/604 /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */ 625 605 len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)); 626 606 } … … 628 608 len = cep->rwbuf_count; 629 609 630 /* é信端ç¹ã®ããã¯ã解é¤ããã*/610 /* 通信端点のロックを解除する。*/ 631 611 syscall(sig_sem(cep->semid_lock)); 632 612 633 613 /* 634 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã635 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦636 * ããªããã¨ãç¥ãããããã§ããã614 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 615 * これは、アプリケーションに、相手からこれ以上データが送られて 616 * こないことを知らせるためである。 637 617 */ 638 618 if (len > 0 || inlen == 0) { 639 619 640 /* tcp_rcv_buf ã®å²å½ã¦é·ãè¨å®ããã*/620 /* tcp_rcv_buf の割当て長を設定する。*/ 641 621 cep->rcv_buf_len = len; 642 622 643 /* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/623 /* 受信ウィンドバッファのアドレスを返す。*/ 644 624 *cep->rcv_p_buf = cep->rbuf_rptr; 645 625 … … 663 643 664 644 /* 665 * é信端ç¹ãããã¯ãã¦ã666 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã645 * 通信端点をロックして、 646 * 受信ウィンドバッファキューのネットワークバッファを解放する。 667 647 */ 668 648 syscall(wai_sem(cep->semid_lock)); … … 672 652 } 673 653 674 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/654 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 675 655 cep->rcv_tskid = TA_NULL; 676 656 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; 677 657 } 678 658 679 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ãã³ããããã³ã°ã³ã¼ã«*/659 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ノンブロッキングコール */ 680 660 ER_UINT len; 681 661 682 /* é信端ç¹ã®ããã¯ã解é¤ããã*/662 /* 通信端点のロックを解除する。*/ 683 663 syscall(sig_sem(cep->semid_lock)); 684 664 685 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/665 /* 受信ウィンドバッファからデータを取り出す。*/ 686 666 if ((len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) { 687 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/667 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 688 668 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 689 669 sig_sem(SEM_TCP_POST_OUTPUT); … … 691 671 692 672 /* 693 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã694 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦695 * ããªããã¨ãç¥ãããããã§ããã673 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 674 * これは、アプリケーションに、相手からこれ以上データが送られて 675 * こないことを知らせるためである。 696 676 */ 697 677 if (len > 0 || inlen == 0) { … … 713 693 } 714 694 715 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/695 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 716 696 cep->rcv_tskid = TA_NULL; 717 697 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 722 702 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 723 703 724 /* é信端ç¹ã®ããã¯ã解é¤ããã*/704 /* 通信端点のロックを解除する。*/ 725 705 syscall(sig_sem(cep->semid_lock)); 726 706 727 707 if (inlen == 0 && cep->rwbuf_count == 0) { 728 708 /* 729 * åä¿¡ã¦ã£ã³ããããã¡å 730 ã®ãã¼ã¿æ°ã 0 ã§ã 731 * ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã 732 * é信端ç¹ãããã¯ãã¦ã 733 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã 709 * 受信ウィンドバッファ内のデータ数が 0 で、 710 * 相手から FIN フラグが付いたセグメントを受信したときは、 711 * 通信端点をロックして、 712 * 受信ウィンドバッファキューのネットワークバッファを解放する。 734 713 */ 735 714 syscall(wai_sem(cep->semid_lock)); … … 739 718 740 719 /* 741 * åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå 742 ¥ããã inlen == 0 ã®æãå 743 ¥åã¿ã¹ã¯ãèµ·åºããã 744 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã 745 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéãã㦠746 * ããªããã¨ãç¥ãããããã§ããã 720 * 受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。 721 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 722 * これは、アプリケーションに、相手からこれ以上データが送られて 723 * こないことを知らせるためである。 747 724 */ 748 725 if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 123 111 124 112 /* 125 * å±æé¢æ°113 * 局所関数 126 114 */ 127 115 … … 135 123 136 124 /* 137 * ããã¯ãªãæé125 * バックオフ時間 138 126 * 139 * åéãè¡ããã³ã«ãã¿ã¤ã ã¢ã¦ãã®æéã延é·ããã127 * 再送を行うたびに、タイムアウトの時間を延長する。 140 128 */ 141 129 … … 147 135 }; 148 136 149 #define TCP_TOTAL_BACK_OFF 511 /* ããã¯ãªãæéã®åè¨*/150 151 /* 152 * tcp_timers -- ã¿ã¤ã ã¢ã¦ãå¦ç137 #define TCP_TOTAL_BACK_OFF 511 /* バックオフ時間の合計 */ 138 139 /* 140 * tcp_timers -- タイムアウト処理 153 141 */ 154 142 … … 162 150 163 151 /* 164 * åéã¿ã¤ã152 * 再送タイマ 165 153 */ 166 154 case TCP_TIM_REXMT: 167 155 168 156 /* 169 * æ大åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ã«ãªã£ãã¨ãã¯ã170 * ã³ãã¯ã·ã§ã³ãåæããã157 * 最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) になったときは、 158 * コネクションを切断する。 171 159 */ 172 160 if (++ cep->rxtshift > TCP_MAX_REXMT_SHIFT) { … … 178 166 179 167 /* 180 * åéã¿ã¤ã ã¢ã¦ããè¨ç®ããã168 * 再送タイムアウトを計算する。 181 169 */ 182 170 cep->rxtcur = tcp_range_set((T_TCP_TIME)(tcp_rexmt_val(cep) * tcp_back_off[cep->rxtshift]), … … 186 174 187 175 /* 188 * srtt: å¹³æ»åãããRTT189 * rttvar: å¹³æ»åãããåæ£176 * srtt: 平滑化された RTT 177 * rttvar: 平滑化された分散 190 178 * 191 * åéåæ°ãæ大åéåæ°ã® 1/4 ã«ãªã£ãã¨ãã¯ã192 * å¹³æ»åãããåæ£ (rttvar) ã« srtt ãå ç®ãã193 * å¹³æ»åããã RTT ã 0 ã«ããã179 * 再送回数が最大再送回数の 1/4 になったときは、 180 * 平滑化された分散 (rttvar) に srtt を加算し、 181 * 平滑化された RTT を 0 にする。 194 182 * 195 183 */ … … 200 188 201 189 /* 202 * snd_nxt: 次ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ããSEQ203 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ ã¾ãã¯ã確èªãããæ大éä¿¡SEQ190 * snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ 191 * snd_una: 未確認の最小送信 SEQ または、確認された最大送信 SEQ 204 192 * 205 * ååéä¿¡ãã SEQ (snd_nxt) ã206 * 確èªãããæ大éä¿¡ SEQ (snd_una) ã¾ã§æ»ãã193 * 前回送信した SEQ (snd_nxt) を 194 * 確認された最大送信 SEQ (snd_una) まで戻す。 207 195 */ 208 196 cep->snd_nxt = cep->snd_una; … … 210 198 211 199 /* 212 * rtt: å¾å¾©æéã®è¨æ¸¬ãä¸æ¢ããã200 * rtt: 往復時間の計測を中止する。 213 201 */ 214 202 cep->rtt = 0; 215 203 216 204 /* 217 * éä¿¡ã¦ã¤ã³ãã®è¨å®205 * 送信ウインドの設定 218 206 * 219 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº220 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº221 * maxseg : ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº207 * snd_wnd: 相手の受信可能ウィンドサイズ 208 * snd_cwnd: 輻輳ウィンドサイズ 209 * maxseg : 相手の最大受信セグメントサイズ 222 210 * 223 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ãã224 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã®225 * ã©ã¡ããå°ãããµã¤ãºã® 1/2 ããæ´ã«226 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã§å²ã£ãå¤ã227 * ãã ãã2 以ä¸211 * 相手の受信可能ウィンドサイズ (snd_wnd) か、 212 * 輻輳ウィンドサイズ (snd_cwnd) の 213 * どちらか小さいサイズの 1/2 を、更に 214 * 相手の最大受信セグメントサイズ (maxseg) で割った値。 215 * ただし、2 以上 228 216 */ 229 217 if (cep->snd_wnd < cep->snd_cwnd) … … 236 224 237 225 /* 238 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã¯239 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã«ã240 * 輻輳ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ã¯241 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã® win åã«242 * è¨å®ããã226 * 輻輳ウィンドサイズ (snd_cwnd) は 227 * 相手の受信可能ウィンドサイズ (snd_wnd) に、 228 * 輻輳ウィンドサイズのしきい値 (snd_ssthresh) は 229 * 相手の受信可能ウィンドサイズ (snd_wnd) の win 倍に 230 * 設定する。 243 231 */ 244 232 cep->snd_cwnd = cep->maxseg; … … 246 234 cep->dupacks = 0; 247 235 248 /* åºåããã¹ãããã*/236 /* 出力をポストする。*/ 249 237 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 250 238 sig_sem(SEM_TCP_POST_OUTPUT); … … 252 240 253 241 /* 254 * æç¶ã¿ã¤ã242 * 持続タイマ 255 243 */ 256 244 case TCP_TIM_PERSIST: 257 245 258 246 /* 259 * æ大åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ãè¶ 260 ãã¦ãã¦ã 261 * ã¢ã¤ãã«æéããä¿çã¿ã¤ãã®æ¨æºå¤ (TCP_TVAL_KEEP_IDLEã 262 * æ¨æº 2 * 60 * 60 ç§) 以ä¸ãã 263 * åéã¿ã¤ã ã¢ã¦ãå¤ * ããã¯ãªãæéã®åè¨ä»¥ä¸ãªã 264 * ã³ãã¯ã·ã§ã³ãåæããã 247 * 最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) を超えていて、 248 * アイドル時間が、保留タイマの標準値 (TCP_TVAL_KEEP_IDLE、 249 * 標準 2 * 60 * 60 秒) 以上か、 250 * 再送タイムアウト値 * バックオフ時間の合計以上なら 251 * コネクションを切断する。 265 252 */ 266 253 if (cep->rxtshift > TCP_MAX_REXMT_SHIFT && … … 272 259 } 273 260 274 /* æç¶ã¿ã¤ããåè¨å®ããåºåããã¹ãããã*/261 /* 持続タイマを再設定し、出力をポストする。*/ 275 262 tcp_set_persist_timer(cep); 276 263 … … 280 267 281 268 /* 282 * ä¿ç (keep alive) ã¿ã¤ã269 * 保留 (keep alive) タイマ 283 270 */ 284 271 case TCP_TIM_KEEP: 285 272 286 273 /* 287 * ã³ãã¯ã·ã§ã³ãéè¨ãããã¾ã§ã«ã¿ã¤ã ã¢ã¦ãããã288 * ã³ãã¯ã·ã§ã³ã®éè¨ãä¸æ¢ããã274 * コネクションが開設されるまでにタイムアウトしたら 275 * コネクションの開設を中止する。 289 276 */ 290 277 if (cep->fsm_state < TCP_FSM_ESTABLISHED) { … … 320 307 321 308 /* 322 * 2MSL ã¿ã¤ã309 * 2MSL タイマ 323 310 */ 324 311 case TCP_TIM_2MSL: … … 336 323 337 324 /* 338 * tcp_cancel_timers -- å 339 ¨ã¦ã®ã¿ã¤ãããã£ã³ã»ã«ããã 325 * tcp_cancel_timers -- 全てのタイマをキャンセルする。 340 326 */ 341 327 … … 352 338 353 339 /* 354 * tcp_tw_timo -- Time Wait ç¨ TCP é信端ç¹ã®ã¿ã¤ã ã¢ã¦ãå¦ç340 * tcp_tw_timo -- Time Wait 用 TCP 通信端点のタイムアウト処理 355 341 */ 356 342 … … 364 350 365 351 /* 366 * Time Wait ç¨ TCP é信端ç¹ã§ã¿ã¤ã ã¢ã¦ãã®ã¨ã³ããªãæ¢ç´¢ãã367 * æ¢ç´¢ããã¨ã³ããªã空ãã«ããã352 * Time Wait 用 TCP 通信端点でタイムアウトのエントリを探索し、 353 * 探索したエントリを空きにする。 368 354 */ 369 355 frees = 0; … … 375 361 376 362 /* 377 * Time Wait ç¨ TCP é信端ç¹ã®ç©ºãã¨ã³ããªãçºçããã 378 * æ¨æº TCP é信端ç¹ã§ Time Wait ä¸ã® TCP é信端ç¹ãæ¢ç´¢ãã 379 * å¿ 380 è¦ãªæ 381 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã¦ã 382 * æ¨æºã® TCP é信端ç¹ãéæ¾ããã 363 * Time Wait 用 TCP 通信端点の空きエントリが発生したら 364 * 標準 TCP 通信端点で Time Wait 中の TCP 通信端点を探索し、 365 * 必要な情報を Time Wait 用 TCP 通信端点に移して、 366 * 標準の TCP 通信端点を開放する。 383 367 */ 384 368 if (frees > 0) { … … 391 375 392 376 /* 393 * ãã£ã¨ãé·ãé Time Wait ãã¦ãã TCP é信端ç¹ãéæ¾ããã377 * もっとも長い間 Time Wait している TCP 通信端点を開放する。 394 378 */ 395 379 while (waits > 0) { … … 414 398 415 399 /* 416 * tcp_slow_timo -- 500 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°400 * tcp_slow_timo -- 500 [ms] 毎に呼出される TCP タイムアウト関数 417 401 */ 418 402 … … 456 440 457 441 /* 458 * tcp_fast_timo -- 200 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°442 * tcp_fast_timo -- 200 [ms] 毎に呼出される TCP タイムアウト関数 459 443 */ 460 444 … … 480 464 481 465 /* 482 * tcp_range_set -- æéãæå®ããç¯å²ã«è¨å®ããã466 * tcp_range_set -- 時間を指定した範囲に設定する。 483 467 */ 484 468 … … 495 479 496 480 /* 497 * tcp_set_persist_timer -- æç¶ã¿ã¤ãã®è¨å®481 * tcp_set_persist_timer -- 持続タイマの設定 498 482 */ 499 483 … … 504 488 505 489 /* 506 * srtt: å¹³æ»åãããRTT507 * rttvar: å¹³æ»åãããåæ£490 * srtt: 平滑化された RTT 491 * rttvar: 平滑化された分散 508 492 */ 509 493 time = ((cep->srtt >> 2) + cep->rttvar) >> 1; 510 494 511 495 /* 512 * åéã¿ã¤ããè¨å®ããã¦ããã°å復ä¸è½ã¨ã©ã¼496 * 再送タイマも設定されていれば回復不能エラー 513 497 */ 514 498 if (cep->timer[TCP_TIM_REXMT]) … … 516 500 517 501 /* 518 * æç¶ã¿ã¤ããè¨å®ããã502 * 持続タイマを設定する。 519 503 */ 520 504 cep->timer[TCP_TIM_PERSIST] = tcp_range_set((T_TCP_TIME)(time * tcp_back_off[cep->rxtshift]), … … 523 507 524 508 /* 525 * åéåæ°ãæ´æ°ããã509 * 再送回数を更新する。 526 510 */ 527 511 if (cep->rxtshift < TCP_MAX_REXMT_SHIFT) -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 83 71 #define _TCP_TIMER_H_ 84 72 85 /* TCP ã¿ã¤ãå¤æ°*/73 /* TCP タイマ変数 */ 86 74 87 #define NUM_TCP_TIMERS 4 /* TCP ã®ã¿ã¤ãæ°*/75 #define NUM_TCP_TIMERS 4 /* TCP のタイマ数 */ 88 76 89 #define TCP_TIM_REXMT 0 /* åéã¿ã¤ã*/90 #define TCP_TIM_PERSIST 1 /* æç¶ã¿ã¤ã*/91 #define TCP_TIM_KEEP 2 /* ä¿ç (keep alive) ã¿ã¤ã*/92 #define TCP_TIM_2MSL 3 /* 2MSL ã¿ã¤ã*/77 #define TCP_TIM_REXMT 0 /* 再送タイマ */ 78 #define TCP_TIM_PERSIST 1 /* 持続タイマ */ 79 #define TCP_TIM_KEEP 2 /* 保留 (keep alive) タイマ*/ 80 #define TCP_TIM_2MSL 3 /* 2MSL タイマ */ 93 81 94 /* MSL: Maximum Segment Lifetime, æ大ã»ã°ã¡ã³ãçåæé*/82 /* MSL: Maximum Segment Lifetime, 最大セグメント生存時間 */ 95 83 96 84 /* 97 * TCP/IP ã®ã¿ã¤ãã®å®ç¾©85 * TCP/IP のタイマの定義 98 86 */ 99 87 … … 103 91 #define TCP_SLOW_HZ (ULONG_C(1000)/TCP_SLOW_TMO/NET_TIMER_CYCLE) /* Hz */ 104 92 105 /* TCP ã¿ã¤ãå¤*/93 /* TCP タイマ値 */ 106 94 107 95 #define TCP_TVAL_MSL (TCP_SLOW_HZ * 30) 108 /* æ大ã»ã°ã¡ã³ãçåæé*/96 /* 最大セグメント生存時間 */ 109 97 110 #define TCP_TVAL_SRTT_BASE 0 /* æ»ãããªå¾å¾©æéã®åºæºå¤*/98 #define TCP_TVAL_SRTT_BASE 0 /* 滑らかな往復時間の基準値*/ 111 99 112 100 #define TCP_TVAL_RTO_BASE (TCP_SLOW_HZ * 3) 113 /* æ 114 å ±ãå¾ãããªãå ´åã®åéã¿ã¤ã ã¢ã¦ãã®åºæºå¤ */ 101 /* 情報が得られない場合の再送タイムアウトの基準値 */ 115 102 116 103 #define TCP_TVAL_MIN_PERSIST (TCP_SLOW_HZ * 5) 117 /* æç¶ã¿ã¤ã ã¢ã¦ãã®æå°å¤*/104 /* 持続タイムアウトの最小値 */ 118 105 #define TCP_TVAL_MAX_PERSIST (TCP_SLOW_HZ * 60) 119 /* æç¶ã¿ã¤ã ã¢ã¦ãã®æ大å¤*/106 /* 持続タイムアウトの最大値 */ 120 107 121 108 #define TCP_TVAL_KEEP_INIT (TCP_SLOW_HZ * 75) 122 /* ä¿çã¿ã¤ãã®åæå¤*/109 /* 保留タイマの初期値 */ 123 110 #define TCP_TVAL_KEEP_IDLE (TCP_SLOW_HZ * 2 * 60 * 60) 124 /* ä¿çã¿ã¤ãèµ·åã¾ã§ã®æ¨æºå¤*/111 /* 保留タイマ起動までの標準値*/ 125 112 #define TCP_TVAL_KEEP_INTERVAL (TCP_SLOW_HZ * 75) 126 /* ä¿çã¿ã¤ãã¤ã³ã¿ã¼ãã«ã®æ¨æºå¤*/127 #define TCP_TVAL_KEEP_COUNT 8 /* ä¿çã¿ã¤ã ã¢ã¦ãã®æ大å¤*/113 /* 保留タイマインターバルの標準値*/ 114 #define TCP_TVAL_KEEP_COUNT 8 /* 保留タイムアウトの最大値*/ 128 115 129 116 #define TCP_TVAL_MIN (TCP_SLOW_HZ * 3) 130 /* æéã®æå°åä½*/117 /* 時間の最小単位 */ 131 118 #define TCP_TVAL_MAX_REXMT (TCP_SLOW_HZ * 64) 132 /* æ大åéæé*/119 /* 最大再送時間 */ 133 120 134 121 /* 135 * 以ä¸ã®å¤æ°ã®å¤ã¯ãã¯ãã§è¨å®ããã122 * 以下の変数の値はマクロで設定する。 136 123 * 137 124 * tcp_maixidle = tcp_keepcnt * tcp_keepintvl … … 143 130 144 131 /* 145 * ãã®ä»ã®å®æ°132 * その他の定数 146 133 */ 147 134 148 #define TCP_MAX_REXMT_SHIFT 12 /* æ大åéåæ°*/135 #define TCP_MAX_REXMT_SHIFT 12 /* 最大再送回数 */ 149 136 150 /* TCP ã¿ã¤ãå¤ã®å*/137 /* TCP タイマ値の型 */ 151 138 152 139 typedef int16_t T_TCP_TIME; 153 140 154 141 /* 155 * é¢æ°142 * 関数 156 143 */ 157 144 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 132 120 133 121 /* 134 * IPv4 㨠IPv6 ã®åãæ¿ããã¯ã122 * IPv4 と IPv6 の切り替えマクロ 135 123 */ 136 124 … … 152 140 153 141 /* 154 * TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå 155 ¨ã¦ã®æ©è½ã 156 * ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ããæå¹ã«ããã 142 * TINET をライブラリ化しない場合は、全ての機能を 143 * オブジェクトファイルに出力するため、マクロを有効にする。 157 144 */ 158 145 … … 182 169 183 170 /* 184 * tcp_cre_rep -- TCP åä»å£ã®çæãæ¡å¼µæ©è½ã171 * tcp_cre_rep -- TCP 受付口の生成【拡張機能】 185 172 */ 186 173 … … 195 182 ER error; 196 183 197 /* TCP åä»å£ ID ããã§ãã¯ããã*/184 /* TCP 受付口 ID をチェックする。*/ 198 185 if (!VAID_TCP_REPID(repid)) 199 186 return E_ID; 200 187 201 /* pk_crep ã NULL ãªãã¨ã©ã¼*/188 /* pk_crep が NULL ならエラー */ 202 189 if (pk_crep == NULL) 203 190 return E_PAR; 204 191 205 /* TCP åä»å£ãå¾ãã*/192 /* TCP 受付口を得る。*/ 206 193 rep = GET_TCP_REP(repid); 207 194 208 /* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/195 /* TCP 受付口が、動的生成用でなければエラー */ 209 196 if (!DYNAMIC_TCP_REP(rep)) 210 197 return E_ID; 211 198 212 /* åä»å£ãããã¯ããã*/199 /* 受付口をロックする。*/ 213 200 syscall(wai_sem(rep->semid_lock)); 214 201 215 202 /* 216 * TCP åä»å£ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼203 * TCP 受付口をチェックする。生成済みであればエラー 217 204 */ 218 205 if (VALID_TCP_REP(rep)) … … 220 207 else { 221 208 222 /* TCP åä»å£çææ 223 å ±ãã³ãã¼ããã*/ 224 rep->repatr = pk_crep->repatr; /* åä»å£å±æ§ */ 225 rep->myaddr = pk_crep->myaddr; /* èªåã®ã¢ãã¬ã¹ */ 226 227 /* TCP åä»å£ãçææ¸ã¿ã«ããã*/ 209 /* TCP 受付口生成情報をコピーする。*/ 210 rep->repatr = pk_crep->repatr; /* 受付口属性 */ 211 rep->myaddr = pk_crep->myaddr; /* 自分のアドレス */ 212 213 /* TCP 受付口を生成済みにする。*/ 228 214 rep->flags |= TCP_REP_FLG_VALID; 229 215 error = E_OK; 230 216 } 231 217 232 /* åä»å£ã®ããã¯ã解é¤ããã*/218 /* 受付口のロックを解除する。*/ 233 219 syscall(sig_sem(rep->semid_lock)); 234 220 … … 245 231 246 232 /* 247 * tcp_find_cep_rep -- TCP åä»å£ããªã³ã¯ãã¦ãã TCP é信端ç¹ãå¾ãã233 * tcp_find_cep_rep -- TCP 受付口をリンクしている TCP 通信端点を得る。 248 234 */ 249 235 … … 262 248 263 249 /* 264 * tcp_del_rep -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ã250 * tcp_del_rep -- TCP 受付口の削除【拡張機能】 265 251 */ 266 252 … … 273 259 ER error = E_OK; 274 260 275 /* TCP åä»å£ ID ããã§ãã¯ããã*/261 /* TCP 受付口 ID をチェックする。*/ 276 262 if (!VAID_TCP_REPID(repid)) 277 263 return E_ID; 278 264 279 /* TCP åä»å£ãå¾ãã*/265 /* TCP 受付口を得る。*/ 280 266 rep = GET_TCP_REP(repid); 281 267 282 /* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/268 /* TCP 受付口が、動的生成用でなければエラー */ 283 269 if (!DYNAMIC_TCP_REP(rep)) 284 270 return E_ID; 285 271 286 /* åä»å£ãããã¯ããã*/272 /* 受付口をロックする。*/ 287 273 syscall(wai_sem(rep->semid_lock)); 288 274 289 /* TCP åä»å£ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼*/275 /* TCP 受付口をチェックする。未生成の場合はエラー */ 290 276 if (!VALID_TCP_REP(rep)) 291 277 error = E_NOEXS; … … 293 279 if ((cep = tcp_find_cep_rep(rep)) != NULL) { 294 280 /* 295 * ãã§ã«ååãªã¼ãã³ãã¦ããã¨ã296 * ï¼tcp_acp_cep ãå¼ã°ãã¦ããã¨ãï¼ã¯ã297 * tcp_acp_cep ãçµäºãããã281 * すでに受動オープンしているとき 282 *(tcp_acp_cep が呼ばれているとき)は、 283 * tcp_acp_cep を終了させる。 298 284 */ 299 285 300 /* é信端ç¹ãããã¯ããã*/286 /* 通信端点をロックする。*/ 301 287 syscall(wai_sem(cep->semid_lock)); 302 288 303 289 /* 304 * é信端ç¹ããåä»å£ã解æ¾ãã305 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã290 * 通信端点から受付口を解放し、 291 * イベントフラグをクローズに設定する。 306 292 */ 307 293 cep->rep = NULL; … … 338 324 cep->rcv_tfn = TFN_TCP_UNDEF; 339 325 340 /* é信端ç¹ã®ããã¯ã解é¤ããã*/326 /* 通信端点のロックを解除する。*/ 341 327 syscall(sig_sem(cep->semid_lock)); 342 328 … … 345 331 error = E_OK; 346 332 347 /* TCP åä»å£ãæªçæã«ããã*/333 /* TCP 受付口を未生成にする。*/ 348 334 rep->flags &= ~TCP_REP_FLG_VALID; 349 335 } 350 336 351 /* åä»å£ã®ããã¯ã解é¤ããã*/337 /* 受付口のロックを解除する。*/ 352 338 syscall(sig_sem(rep->semid_lock)); 353 339 … … 360 346 361 347 /* 362 * tcp_cre_cep -- TCP é信端ç¹ã®çæãæ¡å¼µæ©è½ã348 * tcp_cre_cep -- TCP 通信端点の生成【拡張機能】 363 349 */ 364 350 … … 373 359 ER error; 374 360 375 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/361 /* TCP 通信端点 ID をチェックする。*/ 376 362 if (!VAID_TCP_CEPID(cepid)) 377 363 return E_ID; 378 364 379 /* pk_ccep ã NULL ãªãã¨ã©ã¼*/365 /* pk_ccep が NULL ならエラー */ 380 366 if (pk_ccep == NULL) 381 367 return E_PAR; 382 368 383 /* TCP é信端ç¹ãå¾ãã*/369 /* TCP 通信端点を得る。*/ 384 370 cep = GET_TCP_CEP(cepid); 385 371 386 /* TCP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/372 /* TCP 通信端点が、動的生成用でなければエラー */ 387 373 if (!DYNAMIC_TCP_CEP(cep)) 388 374 return E_ID; 389 375 390 /* é信端ç¹ãããã¯ããã*/376 /* 通信端点をロックする。*/ 391 377 syscall(wai_sem(cep->semid_lock)); 392 378 393 379 /* 394 * TCP é信端ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼380 * TCP 通信端点をチェックする。生成済みであればエラー 395 381 */ 396 382 if (VALID_TCP_CEP(cep)) … … 398 384 else { 399 385 400 /* TCP é信端ç¹çææ 401 å ±ãã³ãã¼ããã*/ 402 cep->cepatr = pk_ccep->cepatr; /* é信端ç¹å±æ§ */ 403 cep->sbuf = pk_ccep->sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ */ 404 cep->sbufsz = pk_ccep->sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 405 cep->rbuf = pk_ccep->rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ */ 406 cep->rbufsz = pk_ccep->rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 407 cep->callback = (void*)pk_ccep->callback; /* ã³ã¼ã«ãã㯠*/ 408 409 /* TCP é信端ç¹ãçææ¸ã¿ã«ããã*/ 386 /* TCP 通信端点生成情報をコピーする。*/ 387 cep->cepatr = pk_ccep->cepatr; /* 通信端点属性 */ 388 cep->sbuf = pk_ccep->sbuf; /* 送信用ウィンドバッファ */ 389 cep->sbufsz = pk_ccep->sbufsz; /* 送信用ウィンドバッファサイズ */ 390 cep->rbuf = pk_ccep->rbuf; /* 受信用ウィンドバッファ */ 391 cep->rbufsz = pk_ccep->rbufsz; /* 受信用ウィンドバッファサイズ */ 392 cep->callback = (void*)pk_ccep->callback; /* コールバック */ 393 394 /* TCP 通信端点を生成済みにする。*/ 410 395 cep->flags |= TCP_CEP_FLG_VALID; 411 396 error = E_OK; 412 397 } 413 398 414 /* é信端ç¹ã®ããã¯ã解é¤ããã*/399 /* 通信端点のロックを解除する。*/ 415 400 syscall(sig_sem(cep->semid_lock)); 416 401 … … 423 408 424 409 /* 425 * tcp_del_cep -- TCP é信端ç¹ã®åé¤ãæ¡å¼µæ©è½ã410 * tcp_del_cep -- TCP 通信端点の削除【拡張機能】 426 411 */ 427 412 … … 436 421 ER error; 437 422 438 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/423 /* TCP 通信端点 ID をチェックする。*/ 439 424 if (!VAID_TCP_CEPID(cepid)) 440 425 return E_ID; 441 426 442 /* TCP é信端ç¹ãå¾ãã*/427 /* TCP 通信端点を得る。*/ 443 428 cep = GET_TCP_CEP(cepid); 444 429 445 /* TCP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/430 /* TCP 通信端点が、動的生成用でなければエラー */ 446 431 if (!DYNAMIC_TCP_CEP(cep)) 447 432 return E_ID; 448 433 449 /* é信端ç¹ãããã¯ããã*/434 /* 通信端点をロックする。*/ 450 435 syscall(wai_sem(cep->semid_lock)); 451 436 452 437 /* 453 * TCP é信端ç¹ããã§ãã¯ããã以ä¸ã®å ´åã¯ã¨ã©ã¼454 * ã»æªçæã455 * ã»ä½¿ç¨ä¸ã438 * TCP 通信端点をチェックする。以下の場合はエラー 439 * ・未生成。 440 * ・使用中。 456 441 */ 457 442 if (!VALID_TCP_CEP(cep)) … … 461 446 else { 462 447 463 /* TCP é信端ç¹ãæªçæã«ããã*/448 /* TCP 通信端点を未生成にする。*/ 464 449 cep->flags &= ~TCP_CEP_FLG_VALID; 465 450 error = E_OK; 466 451 } 467 452 468 /* é信端ç¹ã®ããã¯ã解é¤ããã*/453 /* 通信端点のロックを解除する。*/ 469 454 syscall(sig_sem(cep->semid_lock)); 470 455 … … 479 464 480 465 /* 481 * tcp_acp_cep -- æ¥ç¶è¦æ±å¾ 482 ã¡ (ååãªã¼ãã³)ãæ¨æºæ©è½ã 466 * tcp_acp_cep -- 接続要求待ち (受動オープン)【標準機能】 483 467 */ 484 468 … … 493 477 FLGPTN flag; 494 478 495 /* TCP åä»å£ããã§ãã¯ããã*/479 /* TCP 受付口をチェックする。*/ 496 480 if (!VAID_TCP_REPID(repid)) 497 481 return E_ID; … … 499 483 #ifdef TCP_CFG_NON_BLOCKING 500 484 501 /* p_dstaddr ã NULL ãªãã¨ã©ã¼*/485 /* p_dstaddr が NULL ならエラー */ 502 486 if (p_dstaddr == NULL) 503 487 return E_PAR; … … 505 489 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 506 490 507 /* p_dstaddr ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/491 /* p_dstaddr が NULL か、tmout が TMO_NBLK ならエラー */ 508 492 if (p_dstaddr == NULL || tmout == TMO_NBLK) 509 493 return E_PAR; … … 512 496 513 497 /* 514 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã515 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼498 * CEP をロックし、API 機能コードとタスク識別子を記録する。 499 * すでに記録されていれば、ペンディング中なのでエラー 516 500 */ 517 501 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_ACP_CEP)) != E_OK) 518 502 return error; 519 503 520 /* CEP ã® FSM ãã¯ãã¼ãºç¶æ 521 ã§ãªããã°ã¨ã©ã¼ã*/ 504 /* CEP の FSM がクローズ状態でなければエラー。*/ 522 505 if (cep->fsm_state != TCP_FSM_CLOSED) { 523 506 error = E_OBJ; … … 526 509 syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED))); 527 510 528 /* TCP é信端ç¹ãåæåããã*/511 /* TCP 通信端点を初期化する。*/ 529 512 tcp_init_cep(cep); 530 513 531 /* TCP åä»å£ãå¾ãã*/514 /* TCP 受付口を得る。*/ 532 515 rep = GET_TCP_REP(repid); 533 516 534 517 #ifdef TCP_CFG_EXTENTIONS 535 518 536 /* TCP åä»å£ãããã¯ããã*/519 /* TCP 受付口をロックする。*/ 537 520 syscall(wai_sem(rep->semid_lock)); 538 521 539 /* TCP åä»å£ããã§ãã¯ããã*/522 /* TCP 受付口をチェックする。*/ 540 523 if (!VALID_TCP_REP(rep)) { 541 524 syscall(sig_sem(rep->semid_lock)); … … 546 529 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 547 530 548 /* TCP é信端ç¹ã«TCPåä»å£ãè¨é²ããã*/531 /* TCP 通信端点にTCP受付口を記録する。*/ 549 532 cep->rep = rep; 550 533 551 534 #ifdef TCP_CFG_EXTENTIONS 552 535 553 /* TCP åä»å£ã®ããã¯ã解é¤ããã*/536 /* TCP 受付口のロックを解除する。*/ 554 537 syscall(sig_sem(rep->semid_lock)); 555 538 556 539 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 557 540 558 /* TCP åä»å£ã®ã¢ãã¬ã¹ãã³ãã¼ããã*/541 /* TCP 受付口のアドレスをコピーする。*/ 559 542 cep->myaddr = rep->myaddr; 560 543 561 /* é信端ç¹ãè¨å®ããã*/544 /* 通信端点を設定する。*/ 562 545 cep->fsm_state = TCP_FSM_LISTEN; 563 546 564 547 #ifdef TCP_CFG_NON_BLOCKING 565 548 566 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/549 /* タイムアウトをチェックする。*/ 567 550 if (tmout == TMO_NBLK) { 568 /* ãã³ããããã³ã°ã³ã¼ã«*/551 /* ノンブロッキングコール */ 569 552 cep->p_dstaddr = p_dstaddr; 570 553 cep->rcv_nblk_tfn = TFN_TCP_ACP_CEP; … … 576 559 577 560 /* 578 * FSM ã ESTABLISHED ã«ãªãã¾ã§å¾ 579 ã¤ã 580 * FSM ã CLOSED ã«ãªã£ãå ´åã¯ãã¨ã©ã¼ãçºçãããã¨ãæå³ãã¦ããã 561 * FSM が ESTABLISHED になるまで待つ。 562 * FSM が CLOSED になった場合は、エラーが発生したことを意味している。 581 563 */ 582 564 error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED | … … 592 574 593 575 if (error == E_OK) { 594 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/576 /* 相手のアドレスをコピーする。*/ 595 577 *p_dstaddr = cep->dstaddr; 596 578 } 597 579 else { 598 580 /* 599 * é信端ç¹ããåä»å£ã解æ¾ãã600 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã581 * 通信端点から受付口を解放し、 582 * イベントフラグをクローズに設定する。 601 583 */ 602 584 cep->rep = NULL; … … 622 604 623 605 /* 624 * tcp_con_cep -- æ¥ç¶è¦æ± (è½åãªã¼ãã³)ãæ¨æºæ©è½ã606 * tcp_con_cep -- 接続要求 (能動オープン)【標準機能】 625 607 */ 626 608 … … 637 619 638 620 /* 639 * p_dstaddr ã¾ã㯠p_myaddr ã NULL ãã 640 * ãã¦å 641 ããã«ããã£ã¹ãã¢ãã¬ã¹ãªãã¨ã©ã¼ 621 * p_dstaddr または p_myaddr が NULL か、 622 * あて先がマルチキャストアドレスならエラー 642 623 */ 643 624 if (p_myaddr == NULL || p_dstaddr == NULL || IN_IS_ADDR_MULTICAST(&p_dstaddr->ipaddr)) … … 647 628 648 629 /* 649 * p_dstaddr ã¾ã㯠p_myaddr ã NULL ã 650 * ãã¦å 651 ããã«ããã£ã¹ãã¢ãã¬ã¹ãã 652 * tmout ã TMO_NBLK ãªãã¨ã©ã¼ 630 * p_dstaddr または p_myaddr が NULL 、 631 * あて先がマルチキャストアドレスか、 632 * tmout が TMO_NBLK ならエラー 653 633 */ 654 634 if (p_myaddr == NULL || p_dstaddr == NULL || … … 659 639 660 640 /* 661 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã662 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼641 * CEP をロックし、API 機能コードとタスク識別子を記録する。 642 * すでに記録されていれば、ペンディング中なのでエラー 663 643 */ 664 644 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CON_CEP)) != E_OK) 665 645 return error; 666 646 667 /* CEP ã® FSM ãã¯ãã¼ãºç¶æ 668 ã§ãªããã°ã¨ã©ã¼ã*/ 647 /* CEP の FSM がクローズ状態でなければエラー。*/ 669 648 if (cep->fsm_state != TCP_FSM_CLOSED) { 670 649 error = E_OBJ; … … 673 652 syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED))); 674 653 675 /* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/654 /* シーケンス番号を初期化する。*/ 676 655 if (tcp_iss == 0) 677 656 tcp_init_iss(); 678 657 679 /* é信端ç¹ãåæåããã*/658 /* 通信端点を初期化する。*/ 680 659 tcp_init_cep(cep); 681 660 682 661 /* 683 * p_myaddr ã NADR (-1) ã§ã¯ãªããèª IP ã¢ãã¬ã¹ã ANY ã§ãªããã°ã684 * æå®ããã IP ã¢ãã¬ã¹ãå²ãå½ã¦ãã662 * p_myaddr が NADR (-1) ではなく、自 IP アドレスが ANY でなければ、 663 * 指定された IP アドレスを割り当てる。 685 664 */ 686 665 if (p_myaddr != NADR && !IN_IS_ADDR_ANY(&p_myaddr->ipaddr)) … … 696 675 } 697 676 698 /* é信端ç¹ãè¨å®ããã*/677 /* 通信端点を設定する。*/ 699 678 cep->fsm_state = TCP_FSM_SYN_SENT; 700 679 cep->dstaddr = *p_dstaddr; … … 706 685 #ifdef TCP_CFG_NON_BLOCKING 707 686 708 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/687 /* タイムアウトをチェックする。*/ 709 688 if (tmout == TMO_NBLK) { 710 /* ãã³ããããã³ã°ã³ã¼ã«*/689 /* ノンブロッキングコール */ 711 690 cep->p_dstaddr = p_dstaddr; 712 691 cep->p_myaddr = p_myaddr; 713 692 cep->snd_nblk_tfn = TFN_TCP_CON_CEP; 714 693 715 /* ã³ãã¯ã·ã§ã³ã®éè¨ããã¹ãããã*/694 /* コネクションの開設をポストする。*/ 716 695 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 717 696 sig_sem(SEM_TCP_POST_OUTPUT); … … 723 702 724 703 /* 725 * p_myaddr ã NADR (-1) ãã726 * èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã704 * p_myaddr が NADR (-1) か、 705 * 自ポート番号が TCP_PORTANY なら、自動で割り当てる。 727 706 */ 728 707 if (p_myaddr == NADR || p_myaddr->portno == TCP_PORTANY) … … 731 710 goto err_ret; 732 711 733 /* ã³ãã¯ã·ã§ã³ã®éè¨ããã¹ãããã*/712 /* コネクションの開設をポストする。*/ 734 713 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 735 714 sig_sem(SEM_TCP_POST_OUTPUT); 736 715 737 716 /* 738 * ã¤ãã³ãã ESTABLISHED ã«ãªãã¾ã§å¾ 739 ã¤ã 740 * ã¤ãã³ãã CLOSED ã«ãªã£ãå ´åã¯ãä½ããã®ã¨ã©ã¼ãçºçãããã 741 * æ¥ç¶è¦æ±ãæå¦ããããã¨ãæå³ãã¦ããã 717 * イベントが ESTABLISHED になるまで待つ。 718 * イベントが CLOSED になった場合は、何らかのエラーが発生したか、 719 * 接続要求が拒否されたことを意味している。 742 720 */ 743 721 error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED | … … 754 732 if (error != E_OK) { 755 733 /* 756 * é信端ç¹ããåä»å£ã解æ¾ãã757 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã734 * 通信端点から受付口を解放し、 735 * イベントフラグをクローズに設定する。 758 736 */ 759 737 cep->rep = NULL; … … 779 757 780 758 /* 781 * tcp_user_closed -- ã¦ã¼ã¶ããã®ã³ãã¯ã·ã§ã³ã®éæ¾759 * tcp_user_closed -- ユーザからのコネクションの開放 782 760 */ 783 761 … … 787 765 switch (cep->fsm_state) { 788 766 789 case TCP_FSM_CLOSED: /* ã¯ãã¼ãº*/790 case TCP_FSM_LISTEN: /* ååãªã¼ãã³*/767 case TCP_FSM_CLOSED: /* クローズ */ 768 case TCP_FSM_LISTEN: /* 受動オープン */ 791 769 cep->fsm_state = TCP_FSM_CLOSED; 792 770 cep = tcp_close(cep); 793 771 break; 794 772 795 case TCP_FSM_SYN_SENT: /* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿*/796 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿*/773 case TCP_FSM_SYN_SENT: /* 能動オープン、SYN 送信済み */ 774 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 797 775 cep->flags |= TCP_CEP_FLG_NEED_FIN; 798 776 break; 799 777 800 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº*/778 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 801 779 cep->fsm_state = TCP_FSM_FIN_WAIT_1; 802 780 break; 803 781 804 case TCP_FSM_CLOSE_WAIT: /* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾ 805 ã¡ */ 782 case TCP_FSM_CLOSE_WAIT: /* 相手から FIN 受信、APP の終了待ち */ 806 783 cep->fsm_state = TCP_FSM_LAST_ACK; 807 784 break; … … 814 791 815 792 /* 816 * tcp_cls_cep -- é信端ç¹ã®ã¯ãã¼ãºãæ¨æºæ©è½ã793 * tcp_cls_cep -- 通信端点のクローズ【標準機能】 817 794 */ 818 795 … … 826 803 #ifndef TCP_CFG_NON_BLOCKING 827 804 828 /* tmout ã TMO_NBLK ãªãã¨ã©ã¼*/805 /* tmout が TMO_NBLK ならエラー */ 829 806 if (tmout == TMO_NBLK) 830 807 return E_PAR; … … 833 810 834 811 /* 835 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã836 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼812 * CEP をロックし、API 機能コードとタスク識別子を記録する。 813 * すでに記録されていれば、ペンディング中なのでエラー 837 814 */ 838 815 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CLS_CEP)) != E_OK) … … 841 818 #ifdef TCP_CFG_NON_BLOCKING 842 819 843 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/844 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/820 /* タイムアウトをチェックする。*/ 821 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 845 822 846 823 if (!IS_PTR_DEFINED(cep->callback)) 847 824 error = E_OBJ; 848 else if (cep->fsm_state == TCP_FSM_CLOSED) { /* ãã§ã«ã¯ãã¼ãºããã¦ããã¨ã*/825 else if (cep->fsm_state == TCP_FSM_CLOSED) { /* すでにクローズされているとき */ 849 826 850 827 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 … … 864 841 } 865 842 else { 866 /* NBLK ã®API æ©è½ã³ã¼ããè¨å®ããã*/843 /* NBLK のAPI 機能コードを設定する。*/ 867 844 cep->rcv_nblk_tfn = TFN_TCP_CLS_CEP; 868 845 869 if ((cep = tcp_user_closed(cep)) != NULL) { /* ã³ãã¯ã·ã§ã³ãåæããã*/870 /* åæã»ã°ã¡ã³ãåºåããã¹ãããã*/846 if ((cep = tcp_user_closed(cep)) != NULL) { /* コネクションを切断する。*/ 847 /* 切断セグメント出力をポストする。*/ 871 848 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 872 849 sig_sem(SEM_TCP_POST_OUTPUT); 873 850 } 874 851 875 /* cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã876 * æ¢ã«ã³ãã¯ã·ã§ã³ãåæããã¦ãããã¨ãæå³ãã¦ããã877 * ã¾ãããã®å ´åã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¦ããã852 /* cep が NULL で戻ってきた場合は、 853 * 既にコネクションが切断されていることを意味している。 854 * また、この場合コールバック関数が呼び出されている。 878 855 */ 879 856 return E_WBLK; 880 857 } 881 858 } 882 else { /* éãã³ããããã³ã°ã³ã¼ã«*/883 884 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 885 886 if ((cep = tcp_user_closed(cep)) == NULL) { /* ã³ãã¯ã·ã§ã³ãåæããã*/887 888 /* cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã889 * æ¢ã«ã³ãã¯ã·ã§ã³ãåæããã¦ãããã¨ãæå³ãã¦ããã859 else { /* 非ノンブロッキングコール */ 860 861 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 862 863 if ((cep = tcp_user_closed(cep)) == NULL) { /* コネクションを切断する。*/ 864 865 /* cep が NULL で戻ってきた場合は、 866 * 既にコネクションが切断されていることを意味している。 890 867 */ 891 868 return error; 892 869 } 893 870 else { 894 /* åæã»ã°ã¡ã³ãåºåããã¹ãããã*/871 /* 切断セグメント出力をポストする。*/ 895 872 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 896 873 sig_sem(SEM_TCP_POST_OUTPUT); 897 874 898 /* ã¤ãã³ããã©ã°ã CLOSED ã«ãªãã¾ã§å¾ 899 ã¤ã*/ 875 /* イベントフラグが CLOSED になるまで待つ。*/ 900 876 error = twai_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED, TWF_ORW, &flag, tmout); 901 877 if (error == E_OK && cep->error != E_OK) … … 904 880 if (error != E_OK) { 905 881 if (error == E_RLWAI) { 906 /* tcp_cls_cep ããã£ã³ã»ã«ãããã¨ãã¯ãRST ãéä¿¡ããã*/882 /* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/ 907 883 tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1, 908 884 cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST); 909 885 } 910 886 911 /* ã¿ã¤ãã¼ãåæ¢ããã*/887 /* タイマーを停止する。*/ 912 888 tcp_cancel_timers(cep); 913 889 914 890 /* 915 * é信端ç¹ãããã¯ãã916 * åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã891 * 通信端点をロックし、 892 * 受信再構成キューのネットワークバッファを解放する。 917 893 */ 918 894 syscall(wai_sem(cep->semid_lock)); … … 920 896 syscall(sig_sem(cep->semid_lock)); 921 897 922 /* ç¶æ 923 ãæªä½¿ç¨ã«ããã*/ 898 /* 状態を未使用にする。*/ 924 899 cep->fsm_state = TCP_FSM_CLOSED; 925 900 926 901 /* 927 * 以ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã928 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½929 * ã»åçãªé信端ç¹ã®çæã»åé¤æ©è½902 * 以下に関係しないフラグをクリアーする。 903 * ・送受信ウィンドバッファの省コピー機能 904 * ・動的な通信端点の生成・削除機能 930 905 */ 931 906 cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | … … 933 908 934 909 /* 935 * é信端ç¹ãããã¯ãã936 * éåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã910 * 通信端点をロックし、 911 * 送受信ウィンドバッファキューのネットワークバッファを解放する。 937 912 */ 938 913 cep->rwbuf_count = 0; … … 962 937 963 938 /* 964 * tcp_sht_cep -- ãã¼ã¿éä¿¡ã®çµäºãæ¨æºæ©è½ã939 * tcp_sht_cep -- データ送信の終了【標準機能】 965 940 */ 966 941 … … 972 947 973 948 /* 974 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã975 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼949 * CEP をロックし、API 機能コードとタスク識別子を記録する。 950 * すでに記録されていれば、ペンディング中なのでエラー 976 951 */ 977 952 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SHT_CEP)) != E_OK) 978 953 return error; 979 954 980 /* TCP é信端ç¹ã®ã³ãã¯ã·ã§ã³ã確ç«ç¶æ 981 ã§ãªããã°ã¨ã©ã¼ */ 955 /* TCP 通信端点のコネクションが確立状態でなければエラー */ 982 956 if (!TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) { 983 957 if ((error = cep->error) == E_OK) … … 985 959 } 986 960 987 else if ((cep = tcp_user_closed(cep)) != NULL) { /* ã³ãã¯ã·ã§ã³ãåæããã*/988 989 /* åæã»ã°ã¡ã³ãåºåããã¹ãããã*/961 else if ((cep = tcp_user_closed(cep)) != NULL) { /* コネクションを切断する。*/ 962 963 /* 切断セグメント出力をポストする。*/ 990 964 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 991 965 sig_sem(SEM_TCP_POST_OUTPUT); … … 1002 976 1003 977 /* 1004 * tcp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã978 * tcp_snd_dat -- パケットの送信【標準機能】 1005 979 */ 1006 980 … … 1013 987 #ifdef TCP_CFG_NON_BLOCKING 1014 988 1015 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/989 /* data が NULL か、len < 0 ならエラー */ 1016 990 if (data == NULL || len < 0) 1017 991 return E_PAR; … … 1019 993 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 1020 994 1021 /* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/995 /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */ 1022 996 if (data == NULL || len < 0 || tmout == TMO_NBLK) 1023 997 return E_PAR; … … 1026 1000 1027 1001 /* 1028 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1029 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1002 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1003 * すでに記録されていれば、ペンディング中なのでエラー 1030 1004 */ 1031 1005 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_DAT)) != E_OK) 1032 1006 return error; 1033 1007 1034 /* éä¿¡ã§ããããé信端ç¹ã®ç¶æ 1035 ãè¦ãã*/ 1008 /* 送信できるか、通信端点の状態を見る。*/ 1036 1009 if ((error = tcp_can_send_more(cep, TFN_TCP_SND_DAT, tmout)) != E_OK) 1037 1010 goto err_ret; … … 1039 1012 #ifdef TCP_CFG_NON_BLOCKING 1040 1013 1041 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1042 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1043 1044 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1014 /* タイムアウトをチェックする。*/ 1015 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1016 1017 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/ 1045 1018 if (!TCP_IS_SWBUF_FULL(cep)) { 1046 1019 1047 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/1020 /* 送信ウィンドバッファにデータを書き込む。*/ 1048 1021 error = TCP_WRITE_SWBUF(cep, data, (uint_t)len); 1049 1022 1050 /* åºåããã¹ãããã*/1023 /* 出力をポストする。*/ 1051 1024 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1052 1025 sig_sem(SEM_TCP_POST_OUTPUT); … … 1054 1027 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1055 1028 1056 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1029 /* コールバック関数を呼び出す。*/ 1057 1030 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)error); 1058 1031 1059 1032 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 1060 1033 1061 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1034 /* コールバック関数を呼び出す。*/ 1062 1035 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)&error); 1063 1036 … … 1076 1049 } 1077 1050 } 1078 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 1079 1080 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1081 1082 /* éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 1083 ã¤ã*/ 1051 else { /* 非ノンブロッキングコール */ 1052 1053 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1054 1055 /* 送信ウィンドバッファが空くのを待つ。*/ 1084 1056 if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK) 1085 1057 goto err_ret; 1086 1058 1087 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/1059 /* 送信ウィンドバッファにデータを書き込む。*/ 1088 1060 if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) { 1089 1061 1090 /* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/1062 /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/ 1091 1063 if (TCP_IS_SWBUF_FULL(cep)) 1092 1064 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR; 1093 1065 1094 /* åºåããã¹ãããã*/1066 /* 出力をポストする。*/ 1095 1067 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1096 1068 sig_sem(SEM_TCP_POST_OUTPUT); … … 1116 1088 1117 1089 /* 1118 * tcp_snd_oob -- ç·æ¥ãã¼ã¿ã®éä¿¡ãæ¡å¼µæ©è½ã1090 * tcp_snd_oob -- 緊急データの送信【拡張機能】 1119 1091 */ 1120 1092 … … 1127 1099 #ifdef TCP_CFG_NON_BLOCKING 1128 1100 1129 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/1101 /* data が NULL か、len < 0 ならエラー */ 1130 1102 if (data == NULL || len < 0) 1131 1103 return E_PAR; … … 1133 1105 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 1134 1106 1135 /* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/1107 /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */ 1136 1108 if (data == NULL || len < 0 || tmout == TMO_NBLK) 1137 1109 return E_PAR; … … 1140 1112 1141 1113 /* 1142 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1143 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1114 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1115 * すでに記録されていれば、ペンディング中なのでエラー 1144 1116 */ 1145 1117 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_OOB)) != E_OK) 1146 1118 return error; 1147 1119 1148 /* éä¿¡ã§ããããé信端ç¹ã®ç¶æ 1149 ãè¦ãã*/ 1120 /* 送信できるか、通信端点の状態を見る。*/ 1150 1121 if ((error = tcp_can_send_more(cep, TFN_TCP_SND_OOB, tmout)) != E_OK) 1151 1122 goto err_ret; … … 1153 1124 #ifdef TCP_CFG_NON_BLOCKING 1154 1125 1155 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1156 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1157 1158 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1126 /* タイムアウトをチェックする。*/ 1127 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1128 1129 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/ 1159 1130 if (!TCP_IS_SWBUF_FULL(cep)) { 1160 1131 1161 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/1132 /* 送信ウィンドバッファにデータを書き込む。*/ 1162 1133 error = TCP_WRITE_SWBUF(cep, data, (uint_t)len); 1163 1134 1164 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/1135 /* 送信緊急ポインタを設定する。*/ 1165 1136 cep->snd_up = cep->snd_una + cep->swbuf_count; 1166 1137 1167 /* åºåããã¹ãããã*/1138 /* 出力をポストする。*/ 1168 1139 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1169 1140 sig_sem(SEM_TCP_POST_OUTPUT); … … 1171 1142 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1172 1143 1173 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1144 /* コールバック関数を呼び出す。*/ 1174 1145 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)error); 1175 1146 1176 1147 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 1177 1148 1178 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1149 /* コールバック関数を呼び出す。*/ 1179 1150 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)&error); 1180 1151 … … 1193 1164 } 1194 1165 } 1195 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 1196 1197 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1198 1199 /* éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 1200 ã¤ã*/ 1166 else { /* 非ノンブロッキングコール */ 1167 1168 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1169 1170 /* 送信ウィンドバッファが空くのを待つ。*/ 1201 1171 if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK) 1202 1172 goto err_ret; 1203 1173 1204 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/1174 /* 送信ウィンドバッファにデータを書き込む。*/ 1205 1175 if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) { 1206 1176 1207 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/1177 /* 送信緊急ポインタを設定する。*/ 1208 1178 cep->snd_up = cep->snd_una + cep->swbuf_count; 1209 1179 1210 /* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/1180 /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/ 1211 1181 if (TCP_IS_SWBUF_FULL(cep)) 1212 1182 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR; 1213 1183 1214 /* åºåããã¹ãããã*/1184 /* 出力をポストする。*/ 1215 1185 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1216 1186 sig_sem(SEM_TCP_POST_OUTPUT); … … 1236 1206 1237 1207 /* 1238 * tcp_get_buf -- éä¿¡ç¨ãããã¡ã®ç²å¾ãæ¨æºæ©è½ã1208 * tcp_get_buf -- 送信用バッファの獲得【標準機能】 1239 1209 */ 1240 1210 … … 1247 1217 #ifdef TCP_CFG_NON_BLOCKING 1248 1218 1249 /* p_buf ã NULL ãªãã¨ã©ã¼*/1219 /* p_buf が NULL ならエラー */ 1250 1220 if (p_buf == NULL) 1251 1221 return E_PAR; … … 1253 1223 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 1254 1224 1255 /* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/1225 /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */ 1256 1226 if (p_buf == NULL || tmout == TMO_NBLK) 1257 1227 return E_PAR; … … 1260 1230 1261 1231 /* 1262 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1263 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1232 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1233 * すでに記録されていれば、ペンディング中なのでエラー 1264 1234 */ 1265 1235 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_GET_BUF)) != E_OK) 1266 1236 return error; 1267 1237 1268 /* éä¿¡ã§ããããé信端ç¹ã®ç¶æ 1269 ãè¦ãã*/ 1238 /* 送信できるか、通信端点の状態を見る。*/ 1270 1239 if ((error = tcp_can_send_more(cep, TFN_TCP_GET_BUF, tmout)) != E_OK) 1271 1240 goto err_ret; … … 1273 1242 #ifdef TCP_CFG_NON_BLOCKING 1274 1243 1275 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1276 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1244 /* タイムアウトをチェックする。*/ 1245 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1277 1246 1278 1247 if (!TCP_IS_SWBUF_FULL(cep)) { 1279 1248 1280 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1249 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/ 1281 1250 error = TCP_GET_SWBUF_ADDR(cep, p_buf); 1282 1251 1283 1252 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1284 1253 1285 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1254 /* コールバック関数を呼び出す。*/ 1286 1255 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)error); 1287 1256 1288 1257 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 1289 1258 1290 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1259 /* コールバック関数を呼び出す。*/ 1291 1260 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)&error); 1292 1261 … … 1304 1273 } 1305 1274 1306 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 1307 1308 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1309 1310 /* éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 1311 ã¤ã*/ 1275 else { /* 非ノンブロッキングコール */ 1276 1277 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1278 1279 /* 送信ウィンドバッファが空くのを待つ。*/ 1312 1280 if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK) 1313 1281 goto err_ret; 1314 1282 1315 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/1283 /* 送信ウィンドバッファの空アドレスを獲得する。*/ 1316 1284 error = TCP_GET_SWBUF_ADDR(cep, p_buf); 1317 1285 … … 1333 1301 1334 1302 /* 1335 * tcp_snd_buf -- ãããã¡å 1336 ã®ãã¼ã¿ã®éä¿¡ãæ¨æºæ©è½ã 1303 * tcp_snd_buf -- バッファ内のデータの送信【標準機能】 1337 1304 */ 1338 1305 … … 1343 1310 ER error; 1344 1311 1345 /* éä¿¡ããé·ã len ããã§ãã¯ããã*/1312 /* 送信する長さ len をチェックする。*/ 1346 1313 if (len < 0) 1347 1314 return E_PAR; 1348 1315 1349 /* éä¿¡ããé·ãlen ã 0 ã§ããã°ãä½ãããªãã§æ»ãã*/1316 /* 送信する長さlen が 0 であれば、何もしないで戻る。*/ 1350 1317 if (len == 0) 1351 1318 return E_OK; 1352 1319 1353 1320 /* 1354 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1355 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1321 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1322 * すでに記録されていれば、ペンディング中なのでエラー 1356 1323 */ 1357 1324 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_BUF)) != E_OK) 1358 1325 return error; 1359 1326 1360 /* éä¿¡ããé·ã len ããã§ãã¯ããã*/1327 /* 送信する長さ len をチェックする。*/ 1361 1328 if (len > cep->get_buf_len) { 1362 1329 error = E_OBJ; … … 1364 1331 } 1365 1332 1366 /* éä¿¡ã§ããããCEP ã® FSM ç¶æ 1367 ãè¦ãã*/ 1333 /* 送信できるか、CEP の FSM 状態を見る。*/ 1368 1334 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) { 1369 1335 if ((error = cep->error) == E_OK) … … 1372 1338 } 1373 1339 1374 /* éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã*/1340 /* 送信ウィンドバッファのデータを送信可能にする。*/ 1375 1341 TCP_SEND_SWBUF(cep, (uint_t)len); 1376 1342 1377 /* åºåããã¹ãããã*/1343 /* 出力をポストする。*/ 1378 1344 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1379 1345 sig_sem(SEM_TCP_POST_OUTPUT); … … 1390 1356 1391 1357 /* 1392 * tcp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã1358 * tcp_rcv_dat -- パケットの受信【標準機能】 1393 1359 */ 1394 1360 … … 1401 1367 #ifdef TCP_CFG_NON_BLOCKING 1402 1368 1403 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/1369 /* data が NULL か、len < 0 ならエラー */ 1404 1370 if (data == NULL || len < 0) 1405 1371 return E_PAR; … … 1407 1373 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 1408 1374 1409 /* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/1375 /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */ 1410 1376 if (data == NULL || len < 0 || tmout == TMO_NBLK) 1411 1377 return E_PAR; … … 1414 1380 1415 1381 /* 1416 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1417 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1382 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1383 * すでに記録されていれば、ペンディング中なのでエラー 1418 1384 */ 1419 1385 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_DAT)) != E_OK) 1420 1386 return error; 1421 1387 1422 /* åä¿¡ã§ããããé信端ç¹ã®ç¶æ 1423 ãè¦ãã*/ 1388 /* 受信できるか、通信端点の状態を見る。*/ 1424 1389 if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK) 1425 1390 goto err_ret; … … 1427 1392 #ifdef TCP_CFG_NON_BLOCKING 1428 1393 1429 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1430 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1431 1432 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1394 /* タイムアウトをチェックする。*/ 1395 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1396 1397 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/ 1433 1398 if (cep->rwbuf_count > 0) { 1434 1399 1435 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/1400 /* 受信ウィンドバッファからデータを取り出す。*/ 1436 1401 len = TCP_READ_RWBUF(cep, data, (uint_t)len); 1437 1402 … … 1456 1421 } 1457 1422 } 1458 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 1459 1460 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1461 1462 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå 1463 ¥åãããã¾ã§å¾ 1464 ã¤ã*/ 1423 else { /* 非ノンブロッキングコール */ 1424 1425 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1426 1427 /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/ 1465 1428 if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) 1466 1429 goto err_ret; 1467 1430 1468 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/1431 /* 受信ウィンドバッファからデータを取り出す。*/ 1469 1432 error = TCP_READ_RWBUF(cep, data, (uint_t)len); 1470 1433 1471 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/1434 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 1472 1435 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1473 1436 sig_sem(SEM_TCP_POST_OUTPUT); … … 1492 1455 1493 1456 /* 1494 * tcp_rcv_oob -- ç·æ¥ãã¼ã¿ã®åä¿¡ãæ¡å¼µæ©è½ã1457 * tcp_rcv_oob -- 緊急データの受信【拡張機能】 1495 1458 * 1496 * 注æ: éä¿¡å´ãè¤æ°ãªã¯ãããã®ãã¼ã¿ãéä¿¡ãã¦ãã1497 * ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ã®ã¿åä¿¡ããã1459 * 注意: 送信側が複数オクテットのデータを送信しても、 1460 * 緊急ポインタが指す 1 オクテットのデータのみ受信する。 1498 1461 */ 1499 1462 … … 1504 1467 uint8_t *urg; 1505 1468 1506 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1469 /* TCP 通信端点 ID をチェックする。*/ 1507 1470 if (!VAID_TCP_CEPID(cepid)) 1508 1471 return E_ID; 1509 1472 1510 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/1473 /* data が NULL か、len < 0 ならエラー */ 1511 1474 if (data == NULL || len < 0) 1512 1475 return E_PAR; 1513 1476 1514 /* TCP é信端ç¹ãå¾ãã*/1477 /* TCP 通信端点を得る。*/ 1515 1478 cep = GET_TCP_CEP(cepid); 1516 1479 1517 /* åä¿¡ã§ããããé信端ç¹ã®ç¶æ 1518 ãè¦ãã*/ 1519 /* åä¿¡ã§ããããfsm_state ãè¦ãã*/ 1480 /* 受信できるか、通信端点の状態を見る。*/ 1481 /* 受信できるか、fsm_state を見る。*/ 1520 1482 if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state)) 1521 1483 return E_OBJ; 1522 1484 1523 1485 /* 1524 * ç·æ¥ãã¼ã¿å 1525 ¥ãã®ã»ã°ã¡ã³ãã® TCP ãããã 1526 * è¨å®ããã¦ããªããã°ãç·æ¥ãã¼ã¿ãåä¿¡ãã¦ããªãã 1486 * 緊急データ入りのセグメントの TCP ヘッダが 1487 * 設定されていなければ、緊急データを受信していない。 1527 1488 */ 1528 1489 if (cep->urg_tcph == NULL) 1529 1490 return E_OBJ; 1530 1491 1531 /* len == 0 ãªããããã¡ãªã¼ãã¼ããã¼*/1492 /* len == 0 ならバッファオーバーフロー */ 1532 1493 if (len == 0) 1533 1494 return E_BOVR; 1534 1495 1535 /* ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ãèªã¿åãã*/1496 /* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/ 1536 1497 urg = (uint8_t*)cep->urg_tcph + TCP_DATA_OFF(cep->urg_tcph->doff) + cep->urg_tcph->urp + TCP_CFG_URG_OFFSET; 1537 1498 *(uint8_t*)data = *urg; 1538 1499 1539 /* èªã¿åã£ããã¼ã¿ããå¾ãã® SDU ãåã«è©°ããã*/1500 /* 読み取ったデータから後ろの SDU を前に詰める。*/ 1540 1501 memcpy(urg, urg + 1, cep->urg_tcph->sum - (cep->urg_tcph->urp + TCP_CFG_URG_OFFSET) - 1); 1541 1502 1542 /* tcp_rcv_oob() ãå¼åºããããã¨ç¥ãããããã«ãNULL ãè¨å®ããã*/1503 /* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/ 1543 1504 cep->urg_tcph = NULL; 1544 1505 … … 1553 1514 1554 1515 /* 1555 * tcp_rcv_buf -- åä¿¡ãããã¼ã¿ã®å 1556 ¥ã£ããããã¡ã®ç²å¾ãæ¨æºæ©è½ã 1516 * tcp_rcv_buf -- 受信したデータの入ったバッファの獲得【標準機能】 1557 1517 */ 1558 1518 … … 1565 1525 #ifdef TCP_CFG_NON_BLOCKING 1566 1526 1567 /* p_buf ã NULL ãªãã¨ã©ã¼*/1527 /* p_buf が NULL ならエラー */ 1568 1528 if (p_buf == NULL) 1569 1529 return E_PAR; … … 1571 1531 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 1572 1532 1573 /* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/1533 /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */ 1574 1534 if (p_buf == NULL || tmout == TMO_NBLK) 1575 1535 return E_PAR; … … 1578 1538 1579 1539 /* 1580 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1581 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1540 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1541 * すでに記録されていれば、ペンディング中なのでエラー 1582 1542 */ 1583 1543 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_BUF)) != E_OK) 1584 1544 return error; 1585 1545 1586 /* åä¿¡ã§ããããé信端ç¹ã®ç¶æ 1587 ãè¦ãã*/ 1546 /* 受信できるか、通信端点の状態を見る。*/ 1588 1547 if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK) 1589 1548 goto err_ret; … … 1591 1550 #ifdef TCP_CFG_NON_BLOCKING 1592 1551 1593 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1594 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1595 1596 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1552 /* タイムアウトをチェックする。*/ 1553 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1554 1555 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/ 1597 1556 if (cep->rwbuf_count > 0) { 1598 1557 1599 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/1558 /* 受信ウィンドバッファの空アドレスを獲得する。*/ 1600 1559 error = TCP_GET_RWBUF_ADDR(cep, p_buf); 1601 1560 1602 1561 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1603 1562 1604 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1563 /* コールバック関数を呼び出す。*/ 1605 1564 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)error); 1606 1565 1607 1566 #else /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */ 1608 1567 1609 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1568 /* コールバック関数を呼び出す。*/ 1610 1569 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)&error); 1611 1570 … … 1621 1580 } 1622 1581 } 1623 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 1624 1625 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1626 1627 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå 1628 ¥åãããã¾ã§å¾ 1629 ã¤ã*/ 1582 else { /* 非ノンブロッキングコール */ 1583 1584 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1585 1586 /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/ 1630 1587 if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) { 1631 1588 cep->rwbuf_count = 0; … … 1633 1590 } 1634 1591 1635 /* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãç²å¾ããã*/1592 /* 受信ウィンドバッファのアドレスを獲得する。*/ 1636 1593 error = TCP_GET_RWBUF_ADDR(cep, p_buf); 1637 1594 … … 1653 1610 1654 1611 /* 1655 * tcp_rel_buf -- åä¿¡ç¨ãããã¡ã®è§£æ¾ãæ¨æºæ©è½ã1612 * tcp_rel_buf -- 受信用バッファの解放【標準機能】 1656 1613 */ 1657 1614 … … 1662 1619 ER error; 1663 1620 1664 /* 解æ¾ããé·ã len ããã§ãã¯ããã*/1621 /* 解放する長さ len をチェックする。*/ 1665 1622 if (len < 0) 1666 1623 return E_PAR; 1667 1624 1668 1625 /* 1669 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1670 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1626 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1627 * すでに記録されていれば、ペンディング中なのでエラー 1671 1628 */ 1672 1629 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_REL_BUF)) != E_OK) 1673 1630 return error; 1674 1631 1675 /* 解æ¾ããé·ã len ããã§ãã¯ããã*/1632 /* 解放する長さ len をチェックする。*/ 1676 1633 if (len > cep->rcv_buf_len) { 1677 1634 error = E_OBJ; … … 1679 1636 } 1680 1637 1681 /* é信端ç¹ãããã¯ããã*/1638 /* 通信端点をロックする。*/ 1682 1639 syscall(wai_sem(cep->semid_lock)); 1683 1640 1684 /* åä¿¡ã¦ã£ã³ããããã¡ããåä¿¡ãããªã¯ããããåé¤ããã*/1641 /* 受信ウィンドバッファから受信したオクテットを削除する。*/ 1685 1642 TCP_DROP_RWBUF(cep, (uint_t)len); 1686 1643 1687 /* tcp_rcv_buf ã®å²å½ã¦é·ããªã»ããããã*/1644 /* tcp_rcv_buf の割当て長をリセットする。*/ 1688 1645 cep->rcv_buf_len = 0; 1689 1646 1690 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1647 /* 通信端点のロックを解除する。*/ 1691 1648 syscall(sig_sem(cep->semid_lock)); 1692 1649 1693 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/1650 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 1694 1651 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1695 1652 sig_sem(SEM_TCP_POST_OUTPUT); … … 1706 1663 1707 1664 /* 1708 * tcp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ãã£ã³ã»ã«1665 * tcp_can_snd -- ペンディングしている送信のキャンセル 1709 1666 */ 1710 1667 … … 1714 1671 ER error = E_OK; 1715 1672 1716 /* é信端ç¹ãããã¯ããã*/1673 /* 通信端点をロックする。*/ 1717 1674 syscall(wai_sem(cep->semid_lock)); 1718 1675 1719 1676 /* 1720 * snd_tskid ã TA_NULL ãªãã1721 * ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼1677 * snd_tskid が TA_NULL なら、 1678 * ペンディングしていないのでエラー 1722 1679 */ 1723 1680 if (cep->snd_tskid == TA_NULL) 1724 1681 error = EV_NOPND; 1725 1682 1726 /* ãã³ãã£ã³ã°ä¸ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼*/1683 /* ペンディング中の API 機能コードと一致しなければエラー */ 1727 1684 else if (fncd != TFN_TCP_ALL && fncd != cep->snd_tfn) 1728 1685 error = E_OBJ; 1729 1686 1730 /* å¦çããã£ã³ã»ã«ããã*/1687 /* 処理をキャンセルする。*/ 1731 1688 else { 1732 1689 1733 /* åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1690 /* 受信再構成キューのネットワークバッファを解放する。*/ 1734 1691 tcp_free_reassq(cep); 1735 1692 1736 /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1693 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/ 1737 1694 cep->rwbuf_count = 0; 1738 1695 TCP_FREE_RWBUFQ(cep); 1739 1696 1740 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1697 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 1741 1698 TCP_FREE_SWBUFQ(cep); 1742 1699 1743 1700 #ifdef TCP_CFG_NON_BLOCKING 1744 1701 1745 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) { /* ãã³ããããã³ã°ã³ã¼ã«*/1702 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) { /* ノンブロッキングコール */ 1746 1703 1747 1704 switch (cep->snd_nblk_tfn) { 1748 1705 1749 1706 case TFN_TCP_CON_CEP: 1750 /* é信端ç¹ããåä»å£ã解æ¾ããã*/1707 /* 通信端点から受付口を解放する。*/ 1751 1708 cep->rep = NULL; 1752 1709 cep->fsm_state = TCP_FSM_CLOSED; … … 1789 1746 } 1790 1747 1791 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1748 /* 通信端点のロックを解除する。*/ 1792 1749 syscall(sig_sem(cep->semid_lock)); 1793 1750 … … 1796 1753 1797 1754 /* 1798 * tcp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ãã£ã³ã»ã«1755 * tcp_can_rcv -- ペンディングしている受信のキャンセル 1799 1756 */ 1800 1757 … … 1804 1761 ER error = E_OK; 1805 1762 1806 /* é信端ç¹ãããã¯ããã*/1763 /* 通信端点をロックする。*/ 1807 1764 syscall(wai_sem(cep->semid_lock)); 1808 1765 1809 1766 /* 1810 * rcv_tskid ã TA_NULL ãªãã1811 * ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼1767 * rcv_tskid が TA_NULL なら、 1768 * ペンディングしていないのでエラー 1812 1769 */ 1813 1770 if (cep->rcv_tskid == TA_NULL) 1814 1771 error = EV_NOPND; 1815 1772 1816 /* ãã³ãã£ã³ã°ä¸ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼*/1773 /* ペンディング中の API 機能コードと一致しなければエラー */ 1817 1774 else if (fncd != TFN_TCP_ALL && fncd != cep->rcv_tfn) 1818 1775 error = E_OBJ; 1819 1776 1820 /* å¦çããã£ã³ã»ã«ããã*/1777 /* 処理をキャンセルする。*/ 1821 1778 else { 1822 1779 1823 /* åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1780 /* 受信再構成キューのネットワークバッファを解放する。*/ 1824 1781 tcp_free_reassq(cep); 1825 1782 1826 /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1783 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/ 1827 1784 cep->rwbuf_count = 0; 1828 1785 TCP_FREE_RWBUFQ(cep); 1829 1786 1830 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1787 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 1831 1788 TCP_FREE_SWBUFQ(cep); 1832 1789 1833 1790 #ifdef TCP_CFG_NON_BLOCKING 1834 1791 1835 if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) { /* ãã³ããããã³ã°ã³ã¼ã«*/1792 if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) { /* ノンブロッキングコール */ 1836 1793 1837 1794 switch (cep->rcv_nblk_tfn) { … … 1839 1796 case TFN_TCP_ACP_CEP: 1840 1797 /* 1841 * é信端ç¹ããåä»å£ã解æ¾ãã1842 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã1798 * 通信端点から受付口を解放し、 1799 * イベントフラグをクローズに設定する。 1843 1800 */ 1844 1801 cep->rep = NULL; … … 1888 1845 } 1889 1846 1890 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1847 /* 通信端点のロックを解除する。*/ 1891 1848 syscall(sig_sem(cep->semid_lock)); 1892 1849 … … 1895 1852 1896 1853 /* 1897 * tcp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ãã£ã³ã»ã«ãæ¨æºæ©è½ã1854 * tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】 1898 1855 */ 1899 1856 … … 1904 1861 ER error = E_OK, snd_err, rcv_err; 1905 1862 1906 /* API æ©è½ã³ã¼ãããã§ãã¯ããã*/1863 /* API 機能コードをチェックする。*/ 1907 1864 if (!VALID_TFN_TCP_CAN(fncd)) 1908 1865 return E_PAR; 1909 1866 1910 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1867 /* TCP 通信端点 ID をチェックする。*/ 1911 1868 if (!VAID_TCP_CEPID(cepid)) 1912 1869 return E_ID; 1913 1870 1914 /* TCP é信端ç¹ãå¾ãã*/1871 /* TCP 通信端点を得る。*/ 1915 1872 cep = GET_TCP_CEP(cepid); 1916 1873 1917 /* TCP é信端ç¹ããã§ãã¯ããã*/1874 /* TCP 通信端点をチェックする。*/ 1918 1875 if (!VALID_TCP_CEP(cep)) 1919 1876 return E_NOEXS; 1920 1877 1921 if (fncd == TFN_TCP_ALL) { /* TFN_TCP_ALL ã®å¦ç*/1878 if (fncd == TFN_TCP_ALL) { /* TFN_TCP_ALL の処理 */ 1922 1879 snd_err = tcp_can_snd(cep, fncd); 1923 1880 rcv_err = tcp_can_rcv(cep, fncd); 1924 1881 1925 1882 /* 1926 * snd_err 㨠rcv_err ã®ã©ã¡ããEV_NOPND1927 * ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼1883 * snd_err と rcv_err のどちらも EV_NOPND 1884 * なら、ペンディングしていないのでエラー 1928 1885 */ 1929 1886 if (snd_err == EV_NOPND && rcv_err == EV_NOPND) … … 1942 1899 } 1943 1900 1944 else if (IS_TFN_TCP_RCV(fncd)) { /* åä¿¡å¦çã®ãã£ã³ã»ã«*/1901 else if (IS_TFN_TCP_RCV(fncd)) { /* 受信処理のキャンセル */ 1945 1902 if ((error = tcp_can_rcv(cep, fncd)) == EV_NOPND) 1946 1903 error = E_OBJ; 1947 1904 } 1948 1905 1949 else { /* éä¿¡å¦çã®ãã£ã³ã»ã«*/1906 else { /* 送信処理のキャンセル */ 1950 1907 if ((error = tcp_can_snd(cep, fncd)) == EV_NOPND) 1951 1908 error = E_OBJ; … … 1958 1915 1959 1916 /* 1960 * tcp_set_opt -- TCP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãæ¡å¼µæ©è½ã1917 * tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】 1961 1918 * 1962 * 注æ: è¨å®å¯è½ãª TCP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã1919 * 注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。 1963 1920 */ 1964 1921 … … 1972 1929 T_TCP_CEP *cep; 1973 1930 1974 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1931 /* TCP 通信端点 ID をチェックする。*/ 1975 1932 if (!VAID_TCP_CEPID(cepid)) 1976 1933 return E_ID; 1977 1934 1978 /* TCP é信端ç¹ãå¾ãã*/1935 /* TCP 通信端点を得る。*/ 1979 1936 cep = GET_TCP_CEP(cepid); 1980 1937 1981 /* TCP é信端ç¹ããã§ãã¯ããã*/1938 /* TCP 通信端点をチェックする。*/ 1982 1939 if (!VALID_TCP_CEP(cep)) 1983 1940 return E_NOEXS; … … 1991 1948 1992 1949 /* 1993 * tcp_get_opt -- TCP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãæ¡å¼µæ©è½ã1950 * tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】 1994 1951 * 1995 * 注æ: è¨å®å¯è½ãª TCP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã1952 * 注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。 1996 1953 */ 1997 1954 … … 2005 1962 T_TCP_CEP *cep; 2006 1963 2007 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1964 /* TCP 通信端点 ID をチェックする。*/ 2008 1965 if (!VAID_TCP_CEPID(cepid)) 2009 1966 return E_ID; 2010 1967 2011 /* TCP é信端ç¹ãå¾ãã*/1968 /* TCP 通信端点を得る。*/ 2012 1969 cep = GET_TCP_CEP(cepid); 2013 1970 2014 /* TCP é信端ç¹ããã§ãã¯ããã*/1971 /* TCP 通信端点をチェックする。*/ 2015 1972 if (!VALID_TCP_CEP(cep)) 2016 1973 return E_NOEXS; -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * TCP ãããã»ãã¤ãã¼ãã¢ã¯ã»ã¹ãã¯ã74 * TCP ヘッダ・ペイロードアクセスマクロ 87 75 */ 88 76 … … 105 93 106 94 /* 107 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©95 * TINET 1.1 との互換性のための定義 108 96 */ 109 97 … … 118 106 119 107 /* 120 * TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©108 * TINET 1.3 との互換性のための定義 121 109 */ 122 110 … … 127 115 128 116 /* 129 * ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©117 * コールバック関数の定義 130 118 */ 131 119 … … 133 121 134 122 /* 135 * TCP åä»å£136 */ 137 138 /* IPv4 ç¨ TCP åä»å£*/123 * TCP 受付口 124 */ 125 126 /* IPv4 用 TCP 受付口 */ 139 127 typedef struct t_tcp4_rep { 140 128 141 129 /* 142 * ITRON TCP/IP API ãTCP åä»å£ã¨åãã¡ã³ã130 * ITRON TCP/IP API、TCP 受付口と同じメンバ 143 131 */ 144 ATR repatr; /* åä»å£å±æ§*/145 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹*/132 ATR repatr; /* 受付口属性 */ 133 T_IPV4EP myaddr; /* 自分のアドレス */ 146 134 147 135 #ifdef TCP_CFG_EXTENTIONS 148 uint16_t flags; /* åä»å£ãã©ã°*/149 ID semid_lock; /* åä»å£ããã¯*/136 uint16_t flags; /* 受付口フラグ */ 137 ID semid_lock; /* 受付口ロック */ 150 138 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 151 139 152 140 } T_TCP4_REP; 153 141 154 /* IPv6 ç¨ TCP åä»å£*/142 /* IPv6 用 TCP 受付口 */ 155 143 typedef struct t_tcp6_rep { 156 144 157 145 /* 158 * ITRON TCP/IP API ãTCP åä»å£ã¨åãã¡ã³ã146 * ITRON TCP/IP API、TCP 受付口と同じメンバ 159 147 */ 160 ATR repatr; /* åä»å£å±æ§*/161 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹*/148 ATR repatr; /* 受付口属性 */ 149 T_IPV6EP myaddr; /* 自分のアドレス */ 162 150 163 151 #ifdef TCP_CFG_EXTENTIONS 164 uint16_t flags; /* åä»å£ãã©ã°*/165 ID semid_lock; /* åä»å£ããã¯*/152 uint16_t flags; /* 受付口フラグ */ 153 ID semid_lock; /* 受付口ロック */ 166 154 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 167 155 … … 177 165 178 166 /* 179 * åä»å£ãã©ã°180 */ 181 182 #define TCP_REP_FLG_DYNAMIC UINT_C(0x0400) /* åççæã»åé¤å¯è½åä»å£ã*/183 #define TCP_REP_FLG_VALID UINT_C(0x0800) /* çææ¸ã¿ã§æå¹ãªåä»å£ã*/184 185 /* 186 * TCP é信端ç¹167 * 受付口フラグ 168 */ 169 170 #define TCP_REP_FLG_DYNAMIC UINT_C(0x0400) /* 動的生成・削除可能受付口。 */ 171 #define TCP_REP_FLG_VALID UINT_C(0x0800) /* 生成済みで有効な受付口。 */ 172 173 /* 174 * TCP 通信端点 187 175 */ 188 176 … … 192 180 193 181 /* 194 * é常㮠IPv4 TCP é信端ç¹182 * 通常の IPv4 TCP 通信端点 195 183 */ 196 184 typedef struct t_tcp4_cep { 197 185 198 186 /* 199 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã187 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 200 188 */ 201 ATR cepatr; /* é信端ç¹å±æ§*/202 void *sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡*/203 int_t sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/204 void *rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡*/205 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/206 t_tcp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/189 ATR cepatr; /* 通信端点属性 */ 190 void *sbuf; /* 送信用ウィンドバッファ */ 191 int_t sbufsz; /* 送信用ウィンドバッファサイズ */ 192 void *rbuf; /* 受信用ウィンドバッファ */ 193 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 194 t_tcp_callback callback; /* コールバック関数 */ 207 195 208 196 /* 209 * TINET ç¬èªã®ã¡ã³ã197 * TINET 独自のメンバ 210 198 */ 211 uint32_t flags; /* é信端ç¹ãã©ã° */ 212 ID semid_lock; /* é信端ç¹ãã㯠*/ 213 ID est_flgid; /* ã³ãã¯ã·ã§ã³ç¶æ 214 ã¤ãã³ããã©ã° */ 215 ID snd_flgid; /* éä¿¡ã¤ãã³ããã©ã° */ 216 ID rcv_flgid; /* åä¿¡ã¤ãã³ããã©ã° */ 217 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å */ 218 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å */ 219 uint8_t *sbuf_rptr; /* éä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 220 uint8_t *sbuf_wptr; /* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 221 uint8_t *rbuf_rptr; /* åä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 222 uint8_t *rbuf_wptr; /* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 223 T_TCP_SEQ snd_ssthresh; /* 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd) */ 224 /* ã®ãããå¤ */ 225 T_TCP_TIME rxtcur; /* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã */ 226 T_TCP_TIME srtt; /* å¹³æ»åããã RTT */ 227 T_TCP_TIME rttvar; /* å¹³æ»åãããåæ£ */ 228 T_TCP_WND snd_cwnd; /* 輻輳ã¦ã£ã³ããµã¤ãº */ 199 uint32_t flags; /* 通信端点フラグ */ 200 ID semid_lock; /* 通信端点ロック */ 201 ID est_flgid; /* コネクション状態イベントフラグ */ 202 ID snd_flgid; /* 送信イベントフラグ */ 203 ID rcv_flgid; /* 受信イベントフラグ */ 204 ID snd_tskid; /* 送信タスク識別子 */ 205 ID rcv_tskid; /* 受信タスク識別子 */ 206 uint8_t *sbuf_rptr; /* 送信用読み出しポインタ */ 207 uint8_t *sbuf_wptr; /* 送信用書き込みポインタ */ 208 uint8_t *rbuf_rptr; /* 受信用読み出しポインタ */ 209 uint8_t *rbuf_wptr; /* 受信用書き込みポインタ */ 210 T_TCP_SEQ snd_ssthresh; /* 輻輳ウィンドサイズ(snd_cwnd) */ 211 /* のしきい値 */ 212 T_TCP_TIME rxtcur; /* 現在の再送タイムアウト */ 213 T_TCP_TIME srtt; /* 平滑化された RTT */ 214 T_TCP_TIME rttvar; /* 平滑化された分散 */ 215 T_TCP_WND snd_cwnd; /* 輻輳ウィンドサイズ */ 229 216 230 217 /* 231 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº218 * 相手の最大受信セグメントサイズ 232 219 * 233 * ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxseg) ã¨ã 234 * ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxopd) ãå¥ã« 235 * ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã® 236 * ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã 237 * æ¬å®è£ 238 ã§ã¯ãæ大ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯ 239 * å®è£ 240 ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã 220 * オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、 221 * オプション付きのセグメントの最大サイズ (t_maxopd) が別に 222 * なっている。これは、現在のインターネットでは、オプション付きの 223 * セグメントのほうが多いからと説明されているためである。 224 * 本実装では、最大セグメントサイズオプション以外のオプションは 225 * 実装しないので、t_maxseg の使用する。 241 226 */ 242 227 T_TCP_SEG maxseg; 243 228 244 int16_t snd_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/245 int16_t rcv_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/229 int16_t snd_tfn; /* 送信動作中の API 機能コード */ 230 int16_t rcv_tfn; /* 受信動作中の API 機能コード */ 246 231 247 232 #ifdef TCP_CFG_NON_BLOCKING 248 233 249 T_IPV4EP *p_dstaddr; /* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿ */ 250 T_IPV4EP *p_myaddr; /* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿ */ 251 int16_t snd_nblk_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 252 int16_t rcv_nblk_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 253 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 254 é ã¢ãã¬ã¹ */ 255 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 256 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 257 é ã¢ãã¬ã¹ */ 258 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 259 void **snd_p_buf; /* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 260 void **rcv_p_buf; /* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 234 T_IPV4EP *p_dstaddr; /* 相手のアドレスへのポインタ */ 235 T_IPV4EP *p_myaddr; /* 自分のアドレスへのポインタ */ 236 int16_t snd_nblk_tfn; /* 送信動作中の API 機能コード */ 237 int16_t rcv_nblk_tfn; /* 受信動作中の API 機能コード */ 238 void *snd_data; /* 送信データ領域の先頭アドレス */ 239 int_t snd_len; /* 送信データ領域の長さ */ 240 void *rcv_data; /* 受信データ領域の先頭アドレス */ 241 int_t rcv_len; /* 受信データ領域の長さ */ 242 void **snd_p_buf; /* 送信バッファへのポインタ */ 243 void **rcv_p_buf; /* 受信バッファへのポインタ */ 261 244 262 245 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 263 246 264 247 #ifdef TCP_CFG_SWBUF_CSAVE 265 T_NET_BUF *swbufq; /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/248 T_NET_BUF *swbufq; /* 送信ウィンドバッファキュー */ 266 249 #endif /* of #ifdef TCP_CFG_SWBUF_CSAVE */ 267 250 268 251 /* 269 * ãã以éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ãã¯ãªã¢ã¼ãããã252 * これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。 270 253 */ 271 254 272 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP ã®ã¿ã¤ã*/273 T_IPV4EP dstaddr; /* ç¸æã®ã¢ãã¬ã¹*/274 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹*/275 T_TCP4_REP *rep; /* åä»å£*/276 T_NET_BUF *reassq; /* åä¿¡åæ§æãã¥ã¼*/255 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP のタイマ */ 256 T_IPV4EP dstaddr; /* 相手のアドレス */ 257 T_IPV4EP myaddr; /* 自分のアドレス */ 258 T_TCP4_REP *rep; /* 受付口 */ 259 T_NET_BUF *reassq; /* 受信再構成キュー */ 277 260 278 261 #ifdef TCP_CFG_RWBUF_CSAVE 279 T_NET_BUF *rwbufq; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/262 T_NET_BUF *rwbufq; /* 受信ウィンドバッファキュー */ 280 263 #endif /* of #ifdef TCP_CFG_RWBUF_CSAVE */ 281 264 282 265 #ifdef TCP_CFG_EXTENTIONS 283 T_TCP_HDR *urg_tcph; /* ç·æ¥ãã¼ã¿å 284 ¥ãã®ã»ã°ã¡ã³ãã® TCP ããã */ 285 T_TCP_SEQ snd_up; /* éä¿¡ããç·æ¥ãã¤ã³ã¿ */ 286 T_TCP_SEQ rcv_up; /* åä¿¡ããç·æ¥ãã¤ã³ã¿ */ 266 T_TCP_HDR *urg_tcph; /* 緊急データ入りのセグメントの TCP ヘッダ */ 267 T_TCP_SEQ snd_up; /* 送信した緊急ポインタ */ 268 T_TCP_SEQ rcv_up; /* 受信した緊急ポインタ */ 287 269 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 288 270 289 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 290 /* 確èªãããæ大éä¿¡ SEQ */ 291 T_TCP_SEQ snd_max; /* éä¿¡ããæ大 SEQ */ 292 T_TCP_SEQ snd_nxt; /* 次ã«éä¿¡ãã SEQ */ 293 T_TCP_SEQ snd_old_nxt; /* å 294 ã® snd_nxt */ 295 T_TCP_SEQ snd_wl1; /* ååã¦ã£ã³ããæ´æ°ãã SEQ */ 296 T_TCP_SEQ snd_wl2; /* ååã¦ã£ã³ããæ´æ°ãã ACK */ 297 T_TCP_SEQ iss; /* èªåã® SEQ ã®åæå¤ */ 298 T_TCP_SEQ irs; /* ç¸æã® SEQ ã®åæå¤ */ 299 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 300 ãã¦ããæå°ã® SEQ */ 301 T_TCP_SEQ rcv_adv; /* åä¿¡ãæå¾ 302 ãã¦ããæ大㮠SEQ */ 303 T_TCP_SEQ rcv_wnd; /* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº */ 304 T_TCP_SEQ rtseq; /* æéè¨æ¸¬ãå§ãã SEQ */ 305 T_TCP_SEQ last_ack_sent; /* æå¾ã«éä¿¡ãã ACK */ 306 T_TCP_TIME idle; /* ã¢ã¤ãã«æé */ 307 ER error; /* éåæã«çºçããã¨ã©ã¼ */ 308 ER net_error; /* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ 309 */ 310 T_TCP_WND snd_wnd; /* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº */ 311 T_TCP_WND max_sndwnd; /* ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãº */ 312 T_TCP_TIME rtt; /* å¾å¾©æé */ 313 uint16_t swbuf_count; /* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 314 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 315 uint16_t rcv_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 316 uint16_t get_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 317 uint8_t rxtshift; /* åéä¿¡åæ°ã® log(2) */ 318 uint8_t fsm_state; /* FSM ç¶æ 319 */ 320 uint8_t dupacks; /* åé ACK æ° */ 271 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 272 /* 確認された最大送信 SEQ */ 273 T_TCP_SEQ snd_max; /* 送信した最大 SEQ */ 274 T_TCP_SEQ snd_nxt; /* 次に送信する SEQ */ 275 T_TCP_SEQ snd_old_nxt; /* 元の snd_nxt */ 276 T_TCP_SEQ snd_wl1; /* 前回ウィンドを更新した SEQ */ 277 T_TCP_SEQ snd_wl2; /* 前回ウィンドを更新した ACK */ 278 T_TCP_SEQ iss; /* 自分の SEQ の初期値 */ 279 T_TCP_SEQ irs; /* 相手の SEQ の初期値 */ 280 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 281 T_TCP_SEQ rcv_adv; /* 受信を期待している最大の SEQ */ 282 T_TCP_SEQ rcv_wnd; /* 受信可能なウィンドサイズ */ 283 T_TCP_SEQ rtseq; /* 時間計測を始めた SEQ */ 284 T_TCP_SEQ last_ack_sent; /* 最後に送信した ACK */ 285 T_TCP_TIME idle; /* アイドル時間 */ 286 ER error; /* 非同期に発生したエラー */ 287 ER net_error; /* ネットワークのエラー状態 */ 288 T_TCP_WND snd_wnd; /* 相手の受信可能ウィンドサイズ */ 289 T_TCP_WND max_sndwnd; /* 今までの最大送信ウィンドサイズ */ 290 T_TCP_TIME rtt; /* 往復時間 */ 291 uint16_t swbuf_count; /* 送信ウィンドバッファの使用中サイズ */ 292 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 293 uint16_t rcv_buf_len; /* tcp_rcv_buf の割当て長 */ 294 uint16_t get_buf_len; /* tcp_rcv_buf の割当て長 */ 295 uint8_t rxtshift; /* 再送信回数の log(2) */ 296 uint8_t fsm_state; /* FSM 状態 */ 297 uint8_t dupacks; /* 再送 ACK 数 */ 321 298 322 299 #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES) 323 uint8_t rwbufq_entries; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ã¨ã³ããªæ°*/300 uint8_t rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数 */ 324 301 #endif /* of #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES) */ 325 302 … … 327 304 328 305 /* 329 * Time Wait ç¨ IPv4 TCP é信端ç¹306 * Time Wait 用 IPv4 TCP 通信端点 330 307 */ 331 308 typedef struct t_tcp4_twcep { 332 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 333 T_TCP_TIME timer_2msl; /* 2MSL ã¿ã¤ã */ 334 T_IPV4EP dstaddr; /* ç¸æã®ã¢ãã¬ã¹ */ 335 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 336 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 337 /* 確èªãããæ大éä¿¡ SEQ */ 338 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 339 ãã¦ããæå°ã® SEQ */ 340 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 341 uint8_t fsm_state; /* FSM ç¶æ 342 */ 309 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 310 T_TCP_TIME timer_2msl; /* 2MSL タイマ */ 311 T_IPV4EP dstaddr; /* 相手のアドレス */ 312 T_IPV4EP myaddr; /* 自分のアドレス */ 313 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 314 /* 確認された最大送信 SEQ */ 315 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 316 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 317 uint8_t fsm_state; /* FSM 状態 */ 343 318 344 319 } T_TCP4_TWCEP; 345 320 346 321 /* 347 * é常㮠IPv6 TCP é信端ç¹322 * 通常の IPv6 TCP 通信端点 348 323 */ 349 324 typedef struct t_tcp6_cep { 350 325 351 326 /* 352 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã327 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 353 328 */ 354 ATR cepatr; /* é信端ç¹å±æ§*/355 void *sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡*/356 int_t sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/357 void *rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡*/358 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/359 t_tcp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/329 ATR cepatr; /* 通信端点属性 */ 330 void *sbuf; /* 送信用ウィンドバッファ */ 331 int_t sbufsz; /* 送信用ウィンドバッファサイズ */ 332 void *rbuf; /* 受信用ウィンドバッファ */ 333 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 334 t_tcp_callback callback; /* コールバック関数 */ 360 335 361 336 /* 362 * TINET ç¬èªã®ã¡ã³ã337 * TINET 独自のメンバ 363 338 */ 364 uint32_t flags; /* é信端ç¹ãã©ã° */ 365 ID semid_lock; /* é信端ç¹ãã㯠*/ 366 ID est_flgid; /* ã³ãã¯ã·ã§ã³ç¶æ 367 ã¤ãã³ããã©ã° */ 368 ID snd_flgid; /* éä¿¡ã¤ãã³ããã©ã° */ 369 ID rcv_flgid; /* åä¿¡ã¤ãã³ããã©ã° */ 370 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å */ 371 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å */ 372 uint8_t *sbuf_rptr; /* éä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 373 uint8_t *sbuf_wptr; /* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 374 uint8_t *rbuf_rptr; /* åä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 375 uint8_t *rbuf_wptr; /* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 376 T_TCP_SEQ snd_ssthresh; /* 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd) */ 377 /* ã®ãããå¤ */ 378 T_TCP_TIME rxtcur; /* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã */ 379 T_TCP_TIME srtt; /* å¹³æ»åããã RTT */ 380 T_TCP_TIME rttvar; /* å¹³æ»åãããåæ£ */ 381 T_TCP_WND snd_cwnd; /* 輻輳ã¦ã£ã³ããµã¤ãº */ 339 uint32_t flags; /* 通信端点フラグ */ 340 ID semid_lock; /* 通信端点ロック */ 341 ID est_flgid; /* コネクション状態イベントフラグ */ 342 ID snd_flgid; /* 送信イベントフラグ */ 343 ID rcv_flgid; /* 受信イベントフラグ */ 344 ID snd_tskid; /* 送信タスク識別子 */ 345 ID rcv_tskid; /* 受信タスク識別子 */ 346 uint8_t *sbuf_rptr; /* 送信用読み出しポインタ */ 347 uint8_t *sbuf_wptr; /* 送信用書き込みポインタ */ 348 uint8_t *rbuf_rptr; /* 受信用読み出しポインタ */ 349 uint8_t *rbuf_wptr; /* 受信用書き込みポインタ */ 350 T_TCP_SEQ snd_ssthresh; /* 輻輳ウィンドサイズ(snd_cwnd) */ 351 /* のしきい値 */ 352 T_TCP_TIME rxtcur; /* 現在の再送タイムアウト */ 353 T_TCP_TIME srtt; /* 平滑化された RTT */ 354 T_TCP_TIME rttvar; /* 平滑化された分散 */ 355 T_TCP_WND snd_cwnd; /* 輻輳ウィンドサイズ */ 382 356 383 357 /* 384 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº358 * 相手の最大受信セグメントサイズ 385 359 * 386 * ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxseg) ã¨ã 387 * ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxopd) ãå¥ã« 388 * ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã® 389 * ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã 390 * æ¬å®è£ 391 ã§ã¯ãæ大ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯ 392 * å®è£ 393 ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã 360 * オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、 361 * オプション付きのセグメントの最大サイズ (t_maxopd) が別に 362 * なっている。これは、現在のインターネットでは、オプション付きの 363 * セグメントのほうが多いからと説明されているためである。 364 * 本実装では、最大セグメントサイズオプション以外のオプションは 365 * 実装しないので、t_maxseg の使用する。 394 366 */ 395 367 T_TCP_SEG maxseg; 396 368 397 T_IPV6EP *p_dstaddr; /* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/398 T_IPV6EP *p_myaddr; /* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/399 int16_t snd_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/400 int16_t rcv_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/369 T_IPV6EP *p_dstaddr; /* 相手のアドレスへのポインタ */ 370 T_IPV6EP *p_myaddr; /* 自分のアドレスへのポインタ */ 371 int16_t snd_tfn; /* 送信動作中の API 機能コード */ 372 int16_t rcv_tfn; /* 受信動作中の API 機能コード */ 401 373 402 374 #ifdef TCP_CFG_NON_BLOCKING 403 375 404 int16_t snd_nblk_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 405 int16_t rcv_nblk_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 406 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 407 é ã¢ãã¬ã¹ */ 408 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 409 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 410 é ã¢ãã¬ã¹ */ 411 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 412 void **snd_p_buf; /* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 413 void **rcv_p_buf; /* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 376 int16_t snd_nblk_tfn; /* 送信動作中の API 機能コード */ 377 int16_t rcv_nblk_tfn; /* 受信動作中の API 機能コード */ 378 void *snd_data; /* 送信データ領域の先頭アドレス */ 379 int_t snd_len; /* 送信データ領域の長さ */ 380 void *rcv_data; /* 受信データ領域の先頭アドレス */ 381 int_t rcv_len; /* 受信データ領域の長さ */ 382 void **snd_p_buf; /* 送信バッファへのポインタ */ 383 void **rcv_p_buf; /* 受信バッファへのポインタ */ 414 384 415 385 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 416 386 417 387 #ifdef TCP_CFG_SWBUF_CSAVE 418 T_NET_BUF *swbufq; /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/388 T_NET_BUF *swbufq; /* 送信ウィンドバッファキュー */ 419 389 #endif /* of #ifdef TCP_CFG_SWBUF_CSAVE */ 420 390 421 391 /* 422 * ãã以éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ãã¯ãªã¢ã¼ãããã392 * これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。 423 393 */ 424 394 425 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP ã®ã¿ã¤ã*/426 T_IPV6EP dstaddr; /* ç¸æã®ã¢ãã¬ã¹*/427 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹*/428 T_TCP6_REP *rep; /* åä»å£*/429 T_NET_BUF *reassq; /* åä¿¡åæ§æãã¥ã¼*/395 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP のタイマ */ 396 T_IPV6EP dstaddr; /* 相手のアドレス */ 397 T_IPV6EP myaddr; /* 自分のアドレス */ 398 T_TCP6_REP *rep; /* 受付口 */ 399 T_NET_BUF *reassq; /* 受信再構成キュー */ 430 400 431 401 #ifdef TCP_CFG_RWBUF_CSAVE 432 T_NET_BUF *rwbufq; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/402 T_NET_BUF *rwbufq; /* 受信ウィンドバッファキュー */ 433 403 #endif /* of #ifdef TCP_CFG_RWBUF_CSAVE */ 434 404 435 405 #ifdef TCP_CFG_EXTENTIONS 436 T_TCP_HDR *urg_tcph; /* ç·æ¥ãã¼ã¿å 437 ¥ãã®ã»ã°ã¡ã³ãã® TCP ããã */ 438 T_TCP_SEQ snd_up; /* éä¿¡ããç·æ¥ãã¤ã³ã¿ */ 439 T_TCP_SEQ rcv_up; /* åä¿¡ããç·æ¥ãã¤ã³ã¿ */ 406 T_TCP_HDR *urg_tcph; /* 緊急データ入りのセグメントの TCP ヘッダ */ 407 T_TCP_SEQ snd_up; /* 送信した緊急ポインタ */ 408 T_TCP_SEQ rcv_up; /* 受信した緊急ポインタ */ 440 409 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 441 410 442 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 443 /* 確èªãããæ大éä¿¡ SEQ */ 444 T_TCP_SEQ snd_max; /* éä¿¡ããæ大 SEQ */ 445 T_TCP_SEQ snd_nxt; /* 次ã«éä¿¡ãã SEQ */ 446 T_TCP_SEQ snd_old_nxt; /* å 447 ã® snd_nxt */ 448 T_TCP_SEQ snd_wl1; /* ååã¦ã£ã³ããæ´æ°ãã SEQ */ 449 T_TCP_SEQ snd_wl2; /* ååã¦ã£ã³ããæ´æ°ãã ACK */ 450 T_TCP_SEQ iss; /* èªåã® SEQ ã®åæå¤ */ 451 T_TCP_SEQ irs; /* ç¸æã® SEQ ã®åæå¤ */ 452 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 453 ãã¦ããæå°ã® SEQ */ 454 T_TCP_SEQ rcv_adv; /* åä¿¡ãæå¾ 455 ãã¦ããæ大㮠SEQ */ 456 T_TCP_SEQ rcv_wnd; /* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº */ 457 T_TCP_SEQ rtseq; /* æéè¨æ¸¬ãå§ãã SEQ */ 458 T_TCP_SEQ last_ack_sent; /* æå¾ã«éä¿¡ãã ACK */ 459 T_TCP_TIME idle; /* ã¢ã¤ãã«æé */ 460 ER error; /* éåæã«çºçããã¨ã©ã¼ */ 461 ER net_error; /* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ 462 */ 463 T_TCP_WND snd_wnd; /* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº */ 464 T_TCP_WND max_sndwnd; /* ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãº */ 465 T_TCP_TIME rtt; /* å¾å¾©æé */ 466 uint16_t swbuf_count; /* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 467 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 468 uint16_t rcv_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 469 uint16_t get_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 470 uint8_t rxtshift; /* åéä¿¡åæ°ã® log(2) */ 471 uint8_t fsm_state; /* FSM ç¶æ 472 */ 473 uint8_t dupacks; /* åé ACK æ° */ 411 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 412 /* 確認された最大送信 SEQ */ 413 T_TCP_SEQ snd_max; /* 送信した最大 SEQ */ 414 T_TCP_SEQ snd_nxt; /* 次に送信する SEQ */ 415 T_TCP_SEQ snd_old_nxt; /* 元の snd_nxt */ 416 T_TCP_SEQ snd_wl1; /* 前回ウィンドを更新した SEQ */ 417 T_TCP_SEQ snd_wl2; /* 前回ウィンドを更新した ACK */ 418 T_TCP_SEQ iss; /* 自分の SEQ の初期値 */ 419 T_TCP_SEQ irs; /* 相手の SEQ の初期値 */ 420 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 421 T_TCP_SEQ rcv_adv; /* 受信を期待している最大の SEQ */ 422 T_TCP_SEQ rcv_wnd; /* 受信可能なウィンドサイズ */ 423 T_TCP_SEQ rtseq; /* 時間計測を始めた SEQ */ 424 T_TCP_SEQ last_ack_sent; /* 最後に送信した ACK */ 425 T_TCP_TIME idle; /* アイドル時間 */ 426 ER error; /* 非同期に発生したエラー */ 427 ER net_error; /* ネットワークのエラー状態 */ 428 T_TCP_WND snd_wnd; /* 相手の受信可能ウィンドサイズ */ 429 T_TCP_WND max_sndwnd; /* 今までの最大送信ウィンドサイズ */ 430 T_TCP_TIME rtt; /* 往復時間 */ 431 uint16_t swbuf_count; /* 送信ウィンドバッファの使用中サイズ */ 432 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 433 uint16_t rcv_buf_len; /* tcp_rcv_buf の割当て長 */ 434 uint16_t get_buf_len; /* tcp_rcv_buf の割当て長 */ 435 uint8_t rxtshift; /* 再送信回数の log(2) */ 436 uint8_t fsm_state; /* FSM 状態 */ 437 uint8_t dupacks; /* 再送 ACK 数 */ 474 438 475 439 #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES) 476 uint8_t rwbufq_entries; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ã¨ã³ããªæ°*/440 uint8_t rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数 */ 477 441 #endif /* of #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES) */ 478 442 … … 480 444 481 445 /* 482 * Time Wait ç¨ IPv6 TCP é信端ç¹446 * Time Wait 用 IPv6 TCP 通信端点 483 447 */ 484 448 typedef struct t_tcp6_twcep { 485 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 486 T_TCP_TIME timer_2msl; /* 2MSL ã¿ã¤ã */ 487 T_IPV6EP dstaddr; /* ç¸æã®ã¢ãã¬ã¹ */ 488 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 489 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 490 /* 確èªãããæ大éä¿¡ SEQ */ 491 T_TCP_SEQ iss; /* èªåã® SEQ ã®åæå¤ */ 492 T_TCP_SEQ irs; /* ç¸æã® SEQ ã®åæå¤ */ 493 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 494 ãã¦ããæå°ã® SEQ */ 495 T_TCP_WND snd_wnd; /* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº */ 496 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 497 uint8_t fsm_state; /* FSM ç¶æ 498 */ 449 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 450 T_TCP_TIME timer_2msl; /* 2MSL タイマ */ 451 T_IPV6EP dstaddr; /* 相手のアドレス */ 452 T_IPV6EP myaddr; /* 自分のアドレス */ 453 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 454 /* 確認された最大送信 SEQ */ 455 T_TCP_SEQ iss; /* 自分の SEQ の初期値 */ 456 T_TCP_SEQ irs; /* 相手の SEQ の初期値 */ 457 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 458 T_TCP_WND snd_wnd; /* 相手の受信可能ウィンドサイズ */ 459 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 460 uint8_t fsm_state; /* FSM 状態 */ 499 461 500 462 } T_TCP6_TWCEP; … … 513 475 514 476 /* 515 * TCP é信端ç¹ã®ç¶æ 516 ãã©ã° 517 */ 518 519 #define TCP_CEP_FLG_ACK_NOW ULONG_C(0x00000001) /* ç´ã¡ã«ç¸æã« ACK ãéãã */ 520 #define TCP_CEP_FLG_DEL_ACK ULONG_C(0x00000002) /* ACK ãé 521 延ããã */ 522 #define TCP_CEP_FLG_SENT_FIN ULONG_C(0x00000004) /* FIN ãéã£ã¦ããã */ 523 #define TCP_CEP_FLG_NEED_SYN ULONG_C(0x00000008) /* SYN ãéä¿¡ããã */ 524 #define TCP_CEP_FLG_NEED_FIN ULONG_C(0x00000010) /* FIN ãéä¿¡ããã */ 525 #define TCP_CEP_FLG_FORCE ULONG_C(0x00000020) /* å¼·å¶éä¿¡ã */ 526 #define TCP_CEP_FLG_NO_PUSH ULONG_C(0x00000040) /* push ããªãã */ 527 #define TCP_CEP_FLG_NO_DELAY ULONG_C(0x00000080) /* é 528 延ããªãã */ 529 #define TCP_CEP_FLG_FORCE_CLEAR ULONG_C(0x00000100) /* å¼·å¶éä¿¡ããå¾ãã©ã°ãã¯ãªã¢ã¼ããã*/ 530 #define TCP_CEP_FLG_POST_OUTPUT ULONG_C(0x00000200) /* éä¿¡ãéå§ããã */ 531 #define TCP_CEP_FLG_RESERVE_OUTPUT ULONG_C(0x00000400) /* éä¿¡ãäºç´ããã */ 532 #define TCP_CEP_FLG_DYNAMIC ULONG_C(0x00001000) /* åççæã»åé¤å¯è½é信端ç¹ã */ 533 #define TCP_CEP_FLG_VALID ULONG_C(0x00002000) /* çææ¸ã¿ã§æå¹ãªé信端ç¹ã */ 534 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT ULONG_C(0x00004000) /* éä¿¡ããå¾ã³ãã¯ã·ã§ã³ãéããã*/ 535 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00008000) /* éä¿¡ããå¾ãsnd_nxt ãå 536 ã«æ»ãã*/ 537 538 /* éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ */ 539 #define TCP_CEP_FLG_WBCS_NBUF_REQ ULONG_C(0x00080000) /* ãããã¯ã¼ã¯ãããã¡å²å½ã¦è¦æ± */ 540 #define TCP_CEP_FLG_WBCS_MASK ULONG_C(0x00070000) /* ãã¹ã¯ */ 541 #define TCP_CEP_FLG_WBCS_FREE ULONG_C(0x00000000) /* éä¿¡ã¦ã£ã³ããããã¡æªä½¿ç¨ */ 542 #define TCP_CEP_FLG_WBCS_WOPEN_PEND ULONG_C(0x00010000) /* ç¸æã®åä¿¡ã¦ã£ã³ãã®éãå¾ 543 ã¡ */ 544 #define TCP_CEP_FLG_WBCS_NBUF_PEND ULONG_C(0x00020000) /* ãããã¯ã¼ã¯ãããã¡äºç´å¾ 545 ã¡ */ 546 #define TCP_CEP_FLG_WBCS_NBUF_RSVD ULONG_C(0x00030000) /* ãããã¯ã¼ã¯ãããã¡äºç´æ¸ã¿ */ 547 #define TCP_CEP_FLG_WBCS_NBUF_READY ULONG_C(0x00040000) /* ãããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿ */ 548 #define TCP_CEP_FLG_WBCS_SEND_READY ULONG_C(0x00050000) /* éä¿¡å¯è½ */ 549 #define TCP_CEP_FLG_WBCS_SENT ULONG_C(0x00060000) /* éä¿¡æ¸ã¿ã§ãACKå¾ 550 ã¡ */ 551 #define TCP_CEP_FLG_WBCS_ACKED ULONG_C(0x00070000) /* éä¿¡æ¸ã¿ã§ãACKå®äº */ 552 553 /* 554 * é信端ç¹ã¤ãã³ããã©ã° 555 */ 556 557 #define TCP_CEP_EVT_ESTABLISHED ULONG_C(0x00000001) /* ã³ãã¯ã·ã§ã³ç¢ºç« */ 558 #define TCP_CEP_EVT_CLOSED ULONG_C(0x00000002) /* æªä½¿ç¨ç¶æ 559 */ 560 #define TCP_CEP_EVT_SWBUF_READY ULONG_C(0x00000004) /* éä¿¡ã¦ã£ã³ããããã¡ç©ºã */ 561 #define TCP_CEP_EVT_RWBUF_READY ULONG_C(0x00000008) /* éä¿¡ã¦ã£ã³ããããã¡ãã¼ã¿ãã */ 562 #define TCP_CEP_EVT_ALL ULONG_C(0xffffffff) /* å 563 ¨ã¤ãã³ã */ 564 565 /* 566 * 追å API æ©è½ã»äºè±¡ã³ã¼ã 567 */ 568 569 /* TCP é¢ä¿ */ 477 * TCP 通信端点の状態フラグ 478 */ 479 480 #define TCP_CEP_FLG_ACK_NOW ULONG_C(0x00000001) /* 直ちに相手に ACK を送る。 */ 481 #define TCP_CEP_FLG_DEL_ACK ULONG_C(0x00000002) /* ACK を遅延する。 */ 482 #define TCP_CEP_FLG_SENT_FIN ULONG_C(0x00000004) /* FIN を送ってある。 */ 483 #define TCP_CEP_FLG_NEED_SYN ULONG_C(0x00000008) /* SYN を送信する。 */ 484 #define TCP_CEP_FLG_NEED_FIN ULONG_C(0x00000010) /* FIN を送信する。 */ 485 #define TCP_CEP_FLG_FORCE ULONG_C(0x00000020) /* 強制送信。 */ 486 #define TCP_CEP_FLG_NO_PUSH ULONG_C(0x00000040) /* push しない。 */ 487 #define TCP_CEP_FLG_NO_DELAY ULONG_C(0x00000080) /* 遅延しない。 */ 488 #define TCP_CEP_FLG_FORCE_CLEAR ULONG_C(0x00000100) /* 強制送信した後フラグをクリアーする。*/ 489 #define TCP_CEP_FLG_POST_OUTPUT ULONG_C(0x00000200) /* 送信を開始する。 */ 490 #define TCP_CEP_FLG_RESERVE_OUTPUT ULONG_C(0x00000400) /* 送信を予約する。 */ 491 #define TCP_CEP_FLG_DYNAMIC ULONG_C(0x00001000) /* 動的生成・削除可能通信端点。 */ 492 #define TCP_CEP_FLG_VALID ULONG_C(0x00002000) /* 生成済みで有効な通信端点。 */ 493 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT ULONG_C(0x00004000) /* 送信した後コネクションを閉じる。*/ 494 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00008000) /* 送信した後、snd_nxt を元に戻す。*/ 495 496 /* 送受信ウィンドバッファの省コピー機能 */ 497 #define TCP_CEP_FLG_WBCS_NBUF_REQ ULONG_C(0x00080000) /* ネットワークバッファ割当て要求 */ 498 #define TCP_CEP_FLG_WBCS_MASK ULONG_C(0x00070000) /* マスク */ 499 #define TCP_CEP_FLG_WBCS_FREE ULONG_C(0x00000000) /* 送信ウィンドバッファ未使用 */ 500 #define TCP_CEP_FLG_WBCS_WOPEN_PEND ULONG_C(0x00010000) /* 相手の受信ウィンドの開き待ち */ 501 #define TCP_CEP_FLG_WBCS_NBUF_PEND ULONG_C(0x00020000) /* ネットワークバッファ予約待ち */ 502 #define TCP_CEP_FLG_WBCS_NBUF_RSVD ULONG_C(0x00030000) /* ネットワークバッファ予約済み */ 503 #define TCP_CEP_FLG_WBCS_NBUF_READY ULONG_C(0x00040000) /* ネットワークバッファ割当て済み */ 504 #define TCP_CEP_FLG_WBCS_SEND_READY ULONG_C(0x00050000) /* 送信可能 */ 505 #define TCP_CEP_FLG_WBCS_SENT ULONG_C(0x00060000) /* 送信済みで、ACK待ち */ 506 #define TCP_CEP_FLG_WBCS_ACKED ULONG_C(0x00070000) /* 送信済みで、ACK完了 */ 507 508 /* 509 * 通信端点イベントフラグ 510 */ 511 512 #define TCP_CEP_EVT_ESTABLISHED ULONG_C(0x00000001) /* コネクション確立 */ 513 #define TCP_CEP_EVT_CLOSED ULONG_C(0x00000002) /* 未使用状態 */ 514 #define TCP_CEP_EVT_SWBUF_READY ULONG_C(0x00000004) /* 送信ウィンドバッファ空き */ 515 #define TCP_CEP_EVT_RWBUF_READY ULONG_C(0x00000008) /* 送信ウィンドバッファデータあり */ 516 #define TCP_CEP_EVT_ALL ULONG_C(0xffffffff) /* 全イベント */ 517 518 /* 519 * 追加 API 機能・事象コード 520 */ 521 522 /* TCP 関係 */ 570 523 571 524 #define TFN_TCP_UNDEF (0) 572 525 573 526 /* 574 * srtt: å¹³æ»åãããRTT575 * rttvar: å¹³æ»åãããåæ£576 * rtt: 測å®ãããå¾å¾©æé527 * srtt: 平滑化された RTT 528 * rttvar: 平滑化された分散 529 * rtt: 測定された往復時間 577 530 * 578 * å¹³æ»åããã RTT (srtt) ã¨å¹³æ»åãããåæ£ (rttvar) ã579 * æ´æ°åã§è¨ç®ããããã«ãå·¦ã·ãããã¦ã¹ã±ã¼ã«ããã580 * srtt 㯠2 é²å°æ°ç¹ä»¥ä¸ 3 ãããã581 * rttvar 㯠2 é²å°æ°ç¹ä»¥ä¸ 2 ããããä¿æããã531 * 平滑化された RTT (srtt) と平滑化された分散 (rttvar) を 532 * 整数型で計算するために、左シフトしてスケールする。 533 * srtt は 2 進小数点以下 3 ビット、 534 * rttvar は 2 進小数点以下 2 ビットを保持する。 582 535 */ 583 536 584 537 #define TCP_DELTA_SHIFT 2 585 /* å·®å = rtt/8 + srtt*7/8 ã®è¨ç®ã®ããã®ã·ããå¤*/538 /* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値 */ 586 539 #define TCP_SRTT_SHIFT (TCP_DELTA_SHIFT + 3) 587 /* srtt ã®ã·ããå¤ã3(+2)ããã*/540 /* srtt のシフト値、3(+2)ビット */ 588 541 #define TCP_RTTVAR_SHIFT (TCP_DELTA_SHIFT + 2) 589 /* rttvar ã®ã·ããå¤ã2(+2)ããã*/542 /* rttvar のシフト値、2(+2)ビット */ 590 543 #define TCP_SRTT_SCALE (1<<TCP_SRTT_SHIFT) 591 544 #define TCP_RTTVAR_SCALE (1<<TCP_RTTVAR_SHIFT) 592 545 593 546 /* 594 * é«éå転éãéå§ããåé ACK æ°ã®ãããå¤547 * 高速再転送を開始する再送 ACK 数のしきい値 595 548 */ 596 549 … … 598 551 599 552 /* 600 * åä¿¡åæ§æãã¥ã¼ã§ã® TCP ããã553 * 受信再構成キューでの TCP ヘッダ 601 554 */ 602 555 603 556 typedef struct t_tcp_q_hdr { 604 uint16_t sport; /* éä¿¡å 605 ãã¼ãçªå· */ 606 uint16_t dport; /* å®å 607 ãã¼ãçªå· */ 608 609 uint32_t seq; /* SEQ çªå· */ 610 611 T_NET_BUF *next; /* 次ã®ã»ã°ã¡ã³ããå 612 㯠ACK çªå·(ack) */ 613 614 uint8_t doff; /* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã) */ 615 uint8_t flags; /* ãã©ã°(ä¸ä½6ããã) */ 616 uint16_t soff; /* SDU ãªãã»ãããå 617 ã¯ã¦ã£ã³ããµã¤ãº(win) */ 618 619 uint16_t slen; /* SDU é·ãå 620 ã¯ãã§ãã¯ãµã (sum) */ 621 uint16_t urp; /* ç·æ¥ãã¤ã³ã¿ï¼SDU é·è£æ£ï¼ */ 557 uint16_t sport; /* 送信元ポート番号 */ 558 uint16_t dport; /* 宛先ポート番号 */ 559 560 uint32_t seq; /* SEQ 番号 */ 561 562 T_NET_BUF *next; /* 次のセグメント、元は ACK 番号(ack) */ 563 564 uint8_t doff; /* データオフセット(上位4ビット) */ 565 uint8_t flags; /* フラグ(下位6ビット) */ 566 uint16_t soff; /* SDU オフセット、元はウィンドサイズ(win) */ 567 568 uint16_t slen; /* SDU 長、元はチェックサム(sum) */ 569 uint16_t urp; /* 緊急ポインタ(SDU 長補正) */ 622 570 } __attribute__((packed, aligned(2)))T_TCP_Q_HDR; 623 571 … … 626 574 627 575 /* 628 * ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©629 */ 630 631 #define TMIN_TCP_REPID 1 /* TCP åä»å£ ID ã®æå°å¤*/632 #define TMIN_TCP_CEPID 1 /* TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤*/633 #define TMIN_TCP_TWCEPID 1 /* Time Wait ç¨ TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤*/634 635 /* 636 * å¶å¾¡ã»ã°ã¡ã³ãï¼ãã¼ã¿ãªãï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡576 * オブジェクト ID の最小値の定義 577 */ 578 579 #define TMIN_TCP_REPID 1 /* TCP 受付口 ID の最小値 */ 580 #define TMIN_TCP_CEPID 1 /* TCP 通信端点 ID の最小値 */ 581 #define TMIN_TCP_TWCEPID 1 /* Time Wait 用 TCP 通信端点 ID の最小値 */ 582 583 /* 584 * 制御セグメント(データなし)サイズのネットワークバッファ 637 585 */ 638 586 639 587 typedef struct t_net_buf_cseg { 640 uint16_t len; /* ãã¼ã¿ã®é·ã*/641 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/642 uint8_t flags; /* ãã©ã°*/588 uint16_t len; /* データの長さ */ 589 uint8_t idix; /* mpfid のインデックス */ 590 uint8_t flags; /* フラグ */ 643 591 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 644 592 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 648 596 #endif 649 597 uint8_t buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE]; 650 /* ãããã¡æ¬ä½*/598 /* バッファ本体 */ 651 599 } T_NET_BUF_CSEG; 652 600 … … 654 602 655 603 /* 656 * SNMP 㮠管çæ 657 å ±ãã¼ã¹ (MIB) 604 * SNMP の 管理情報ベース (MIB) 658 605 */ 659 606 … … 674 621 675 622 /* 676 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã623 * 関数シミュレーションマクロ 677 624 */ 678 625 … … 720 667 721 668 /* 722 * å 723 ¨åå¤æ° 669 * 全域変数 724 670 */ 725 671 … … 738 684 739 685 /* 740 * Inline é¢æ°686 * Inline 関数 741 687 */ 742 688 … … 744 690 745 691 /* 746 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã747 * ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°748 */ 749 750 /* 751 * tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã692 * TCP 通信端点の受信ウィンドバッファの省コピー機能が 693 * 無効の場合は何もしないためのダミーの関数 694 */ 695 696 /* 697 * tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。 752 698 */ 753 699 … … 762 708 763 709 /* 764 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿ã765 * æå¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°766 */ 767 768 /* 769 * tcp_read_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèªã¿åºãã710 * TCP 通信端点の送信ウィンドバッファの省コピー機能のみが 711 * 有効の場合は何もしないためのダミーの関数 712 */ 713 714 /* 715 * tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。 770 716 */ 771 717 … … 780 726 781 727 /* 782 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã783 * ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°784 */ 785 786 /* 787 * tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã728 * TCP 通信端点の送信ウィンドバッファの省コピー機能が 729 * 無効の場合は何もしないためのダミーの関数 730 */ 731 732 /* 733 * tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。 788 734 */ 789 735 … … 794 740 795 741 /* 796 * tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããã742 * tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。 797 743 */ 798 744 … … 803 749 804 750 /* 805 * tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããã751 * tcp_push_res_nbuf -- ネットワークバッファを予約する。 806 752 */ 807 753 … … 813 759 814 760 /* 815 * tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãã761 * tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。 816 762 */ 817 763 … … 825 771 826 772 /* 827 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã773 * TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ 828 774 */ 829 775 … … 859 805 860 806 /* 861 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã807 * TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ 862 808 */ 863 809 … … 910 856 911 857 /* 912 * é¢æ°858 * 関数 913 859 */ 914 860 … … 941 887 942 888 /* 943 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°944 */ 945 946 /* 947 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã948 * é¢æ°ã®é¸æã«ä½¿ç¨ããã889 * TCP 通信端点の受信ウィンドバッファ用関数 890 */ 891 892 /* 893 * TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、 894 * 関数の選択に使用する。 949 895 */ 950 896 … … 956 902 957 903 /* 958 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°904 * TCP 通信端点の受信ウィンドバッファの省コピー機能用関数 959 905 */ 960 906 … … 966 912 967 913 /* 968 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°914 * TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数 969 915 */ 970 916 … … 976 922 977 923 /* 978 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°979 */ 980 981 /* 982 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã983 * é¢æ°ã®é¸æã«ä½¿ç¨ããã924 * TCP 通信端点の送信ウィンドバッファ用関数 925 */ 926 927 /* 928 * TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、 929 * 関数の選択に使用する。 984 930 */ 985 931 … … 998 944 999 945 /* 1000 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°946 * TCP 通信端点の送信ウィンドバッファの省コピー機能用関数 1001 947 */ 1002 948 … … 1012 958 1013 959 /* 1014 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°960 * TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数 1015 961 */ 1016 962 … … 1028 974 1029 975 /* 1030 * tcp_find_cep -- ãã¼ãçªå·ãã TCP é信端ç¹ãå¾ãã976 * tcp_find_cep -- ポート番号から TCP 通信端点を得る。 1031 977 * 1032 * 注æ: myaddr ã¯ã1033 * TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã1034 * TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã978 * 注意: myaddr は、 979 * TINET-1.2 からネットワークバイトオーダ、 980 * TINET-1.1 までは、ホストバイトオーダ 1035 981 */ 1036 982 extern T_TCP_CEP *tcp_find_cep (T_IN_ADDR *dstaddr, uint16_t dstport, … … 1038 984 1039 985 /* 1040 * TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ç¨é¢æ°986 * TCP ヘッダのトレース出力機能用関数 1041 987 */ 1042 988 extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep); 1043 989 extern void tcp_input_trace (T_NET_BUF *input, T_TCP_CEP *cep); 1044 990 1045 /* TCP åºåã¿ã¹ã¯*/991 /* TCP 出力タスク */ 1046 992 1047 993 extern void tcp_output_task(intptr_t exinf); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * UDP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã35 * UDP で使用するカーネルオブジェクト 48 36 */ 49 37 … … 51 39 52 40 /* 53 * ãã³ããããã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯ã¨ã»ããã©41 * ノンブロッキングコールを行う場合に組み込むタスクとセマフォ 54 42 */ 55 43 … … 65 53 }); 66 54 67 /* ã»ããã©*/55 /* セマフォ */ 68 56 69 57 CRE_SEM(SEM_UDP_POST_OUTPUT, { TA_TPRI, 0, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * UDP ããããRFC768 åç 87 § 74 * UDP ヘッダ、RFC768 参照 88 75 */ 89 76 90 77 typedef struct t_udp_hdr { 91 uint16_t sport; /* éä¿¡å 92 ãã¼ãçªå· */ 93 uint16_t dport; /* å®å 94 ãã¼ãçªå· */ 78 uint16_t sport; /* 送信元ポート番号 */ 79 uint16_t dport; /* 宛先ポート番号 */ 95 80 96 uint16_t ulen; /* ãã¼ã¿ã°ã©ã é·*/97 uint16_t sum; /* ãã§ãã¯ãµã*/81 uint16_t ulen; /* データグラム長 */ 82 uint16_t sum; /* チェックサム */ 98 83 } __attribute__((packed, aligned(2)))T_UDP_HDR; 99 84 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 129 117 130 118 /* 131 * SNMP 㮠管çæ 132 å ±ãã¼ã¹ (MIB) 119 * SNMP の 管理情報ベース (MIB) 133 120 */ 134 121 … … 142 129 143 130 /* 144 * udp_dstaddr_accept -- UDP ã®ãã¦å 145 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 146 * 147 * DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ã以ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã 148 * 149 * ã»ãã¦å 150 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 151 * ã»ãã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾© 131 * udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 132 * 133 * DHCP_CFG が定義されているときは、以下のデータグラムを受信する。 134 * 135 * ・あて先アドレスがブロードキャスト 136 * ・ローカルアドレスが未定義 152 137 */ 153 138 … … 168 153 169 154 /* 170 * udp_dstaddr_accept -- UDP ã®ãã¦å 171 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 172 * 173 * 以ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã 174 * 175 * ã»ãã¦å 176 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 155 * udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 156 * 157 * 以下の場合もデータグラムを受信する。 158 * 159 * ・あて先アドレスがブロードキャスト 177 160 */ 178 161 … … 194 177 195 178 /* 196 * udp_dstaddr_accept -- UDP ã®ãã¦å 197 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 198 * 199 * 以ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã 200 * 201 * ã»ãã¦å 202 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 179 * udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 180 * 181 * 以下の場合もデータグラムを受信する。 182 * 183 * ・あて先アドレスがブロードキャスト 203 184 */ 204 185 … … 222 203 223 204 /* 224 * udp_dstaddr_accept -- UDP ã®ãã¦å 225 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 226 * 227 * 以ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã 228 * 229 * ã»ãã¦å 230 ã¢ãã¬ã¹ããã«ããã£ã¹ã 205 * udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 206 * 207 * 以下の場合もデータグラムを受信する。 208 * 209 * ・あて先アドレスがマルチキャスト 231 210 */ 232 211 … … 243 222 244 223 /* 245 * udp_input -- UDP ã®å 246 ¥åé¢æ° 224 * udp_input -- UDP の入力関数 247 225 */ 248 226 … … 263 241 NET_COUNT_MIB(udp_stats.udpInDatagrams, 1); 264 242 265 /* ãããé·ããã§ãã¯ããã*/243 /* ヘッダ長をチェックする。*/ 266 244 if (input->len < hlen + UDP_HDR_SIZE) 267 245 goto buf_rel; … … 269 247 udph = (T_UDP_HDR *)(input->buf + *offp); 270 248 271 /* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ãã*/249 /* データグラム長をチェックする */ 272 250 ulen = ntohs(udph->ulen); 273 251 if (ulen != input->len - hlen) 274 252 goto buf_rel; 275 253 276 /* å®å 277 ãã¼ãã 0 ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ãããRFC768 */ 254 /* 宛先ポートが 0 のデータグラムは破棄する。RFC768 */ 278 255 if (udph->dport == 0) 279 256 goto buf_rel; … … 281 258 #ifdef UDP_CFG_IN_CHECKSUM 282 259 283 /* ãã§ãã¯ãµã ããã§ãã¯ãã*/260 /* チェックサムをチェックする */ 284 261 if (udph->sum && IN_CKSUM(input, IPPROTO_UDP, *offp, ulen) != 0) 285 262 goto buf_rel; … … 289 266 iph = GET_IP_HDR(input); 290 267 291 /* å®å 292 ã¢ãã¬ã¹ã¨ãã¼ãããã§ãã¯ãã */ 268 /* 宛先アドレスとポートをチェックする */ 293 269 for (ix = tmax_udp_ccepid; ix -- > 0; ) { 294 270 cep = &udp_cep[ix]; … … 298 274 len = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE); 299 275 300 if (cep->rcv_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/276 if (cep->rcv_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 301 277 if (psnd_dtq(cep->rcvqid, (intptr_t)input) != E_OK) 302 278 goto buf_rel; … … 305 281 #ifdef UDP_CFG_NON_BLOCKING 306 282 307 else if (cep->rcv_p_dstaddr != NULL) { /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/308 309 /* p_dstaddr ãè¨å®ããã*/283 else if (cep->rcv_p_dstaddr != NULL) { /* ノンブロッキングコールでペンディング中 */ 284 285 /* p_dstaddr を設定する。*/ 310 286 cep->rcv_p_dstaddr->portno = ntohs(udph->sport); 311 287 IN_COPY_TO_HOST(&cep->rcv_p_dstaddr->ipaddr, &GET_IP_HDR(input)->src); 312 288 313 /* ãã¼ã¿ããããã¡ã«ç§»ãã*/289 /* データをバッファに移す。*/ 314 290 memcpy(cep->rcv_data, GET_UDP_SDU(input, *offp), 315 291 (size_t)(len < cep->rcv_len ? len : cep->rcv_len)); … … 337 313 else if (IS_PTR_DEFINED(cep->callback)) { 338 314 339 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/315 /* コールバック関数を呼び出す。*/ 340 316 cep->cb_netbuf = input; 341 317 … … 351 327 352 328 /* 353 * ãããã¯ã¼ã¯ãããã¡ããã®ã¾ã¾ã§ããã°ãã³ã¼ã«ããã¯é¢æ°å 354 㧠355 * ãã¼ã¿ãèªã¿åºããªãã£ããã¨ã«ãªãã®ã§ãæ¨ã¦ãã 329 * ネットワークバッファがそのままであれば、コールバック関数内で 330 * データを読み出さなかったことになるので、捨てる。 356 331 */ 357 332 if (cep->cb_netbuf != NULL) … … 369 344 #if defined(SUPPORT_INET4) 370 345 371 /* ãã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/346 /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/ 372 347 if (ntohl(iph->dst) == IF_GET_IFNET()->in_ifaddr.addr) { 373 348 syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport)); 374 349 375 350 icmp_error(ICMP4_UNREACH_PORT, input); 376 /* icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ä¸ã¸æããã*/351 /* icmp_error では、ネットワークバッファ input を返却しないので下へ抜ける。*/ 377 352 } 378 353 … … 381 356 #if defined(SUPPORT_INET6) 382 357 383 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã 㯠ICMP ã¨ã©ã¼ãéç¥ããªãã*/358 /* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/ 384 359 if (!IN6_IS_ADDR_MULTICAST(&iph->dst)) { 385 360 syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport)); 386 361 387 /* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/362 /* icmp6_error で、ネットワークバッファ input を返却する。*/ 388 363 icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0); 389 364 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 127 115 128 116 /* 129 * é¢æ°117 * 関数 130 118 */ 131 119 … … 133 121 134 122 /* 135 * UDP åºåã¿ã¹ã¯136 * ãã³ããããã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ã使ç¨ããã123 * UDP 出力タスク 124 * ノンブロッキングコールを組み込んだとき使用する。 137 125 */ 138 126 … … 148 136 #endif /* of #ifdef UDP_CFG_OUT_CHECKSUM */ 149 137 150 /* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/138 /* IP データグラムを割り当てる。*/ 151 139 if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + cep->snd_len), 0, 152 140 &cep->snd_p_dstaddr->ipaddr, … … 157 145 } 158 146 159 /* UDP ãããã«æ 160 å ±ãè¨å®ããã*/ 147 /* UDP ヘッダに情報を設定する。*/ 161 148 udph = GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET); 162 149 udph->sport = htons(cep->myaddr.portno); … … 165 152 udph->sum = 0; 166 153 167 /* ãã¼ã¿ãã³ãã¼ããã*/154 /* データをコピーする。*/ 168 155 memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET), 169 156 cep->snd_data, (size_t)cep->snd_len); … … 174 161 (uint_t)(UDP_HDR_SIZE + cep->snd_len)); 175 162 176 /* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå 177 ¥ããã*/ 163 /* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/ 178 164 if (sum == 0) 179 165 sum = UINT_C(0xffff); … … 182 168 #endif/* of #ifdef UDP_CFG_OUT_CHECKSUM */ 183 169 184 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/170 /* ネットワークバッファ長を調整する。*/ 185 171 output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE + cep->snd_len); 186 172 187 /* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/173 /* ネットワーク層 (IP) の出力関数を呼び出す。*/ 188 174 if ((error = IP_OUTPUT(output, TMO_UDP_OUTPUT)) != E_OK) 189 175 goto err_ret; … … 236 222 237 223 /* 238 * UDP åºåã¿ã¹ã¯239 * ãã³ããããã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ã使ç¨ããã224 * UDP 出力タスク 225 * ノンブロッキングコールを組み込んだとき使用する。 240 226 */ 241 227 … … 252 238 #if defined(SUPPORT_INET6) && !defined(SUPPORT_TCP) 253 239 254 /* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ãå®è¡ããã*/240 /* IPv6 のステートレス・アドレス自動設定を実行する。*/ 255 241 in6_if_up(IF_GET_IFNET()); 256 242 … … 259 245 while (true) { 260 246 261 /* åºåããã¹ããããã¾ã§å¾ 262 ã¤ã*/ 247 /* 出力がポストされるまで待つ。*/ 263 248 syscall(wai_sem(SEM_UDP_POST_OUTPUT)); 264 249 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 125 113 126 114 /* 127 * å±æå¤æ°115 * 局所変数 128 116 */ 129 117 130 static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO; /* èªåå²ãå½ã¦çªå·*/118 static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO; /* 自動割り当て番号 */ 131 119 132 120 /* 133 * udp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨å®ããã121 * udp_alloc_auto_port -- 自動割り当てポート番号を設定する。 134 122 */ 135 123 … … 167 155 168 156 /* 169 * udp_alloc_port -- æå®ããããã¼ãçªå·ãè¨å®ããã157 * udp_alloc_port -- 指定されたポート番号を設定する。 170 158 */ 171 159 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r279 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 81 69 82 70 /* 83 * ãã³ããããã³ã°ã³ã¼ã«ãçµè¾¼ã¾ãªãå ´åã«ãªã³ã¯ãããé¢æ°ã®å®ç¾©71 * ノンブロッキングコールを組込まない場合にリンクされる関数の定義 84 72 */ 85 73 … … 131 119 132 120 /* 133 * IPv4 㨠IPv6 ã®åãæ¿ããã¯ã121 * IPv4 と IPv6 の切り替えマクロ 134 122 */ 135 123 … … 151 139 152 140 /* 153 * TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå 154 ¨ã¦ã®æ©è½ã 155 * ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ããæå¹ã«ããã 141 * TINET をライブラリ化しない場合は、全ての機能を 142 * オブジェクトファイルに出力するため、マクロを有効にする。 156 143 */ 157 144 … … 174 161 175 162 /* 176 * udp_send_data -- ãã±ããéä¿¡ã®ä¸»è¦é¨163 * udp_send_data -- パケット送信の主要部 177 164 */ 178 165 … … 192 179 NET_COUNT_UDP(net_count_udp.out_packets, 1); 193 180 194 /* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/181 /* IP データグラム割り当ての時間を tmout から減ずる。*/ 195 182 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) 196 183 syscall(get_tim(&before)); 197 184 198 /* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/185 /* IP データグラムを割り当てる。*/ 199 186 if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + len), 0, 200 187 &p_dstaddr->ipaddr, … … 204 191 goto err_ret; 205 192 206 /* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/193 /* IP データグラム割り当ての時間を tmout から減ずる。*/ 207 194 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) { 208 195 syscall(get_tim(&after)); … … 215 202 } 216 203 217 /* UDP ãããã«æ 218 å ±ãè¨å®ããã*/ 204 /* UDP ヘッダに情報を設定する。*/ 219 205 udph = GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET); 220 206 udph->sport = htons(cep->myaddr.portno); … … 223 209 udph->sum = 0; 224 210 225 /* ãã¼ã¿ãã³ãã¼ããã*/211 /* データをコピーする。*/ 226 212 memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET), data, (size_t)len); 227 213 … … 230 216 sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET, (uint_t)(UDP_HDR_SIZE + len)); 231 217 232 /* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå 233 ¥ããã*/ 218 /* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/ 234 219 if (sum == 0) 235 220 sum = 0xffff; … … 238 223 #endif /* of #ifdef UDP_CFG_OUT_CHECKSUM */ 239 224 240 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/225 /* ネットワークバッファ長を調整する。*/ 241 226 output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE + len); 242 227 243 /* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/228 /* ネットワーク層 (IP) の出力関数を呼び出す。*/ 244 229 if ((error = IP_OUTPUT(output, tmout)) == E_OK) { 245 230 NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1); … … 257 242 258 243 /* 259 * udp_cre_cep -- UDP é信端ç¹ã®çæãæ¡å¼µæ©è½ã244 * udp_cre_cep -- UDP 通信端点の生成【拡張機能】 260 245 */ 261 246 … … 270 255 ER error; 271 256 272 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/257 /* UDP 通信端点 ID をチェックする。*/ 273 258 if (!VALID_UDP_CEPID(cepid)) 274 259 return E_ID; 275 260 276 /* pk_ccep ã NULL ãªãã¨ã©ã¼*/261 /* pk_ccep が NULL ならエラー */ 277 262 if (pk_ccep == NULL) 278 263 return E_PAR; 279 264 280 /* UDP é信端ç¹ãå¾ãã*/265 /* UDP 通信端点を得る。*/ 281 266 cep = GET_UDP_CEP(cepid); 282 267 283 /* UDP é信端ç¹ããã§ãã¯ããã*/268 /* UDP 通信端点をチェックする。*/ 284 269 if (VALID_UDP_CEP(cep)) 285 270 return E_OBJ; 286 271 287 /* UDP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/272 /* UDP 通信端点が、動的生成用でなければエラー */ 288 273 if (!DYNAMIC_UDP_CEP(cep)) 289 274 return E_ID; 290 275 291 /* é信端ç¹ãããã¯ããã*/276 /* 通信端点をロックする。*/ 292 277 syscall(wai_sem(cep->semid_lock)); 293 278 294 279 /* 295 * UDP é信端ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼280 * UDP 通信端点をチェックする。生成済みであればエラー 296 281 */ 297 282 if (VALID_UDP_CEP(cep)) … … 300 285 301 286 /* 302 * èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã287 * 自ポート番号が UDP_PORTANY なら、自動で割り当てる。 303 288 */ 304 289 if (pk_ccep->myaddr.portno == UDP_PORTANY) … … 309 294 if (error == E_OK) { 310 295 311 /* UDP é信端ç¹çææ 312 å ±ãã³ãã¼ããã*/ 313 cep->cepatr = pk_ccep->cepatr; /* é信端ç¹å±æ§ */ 314 cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr; /* èªåã®ã¢ãã¬ã¹ */ 315 cep->callback = (void*)pk_ccep->callback; /* ã³ã¼ã«ãã㯠*/ 316 317 /* UDP é信端ç¹ãçææ¸ã¿ã«ããã*/ 296 /* UDP 通信端点生成情報をコピーする。*/ 297 cep->cepatr = pk_ccep->cepatr; /* 通信端点属性 */ 298 cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr; /* 自分のアドレス */ 299 cep->callback = (void*)pk_ccep->callback; /* コールバック */ 300 301 /* UDP 通信端点を生成済みにする。*/ 318 302 cep->flags |= UDP_CEP_FLG_VALID; 319 303 } 320 304 } 321 305 322 /* é信端ç¹ã®ããã¯ã解é¤ããã*/306 /* 通信端点のロックを解除する。*/ 323 307 syscall(sig_sem(cep->semid_lock)); 324 308 … … 331 315 332 316 /* 333 * udp_del_cep -- UDP é信端ç¹ã®åé¤ãæ¡å¼µæ©è½ã317 * udp_del_cep -- UDP 通信端点の削除【拡張機能】 334 318 */ 335 319 … … 344 328 ER error; 345 329 346 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/330 /* UDP 通信端点 ID をチェックする。*/ 347 331 if (!VALID_UDP_CEPID(cepid)) 348 332 return E_ID; 349 333 350 /* UDP é信端ç¹ãå¾ãã*/334 /* UDP 通信端点を得る。*/ 351 335 cep = GET_UDP_CEP(cepid); 352 336 353 /* UDP é信端ç¹ããã§ãã¯ããã*/337 /* UDP 通信端点をチェックする。*/ 354 338 if (!VALID_UDP_CEP(cep)) 355 339 return E_NOEXS; 356 340 357 /* UDP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/341 /* UDP 通信端点が、動的生成用でなければエラー */ 358 342 if (!DYNAMIC_UDP_CEP(cep)) 359 343 return E_ID; 360 344 361 /* é信端ç¹ãããã¯ããã*/345 /* 通信端点をロックする。*/ 362 346 syscall(wai_sem(cep->semid_lock)); 363 347 364 348 /* 365 * UDP é信端ç¹ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼366 * ã»æªçæã349 * UDP 通信端点をチェックする。未生成の場合はエラー 350 * ・未生成。 367 351 */ 368 352 if (!VALID_UDP_CEP(cep)) … … 372 356 udp_can_rcv(cep, E_DLT); 373 357 374 /* UDP é信端ç¹ãæªçæã«ããã*/358 /* UDP 通信端点を未生成にする。*/ 375 359 cep->flags &= ~UDP_CEP_FLG_VALID; 376 360 error = E_OK; 377 361 } 378 362 379 /* é信端ç¹ã®ããã¯ã解é¤ããã*/363 /* 通信端点のロックを解除する。*/ 380 364 syscall(sig_sem(cep->semid_lock)); 381 365 … … 390 374 391 375 /* 392 * udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ãã£ã³ã»ã«ãæ¨æºæ©è½ã376 * udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】 393 377 */ 394 378 … … 399 383 ER error = E_OK, snd_err, rcv_err; 400 384 401 /* API æ©è½ã³ã¼ãããã§ãã¯ããã*/385 /* API 機能コードをチェックする。*/ 402 386 if (!VALID_TFN_UDP_CAN(fncd)) 403 387 return E_PAR; 404 388 405 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/389 /* UDP 通信端点 ID をチェックする。*/ 406 390 if (!VALID_UDP_CEPID(cepid)) 407 391 return E_ID; 408 392 409 /* UDP é信端ç¹ãå¾ãã*/393 /* UDP 通信端点を得る。*/ 410 394 cep = GET_UDP_CEP(cepid); 411 395 412 /* UDP é信端ç¹ããã§ãã¯ããã*/396 /* UDP 通信端点をチェックする。*/ 413 397 if (!VALID_UDP_CEP(cep)) 414 398 return E_NOEXS; 415 399 416 /* é信端ç¹ãããã¯ããã*/400 /* 通信端点をロックする。*/ 417 401 syscall(wai_sem(cep->semid_lock)); 418 402 419 if (fncd == TFN_UDP_ALL) { /* TFN_UDP_ALL ã®å¦ç*/403 if (fncd == TFN_UDP_ALL) { /* TFN_UDP_ALL の処理 */ 420 404 421 405 snd_err = udp_can_snd(cep, E_RLWAI); … … 423 407 424 408 /* 425 * snd_err 㨠rcv_err ã®ã©ã¡ããEV_NOPND426 * ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼409 * snd_err と rcv_err のどちらも EV_NOPND 410 * なら、ペンディングしていないのでエラー 427 411 */ 428 412 if (snd_err == EV_NOPND && rcv_err == EV_NOPND) … … 440 424 } 441 425 } 442 else if (fncd == TFN_UDP_SND_DAT) { /* éä¿¡å¦çã®ãã£ã³ã»ã«*/426 else if (fncd == TFN_UDP_SND_DAT) { /* 送信処理のキャンセル */ 443 427 if ((error = udp_can_snd(cep, E_RLWAI)) == EV_NOPND) 444 428 error = E_OBJ; 445 429 } 446 else if (fncd == TFN_UDP_RCV_DAT) { /* åä¿¡å¦çã®ãã£ã³ã»ã«*/430 else if (fncd == TFN_UDP_RCV_DAT) { /* 受信処理のキャンセル */ 447 431 if ((error = udp_can_rcv(cep, E_RLWAI)) == EV_NOPND) 448 432 error = E_OBJ; … … 451 435 error = E_PAR; 452 436 453 /* é信端ç¹ãããã¯ã解é¤ããã*/437 /* 通信端点をロックを解除する。*/ 454 438 syscall(sig_sem(cep->semid_lock)); 455 439 … … 460 444 461 445 /* 462 * udp_set_opt -- UDP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãæ¡å¼µæ©è½ã446 * udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】 463 447 * 464 * 注æ: è¨å®å¯è½ãª UDP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã448 * 注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。 465 449 */ 466 450 … … 474 458 T_UDP_CEP *cep; 475 459 476 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/460 /* UDP 通信端点 ID をチェックする。*/ 477 461 if (!VALID_UDP_CEPID(cepid)) 478 462 return E_ID; 479 463 480 /* UDP é信端ç¹ãå¾ãã*/464 /* UDP 通信端点を得る。*/ 481 465 cep = GET_UDP_CEP(cepid); 482 466 483 /* UDP é信端ç¹ããã§ãã¯ããã*/467 /* UDP 通信端点をチェックする。*/ 484 468 if (!VALID_UDP_CEP(cep)) 485 469 return E_NOEXS; … … 493 477 494 478 /* 495 * udp_get_opt -- UDP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãæ¡å¼µæ©è½ã479 * udp_get_opt -- UDP 通信端点オプションの設定【拡張機能】 496 480 * 497 * 注æ: è¨å®å¯è½ãª UDP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã481 * 注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。 498 482 */ 499 483 … … 507 491 T_UDP_CEP *cep; 508 492 509 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/493 /* UDP 通信端点 ID をチェックする。*/ 510 494 if (!VALID_UDP_CEPID(cepid)) 511 495 return E_ID; 512 496 513 /* UDP é信端ç¹ãå¾ãã*/497 /* UDP 通信端点を得る。*/ 514 498 cep = GET_UDP_CEP(cepid); 515 499 516 /* UDP é信端ç¹ããã§ãã¯ããã*/500 /* UDP 通信端点をチェックする。*/ 517 501 if (!VALID_UDP_CEP(cep)) 518 502 return E_NOEXS; … … 534 518 535 519 /* 536 * udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ãã£ã³ã»ã«520 * udp_can_snd -- ペンディングしている送信のキャンセル 537 521 */ 538 522 … … 540 524 udp_can_snd (T_UDP_CEP *cep, ER error) 541 525 { 542 if (cep->snd_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸ */ 543 544 #ifdef UDP_CFG_EXTENTIONS 545 546 /* å¾ 547 ã¡ä¸ã«çºçããã¨ã©ã¼æ 548 å ±ãè¨å®ããã*/ 526 if (cep->snd_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 527 528 #ifdef UDP_CFG_EXTENTIONS 529 530 /* 待ち中に発生したエラー情報を設定する。*/ 549 531 cep->error = error; 550 532 … … 554 536 cep->snd_tskid = TA_NULL; 555 537 } 556 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/538 else /* どちらでもないならペンディングしていない */ 557 539 error = EV_NOPND; 558 540 … … 565 547 566 548 /* 567 * udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ãã£ã³ã»ã«549 * udp_can_rcv -- ペンディングしている受信のキャンセル 568 550 */ 569 551 … … 571 553 udp_can_rcv (T_UDP_CEP *cep, ER error) 572 554 { 573 if (cep->rcv_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸ */ 574 575 #ifdef UDP_CFG_EXTENTIONS 576 577 /* å¾ 578 ã¡ä¸ã«çºçããã¨ã©ã¼æ 579 å ±ãè¨å®ããã*/ 555 if (cep->rcv_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 556 557 #ifdef UDP_CFG_EXTENTIONS 558 559 /* 待ち中に発生したエラー情報を設定する。*/ 580 560 cep->error = error; 581 561 … … 585 565 cep->rcv_tskid = TA_NULL; 586 566 } 587 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/567 else /* どちらでもないならペンディングしていない */ 588 568 error = EV_NOPND; 589 569 … … 596 576 597 577 /* 598 * udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã578 * udp_snd_dat -- パケットの送信【標準機能】 599 579 */ 600 580 … … 605 585 ER error; 606 586 607 /* p_dstaddr ã¾ã㯠data ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/587 /* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */ 608 588 if (p_dstaddr == NULL || data == NULL || tmout == TMO_NBLK) 609 589 return E_PAR; 610 590 611 /* ãã¼ã¿é·ããã§ãã¯ããã*/591 /* データ長をチェックする。*/ 612 592 if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU) 613 593 return E_PAR; 614 594 615 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/595 /* UDP 通信端点 ID をチェックする。*/ 616 596 if (!VALID_UDP_CEPID(cepid)) 617 597 return E_ID; 618 598 619 /* UDP é信端ç¹ãå¾ãã*/599 /* UDP 通信端点を得る。*/ 620 600 cep = GET_UDP_CEP(cepid); 621 601 622 /* UDP é信端ç¹ããã§ãã¯ããã*/602 /* UDP 通信端点をチェックする。*/ 623 603 if (!VALID_UDP_CEP(cep)) 624 604 return E_NOEXS; 625 605 626 606 /* 627 * èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã607 * 自ポート番号が UDP_PORTANY なら、自動で割り当てる。 628 608 */ 629 609 if (cep->myaddr.portno == UDP_PORTANY) { … … 632 612 } 633 613 634 /* é信端ç¹ãããã¯ããã*/614 /* 通信端点をロックする。*/ 635 615 syscall(wai_sem(cep->semid_lock)); 636 616 637 617 if (cep->snd_tskid != TA_NULL) { 638 618 639 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/619 /* 非ノンブロッキングコールでペンディング中 */ 640 620 error = E_QOVR; 641 621 642 /* é信端ç¹ãããã¯ã解é¤ããã*/622 /* 通信端点をロックを解除する。*/ 643 623 syscall(sig_sem(cep->semid_lock)); 644 624 } 645 625 else { 646 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/626 /* 現在のタスク識別子を記録する。*/ 647 627 get_tid(&(cep->snd_tskid)); 648 628 649 629 #ifdef UDP_CFG_EXTENTIONS 650 630 651 /* å¾ 652 ã¡ä¸ã«çºçããã¨ã©ã¼æ 653 å ±ããªã»ããããã*/ 631 /* 待ち中に発生したエラー情報をリセットする。*/ 654 632 cep->error = E_OK; 655 633 656 634 #endif /* of #ifdef UDP_CFG_EXTENTIONS */ 657 635 658 /* é信端ç¹ãããã¯ã解é¤ããã*/636 /* 通信端点をロックを解除する。*/ 659 637 syscall(sig_sem(cep->semid_lock)); 660 638 661 /* ãã±ãããéä¿¡ããã*/639 /* パケットを送信する。*/ 662 640 error = udp_send_data(cep, p_dstaddr, data, len, tmout); 663 641 664 642 #ifdef UDP_CFG_EXTENTIONS 665 643 666 /* å¾ 667 ã¡ä¸ã«çºçããã¨ã©ã¼æ 668 å ±ãè¿ãã*/ 644 /* 待ち中に発生したエラー情報を返す。*/ 669 645 if (error == E_RLWAI) 670 646 error = cep->error; … … 681 657 682 658 /* 683 * udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã659 * udp_rcv_dat -- パケットの受信【標準機能】 684 660 */ 685 661 … … 693 669 uint_t ulen, uhoff; 694 670 695 /* p_dstaddr ã¾ã㯠data ã NULL ãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/671 /* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */ 696 672 if (p_dstaddr == NULL || data == NULL || len < 0 || tmout == TMO_NBLK) 697 673 return E_PAR; 698 674 699 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/675 /* UDP 通信端点 ID をチェックする。*/ 700 676 if (!VALID_UDP_CEPID(cepid)) 701 677 return E_ID; 702 678 703 /* UDP é信端ç¹ãå¾ãã*/679 /* UDP 通信端点を得る。*/ 704 680 cep = GET_UDP_CEP(cepid); 705 681 706 /* UDP é信端ç¹ããã§ãã¯ããã*/682 /* UDP 通信端点をチェックする。*/ 707 683 if (!VALID_UDP_CEP(cep)) 708 684 return E_NOEXS; 709 685 710 /* é信端ç¹ãããã¯ããã*/686 /* 通信端点をロックする。*/ 711 687 syscall(wai_sem(cep->semid_lock)); 712 688 713 689 if (cep->rcv_tskid != TA_NULL) { 714 690 715 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/691 /* 非ノンブロッキングコールでペンディング中 */ 716 692 error = E_QOVR; 717 693 718 /* é信端ç¹ãããã¯ã解é¤ããã*/694 /* 通信端点をロックを解除する。*/ 719 695 syscall(sig_sem(cep->semid_lock)); 720 696 } 721 697 else { 722 698 723 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/699 /* 現在のタスク識別子を記録する。*/ 724 700 get_tid(&(cep->rcv_tskid)); 725 701 726 702 #ifdef UDP_CFG_EXTENTIONS 727 703 728 /* å¾ 729 ã¡ä¸ã«çºçããã¨ã©ã¼æ 730 å ±ããªã»ããããã*/ 704 /* 待ち中に発生したエラー情報をリセットする。*/ 731 705 cep->error = E_OK; 732 706 733 707 #endif /* of #ifdef UDP_CFG_EXTENTIONS */ 734 708 735 /* é信端ç¹ãããã¯ã解é¤ããã*/709 /* 通信端点をロックを解除する。*/ 736 710 syscall(sig_sem(cep->semid_lock)); 737 711 738 /* å 739 ¥åãããã¾ã§å¾ 740 ã¤ã*/ 712 /* 入力があるまで待つ。*/ 741 713 if (cep->cb_netbuf != NULL) { 742 714 743 715 /* 744 * ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸ãã 745 * udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã 746 * ãã§ã«å 747 ¥åæ¸ã¿ã§ããã 716 * ここにくる場合は、コールバック関数の中から 717 * udp_rcv_dat を呼び出していることになり、 718 * すでに入力済みである。 748 719 */ 749 720 input = cep->cb_netbuf; … … 754 725 #ifdef UDP_CFG_EXTENTIONS 755 726 756 /* å¾ 757 ã¡ä¸ã«çºçããã¨ã©ã¼æ 758 å ±ãè¿ãã*/ 727 /* 待ち中に発生したエラー情報を返す。*/ 759 728 if (error == E_RLWAI) 760 729 error = cep->error; … … 766 735 } 767 736 768 /* p_dstaddr ãè¨å®ããã*/737 /* p_dstaddr を設定する。*/ 769 738 uhoff = (uint_t)GET_UDP_HDR_OFFSET(input); 770 739 udph = GET_UDP_HDR(input, uhoff); … … 772 741 IN_COPY_TO_HOST(&p_dstaddr->ipaddr, &GET_IP_HDR(input)->src); 773 742 774 /* ãã¼ã¿ããããã¡ã«ç§»ãã*/743 /* データをバッファに移す。*/ 775 744 ulen = ntohs(udph->ulen); 776 745 if (ulen - UDP_HDR_SIZE > len) -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 128 116 129 117 /* 130 * IPv4 㨠IPv6 ã®åãæ¿ããã¯ã118 * IPv4 と IPv6 の切り替えマクロ 131 119 */ 132 120 … … 146 134 147 135 /* 148 * TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå 149 ¨ã¦ã®æ©è½ã 150 * ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ããæå¹ã«ããã 136 * TINET をライブラリ化しない場合は、全ての機能を 137 * オブジェクトファイルに出力するため、マクロを有効にする。 151 138 */ 152 139 … … 165 152 166 153 /* 167 * udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ãã£ã³ã»ã«154 * udp_can_snd -- ペンディングしている送信のキャンセル 168 155 */ 169 156 … … 171 158 udp_can_snd (T_UDP_CEP *cep, ER error) 172 159 { 173 if (cep->snd_p_dstaddr != NULL) { /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/160 if (cep->snd_p_dstaddr != NULL) { /* ノンブロッキングコールでペンディング中 */ 174 161 if (IS_PTR_DEFINED(cep->callback)) 175 162 … … 188 175 cep->snd_p_dstaddr = NULL; 189 176 } 190 else if (cep->snd_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/177 else if (cep->snd_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 191 178 192 179 #ifdef UDP_CFG_EXTENTIONS 193 180 194 /* å¾ 195 ã¡ä¸ã«çºçããã¨ã©ã¼æ 196 å ±ãè¨å®ããã*/ 181 /* 待ち中に発生したエラー情報を設定する。*/ 197 182 cep->error = error; 198 183 … … 202 187 cep->snd_tskid = TA_NULL; 203 188 } 204 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/189 else /* どちらでもないならペンディングしていない */ 205 190 error = EV_NOPND; 206 191 … … 213 198 214 199 /* 215 * udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ãã£ã³ã»ã«200 * udp_can_rcv -- ペンディングしている受信のキャンセル 216 201 */ 217 202 … … 219 204 udp_can_rcv (T_UDP_CEP *cep, ER error) 220 205 { 221 if (cep->rcv_p_dstaddr != NULL) { /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/206 if (cep->rcv_p_dstaddr != NULL) { /* ノンブロッキングコールでペンディング中 */ 222 207 if (IS_PTR_DEFINED(cep->callback)) 223 208 … … 236 221 cep->rcv_p_dstaddr = NULL; 237 222 } 238 else if (cep->rcv_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/223 else if (cep->rcv_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 239 224 240 225 #ifdef UDP_CFG_EXTENTIONS 241 226 242 /* å¾ 243 ã¡ä¸ã«çºçããã¨ã©ã¼æ 244 å ±ãè¨å®ããã*/ 227 /* 待ち中に発生したエラー情報を設定する。*/ 245 228 cep->error = error; 246 229 … … 250 233 cep->rcv_tskid = TA_NULL; 251 234 } 252 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/235 else /* どちらでもないならペンディングしていない */ 253 236 error = EV_NOPND; 254 237 … … 261 244 262 245 /* 263 * udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã246 * udp_snd_dat -- パケットの送信【標準機能】 264 247 */ 265 248 … … 270 253 ER error; 271 254 272 /* p_dstaddr ã¾ã㯠data ã NULL ãªãã¨ã©ã¼*/255 /* p_dstaddr または data が NULL ならエラー */ 273 256 if (p_dstaddr == NULL || data == NULL) 274 257 return E_PAR; 275 258 276 /* ãã¼ã¿é·ããã§ãã¯ããã*/259 /* データ長をチェックする。*/ 277 260 if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU) 278 261 return E_PAR; 279 262 280 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/263 /* UDP 通信端点 ID をチェックする。*/ 281 264 if (!VALID_UDP_CEPID(cepid)) 282 265 return E_ID; 283 266 284 /* UDP é信端ç¹ãå¾ãã*/267 /* UDP 通信端点を得る。*/ 285 268 cep = GET_UDP_CEP(cepid); 286 269 287 /* UDP é信端ç¹ããã§ãã¯ããã*/270 /* UDP 通信端点をチェックする。*/ 288 271 if (!VALID_UDP_CEP(cep)) 289 272 return E_NOEXS; 290 273 291 274 /* 292 * èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã275 * 自ポート番号が UDP_PORTANY なら、自動で割り当てる。 293 276 */ 294 277 if (cep->myaddr.portno == UDP_PORTANY) { … … 298 281 299 282 /* 300 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã283 * タイムアウトをチェックする。 301 284 */ 302 285 303 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/304 305 /* é信端ç¹ãããã¯ããã*/286 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 287 288 /* 通信端点をロックする。*/ 306 289 syscall(wai_sem(cep->semid_lock)); 307 290 308 291 if (cep->snd_p_dstaddr != NULL) { 309 292 310 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/293 /* ノンブロッキングコールでペンディング中 */ 311 294 error = E_QOVR; 312 295 313 /* é信端ç¹ãããã¯ã解é¤ããã*/296 /* 通信端点をロックを解除する。*/ 314 297 syscall(sig_sem(cep->semid_lock)); 315 298 } 316 299 else if (cep->snd_tskid != TA_NULL) { 317 300 318 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/319 error = E_OBJ; 320 321 /* é信端ç¹ãããã¯ã解é¤ããã*/301 /* 非ノンブロッキングコールでペンディング中 */ 302 error = E_OBJ; 303 304 /* 通信端点をロックを解除する。*/ 322 305 syscall(sig_sem(cep->semid_lock)); 323 306 } … … 328 311 cep->snd_len = len; 329 312 330 /* é信端ç¹ãããã¯ã解é¤ããã*/313 /* 通信端点をロックを解除する。*/ 331 314 syscall(sig_sem(cep->semid_lock)); 332 315 … … 336 319 } 337 320 } 338 else { /* éãã³ããããã³ã°ã³ã¼ã«*/321 else { /* 非ノンブロッキングコール */ 339 322 340 /* é信端ç¹ãããã¯ããã*/323 /* 通信端点をロックする。*/ 341 324 syscall(wai_sem(cep->semid_lock)); 342 325 343 326 if (cep->snd_p_dstaddr != NULL) { 344 327 345 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/346 error = E_OBJ; 347 348 /* é信端ç¹ãããã¯ã解é¤ããã*/328 /* ノンブロッキングコールでペンディング中 */ 329 error = E_OBJ; 330 331 /* 通信端点をロックを解除する。*/ 349 332 syscall(sig_sem(cep->semid_lock)); 350 333 } 351 334 else if (cep->snd_tskid != TA_NULL) { 352 335 353 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/336 /* 非ノンブロッキングコールでペンディング中 */ 354 337 error = E_QOVR; 355 338 356 /* é信端ç¹ãããã¯ã解é¤ããã*/339 /* 通信端点をロックを解除する。*/ 357 340 syscall(sig_sem(cep->semid_lock)); 358 341 } 359 342 else { 360 343 361 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/344 /* 現在のタスク識別子を記録する。*/ 362 345 get_tid(&(cep->snd_tskid)); 363 346 364 /* é信端ç¹ãããã¯ã解é¤ããã*/365 syscall(sig_sem(cep->semid_lock)); 366 367 /* ãã±ãããéä¿¡ããã*/347 /* 通信端点をロックを解除する。*/ 348 syscall(sig_sem(cep->semid_lock)); 349 350 /* パケットを送信する。*/ 368 351 error = udp_send_data(cep, p_dstaddr, data, len, tmout); 369 352 } … … 378 361 379 362 /* 380 * udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã363 * udp_rcv_dat -- パケットの受信【標準機能】 381 364 */ 382 365 … … 390 373 uint_t ulen, uhoff; 391 374 392 /* p_dstaddr ã¾ã㯠data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/375 /* p_dstaddr または data が NULL か、len < 0 ならエラー */ 393 376 if (p_dstaddr == NULL || data == NULL || len < 0) 394 377 return E_PAR; 395 378 396 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/379 /* UDP 通信端点 ID をチェックする。*/ 397 380 if (!VALID_UDP_CEPID(cepid)) 398 381 return E_ID; 399 382 400 /* UDP é信端ç¹ãå¾ãã*/383 /* UDP 通信端点を得る。*/ 401 384 cep = GET_UDP_CEP(cepid); 402 385 403 /* UDP é信端ç¹ããã§ãã¯ããã*/386 /* UDP 通信端点をチェックする。*/ 404 387 if (!VALID_UDP_CEP(cep)) 405 388 return E_NOEXS; 406 389 407 390 /* 408 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã391 * タイムアウトをチェックする。 409 392 */ 410 393 411 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/412 413 /* é信端ç¹ãããã¯ããã*/394 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 395 396 /* 通信端点をロックする。*/ 414 397 syscall(wai_sem(cep->semid_lock)); 415 398 416 399 if (cep->rcv_p_dstaddr != NULL) 417 400 418 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/401 /* ノンブロッキングコールでペンディング中 */ 419 402 error = E_QOVR; 420 403 421 404 else if (cep->rcv_tskid != TA_NULL) 422 405 423 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/406 /* 非ノンブロッキングコールでペンディング中 */ 424 407 error = E_OBJ; 425 408 else { … … 430 413 } 431 414 432 /* é信端ç¹ãããã¯ã解é¤ããã*/415 /* 通信端点をロックを解除する。*/ 433 416 syscall(sig_sem(cep->semid_lock)); 434 417 return error; 435 418 } 436 else { /* éãã³ããããã³ã°ã³ã¼ã«*/437 438 /* é信端ç¹ãããã¯ããã*/419 else { /* 非ノンブロッキングコール */ 420 421 /* 通信端点をロックする。*/ 439 422 syscall(wai_sem(cep->semid_lock)); 440 423 441 424 if (cep->rcv_p_dstaddr != NULL) { 442 425 443 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/444 error = E_OBJ; 445 446 /* é信端ç¹ãããã¯ã解é¤ããã*/426 /* ノンブロッキングコールでペンディング中 */ 427 error = E_OBJ; 428 429 /* 通信端点をロックを解除する。*/ 447 430 syscall(sig_sem(cep->semid_lock)); 448 431 } 449 432 else if (cep->rcv_tskid != TA_NULL) { 450 433 451 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/434 /* 非ノンブロッキングコールでペンディング中 */ 452 435 error = E_QOVR; 453 436 454 /* é信端ç¹ãããã¯ã解é¤ããã*/437 /* 通信端点をロックを解除する。*/ 455 438 syscall(sig_sem(cep->semid_lock)); 456 439 } 457 440 else { 458 441 459 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/442 /* 現在のタスク識別子を記録する。*/ 460 443 get_tid(&(cep->rcv_tskid)); 461 444 462 /* é信端ç¹ãããã¯ã解é¤ããã*/ 463 syscall(sig_sem(cep->semid_lock)); 464 465 /* å 466 ¥åãããã¾ã§å¾ 467 ã¤ã*/ 445 /* 通信端点をロックを解除する。*/ 446 syscall(sig_sem(cep->semid_lock)); 447 448 /* 入力があるまで待つ。*/ 468 449 if (cep->cb_netbuf != NULL) { 469 450 470 451 /* 471 * ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸ãã 472 * udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã 473 * ãã§ã«å 474 ¥åæ¸ã¿ã§ããã 452 * ここにくる場合は、コールバック関数の中から 453 * udp_rcv_dat を呼び出していることになり、 454 * すでに入力済みである。 475 455 */ 476 456 input = cep->cb_netbuf; … … 482 462 } 483 463 484 /* p_dstaddr ãè¨å®ããã*/464 /* p_dstaddr を設定する。*/ 485 465 uhoff = (uint_t)GET_UDP_HDR_OFFSET(input); 486 466 udph = GET_UDP_HDR(input, uhoff); … … 488 468 IN_COPY_TO_HOST(&p_dstaddr->ipaddr, &GET_IP_HDR(input)->src); 489 469 490 /* ãã¼ã¿ããããã¡ã«ç§»ãã*/470 /* データをバッファに移す。*/ 491 471 ulen = ntohs(udph->ulen); 492 472 if (ulen - UDP_HDR_SIZE > len) -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * UDP ãããã»ãã¤ãã¼ãã¢ã¯ã»ã¹ãã¯ã74 * UDP ヘッダ・ペイロードアクセスマクロ 87 75 */ 88 76 … … 100 88 101 89 /* 102 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©90 * TINET 1.1 との互換性のための定義 103 91 */ 104 92 … … 113 101 114 102 /* 115 * ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©103 * コールバック関数の定義 116 104 */ 117 105 … … 119 107 120 108 /* 121 * UDP é信端ç¹122 */ 123 124 125 /* 126 * IPv4 UDP é信端ç¹109 * UDP 通信端点 110 */ 111 112 113 /* 114 * IPv4 UDP 通信端点 127 115 */ 128 116 typedef struct t_udp4_cep { 129 117 130 118 /* 131 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã132 */ 133 ATR cepatr; /* UDP é信端ç¹å±æ§*/134 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹*/135 t_udp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/136 137 /* 138 * TINET ç¬èªã®ã¡ã³ã139 */ 140 uint16_t flags; /* é信端ç¹ãã©ã°*/141 ID semid_lock; /* é信端ç¹ããã¯*/142 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å*/143 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å*/144 ID rcvqid; /* éã³ã¼ã«ããã¯ç¨åä¿¡ãã¥ã¼èå¥å*/145 T_NET_BUF *cb_netbuf; /* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/119 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 120 */ 121 ATR cepatr; /* UDP 通信端点属性 */ 122 T_IPV4EP myaddr; /* 自分のアドレス */ 123 t_udp_callback callback; /* コールバック関数 */ 124 125 /* 126 * TINET 独自のメンバ 127 */ 128 uint16_t flags; /* 通信端点フラグ */ 129 ID semid_lock; /* 通信端点ロック */ 130 ID snd_tskid; /* 送信タスク識別子 */ 131 ID rcv_tskid; /* 受信タスク識別子 */ 132 ID rcvqid; /* 非コールバック用受信キュー識別子*/ 133 T_NET_BUF *cb_netbuf; /* コールバック用受信ネットワークバッファ*/ 146 134 147 135 #ifdef UDP_CFG_NON_BLOCKING 148 136 149 T_IPV4EP *snd_p_dstaddr; /* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 150 T_IPV4EP *rcv_p_dstaddr; /* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 151 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 152 é ã¢ãã¬ã¹ */ 153 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 154 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 155 é ã¢ãã¬ã¹ */ 156 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 137 T_IPV4EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/ 138 T_IPV4EP *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/ 139 void *snd_data; /* 送信データ領域の先頭アドレス */ 140 int_t snd_len; /* 送信データ領域の長さ */ 141 void *rcv_data; /* 受信データ領域の先頭アドレス */ 142 int_t rcv_len; /* 受信データ領域の長さ */ 157 143 158 144 #endif /* of #ifdef UDP_CFG_NON_BLOCKING */ 159 145 160 146 #ifdef UDP_CFG_EXTENTIONS 161 ER error; /* å¾ 162 ã¡ä¸ã«çºçããã¨ã©ã¼ */ 147 ER error; /* 待ち中に発生したエラー */ 163 148 #endif 164 149 … … 170 155 171 156 /* 172 * IPv6 UDP é信端ç¹157 * IPv6 UDP 通信端点 173 158 */ 174 159 … … 176 161 177 162 /* 178 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã179 */ 180 ATR cepatr; /* UDP é信端ç¹å±æ§*/181 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹*/182 t_udp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/183 184 /* 185 * TINET ç¬èªã®ã¡ã³ã186 */ 187 uint16_t flags; /* é信端ç¹ãã©ã°*/188 ID semid_lock; /* é信端ç¹ããã¯*/189 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å*/190 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å*/191 ID rcvqid; /* éã³ã¼ã«ããã¯ç¨åä¿¡ãã¥ã¼èå¥å*/192 T_NET_BUF *cb_netbuf; /* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/163 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 164 */ 165 ATR cepatr; /* UDP 通信端点属性 */ 166 T_IPV6EP myaddr; /* 自分のアドレス */ 167 t_udp_callback callback; /* コールバック関数 */ 168 169 /* 170 * TINET 独自のメンバ 171 */ 172 uint16_t flags; /* 通信端点フラグ */ 173 ID semid_lock; /* 通信端点ロック */ 174 ID snd_tskid; /* 送信タスク識別子 */ 175 ID rcv_tskid; /* 受信タスク識別子 */ 176 ID rcvqid; /* 非コールバック用受信キュー識別子*/ 177 T_NET_BUF *cb_netbuf; /* コールバック用受信ネットワークバッファ*/ 193 178 194 179 #ifdef UDP_CFG_NON_BLOCKING 195 180 196 T_IPV6EP *snd_p_dstaddr; /* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 197 T_IPV6EP *rcv_p_dstaddr; /* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 198 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 199 é ã¢ãã¬ã¹ */ 200 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 201 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 202 é ã¢ãã¬ã¹ */ 203 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 181 T_IPV6EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/ 182 T_IPV6EP *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/ 183 void *snd_data; /* 送信データ領域の先頭アドレス */ 184 int_t snd_len; /* 送信データ領域の長さ */ 185 void *rcv_data; /* 受信データ領域の先頭アドレス */ 186 int_t rcv_len; /* 受信データ領域の長さ */ 204 187 205 188 #endif /* of #ifdef UDP_CFG_NON_BLOCKING */ 206 189 207 190 #ifdef UDP_CFG_EXTENTIONS 208 ER error; /* å¾ 209 ã¡ä¸ã«çºçããã¨ã©ã¼ */ 191 ER error; /* 待ち中に発生したエラー */ 210 192 #endif 211 193 … … 217 199 218 200 /* 219 * UDP é信端ç¹ãã©ã°220 */ 221 222 #define UDP_CEP_FLG_POST_OUTPUT UINT_C(0x0200) /* éä¿¡ãéå§ããã*/223 #define UDP_CEP_FLG_DYNAMIC UINT_C(0x0400) /* åççæã»åé¤å¯è½é信端ç¹ã*/224 #define UDP_CEP_FLG_VALID UINT_C(0x0800) /* çææ¸ã¿ã§æå¹ãªé信端ç¹ã*/225 226 /* 227 * ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©228 */ 229 230 #define TMIN_UDP_CEPID 1 /* UDP éä¿¡ç«¯ç¹ ID ã®æå°å¤*/201 * UDP 通信端点フラグ 202 */ 203 204 #define UDP_CEP_FLG_POST_OUTPUT UINT_C(0x0200) /* 送信を開始する。 */ 205 #define UDP_CEP_FLG_DYNAMIC UINT_C(0x0400) /* 動的生成・削除可能通信端点。 */ 206 #define UDP_CEP_FLG_VALID UINT_C(0x0800) /* 生成済みで有効な通信端点。 */ 207 208 /* 209 * オブジェクト ID の最小値の定義 210 */ 211 212 #define TMIN_UDP_CEPID 1 /* UDP 通信端点 ID の最小値 */ 231 213 232 214 #ifdef SUPPORT_MIB 233 215 234 216 /* 235 * SNMP 㮠管çæ 236 å ±ãã¼ã¹ (MIB) 217 * SNMP の 管理情報ベース (MIB) 237 218 */ 238 219 … … 247 228 248 229 /* 249 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã230 * 関数シミュレーションマクロ 250 231 */ 251 232 … … 265 246 266 247 /* 267 * å 268 ¨åå¤æ° 248 * 全域変数 269 249 */ 270 250 … … 279 259 280 260 /* 281 * TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©261 * TINET 1.3 との互換性のための定義 282 262 */ 283 263 … … 286 266 287 267 /* 288 * é¢æ°268 * 関数 289 269 */ 290 270 … … 297 277 extern ER udp_alloc_port (T_UDP_CEP *cep, uint16_t portno); 298 278 299 /* ãã³ããããã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯*/279 /* ノンブロッキングコールを行う場合に組み込むタスク */ 300 280 301 281 extern void udp_output_task(intptr_t exinf); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 82 70 83 71 /* 84 * RFC2402 èªè¨¼ããã72 * RFC2402 認証ヘッダ 85 73 */ 86 74 … … 88 76 uint8_t next; /* Next Header */ 89 77 uint8_t len; 90 /* 4 ãªã¯ãããåä½ã®é·ãããã ãããã¼ã¿é· + 1 ãå 91 ¥ãã */ 78 /* 4 オクテット単位の長さ。ただし、データ長 + 1 が入る。 */ 92 79 uint16_t reserved; 93 80 uint32_t spi; /* Security Parameter Index (SPI) */ 94 uint32_t seq; /* ã·ã¼ã±ã³ã¹çªå·*/81 uint32_t seq; /* シーケンス番号 */ 95 82 } __attribute__((packed, aligned(2)))T_IP6_AH_HDR; 96 83 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 82 70 83 71 /* 84 * é¢æ°72 * 関数 85 73 */ 86 74 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 116 104 117 105 /* 118 * ah6_input -- èªè¨¼ãããã®å 119 ¥åé¢æ° 106 * ah6_input -- 認証ヘッダの入力関数 120 107 * 121 * æ¬å®è£ 122 ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã 108 * 本実装では、データグラムを破棄する。 123 109 */ 124 110 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/dest6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 114 102 115 103 /* 116 * dest6_input -- çµç¹ãªãã·ã§ã³ãããã®å 117 ¥åé¢æ° 104 * dest6_input -- 終点オプションヘッダの入力関数 118 105 * 119 * æ¬å®è£ 120 ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå 121 ¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã 106 * 本実装では、パディング以外のオプションを全て未知オプションとして処理する。 122 107 */ 123 108 … … 131 116 uint8_t *opt; 132 117 133 /* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/118 /* ネットワークバッファの残りの長さをチェックする。*/ 134 119 if (input->len - off < sizeof(T_IP6_DEST_HDR)) 135 120 goto buf_rel; … … 138 123 len = (desth->len + 1) << 3; 139 124 140 /* çµç¹ãªãã·ã§ã³ãããã®é·ãããã§ãã¯ããã*/125 /* 終点オプションヘッダの長さをチェックする。*/ 141 126 if (input->len < off + len) 142 127 goto buf_rel; -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 6 6 * Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 10 * ã«ãã£ã¦å 11 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 12 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 13 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 14 å¸ï¼ä»¥ä¸ï¼ 15 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 34 * 害ãããï¼ä¸è¨èä½æ¨©è 35 ããã³TOPPERSããã¸ã§ã¯ããå 36 責ãããã¨ï¼ 8 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 9 * によって公表されている GNU General Public License の Version 2 に記 10 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 11 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 12 * 利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次の条件を満たすこと. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 37 26 * 38 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 39 ã 40 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 41 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 42 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 27 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 28 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 29 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 30 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 43 31 * 44 32 * @(#) $Id$ … … 83 71 84 72 /* 85 * RFC2406 æå·åããã73 * RFC2406 暗号化ヘッダ 86 74 */ 87 75 88 76 typedef struct t_esp_hdr { 89 77 int32_t spi; /* Security Parameter Index (SPI) */ 90 int32_t seq; /* ã·ã¼ã±ã³ã¹çªå·*/78 int32_t seq; /* シーケンス番号 */ 91 79 } __attribute__((packed, aligned(2)))T_ESP_HDR; 92 80 93 81 typedef struct t_esp_tail { 94 int8_t padlen; /* ããã£ã³ã°é·*/82 int8_t padlen; /* パディング長 */ 95 83 int8_t next; /* Next Header */ 96 84 } __attribute__((packed, aligned(2)))T_ESP_TAIL; … … 127 115 128 116 /* 129 * é¢æ°117 * 関数 130 118 */ 131 119 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 82 70 83 71 /* 84 * é¢æ°72 * 関数 85 73 */ 86 74 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 118 106 119 107 /* 120 * esp6_input -- æå·åãããã®å 121 ¥åé¢æ° 108 * esp6_input -- 暗号化ヘッダの入力関数 122 109 * 123 * æ¬å®è£ 124 ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã 110 * 本実装では、データグラムを破棄する。 125 111 */ 126 112 … … 129 115 { 130 116 #if 0 131 *nextp = <T_ESP_TAIL ã® next ãã£ã¼ã«ãã®ä½ç½®ï¼IPv6 ãããã®å 132 é ããã®ãªãã»ããï¼>; 133 *offp = <次ãããã®ä½ç½®ï¼input->buf ããã®ãªãã»ããï¼>; 117 *nextp = <T_ESP_TAIL の next フィールドの位置(IPv6 ヘッダの先頭からのオフセット)>; 118 *offp = <次ヘッダの位置(input->buf からのオフセット)>; 134 119 #endif 135 120 syscall(rel_net_buf(*inputp)); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/frag6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 121 109 122 110 /* 123 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼é 124 å 111 * データグラム再構成キュー配列 125 112 */ 126 113 … … 129 116 130 117 /* 131 * ip6_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ãç²å¾ããã118 * ip6_get_frag_queue -- データグラム再構成キューを獲得する。 132 119 */ 133 120 … … 139 126 140 127 /* 141 * frag6_free_queue -- ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã解æ¾ããã128 * frag6_free_queue -- データグラム再構成キューを解放する。 142 129 * 143 * 注æ: ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼é 144 åãããã¯ãã¦ããå¼ã³åºããã¨ã 130 * 注意: データグラム再構成キュー配列をロックしてから呼び出すこと。 145 131 */ 146 132 … … 162 148 163 149 /* 164 * frag6_timer -- ãã¼ã¿ã°ã©ã åæ§æ管çã¿ã¤ã150 * frag6_timer -- データグラム再構成管理タイマ 165 151 */ 166 152 … … 184 170 185 171 /* 186 * å 187 é ã®æçã®ãªãã»ããã 0 ã®æã®ã¿ 188 * ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã 172 * 先頭の断片のオフセットが 0 の時のみ 173 * ICMPv6 エラーメッセージを送信する。 189 174 */ 190 175 191 /* å 192 é ã®æçããã¼ã¿ã°ã©ã åæ§æãã¥ã¼ããå¤ãã*/ 176 /* 先頭の断片をデータグラム再構成キューから外す。*/ 193 177 ip6_frag_queue[ix] = qip6h->next_frag; 194 178 195 /* ãã¦å 196 ã¢ãã¬ã¹ãå 197 ã«æ»ãã*/ 179 /* あて先アドレスを元に戻す。*/ 198 180 GET_IP6_HDR(frag)->dst = ip6_frag_dest[ix]; 199 181 200 /* ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã*/182 /* ICMPv6 エラーメッセージを送信する。*/ 201 183 icmp6_error(frag, ICMP6_TIME_EXCEEDED, 202 184 ICMP6_TIME_EXCEED_REASSEMBLY, 0); 203 185 } 204 186 205 /* ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã解æ¾ããã*/187 /* データグラム再構成キューを解放する。*/ 206 188 NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_TMOUT], 1); 207 189 NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_DROP], 1); … … 216 198 217 199 /* 218 * frag6_input -- æçãããã®å 219 ¥åé¢æ° 200 * frag6_input -- 断片ヘッダの入力関数 220 201 */ 221 202 … … 241 222 #endif /* #ifdef IP6_CFG_FRAGMENT */ 242 223 243 /* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/224 /* ネットワークバッファの残りの長さをチェックする。*/ 244 225 if (input->len - off < sizeof(T_IP6_FRAG_HDR)) 245 226 goto buf_rel; 246 227 247 228 /* 248 * 巨大ãã¤ãã¼ããªãã·ã§ã³ã¨æçããããåæã«ä½¿ç¨ãããã¨ã¯ 249 * ã§ããªãããã¤ãã¼ãé·ãã 0 ãªãã巨大ãã¤ãã¼ããªãã·ã§ã³ã 250 * æå®ããã¦ãããã¨ã«ãªãã®ã§ ICMP ã§ã¨ã©ã¼ãéä¿¡è 251 ã« 252 * éç¥ããã 229 * 巨大ペイロードオプションと断片ヘッダを同時に使用することは 230 * できない。ペイロード長がが 0 なら、巨大ペイロードオプションが 231 * 指定されていることになるので ICMP でエラーを送信者に 232 * 通知する。 253 233 */ 254 234 ip6h = GET_IP6_HDR(input); … … 262 242 263 243 /* 264 * ãªãã»ããã 0 ã§ãæçµãã©ã°ã¡ã³ãã§ããã°ã265 * åå²ä¸è¦ã®ãã¼ã¿ã°ã©ã ãªã®ã§ã266 * 次ããããæãå¤æ°ã調æ´ãã¦çµäºããã244 * オフセットが 0 で、最終フラグメントであれば、 245 * 分割不要のデータグラムなので、 246 * 次ヘッダを指す変数を調整して終了する。 267 247 */ 268 248 ip6fh = (T_IP6_FRAG_HDR *)(input->buf + off); … … 276 256 277 257 /* 278 * ãã¤ãã¼ãé·ããã§ãã¯ããã258 * ペイロード長をチェックする。 279 259 */ 280 260 if ((ip6fh->off_flag & IP6F_MORE_FRAG) && … … 291 271 292 272 /* 293 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼é 294 åããã対å¿ããã¨ã³ããªãæ¢ãã 273 * データグラム再構成キュー配列から、対応するエントリを探す。 295 274 */ 296 275 for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) { … … 310 289 311 290 /* 312 * æçã®æ£å½æ§ããã§ãã¯ããã291 * 断片の正当性をチェックする。 313 292 */ 314 293 unfraglen = 0; … … 317 296 318 297 /* 319 * å 320 ¥åããæçãå 321 é ã®æç 322 * åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã 298 * 入力した断片が先頭の断片 299 * 分割できない部分の長さ unfraglen を計算する。 323 300 */ 324 301 unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR); … … 352 329 353 330 /* 354 * ip6fq == NULL ã§ããã°ã対å¿ããã¨ã³ããªã¯ç¡ãã®ã§ã 355 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼é 356 åã«ãã¨ã³ããªã追å ããã 331 * ip6fq == NULL であれば、対応するエントリは無いので、 332 * データグラム再構成キュー配列に、エントリを追加する。 357 333 */ 358 334 for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) { 359 335 360 /* 空ãã¨ã³ããªãæ¢ãã*/336 /* 空きエントリを探す。*/ 361 337 if (ip6_frag_queue[ix] == NULL) { 362 338 ip6fq = &ip6_frag_queue[ix]; … … 366 342 367 343 /* 368 * ip6fq == NULL ã§ããã°ã空ãã¨ã³ããªãç¡ãã®ã§ã369 * ã¿ã¤ã ã¢ã¦ãï¼hlimï¼ãçãã¨ã³ããªãéæ¾ããã344 * ip6fq == NULL であれば、空きエントリが無いので、 345 * タイムアウト(hlim)が短いエントリを開放する。 370 346 */ 371 347 if (ip6fq == NULL) { … … 385 361 386 362 /* 387 * ã¨ã³ããªãè¨å®ããã363 * エントリを設定する。 388 364 */ 389 365 *ip6fq = input; … … 398 374 399 375 /* 400 * æçã®æ£å½æ§ããã§ãã¯ããã376 * 断片の正当性をチェックする。 401 377 */ 402 378 unfraglen = 0; … … 405 381 406 382 /* 407 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã®æåã®æçãå 408 é ã®æç 409 * åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã 383 * データグラム再構成キューの最初の断片が先頭の断片 384 * 分割できない部分の長さ unfraglen を計算する。 410 385 */ 411 386 unfraglen = (GET_QIP6_HDR(*ip6fq)->foff - IF_HDR_SIZE) - sizeof(T_IP6_HDR); … … 416 391 417 392 /* 418 * å 419 ¥åããæçãå 420 é ã®æç 421 * åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã 393 * 入力した断片が先頭の断片 394 * 分割できない部分の長さ unfraglen を計算する。 422 395 */ 423 396 unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR); … … 453 426 454 427 /* 455 * å 456 ¥åããæçãå 457 é ã®æç 458 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã®æå¾ã®æçãã 459 * ãã¼ã¿ã°ã©ã ã®æ大é·ãè¶ 460 ãã¦ããªãããã§ãã¯ããã 461 */ 462 463 /* æå¾ã®æçãæ¢ç´¢ããã*/ 428 * 入力した断片が先頭の断片 429 * データグラム再構成キューの最後の断片が、 430 * データグラムの最大長を超えていないかチェックする。 431 */ 432 433 /* 最後の断片を探索する。*/ 464 434 next = *ip6fq; 465 435 while ((qip6h = GET_QIP6_HDR(next))->next_frag != NULL) 466 436 next = qip6h->next_frag; 467 437 468 /* æå¾ã®æçã®ãªãã»ããã¨æçãµã¤ãºãè¨ç®ããã*/438 /* 最後の断片のオフセットと断片サイズを計算する。*/ 469 439 qip6fh = (T_IP6_FRAG_HDR *)(next->buf + qip6h->foff); 470 440 fragoff = ntohs(qip6fh->off_flag & IP6F_OFF_MASK); … … 473 443 474 444 /* 475 * ãã¼ã¿ã°ã©ã ã®æ大é·ãè¶ 476 ãã¦ããå ´åã¯ã 477 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼å 478 ¨ä½ãç ´æ£ããã 445 * データグラムの最大長を超えている場合は、 446 * データグラム再構成キュー全体を破棄する。 479 447 */ 480 448 frag6_free_queue(ip6fq); … … 484 452 } 485 453 486 /* ECN ã®æ£å½æ§ãã§ãã¯ã¯æªå®è£ 487 */ 488 489 /* 490 * æçãã¨ã³ããªã«æ¿å 491 ¥ããã 492 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ãããå 493 ¥åããæçããåã®æçãæ¢ç´¢ããã 454 /* ECN の正当性チェックは未実装 */ 455 456 /* 457 * 断片をエントリに挿入する。 458 * データグラム再構成キューから、入力した断片より前の断片を探索する。 494 459 */ 495 460 prev = NULL; … … 505 470 506 471 /* 507 * prev ã¯ãå 508 ¥åããæçããåã®æçããã ã NULL ã®å ´åã¯ã 509 * å 510 ¥åããæçããã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã®ä¸ã§æãåã®æçã 511 * next ã¯ãå 512 ¥åããæçããå¾ã®æçããã ã NULL ã®å ´åã¯ã 513 * å 514 ¥åããæçããã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã®ä¸ã§æãå¾ã®æçã 472 * prev は、入力した断片より前の断片。ただし NULL の場合は、 473 * 入力した断片がデータグラム再構成キューの中で最も前の断片。 474 * next は、入力した断片より後の断片。ただし NULL の場合は、 475 * 入力した断片がデータグラム再構成キューの中で最も後の断片。 515 476 */ 516 477 fragoff = ntohs(ip6fh->off_flag & IP6F_OFF_MASK); … … 518 479 519 480 /* 520 * åã®æçã¨ãå 521 ¥åããæçãéãªã£ã¦ããªãããã§ãã¯ããã 481 * 前の断片と、入力した断片が重なっていないかチェックする。 522 482 * 523 483 * qfragoff … … 542 502 if (diff > 0) { 543 503 544 /* éãªã£ã¦ããã°ãå 545 ¥åããæçãç ´æ£ãã¦çµäºããã*/ 504 /* 重なっていれば、入力した断片を破棄して終了する。*/ 546 505 syscall(rel_net_buf(input)); 547 506 goto sig_ret; … … 552 511 553 512 /* 554 * å¾ã®æçã¨ãå 555 ¥åããæçãéãªã£ã¦ããªãããã§ãã¯ããã 513 * 後の断片と、入力した断片が重なっていないかチェックする。 556 514 * 557 515 * fragoff … … 576 534 if (diff > 0) { 577 535 578 /* éãªã£ã¦ããã°ãå 579 ¥åããæçãç ´æ£ãã¦çµäºããã*/ 536 /* 重なっていれば、入力した断片を破棄して終了する。*/ 580 537 syscall(rel_net_buf(input)); 581 538 goto sig_ret; … … 583 540 } 584 541 585 /* å 586 ¥åããæçãè¨å®ããã*/ 542 /* 入力した断片を設定する。*/ 587 543 qip6h = GET_QIP6_HDR(input); 588 544 qip6h->foff = off; … … 598 554 599 555 /* 600 * å 601 ¨ã¦ã®æçãåä¿¡ããããã§ãã¯ããã 556 * 全ての断片を受信したかチェックする。 602 557 */ 603 558 plen = 0; … … 608 563 if (ntohs(qip6fh->off_flag & IP6F_OFF_MASK) != plen) { 609 564 610 /* æçãé£ç¶ãã¦ããªãã*/565 /* 断片が連続していない。*/ 611 566 goto sig_ret; 612 567 } … … 616 571 if (ntohs(qip6fh->off_flag & IP6F_MORE_FRAG) != 0) { 617 572 618 /* æå¾ã®æçãåä¿¡ãã¦ããªãã*/573 /* 最後の断片を受信していない。*/ 619 574 goto sig_ret; 620 575 } 621 576 622 577 /* 623 * å 624 ¨ã¦ã®æçãåä¿¡ããã®ã§ãåæ§æããã 625 */ 626 627 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/ 578 * 全ての断片を受信したので、再構成する。 579 */ 580 581 /* ネットワークバッファを獲得する。*/ 628 582 qip6h = GET_QIP6_HDR(*ip6fq); 629 583 qip6fh = (T_IP6_FRAG_HDR *)((*ip6fq)->buf + qip6h->foff); … … 631 585 632 586 /* 633 * æçãããã®ç´åã®ãããã® NEXT ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãç²å¾ãã 634 * å 635 ã«æ»ãã 587 * 断片ヘッダの直前のヘッダの NEXT フィールドのアドレスを獲得し、 588 * 元に戻す。 636 589 */ 637 590 if ((prev_next = ip6_get_prev_hdr(*ip6fq, qip6h->foff)) == NULL) { … … 646 599 647 600 /* 648 * IPv6 ãããã¨åå²ã§ããªãé¨åã 649 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã®ä¸ã®å 650 é ã®æçããã³ãã¼ããã 601 * IPv6 ヘッダと分割できない部分を 602 * データグラム再構成キューの中の先頭の断片からコピーする。 651 603 */ 652 604 memcpy(input->buf, (*ip6fq)->buf, qip6h->foff); 653 605 654 /* éä¿¡å 655 ã¢ãã¬ã¹ãå 656 ã«æ»ãã*/ 606 /* 送信先アドレスを元に戻す。*/ 657 607 ip6h = GET_IP6_HDR(input); 658 608 ip6h->dst = ip6_frag_dest[ip6fq - ip6_frag_queue]; 659 609 660 /* offp ããåæ§æããæçã®å 661 é ã«è¨å®ããã*/ 610 /* offp を、再構成した断片の先頭に設定する。*/ 662 611 *offp = qip6h->foff; 663 612 664 /* ãããã¯ã¼ã¯ãããã¡é·ãè¨å®ããã*/613 /* ネットワークバッファ長を設定する。*/ 665 614 input->len = plen + qip6h->foff; 666 615 667 616 /* 668 * å 669 ¨ã¦ã®æçãã³ãã¼ããã 617 * 全ての断片をコピーする。 670 618 */ 671 619 frag = *ip6fq; … … 680 628 } 681 629 682 /* ãã¤ãã¼ãé·ãè¨å®ããã*/630 /* ペイロード長を設定する。*/ 683 631 ip6h->plen = htons(plen); 684 632 … … 692 640 } 693 641 694 /* ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã解æ¾ããã*/642 /* データグラム再構成キューを解放する。*/ 695 643 frag6_free_queue(ip6fq); 696 644 } … … 703 651 704 652 /* 705 * ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ããªãå ´åã¯ãå 706 ¨æçãç ´æ£ãã 707 * æå¾ã®æçãåä¿¡ããã¨ãã 708 * ICMP ã¨ã©ã¼ãéä¿¡è 709 ã«éç¥ããã 653 * データグラムの分割・再構成行わない場合は、全断片を破棄し、 654 * 最後の断片を受信したとき、 655 * ICMP エラーを送信者に通知する。 710 656 */ 711 657 if ((ip6fh->off_flag & IP6F_MORE_FRAG) == 0) { -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/icmp6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 155 143 156 144 /* 157 * å¤æ°145 * 変数 158 146 */ 159 147 … … 161 149 162 150 /* 163 * SNMP 㮠管çæ 164 å ±ãã¼ã¹ (MIB) 151 * SNMP の 管理情報ベース (MIB) 165 152 */ 166 153 … … 170 157 171 158 /* 172 * icmp6_output -- ICMP6 ãã±ãããéä¿¡ããã159 * icmp6_output -- ICMP6 パケットを送信する。 173 160 */ 174 161 … … 182 169 183 170 /* 184 * å®å 185 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 186 ã¢ãã¬ã¹ãã 187 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 171 * 宛先アドレスにふさわしい送信元アドレスを、 172 * ネットワークインタフェースから探索して利用する。 188 173 */ 189 174 ip6h = GET_IP6_HDR(output); … … 197 182 icmp6h = GET_ICMP6_HDR(output, off); 198 183 199 /* ãã§ãã¯ãµã ãè¨ç®ããã*/184 /* チェックサムを計算する。*/ 200 185 icmp6h->sum = 0; 201 186 icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)icmp6h - output->buf, 202 187 ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE)); 203 188 204 /* éä¿¡ããã*/189 /* 送信する。*/ 205 190 NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS], 206 191 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 211 196 212 197 /* 213 * icmp6_echo_request -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç198 * icmp6_echo_request -- エコー要求を受信したときの処理 214 199 */ 215 200 … … 229 214 230 215 /* 231 * IPv6 ããã㨠ICMPv6 ãããéã®æ¡å¼µããããé¤å»ããã216 * IPv6 ヘッダと ICMPv6 ヘッダ間の拡張ヘッダを除去する。 232 217 */ 233 218 diff = off - IF_IP6_HDR_SIZE; 234 219 if (diff > 0) { 235 /* ICMPv6 ããããåã«è©°ããã*/220 /* ICMPv6 ヘッダを前に詰める。*/ 236 221 memmove(input->buf + IF_IP6_HDR_SIZE, input->buf + off, input->len - off); 237 222 off = IF_IP6_HDR_SIZE; 238 223 239 /* ãã¤ãã¼ãé·ã調æ´ããã*/224 /* ペイロード長を調整する。*/ 240 225 ip6h->plen = htons(ntohs(ip6h->plen) - diff); 241 226 input->len -= diff; … … 250 235 251 236 /* 252 * ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (128) ãã253 * ã¨ã³ã¼å¿ç (129) ã«å¤æ´ãã¦éãè¿ãã237 * メッセージの型をエコー要求 (128) から 238 * エコー応答 (129) に変更して送り返す。 254 239 */ 255 240 icmp6h->type = ICMP6_ECHO_REPLY; 256 241 257 /* IPv6 ãããã®çºä¿¡å 258 ã¢ãã¬ã¹ã¨å®å 259 ã¢ãã¬ã¹ãå 260 ¥æ¿ããã*/ 242 /* IPv6 ヘッダの発信元アドレスと宛先アドレスを入替える。*/ 261 243 dst = ip6h->dst; 262 244 ip6h->dst = ip6h->src; … … 264 246 265 247 /* 266 * å 267 ã®å®å 268 ã¢ãã¬ã¹ããã«ããã£ã¹ãã®å ´åã¯ã 269 * å®å 270 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 271 ã¢ãã¬ã¹ãã 272 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 248 * 元の宛先アドレスがマルチキャストの場合は、 249 * 宛先アドレスにふさわしい送信元アドレスを、 250 * ネットワークインタフェースから探索して利用する。 273 251 */ 274 252 if (IN6_IS_ADDR_MULTICAST(&dst)) { … … 281 259 } 282 260 283 /* 次ãããã¨ããããªããããè¨å®ããã*/261 /* 次ヘッダとホップリミットを設定する。*/ 284 262 ip6h->next = IPPROTO_ICMPV6; 285 263 ip6h->hlim = IP_DEFTTL; 286 264 287 /* ãã§ãã¯ãµã ãè¨ç®ããã*/265 /* チェックサムを計算する。*/ 288 266 icmp6h->sum = 0; 289 267 icmp6h->sum = in6_cksum(input, IPPROTO_ICMPV6, (uint8_t*)icmp6h - input->buf, 290 268 ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE)); 291 269 292 /* éä¿¡ããã*/270 /* 送信する。*/ 293 271 NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS], 294 272 input->len - GET_IF_IP6_HDR_SIZE(input)); … … 300 278 301 279 /* 302 * icmp6_notify_error -- ã¨ã©ã¼ãéç¥ããã280 * icmp6_notify_error -- エラーを通知する。 303 281 */ 304 282 … … 312 290 len = input->len - poff; 313 291 314 /* ãã¼ã¿ã°ã©ã é·ã ICMP6 ãããé· + IP6 ãããé·ä»¥ä¸ãªãä½ãããªãã*/292 /* データグラム長が ICMP6 ヘッダ長 + IP6 ヘッダ長以下なら何もしない。*/ 315 293 if (len < ICMP6_HDR_SIZE + IP6_HDR_SIZE) 316 294 return; … … 318 296 icmp6h = GET_ICMP6_HDR(input, poff); 319 297 320 /* æçµããããæ¢ç´¢ããã*/298 /* 最終ヘッダを探索する。*/ 321 299 loff = ip6_lasthdr(input, poff + ICMP6_HDR_SIZE, IPPROTO_IPV6, &next); 322 300 323 /* æçµãããã TCP ã®ã¿å¯¾å¿ããã*/301 /* 最終ヘッダが TCP のみ対応する。*/ 324 302 if (loff >= 0 && next == IPPROTO_TCP) { 325 303 … … 341 319 342 320 /* 343 * icmp6_mtudisc_update -- Path MTU ãæ´æ°ããã321 * icmp6_mtudisc_update -- Path MTU を更新する。 344 322 */ 345 323 … … 365 343 366 344 /* 367 * icmp6_redirect_input -- åãç´ãã¡ãã»ã¼ã¸ã®å¦ç345 * icmp6_redirect_input -- 向け直しメッセージの処理 368 346 */ 369 347 … … 384 362 385 363 /* 386 * IP ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã387 * ã»ãªã³ã¯ãã¼ã«ã«ä»¥å¤ããéããã¦ããã¡ãã»ã¼ã¸388 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤364 * IP ヘッダのチェック、以下の場合は破棄する。 365 * ・リンクローカル以外から送られてきたメッセージ 366 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 389 367 */ 390 368 if (!IN6_IS_ADDR_LINKLOCAL(&ip6h->src) || ip6h->hlim != IPV6_MAXHLIM) … … 393 371 rdh = (T_ND_REDIRECT_HDR *)(input->buf + off); 394 372 395 /* åãç´ãã®çµç¹ã¢ãã¬ã¹ããã«ããã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯ç ´æ£ããã*/373 /* 向け直しの終点アドレスがマルチキャストアドレスの場合は破棄する。*/ 396 374 if (IN6_IS_ADDR_MULTICAST(&rdh->dst)) 397 375 goto err_ret; 398 376 399 /* ã¿ã¼ã²ããã¢ãã¬ã¹ãçµè·¯è¡¨ã«ç»é²ããã¦ããããã§ãã¯ããã*/377 /* ターゲットアドレスが経路表に登録されているかチェックする。*/ 400 378 if ((gw = in6_rtalloc(ifp, &rdh->dst)) != NULL) { 401 /* GW ã¢ãã¬ã¹ã¨éä¿¡å 402 ã¢ãã¬ã¹ãç°ãªã£ã¦ããã°ç ´æ£ããã*/ 379 /* GW アドレスと送信元アドレスが異なっていれば破棄する。*/ 403 380 if (!IN6_ARE_ADDR_EQUAL(gw, &ip6h->src)) 404 381 goto err_ret; 405 382 } 406 else /* çµè·¯è¡¨ã«ãªããã°ç ´æ£ããã*/383 else /* 経路表になければ破棄する。*/ 407 384 goto err_ret; 408 385 … … 410 387 411 388 /* 412 * ã¿ã¼ã²ããã¢ãã¬ã¹ããªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã§ããã°ã413 * ã¿ã¼ã²ããã¯ã«ã¼ã¿389 * ターゲットアドレスがリンクローカルアドレスであれば、 390 * ターゲットはルータ 414 391 */ 415 392 if (IN6_IS_ADDR_LINKLOCAL(&rdh->target)) … … 417 394 418 395 /* 419 * ã¿ã¼ã²ããã¢ãã¬ã¹ã¨çµç¹ã¢ãã¬ã¹ãåä¸ã§ããã°ããªã³ãªã³ã¯396 * ターゲットアドレスと終点アドレスが同一であれば、オンリンク 420 397 */ 421 398 if (IN6_ARE_ADDR_EQUAL(&rdh->target, &rdh->dst)) … … 423 400 424 401 /* 425 * ã«ã¼ã¿ã§ãããªã³ãªã³ã¯ã§ããªããã°ã¨ã©ã¼402 * ルータでも、オンリンクでもなければエラー 426 403 */ 427 404 if (!router && !onlink) 428 405 goto err_ret; 429 406 430 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/407 /* 近隣探索オプションのオフセットを記録する。*/ 431 408 if (nd6_options(nd_opt_off, input->buf + off + ND_REDIRECT_HDR_SIZE, 432 409 input->len - (off + ND_REDIRECT_HDR_SIZE)) != E_OK) 433 410 goto err_ret; 434 411 435 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ (åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹) */412 /* 近隣探索オプション (向け直しのルータのリンクアドレス) */ 436 413 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) { 437 414 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ND_REDIRECT_HDR_SIZE) + 438 415 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8); 439 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 440 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 416 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 441 417 lladdr = (uint8_t *)(opth + 1); 442 418 lladdr_len = (opth->len << 3); … … 444 420 445 421 /* 446 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼422 * ネットワークインタフェースのアドレス長が一致しなければエラー 447 423 */ 448 424 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) 449 425 goto err_ret; 450 426 451 /* åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ãã£ãã·ã¥ã«ç»é²ããã*/427 /* 向け直しのルータのリンクアドレスを近隣キャッシュに登録する。*/ 452 428 nd6_cache_lladdr(ifp, &rdh->target, (T_IF_ADDR *)lladdr, ND_REDIRECT, 453 429 onlink ? ND_REDIRECT_ONLINK : ND_REDIRECT_ROUTER); 454 430 455 /* ã«ã¼ãã£ã³ã°è¡¨ã«ç»é²ããã*/431 /* ルーティング表に登録する。*/ 456 432 in6_rtredirect(&rdh->target, &rdh->dst, 128, IN_RTF_REDIRECT, TMO_IN_REDIRECT); 457 433 … … 467 443 468 444 /* 469 * icmp6_input -- ICMP6 ã®å 470 ¥åé¢æ° 445 * icmp6_input -- ICMP6 の入力関数 471 446 */ 472 447 … … 485 460 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInMsgs, 1); 486 461 487 /* ICMP6 ãããã®é·ãããã§ãã¯ããã*/462 /* ICMP6 ヘッダの長さをチェックする。*/ 488 463 len = input->len - off; 489 464 if (len < ICMP6_HDR_SIZE) { … … 496 471 icmp6h = GET_ICMP6_HDR(input, off); 497 472 498 /* ãã§ãã¯ãµã ãè¨ç®ããã*/473 /* チェックサムを計算する。*/ 499 474 if ((in6_cksum(input, IPPROTO_ICMPV6, off, ntohs(ip6h->plen) - (off - IF_IP_HDR_SIZE)) & 0xffff) != 0) { 500 475 NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1); … … 505 480 code = icmp6h->code; 506 481 507 /* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/482 /* メッセージの型により分岐する。*/ 508 483 switch (icmp6h->type) { 509 484 510 case ICMP6_DST_UNREACH: /* å®å 511 å°éä¸å¯è½ */ 485 case ICMP6_DST_UNREACH: /* 宛先到達不可能 */ 512 486 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInDestUnreachs, 1); 513 487 icmp6_notify_error(input, off); 514 488 break; 515 489 516 case ICMP6_ECHO_REQUEST: /* ã¨ã³ã¼è¦æ±*/490 case ICMP6_ECHO_REQUEST: /* エコー要求 */ 517 491 icmp6_echo_request(input, off); 518 492 return IPPROTO_DONE; 519 493 break; 520 494 521 case ICMP6_ECHO_REPLY: /* ã¨ã³ã¼å¿ç*/495 case ICMP6_ECHO_REPLY: /* エコー応答 */ 522 496 523 497 #ifdef ICMP_CFG_CALLBACK_ECHO_REPLY … … 529 503 break; 530 504 531 case ND_ROUTER_ADVERT: /* ã«ã¼ã¿éç¥*/505 case ND_ROUTER_ADVERT: /* ルータ通知 */ 532 506 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRouterAdvertisements, 1); 533 507 if (code != 0 || len < ROUTER_ADVERT_HDR_SIZE) … … 537 511 break; 538 512 539 case ND_NEIGHBOR_SOLICIT: /* è¿é£è¦è«*/513 case ND_NEIGHBOR_SOLICIT: /* 近隣要請 */ 540 514 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborSolicits, 1); 541 515 if (code != 0 || len < NEIGHBOR_SOLICIT_HDR_SIZE) … … 545 519 break; 546 520 547 case ND_NEIGHBOR_ADVERT: /* è¿é£éç¥*/521 case ND_NEIGHBOR_ADVERT: /* 近隣通知 */ 548 522 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborAdvertisements, 1); 549 523 if (code != 0 || len < NEIGHBOR_ADVERT_HDR_SIZE) … … 553 527 break; 554 528 555 case ND_REDIRECT: /* åãç´ã*/529 case ND_REDIRECT: /* 向け直し */ 556 530 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRedirects, 1); 557 531 … … 571 545 break; 572 546 573 case ICMP6_PACKET_TOO_BIG: /* ãã±ããã大ããããã*/547 case ICMP6_PACKET_TOO_BIG: /* パケットが大きすぎる。 */ 574 548 575 549 #if NUM_IN6_HOSTCACHE_ENTRY > 0 … … 582 556 break; 583 557 584 case ICMP6_TIME_EXCEEDED: /* TTL ãè¶ 585 éããã */ 558 case ICMP6_TIME_EXCEEDED: /* TTL を超過した。 */ 586 559 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInTimeExcds, 1); 587 560 break; 588 561 589 case ICMP6_PARAM_PROB: /* IPv6 ããããä¸æ£ã*/562 case ICMP6_PARAM_PROB: /* IPv6 ヘッダが不正。 */ 590 563 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInParmProblems, 1); 591 564 break; 592 565 593 case MLD_LISTENER_QUERY: /* ãã«ããã£ã¹ãåä¿¡è 594 ç 595 §ä¼ */ 596 case MLD_LISTENER_REPORT: /* ãã«ããã£ã¹ãåä¿¡è 597 å ±å */ 598 case MLD_LISTENER_DONE: /* ãã«ããã£ã¹ãåä¿¡è 599 çµäº */ 600 case ND_ROUTER_SOLICIT: /* ã«ã¼ã¿è¦è« */ 601 case ICMP6_ROUTER_RENUMBERING: /* ã«ã¼ã¿çªå·åè¨å® */ 602 case ICMP6_FQDN_QUERY: /* FQDN ç 603 §ä¼ */ 604 case ICMP6_FQDN_REPLY: /* FQDN å¿ç */ 566 case MLD_LISTENER_QUERY: /* マルチキャスト受信者照会 */ 567 case MLD_LISTENER_REPORT: /* マルチキャスト受信者報告 */ 568 case MLD_LISTENER_DONE: /* マルチキャスト受信者終了 */ 569 case ND_ROUTER_SOLICIT: /* ルータ要請 */ 570 case ICMP6_ROUTER_RENUMBERING: /* ルータ番号再設定 */ 571 case ICMP6_FQDN_QUERY: /* FQDN 照会 */ 572 case ICMP6_FQDN_REPLY: /* FQDN 応答 */ 605 573 syslog(LOG_WARNING, "[ICMP6] unsupported type: %d.", icmp6h->type); 606 574 break; … … 619 587 620 588 /* 621 * icmp6_error -- ICMP6 ã¨ã©ã¼éä¿¡é¢æ°589 * icmp6_error -- ICMP6 エラー送信関数 622 590 */ 623 591 … … 634 602 635 603 /* 636 * å®å 637 ã¢ãã¬ã¹ãããã«ããã£ã¹ãã®å ´åã¯ã 638 * 以ä¸ã®æ¡ä»¶ä»¥å¤ã®ã¨ãã¯å¦çãè¡ããªãã 604 * 宛先アドレスが、マルチキャストの場合は、 605 * 以下の条件以外のときは処理を行わない。 639 606 * 640 * ã»ãã¼ã¿ã°ã©ã ã大ããããã641 * ã»IPv6 ãããã®ä¸æ£ã§ããªãã·ã§ã³ãèªèã§ããªãã607 * ・データグラムが大きすぎる。 608 * ・IPv6 ヘッダの不正で、オプションが認識できない。 642 609 */ 643 610 if (IN6_IS_ADDR_MULTICAST(&ip6h->dst) && … … 647 614 648 615 /* 649 * å§ç¹ã¢ãã¬ã¹ãã以ä¸ã®å ´åã¯å¦çãè¡ããªãã616 * 始点アドレスが、以下の場合は処理を行わない。 650 617 * 651 * ã»ç¡æå®652 * ã»ãã«ããã£ã¹ã618 * ・無指定 619 * ・マルチキャスト 653 620 */ 654 621 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) || … … 656 623 goto buf_rel; 657 624 658 /* æå¾ã®ããããæ¢ç´¢ããã*/625 /* 最後のヘッダを探索する。*/ 659 626 off = ip6_lasthdr(input, 0, IPPROTO_IPV6, &next); 660 627 661 628 /* 662 * ã¿ã¤ãããã¨ã©ã¼ãåãç´ãã® ICMP6 ãã±ããã®ã¨ã©ã¼ã«ã¯è¿çããªãã629 * タイプが、エラーか向け直しの ICMP6 パケットのエラーには返答しない。 663 630 */ 664 631 if (off >= 0 && next == IPPROTO_ICMPV6) { … … 674 641 } 675 642 676 /* DoS æ»æã«å¯¾ããé²å¾¡ã¯æªå®è£ 677 */ 678 679 /* 680 * éãè¿ãã¡ãã»ã¼ã¸é·ããICMPv6 ã®æ大ãã¤ãã¼ãé·ã«èª¿æ´ããã 643 /* DoS 攻撃に対する防御は未実装 */ 644 645 /* 646 * 送り返すメッセージ長を、ICMPv6 の最大ペイロード長に調整する。 681 647 * IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE) 682 648 */ … … 686 652 len = input->len - IF_HDR_SIZE; 687 653 688 /* éä¿¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/654 /* 送信用のネットワークバッファを獲得する。*/ 689 655 if (in6_get_datagram(&output, len + ICMP6_HDR_SIZE, 0, 690 656 &ip6h->src, &in6_addr_unspecified, … … 693 659 goto buf_rel; 694 660 695 /* ICMP6 ããããè¨å®ããã*/661 /* ICMP6 ヘッダを設定する。*/ 696 662 icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET); 697 663 icmp6h->type = type; … … 699 665 icmp6h->icmp6_pptr = htonl(param); 700 666 701 /* ã¨ã©ã¼ãã¼ã¿ãè¨å®ããã*/667 /* エラーデータを設定する。*/ 702 668 memcpy(GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET), (uint8_t *)ip6h, len); 703 669 … … 720 686 #endif /* of #ifdef SUPPORT_MIB */ 721 687 722 /* éä¿¡ããã*/688 /* 送信する。*/ 723 689 icmp6_output(output, IF_IP6_HDR_SIZE); 724 690 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 115 103 116 104 /* 117 * ether_map_ipv6_multicast -- IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ105 * ether_map_ipv6_multicast -- IPv6 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換 118 106 */ 119 107 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 83 71 84 72 /* 85 * é¢æ°73 * 関数 86 74 */ 87 75 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 152 140 153 141 /* 154 * å 155 ¨åå¤æ° 142 * 全域変数 156 143 */ 157 144 … … 166 153 167 154 /* 168 * in6_addmulti -- ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã155 * in6_addmulti -- マルチキャストアドレスを登録する。 169 156 */ 170 157 … … 181 168 182 169 /* 183 * in6_ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹æ 184 å ±ãè¨å®ããåæåããã 170 * in6_ifinit -- インタフェースにアドレス情報を設定し、初期化する。 185 171 */ 186 172 … … 188 174 in6_ifinit (T_IFNET *ifp, T_IN6_IFADDR *ia, T_IN6_ADDR *addr, uint_t prefix_len) 189 175 { 190 /* ã¢ãã¬ã¹ã¨ãã¬ãã£ãã¯ã¹é·ãè¨å®ããã*/176 /* アドレスとプレフィックス長を設定する。*/ 191 177 ia->addr = *addr; 192 178 ia->prefix_len = prefix_len; 193 179 194 /* ãã©ã°ãåæåããã*/180 /* フラグを初期化する。*/ 195 181 ia->flags = 0; 196 182 197 183 /* 198 * åãã¦ã¢ãã¬ã¹ãè¨å®ãããã¨ããã¤ã³ã¿ãã§ã¼ã¹ç¬èªã®åæåãè¡ãã184 * 初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。 199 185 */ 200 186 … … 203 189 204 190 /* 205 * in6_ifainit -- ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½ã®åæå191 * in6_ifainit -- インタフェースアドレス構造体の初期化 206 192 */ 207 193 … … 222 208 223 209 /* 224 * in6_if2idlen -- ã¤ã³ã¿ãã§ã¼ã¹ ID é·ãè¿ãã210 * in6_if2idlen -- インタフェース ID 長を返す。 225 211 */ 226 212 … … 236 222 237 223 /* 238 * in6_addr2ifaix -- ã¢ãã¬ã¹ããã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ 239 å ±ã®ã¤ã³ããã¯ã¹ã«å¤æããã 224 * in6_addr2ifaix -- アドレスからインタフェースアドレス情報のインデックスに変換する。 240 225 */ 241 226 … … 258 243 259 244 /* 260 * in6_addr2maix -- ã¢ãã¬ã¹ãããã«ããã£ã¹ãã¢ãã¬ã¹ã®ã¤ã³ããã¯ã¹ã«å¤æããã245 * in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。 261 246 */ 262 247 … … 279 264 280 265 /* 281 * in6_update_ifa -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ 282 å ±ãæ´æ°ããã 266 * in6_update_ifa -- インタフェースのアドレス情報を更新する。 283 267 */ 284 268 … … 292 276 SYSTIM now; 293 277 294 /* å¼æ°ããã§ãã¯ããã*/278 /* 引数をチェックする。*/ 295 279 if (addr == NULL) 296 280 return E_PAR; 297 281 298 282 /* 299 * æå¹æéããã§ãã¯ããã300 * vltime ( æå¹æé) 㨠pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã283 * 有効時間をチェックする。 284 * vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。 301 285 */ 302 286 syscall(get_tim(&now)); … … 309 293 return E_PAR; 310 294 311 /* ã¤ã³ã¿ãã§ã¼ã¹ãåæåããã*/295 /* インタフェースを初期化する。*/ 312 296 if ((error = in6_ifinit(ifp, ia, addr, prefix_len)) != E_OK) 313 297 return error; … … 315 299 if (IN6_IS_ADDR_LINKLOCAL(addr)) { 316 300 317 /* è¦è«ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/301 /* 要請マルチキャストアドレスを登録する。*/ 318 302 llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL; 319 303 llsol.s6_addr32[1] = 0x00000000; … … 324 308 return error; 325 309 326 /* å 327 ¨ãã¼ãã»ãªã³ã¯ãã¼ã«ã«ã»ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/ 310 /* 全ノード・リンクローカル・マルチキャストアドレスを登録する。*/ 328 311 llsol.s6_addr32[2] = 0x00000000; 329 312 llsol.s6_addr32[3] = IPV6_ADDR_INT32_ONE; … … 333 316 } 334 317 335 /* ã«ã¼ã¿ã¤ã³ããã¯ã¹ãè¨å®ããã*/318 /* ルータインデックスを設定する。*/ 336 319 ia->router_index = router_index; 337 320 338 /* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹ãè¨å®ããã*/321 /* プレフィックスインデックスを設定する。*/ 339 322 ia->prefix_index = prefix_index; 340 323 341 /* ãã©ã°ãè¨å®ããã*/324 /* フラグを設定する。*/ 342 325 ia->flags = flags & ~(IN6_IFF_DUPLICATED | IN6_IFF_NODAD); 343 326 ia->flags |= IN6_IFF_DEFINED; 344 327 345 328 /* 346 * ã¢ãã¬ã¹æå¹æéãè¨å®ããã347 * vltime ( æå¹æé) 㨠pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã329 * アドレス有効時間を設定する。 330 * vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。 348 331 */ 349 332 syscall(get_tim(&now)); … … 362 345 ia->lifetime.preferred = 0; 363 346 364 /* è¿é£æ¢ç´¢ã®åæè¨å®ãè¡ãã*/347 /* 近隣探索の初期設定を行う。*/ 365 348 nd6_ifattach(ifp); 366 349 367 /* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/350 /* 重複アドレス検出を行う。*/ 368 351 if ((flags & IN6_IFF_NODAD) == 0) { 369 352 ia->flags |= IN6_IFF_TENTATIVE; … … 375 358 376 359 /* 377 * in6ifa_ifpwithix -- ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«378 * å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã360 * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに 361 * 割り当てられているアドレスを探索する。 379 362 */ 380 363 … … 386 369 387 370 /* 388 * in6ifa_ifpwithrtrix -- ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«389 * å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã371 * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに 372 * 割り当てられているアドレスを探索する。 390 373 */ 391 374 … … 402 385 403 386 /* 404 * in6_ifawithifp -- å®å 405 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 406 ã¢ãã¬ã¹ãã 407 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã 387 * in6_ifawithifp -- 宛先アドレスにふさわしい送信元アドレスを、 388 * ネットワークインタフェースから探索する。 408 389 */ 409 390 … … 414 395 int_t ix; 415 396 416 /* å®å 417 ã¢ãã¬ã¹ã¨åãã¹ã³ã¼ãã®ã¢ãã¬ã¹ãè¿ãã*/ 397 /* 宛先アドレスと同じスコープのアドレスを返す。*/ 418 398 if ((ix = in6_addr2ifaix(dst)) != IPV6_IFADDR_IX_INVALID) 419 399 return &ifp->in_ifaddrs[ix]; … … 435 415 436 416 /* 437 * in6_if_up -- ã¤ã³ã¿ãã§ã¼ã¹èµ·åå¾ã®éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã417 * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。 438 418 */ 439 419 … … 441 421 in6_if_up (T_IFNET *ifp) 442 422 { 443 #if 0 /* ä¿ç*/423 #if 0 /* 保留 */ 444 424 int_t dad_delay, ix; 445 425 #endif /* of #if 0 */ … … 447 427 in6_ifattach(ifp); 448 428 449 #if 0 /* ä¿ç*/450 /* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/429 #if 0 /* 保留 */ 430 /* 重複アドレス検出を行う。*/ 451 431 dad_delay = 0; 452 432 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) … … 458 438 #if NUM_ND6_RTR_SOL_RETRY > 0 459 439 460 /* ã«ã¼ã¿è¦è«ãåºåããã*/440 /* ルータ要請を出力する。*/ 461 441 nd6_rtrsol_ctl(); 462 442 … … 465 445 466 446 /* 467 * in6_are_prefix_equal -- ãã¬ãã£ãã¯ã¹ãåä¸ã調ã¹ãã447 * in6_are_prefix_equal -- プレフィックスが同一か調べる。 468 448 */ 469 449 … … 486 466 487 467 /* 488 * in6_ifaddr_timer -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®ç®¡çã¿ã¤ãã¼468 * in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー 489 469 */ 490 470 … … 505 485 506 486 /* 507 * æå¹æéãéããã®ã§åé¤ããã487 * 有効時間を過ぎたので削除する。 508 488 */ 509 489 ia->flags &= ~IN6_IFF_DEFINED; … … 513 493 514 494 /* 515 * æ¨å¥¨æå¹æéãéããã®ã§éæ¨å¥¨ã«ããã495 * 推奨有効時間を過ぎたので非推奨にする。 516 496 */ 517 497 ia->flags |= IN6_IFF_DEPRECATED; -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 115 103 116 104 /* 117 * IPv6 ã¢ãã¬ã¹105 * IPv6 アドレス 118 106 */ 119 107 … … 140 128 141 129 /* 142 * IPv6 ã¢ãã¬ã¹ã®åæåãã¼ã¿130 * IPv6 アドレスの初期化データ 143 131 */ 144 132 … … 162 150 163 151 /* 164 * ã¢ãã¬ã¹ã®å®ç¾©152 * アドレスの定義 165 153 */ 166 154 … … 196 184 197 185 /* 198 * ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯199 */ 200 201 /* ç¡æå®*/186 * 特別なアドレスのチェック 187 */ 188 189 /* 無指定 */ 202 190 203 191 #define IN6_IS_ADDR_UNSPECIFIED(a) \ 204 192 (memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR)) == 0) 205 193 206 /* ã«ã¼ãããã¯*/194 /* ループバック */ 207 195 208 196 #define IN6_IS_ADDR_LOOPBACK(a) \ … … 210 198 (a)->s6_addr8[15] == 0x01) 211 199 212 /* IPv4 äºæ*/200 /* IPv4 互換 */ 213 201 214 202 #define IN6_IS_ADDR_V4COMPAT(a) \ … … 216 204 (a)->s6_addr32[3] > IPV6_ADDR_INT32_ONE) 217 205 218 /* IPv4 ããã*/206 /* IPv4 マップ */ 219 207 220 208 #define IN6_IS_ADDR_V4MAPPED(a) \ … … 224 212 225 213 /* 226 * ã¹ã³ã¼ãID214 * スコープ ID 227 215 */ 228 216 … … 234 222 235 223 /* 236 * ã¦ããã£ã¹ãã»ã¹ã³ã¼ã 237 * 238 * 注æ: ä¸ä½ 10 ãããã®ã¿ãã§ãã¯ããªããã°ãªããªããRFC2373 åç 239 § 240 */ 241 242 /* ãªã³ã¯ãã¼ã«ã« */ 224 * ユニキャスト・スコープ 225 * 226 * 注意: 上位 10 ビットのみチェックしなければならない。RFC2373 参照 227 */ 228 229 /* リンクローカル */ 243 230 244 231 #define IN6_IS_ADDR_LINKLOCAL(a) \ 245 232 (((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0x80))) 246 233 247 /* ãµã¤ããã¼ã«ã«*/234 /* サイトローカル */ 248 235 249 236 #define IN6_IS_ADDR_SITELOCAL(a) \ 250 237 (((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0xc0))) 251 238 252 /* éç´å¯è½ã¦ããã£ã¹ã (ã°ãã¼ãã«) */239 /* 集約可能ユニキャスト (グローバル) */ 253 240 254 241 #define IN6_IS_ADDR_AGGREGATE_UNICAST(a) \ … … 256 243 257 244 /* 258 * ãã«ããã£ã¹ã245 * マルチキャスト 259 246 */ 260 247 261 248 #define IN6_IS_ADDR_MULTICAST(a) ((a)->s6_addr8[0] == UINT_C(0xff)) 262 249 263 /* è¦è«ãã«ããã£ã¹ã*/250 /* 要請マルチキャスト */ 264 251 265 252 #define IN6_IS_ADDR_NS_MULTICAST(a) \ … … 270 257 271 258 /* 272 * åä¸ã®ãã§ãã¯259 * 同一のチェック 273 260 */ 274 261 … … 276 263 277 264 /* 278 * çµè·¯å¶å¾¡ç¨å®ç¾©279 */ 280 281 #define IPV6_RTHDR_TYPE_0 UINT_C(0) /* IPv6 çµè·¯å¶å¾¡ãããã¿ã¤ã0 */282 283 /* 284 * è¦å®å¤ã¨å¶éå¤285 */ 286 287 #define IPV6_DEFAULT_MULTICAST_HOPS 1 /* ãã«ããã£ã¹ãæã®ããããªãããã®è¦å®å¤*/288 289 /* 290 * ITRON TCP/IPv6 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©265 * 経路制御用定義 266 */ 267 268 #define IPV6_RTHDR_TYPE_0 UINT_C(0) /* IPv6 経路制御ヘッダタイプ 0 */ 269 270 /* 271 * 規定値と制限値 272 */ 273 274 #define IPV6_DEFAULT_MULTICAST_HOPS 1 /* マルチキャスト時のホップリミットの規定値 */ 275 276 /* 277 * ITRON TCP/IPv6 アドレス/ポート番号の定義 291 278 */ 292 279 293 280 typedef struct t_ipv6ep { 294 T_IN6_ADDR ipaddr; /* IPv6 ã¢ãã¬ã¹*/295 uint16_t portno; /* ãã¼ãçªå·*/281 T_IN6_ADDR ipaddr; /* IPv6 アドレス */ 282 uint16_t portno; /* ポート番号 */ 296 283 } T_IPV6EP; 297 284 298 285 /* 299 * ITRON/TCP/IP ç¨ IP ã¢ãã¬ã¹ã®å®ç¾©286 * ITRON/TCP/IP 用 IP アドレスの定義 300 287 */ 301 288 … … 303 290 304 291 /* 305 * åççæç¨ IPv6 TCP åä»å£292 * 動的生成用 IPv6 TCP 受付口 306 293 */ 307 294 308 295 typedef struct t_tcp6_crep { 309 /* æ¨æº */ 310 ATR repatr; /* åä»å£å±æ§ */ 311 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 312 /* å®è£ 313 ä¾å */ 296 /* 標準 */ 297 ATR repatr; /* 受付口属性 */ 298 T_IPV6EP myaddr; /* 自分のアドレス */ 299 /* 実装依存 */ 314 300 } T_TCP6_CREP; 315 301 … … 319 305 320 306 /* 321 * åççæç¨ IPv6 UDP é信端ç¹307 * 動的生成用 IPv6 UDP 通信端点 322 308 */ 323 309 324 310 typedef struct t_udp6_ccep { 325 /* æ¨æº */ 326 ATR cepatr; /* UDP é信端ç¹å±æ§ */ 327 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 328 FP callback; /* ã³ã¼ã«ããã¯é¢æ° */ 329 /* å®è£ 330 ä¾å */ 311 /* 標準 */ 312 ATR cepatr; /* UDP 通信端点属性 */ 313 T_IPV6EP myaddr; /* 自分のアドレス */ 314 FP callback; /* コールバック関数 */ 315 /* 実装依存 */ 331 316 } T_UDP6_CCEP; 332 317 … … 336 321 337 322 /* 338 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã323 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 339 324 */ 340 325 … … 356 341 357 342 /* 358 * åæ¹åç 359 § 343 * 前方参照 360 344 */ 361 345 … … 369 353 370 354 /* 371 * å 372 ¨åå¤æ° 355 * 全域変数 373 356 */ 374 357 … … 380 363 381 364 /* 382 * TINET ç¬èªAPI365 * TINET 独自 API 383 366 */ 384 367 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 110 98 111 99 /* 112 * EUI64 ã®å®ç¾©100 * EUI64 の定義 113 101 */ 114 102 … … 118 106 119 107 /* 120 * get_mac6_ifid -- MAC (6 ãªã¯ããã) ã¢ãã¬ã¹ã§ãã¤ã³ã¿ãã§ã¼ã¹èå¥åãè¨å®ããã108 * get_mac6_ifid -- MAC (6 オクテット) アドレスで、インタフェース識別子を設定する。 121 109 */ 122 110 … … 141 129 142 130 /* 143 * in6_ifattach_linklocal -- ã¤ã³ã¿ãã§ã¼ã¹ã«ãªã³ã¯ãã¼ã«ã«ã»ã¢ãã¬ã¹ãå²ãå½ã¦ãã131 * in6_ifattach_linklocal -- インタフェースにリンクローカル・アドレスを割り当てる。 144 132 */ 145 133 … … 151 139 152 140 /* 153 * ãªã³ã¯ãã¼ã«ã«ã»ãã¬ãã£ãã¯ã¹ fe80::/64 ãè¨å®ããã141 * リンクローカル・プレフィックス fe80::/64 を設定する。 154 142 */ 155 143 addr.s6_addr32[0] = IPV6_ADDR_INT32_ULL; 156 144 addr.s6_addr32[1] = ULONG_C(0); 157 145 158 /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åãè¨å®ããã*/146 /* インタフェース識別子を設定する。*/ 159 147 if ((error = IF_IN6_IFID(ifp, &addr)) != E_OK) 160 148 return error; 161 149 162 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ 163 å ±ãæ´æ°ããã*/ 150 /* インタフェースのアドレス情報を更新する。*/ 164 151 if ((error = in6_update_ifa(ifp, &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL], 165 152 &addr, 64, ND6_INFINITE_LIFETIME, … … 174 161 175 162 /* 176 * in6_ifattach -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãå²ãå½ã¦ãã163 * in6_ifattach -- インタフェースにアドレスを割り当てる。 177 164 */ 178 165 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 80 68 81 69 /* 82 * é¢æ°70 * 関数 83 71 */ 84 72 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_rename.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * TCP/IPv6 ãããã³ã«ã¹ã¿ãã¯å 51 é¨åã®ãªãã¼ã 38 * TCP/IPv6 プロトコルスタック内部名のリネーム 52 39 */ 53 40 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 155 143 156 144 /* 157 * ãã¹ããã£ãã·ã¥145 * ホストキャッシュ 158 146 */ 159 147 … … 163 151 164 152 /* 165 * in6_lookup_ifaddr -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã153 * in6_lookup_ifaddr -- ネットワークインタフェースに割り当てられているアドレスを探索する。 166 154 */ 167 155 … … 180 168 181 169 /* 182 * in6_lookup_multi -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹ãæ¤ç´¢ããã170 * in6_lookup_multi -- ネットワークインタフェースのマルチキャストアドレスを検索する。 183 171 */ 184 172 … … 195 183 196 184 /* 197 * in6_set_header -- IPv6 ããããè¨å®ããã185 * in6_set_header -- IPv6 ヘッダを設定する。 198 186 */ 199 187 … … 208 196 209 197 /* 210 * å®å 211 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 212 ã¢ãã¬ã¹ãã 213 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 198 * 宛先アドレスにふさわしい送信元アドレスを、 199 * ネットワークインタフェースから探索して利用する。 214 200 */ 215 201 if (srcaddr == NULL || !IN6_IS_ADDR_UNSPECIFIED(srcaddr)) … … 220 206 srcaddr = &ia->addr; 221 207 222 /* IPv6 ããããè¨å®ããã*/208 /* IPv6 ヘッダを設定する。*/ 223 209 ip6h = GET_IP6_HDR(nbuf); 224 210 ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0)); … … 241 227 242 228 /* 243 * in6_get_datagram -- IPv6 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨å®ããã229 * in6_get_datagram -- IPv6 データグラムを獲得し、ヘッダを設定する。 244 230 */ 245 231 … … 252 238 uint_t align; 253 239 254 /* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/240 /* データ長は 4 オクテット境界に調整する。 */ 255 241 align = (len + 3) >> 2 << 2; 256 242 257 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/243 /* ネットワークバッファを獲得する。 */ 258 244 if ((error = tget_net_buf_ex(nbuf, IF_IP6_HDR_SIZE + align, 259 245 IF_IP6_HDR_SIZE + maxlen, nbatr, tmout)) != E_OK) … … 261 247 262 248 /* 263 * ãã大ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ãã調æ´ããã264 * ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®265 * çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã249 * より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。 250 * より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの 251 * 省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。 266 252 */ 267 253 if ((nbatr & NBA_SEARCH_ASCENT) != 0) 268 254 (*nbuf)->len = IF_IP6_HDR_SIZE + len; 269 255 270 /* IPv6 ããããè¨å®ããã*/256 /* IPv6 ヘッダを設定する。*/ 271 257 if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK) 272 258 return error; 273 259 274 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/260 /* 4 オクテット境界までパディングで埋める。*/ 275 261 if (align > len) 276 262 memset(GET_IP6_SDU(*nbuf) + len, 0, align - len); … … 280 266 281 267 /* 282 * in6_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®å¯è½ãªæ大ã¢ãã¬ã¹æ°ãè¿ãã268 * in6_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。 283 269 */ 284 270 … … 290 276 291 277 /* 292 * in6_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ããã¢ãã¬ã¹ãè¿ãã278 * in6_get_ifaddr -- インタフェースに設定されているアドレスを返す。 293 279 */ 294 280 … … 306 292 307 293 /* 308 * ipv62str -- IPv6 ã¢ãã¬ã¹ãæååã«å¤æããã294 * ipv62str -- IPv6 アドレスを文字列に変換する。 309 295 */ 310 296 … … 357 343 358 344 /* 359 * in6_cksum -- IPv6 ã®ãã©ã³ã¹ãã¼ã層ãããã®ãã§ãã¯ãµã ãè¨ç®ããã360 * 361 * 注æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã345 * in6_cksum -- IPv6 のトランスポート層ヘッダのチェックサムを計算する。 346 * 347 * 注意: 戻り値はネットワークバイトオーダ 362 348 */ 363 349 … … 368 354 uint_t align; 369 355 370 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/356 /* 4 オクテット境界のデータ長 */ 371 357 align = (len + 3) >> 2 << 2; 372 358 373 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/359 /* 4 オクテット境界までパディングで埋める。*/ 374 360 if (align > len) 375 361 memset((uint8_t*)nbuf->buf + off + len, 0, align - len); … … 384 370 385 371 /* 386 * in6_is_dstaddr_accept -- å®å 387 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 372 * in6_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 388 373 */ 389 374 … … 398 383 399 384 /* 400 * get_ip6_hdr_size -- æ¡å¼µããããå«ãã IPv6 ãããé·ãè¿ãã385 * get_ip6_hdr_size -- 拡張ヘッダも含めた IPv6 ヘッダ長を返す。 401 386 */ 402 387 … … 410 395 while (1) { 411 396 next = *hdr; 412 if (curr ==IPPROTO_NONE) /* 次ãããç¡ã*/397 if (curr ==IPPROTO_NONE) /* 次ヘッダ無し */ 413 398 break; 414 else if (curr == IPPROTO_FRAGMENT) /* æçå*/399 else if (curr == IPPROTO_FRAGMENT) /* 断片化 */ 415 400 hsize = sizeof(T_IP6_FRAG_HDR); 416 else if (curr == IPPROTO_AH) /* IPv6 èªè¨¼*/401 else if (curr == IPPROTO_AH) /* IPv6 認証 */ 417 402 hsize = (((T_IP6_AH_HDR *)hdr)->len + 2) * 4; 418 else if (curr == IPPROTO_HOPOPTS || /* ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³*/419 curr == IPPROTO_DSTOPTS || /* IPv6 çµç¹ãªãã·ã§ã³*/420 curr == IPPROTO_ROUTING) /* çµè·¯å¶å¾¡*/403 else if (curr == IPPROTO_HOPOPTS || /* 中継点 (Hop-by-Hop) オプション */ 404 curr == IPPROTO_DSTOPTS || /* IPv6 終点オプション */ 405 curr == IPPROTO_ROUTING) /* 経路制御 */ 421 406 hsize = (((T_IP6_EXT_HDR *)hdr)->len + 1) * 8; 422 407 else … … 430 415 431 416 /* 432 * in6_plen2pmask -- ãã¬ãã£ãã¯ã¹é·ãããã¹ã¯ãçæããã417 * in6_plen2pmask -- プレフィックス長からマスクを生成する。 433 418 */ 434 419 … … 448 433 449 434 /* 450 * in6_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã435 * in6_rtalloc -- ルーティング表を探索する。 451 436 */ 452 437 … … 462 447 463 448 /* 464 * ãµã¤ããã¼ã«ã«ã¢ãã¬ã¹ãéç´å¯è½ï¼ã°ãã¼ãã«ï¼ã¢ãã¬ã¹ã®å ´åã¯ã 465 * åä¸ãªã³ã¯å 466 ã®ãã¼ãã§ãããããã§ãã¯ããã 449 * サイトローカルアドレスか集約可能(グローバル)アドレスの場合は、 450 * 同一リンク内のノードであるかをチェックする。 467 451 */ 468 452 … … 470 454 now /= SYSTIM_HZ; 471 455 472 /* æ¨å¥¨æå¹æéå 473 ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/ 456 /* 推奨有効時間内のアドレスを探索する。*/ 474 457 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { 475 458 ia = &ifp->in_ifaddrs[ix]; … … 482 465 } 483 466 484 /* æå¹æéå 485 ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/ 467 /* 有効時間内のアドレスを探索する。*/ 486 468 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { 487 469 ia = &ifp->in_ifaddrs[ix]; … … 494 476 495 477 /* 496 * ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã478 * プレフィックスを探索する。 497 479 */ 498 480 if (nd6_onlink_prefix_lookup (dst) != NULL) … … 500 482 501 483 /* 502 * éççµè·¯è¡¨ãæ¢ç´¢ããã484 * 静的経路表を探索する。 503 485 */ 504 486 … … 512 494 513 495 /* 514 * åãç´ãã«ããã¨ã³ããªã¯ãæå¹æéãåããæå»ã延é·ããã515 * expire ã®åä½ã¯ [s]ã516 * TMO_IN_REDIRECT ã®åä½ã¯ [ms]ã496 * 向け直しによるエントリは、有効時間が切れる時刻を延長する。 497 * expire の単位は [s]。 498 * TMO_IN_REDIRECT の単位は [ms]。 517 499 */ 518 500 if (ix > NUM_STATIC_ROUTE_ENTRY) { … … 532 514 533 515 /* 534 * ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã516 * ディフォルトルータ・リストを探索する。 535 517 */ 536 518 return nd6_router_lookup(); … … 541 523 542 524 /* 543 * in6_gateway_lookup -- ã«ã¼ãã£ã³ã°è¡¨ã®ã«ã¼ã¿ãæ¢ç´¢ããã525 * in6_gateway_lookup -- ルーティング表のルータを探索する。 544 526 */ 545 527 … … 557 539 558 540 /* 559 * in6_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã560 * 561 * 注æ: å¼æ° tmo ã®åä½ã¯ [ms]ã541 * in6_rtredirect -- ルーティング表にエントリを登録する。 542 * 543 * 注意: 引数 tmo の単位は [ms]。 562 544 */ 563 545 … … 578 560 579 561 /* 580 * in6_hostcache_lookup -- IPv6 ãã¹ããã£ãã·ã¥ãæ¢ç´¢ããã562 * in6_hostcache_lookup -- IPv6 ホストキャッシュを探索する。 581 563 */ 582 564 … … 594 576 595 577 /* 596 * in6_hostcache_update -- IPv6 ãã¹ããã£ãã·ã¥ãæ´æ°ããã578 * in6_hostcache_update -- IPv6 ホストキャッシュを更新する。 597 579 */ 598 580 … … 606 588 syscall(get_tim(&now)); 607 589 608 /* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/590 /* 既に登録されているか探索する。*/ 609 591 if ((hc = in6_hostcache_lookup (dst)) == NULL) { 610 592 611 /* 空ãã®ãã¹ããã£ãã·ã¥ãæ¢ãã*/593 /* 空きのホストキャッシュを探す。*/ 612 594 for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) { 613 595 if (IN6_IS_HOSTCACHE_FREE(&in6_hostcache[ix])) … … 617 599 if (ix < 0) { 618 600 /* 619 * 空ããç¡ãæã¯ãæå¹æéã®åããæéãã620 * æãçããã¹ããã£ãã·ã¥ãç½®æããã601 * 空きが無い時は、有効時間の切れる時間が、 602 * 最も短いホストキャッシュを置換する。 621 603 */ 622 604 old = now - 1; … … 638 620 639 621 /* 640 * æ¢ã«ç»é²ããã¦ãã¦ãæ°ãã MTU ããç»é²ããã¦ãã MTU ãã大ããã¨ãã641 * IN6_HOSTCACHE_INCREASE ï¼æ¨å¥¨ 10 åï¼éã¯æ´æ°ããªãã622 * 既に登録されていて、新しい MTU が、登録されている MTU より大きいとき、 623 * IN6_HOSTCACHE_INCREASE(推奨 10 分)間は更新しない。 642 624 */ 643 625 return; … … 649 631 650 632 /* 651 * in6_hostcache_getmtu -- IPv6 ãã¹ããã£ãã·ã¥ããã MTU ãåå¾ããã652 * 653 * æ»ãå¤ã 0 ã§ããã°ããã¹ããã£ãã·ã¥ã«ç»é²ããã¦ããªãã633 * in6_hostcache_getmtu -- IPv6 ホストキャッシュをから MTU を取得する。 634 * 635 * 戻り値が 0 であれば、ホストキャッシュに登録されていない。 654 636 */ 655 637 … … 659 641 T_IN6_HOSTCACHE_ENTRY *hc; 660 642 661 /* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/643 /* 既に登録されているか探索する。*/ 662 644 if ((hc = in6_hostcache_lookup(dst)) == NULL) 663 645 return 0; … … 667 649 668 650 /* 669 * in6_hostcache_timer -- IPv6 ãã¹ããã£ãã·ã¥æ´æ°ã¿ã¤ãã¼670 * 671 * 1 ç§å¨æã§èµ·åãããã651 * in6_hostcache_timer -- IPv6 ホストキャッシュ更新タイマー 652 * 653 * 1秒周期で起動される。 672 654 */ 673 655 … … 689 671 690 672 /* 691 * in6_timer -- IPv6 å 692 ±éã¿ã¤ãã¼ 693 * 694 * 1ç§å¨æã§èµ·åãããã 673 * in6_timer -- IPv6 共通タイマー 674 * 675 * 1秒周期で起動される。 695 676 */ 696 677 … … 720 701 721 702 /* 722 * in6_init -- IPv6 å 723 ±éæ©è½ãåæåããã 703 * in6_init -- IPv6 共通機能を初期化する。 724 704 */ 725 705 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 117 105 118 106 /* 119 * ã¢ãã¬ã¹æå¹æéæ§é ä½107 * アドレス有効時間構造体 120 108 */ 121 109 … … 123 111 124 112 /* 125 * expire 㨠perferred ã¯ãã·ã¹ãã ãèµ·åãã¦ããã®çµéæé113 * expire と perferred は、システムが起動してからの経過時間 126 114 */ 127 uint32_t expire; /* æå¹æéãåããæå»[s] */128 uint32_t preferred; /* æ¨å¥¨æå¹æéãåããæå»[s] */115 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 116 uint32_t preferred; /* 推奨有効時間が切れる時刻 [s] */ 129 117 130 118 /* 131 * vltime 㨠pltime ã¯ã追å /å¤æ´ãã¦ããã®ç¸å¯¾æé119 * vltime と pltime は、追加/変更してからの相対時間 132 120 */ 133 uint32_t vltime; /* æå¹æé[ms] */134 uint32_t pltime; /* æ¨å¥¨æå¹æé[ms] */121 uint32_t vltime; /* 有効時間 [ms] */ 122 uint32_t pltime; /* 推奨有効時間 [ms] */ 135 123 } __attribute__((packed, aligned(2)))T_IN6_ADDR_LIFETIME; 136 124 137 125 /* 138 * ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½126 * インタフェースアドレス構造体 139 127 */ 140 128 141 129 typedef struct t_in6_ifaddr { 142 T_IN6_ADDR addr; /* IPv6 ã¢ãã¬ã¹ */ 143 T_IN6_ADDR_LIFETIME lifetime; /* æå¹æé */ 144 uint8_t flags; /* ãã©ã° */ 145 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é· */ 146 uint8_t router_index; /* ã«ã¼ã¿ã¤ã³ããã¯ã¹ */ 147 uint8_t prefix_index; /* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹ */ 148 uint8_t na_icount; /* éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥ã®å 149 ¥ååæ° */ 150 uint8_t ns_icount; /* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®å 151 ¥ååæ° */ 152 uint8_t ns_ocount; /* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®åºååæ° */ 130 T_IN6_ADDR addr; /* IPv6 アドレス */ 131 T_IN6_ADDR_LIFETIME lifetime; /* 有効時間 */ 132 uint8_t flags; /* フラグ */ 133 uint8_t prefix_len; /* プレフィックス長 */ 134 uint8_t router_index; /* ルータインデックス */ 135 uint8_t prefix_index; /* プレフィックスインデックス */ 136 uint8_t na_icount; /* 重複アドレス検出 (DAD) 通知の入力回数 */ 137 uint8_t ns_icount; /* 重複アドレス検出 (DAD) 要請の入力回数 */ 138 uint8_t ns_ocount; /* 重複アドレス検出 (DAD) 要請の出力回数 */ 153 139 } __attribute__((packed, aligned(2)))T_IN6_IFADDR; 154 140 155 141 /* 156 * ã¢ãã¬ã¹ç¶æ 157 ãã©ã° 158 */ 159 160 #define IN6_IFF_ANYCAST UINT_C(0x01) /* ã¨ãã¼ãã£ã¹ã */ 161 #define IN6_IFF_DEFINED UINT_C(0x02) /* å®ç¾©æ¸ã¿ */ 162 #define IN6_IFF_TENTATIVE UINT_C(0x04) /* éè¤æ¤åºä¸ */ 163 #define IN6_IFF_DUPLICATED UINT_C(0x08) /* éè¤ãæ¤åºãã */ 164 #define IN6_IFF_DEPRECATED UINT_C(0x10) /* éæ¨å¥¨ */ 165 #define IN6_IFF_NODAD UINT_C(0x20) /* éè¤æ¤åºä¸è¦ */ 166 #define IN6_IFF_AUTOCONF UINT_C(0x40) /* èªåè¨å®ããã */ 167 #define IN6_IFF_DETACHED UINT_C(0x80) /* éä½¿ç¨ */ 168 169 /* 170 * ã¢ãã¬ã¹ã®æå¹æ§ãã§ã㯠142 * アドレス状態フラグ 143 */ 144 145 #define IN6_IFF_ANYCAST UINT_C(0x01) /* エニーキャスト */ 146 #define IN6_IFF_DEFINED UINT_C(0x02) /* 定義済み */ 147 #define IN6_IFF_TENTATIVE UINT_C(0x04) /* 重複検出中 */ 148 #define IN6_IFF_DUPLICATED UINT_C(0x08) /* 重複を検出した */ 149 #define IN6_IFF_DEPRECATED UINT_C(0x10) /* 非推奨 */ 150 #define IN6_IFF_NODAD UINT_C(0x20) /* 重複検出不要 */ 151 #define IN6_IFF_AUTOCONF UINT_C(0x40) /* 自動設定された */ 152 #define IN6_IFF_DETACHED UINT_C(0x80) /* 非使用 */ 153 154 /* 155 * アドレスの有効性チェック 171 156 */ 172 157 … … 183 168 184 169 /* 185 * ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹170 * ルータのインデックス 186 171 */ 187 172 … … 189 174 190 175 /* 191 * å¶éå¤ 192 */ 193 194 #define IP6_HDR_NEST_LIMIT 50 /* IPv6 ãããã®ãã¹ãå¶éå¤ */ 195 196 /* 197 * ã¢ãã¬ã¹æ 198 å ±é 199 åã®ã¤ã³ããã¯ã¹ 176 * 制限値 177 */ 178 179 #define IP6_HDR_NEST_LIMIT 50 /* IPv6 ヘッダのネスト制限値 */ 180 181 /* 182 * アドレス情報配列のインデックス 200 183 */ 201 184 … … 204 187 205 188 /* 206 * IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹é 207 åã®ã¤ã³ããã¯ã¹ 208 */ 209 210 #define IPV6_MADDR_IX_SOL_NODE 0 /* è¦è«ãã«ããã£ã¹ãã»ã¢ãã¬ã¹ */ 211 #define IPV6_MADDR_IX_LL_ALL_NODE 1 /* å 212 ¨ãã¼ãã»ãªã³ã¯ãã¼ã«ã«ã»ãã«ããã£ã¹ãã¢ãã¬ã¹ */ 189 * IPv6 マルチキャストアドレス配列のインデックス 190 */ 191 192 #define IPV6_MADDR_IX_SOL_NODE 0 /* 要請マルチキャスト・アドレス */ 193 #define IPV6_MADDR_IX_LL_ALL_NODE 1 /* 全ノード・リンクローカル・マルチキャストアドレス */ 213 194 #define IPV6_MADDR_IX_EXTRA 2 214 195 215 196 #define MAX_IN6_MADDR_CNT MAX_IF_MADDR_CNT 216 /* IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹é 217 åã®æ大ãµã¤ãº */ 218 219 /* 220 * ã«ã¼ãã£ã³ã°ã®å¶å¾¡ 221 */ 222 223 /* ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ */ 197 /* IPv6 マルチキャストアドレス配列の最大サイズ */ 198 199 /* 200 * ルーティングの制御 201 */ 202 203 /* ルーティング表エントリ構造体 */ 224 204 225 205 typedef struct t_in6_rtentry { 226 T_IN6_ADDR target; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹*/227 T_IN6_ADDR gateway; /* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹*/228 uint32_t expire; /* æå¹æéãåããæå»[s] */229 uint8_t flags; /* ãã©ã°*/230 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é·*/206 T_IN6_ADDR target; /* 目標ネットワークアドレス */ 207 T_IN6_ADDR gateway; /* ゲートウェイの IP アドレス */ 208 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 209 uint8_t flags; /* フラグ */ 210 uint8_t prefix_len; /* プレフィックス長 */ 231 211 } __attribute__((packed, aligned(2)))T_IN6_RTENTRY; 232 212 233 213 /* 234 * ãã¹ããã£ãã·ã¥235 */ 236 237 /* ãã¹ããã£ãã·ã¥æ§é ä½*/214 * ホストキャッシュ 215 */ 216 217 /* ホストキャッシュ構造体 */ 238 218 239 219 typedef struct t_in6_hostcache_entry { 240 T_IN6_ADDR dst; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹*/241 uint32_t expire; /* æå¹æéãåããæå»[s] */220 T_IN6_ADDR dst; /* 目標ネットワークアドレス */ 221 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 242 222 uint32_t mtu; /* Path MTU */ 243 223 } __attribute__((packed, aligned(2)))T_IN6_HOSTCACHE_ENTRY; 244 224 245 #define IN6_HOSTCACHE_EXPIRE (60*60*SYSTIM_HZ) /* æå¹æé*/246 #define IN6_HOSTCACHE_PRUNE (5*60*SYSTIM_HZ) /* æ´æ°éé*/247 #define IN6_HOSTCACHE_INCREASE (10*60*SYSTIM_HZ) /* å¢å ããå ´åã®ä¿è·æé*/225 #define IN6_HOSTCACHE_EXPIRE (60*60*SYSTIM_HZ) /* 有効時間 */ 226 #define IN6_HOSTCACHE_PRUNE (5*60*SYSTIM_HZ) /* 更新間隔 */ 227 #define IN6_HOSTCACHE_INCREASE (10*60*SYSTIM_HZ) /* 増加する場合の保護時間 */ 248 228 249 229 #define IN6_IS_HOSTCACHE_FREE(e) IN6_IS_ADDR_UNSPECIFIED(&((e)->dst)) … … 251 231 252 232 /* 253 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã233 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 254 234 */ 255 235 … … 266 246 267 247 /* 268 * åæ¹åç 269 § 248 * 前方参照 270 249 */ 271 250 … … 279 258 280 259 /* 281 * å¤æ°260 * 変数 282 261 */ 283 262 … … 285 264 286 265 /* 287 * é¢æ°266 * 関数 288 267 */ 289 268 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * IPv6 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã35 * IPv6 で使用するカーネルオブジェクト 48 36 */ 49 37 50 38 #ifdef SUPPORT_INET6 51 39 52 /* è¿é£ãã£ãã·ã¥*/40 /* 近隣キャッシュ */ 53 41 54 42 CRE_SEM(SEM_ND6_CACHE, { TA_TPRI, 1, 1 }); … … 56 44 #if NUM_ND6_DEF_RTR_ENTRY > 0 57 45 58 /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã*/46 /* ディフォルトルータ・リスト */ 59 47 60 48 CRE_SEM(SEM_ND6_DEFRTRLIST, { TA_TPRI, 1, 1 }); … … 64 52 #ifdef IP6_CFG_FRAGMENT 65 53 66 /* åå²ããã*/54 /* 分割ヘッダ */ 67 55 68 56 CRE_SEM(SEM_IP6_FRAG_QUEUE, { TA_TPRI, 1, 1 }); … … 72 60 #if NUM_REDIRECT_ROUTE_ENTRY > 0 73 61 74 /* ã«ã¼ãã£ã³ã°è¡¨ï¼åãç´ãï¼*/62 /* ルーティング表(向け直し)*/ 75 63 76 64 CRE_SEM(SEM_IN_ROUTING_TBL, { TA_TPRI, 1, 1 }); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 158 146 159 147 /* 160 * é¢æ°148 * 関数 161 149 */ 162 150 … … 164 152 165 153 /* 166 * ä¸ä½ãããã³ã«é¸ææ§é ä½154 * 上位プロトコル選択構造体 167 155 */ 168 156 169 157 typedef struct t_proto_switch { 170 uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *); /* å 171 ¥åé¢æ° */ 172 uint_t proto; /* ãããã³ã«çªå· */ 158 uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *); /* 入力関数 */ 159 uint_t proto; /* プロトコル番号 */ 173 160 } T_PROTO_SWITCH; 174 161 175 162 static const T_PROTO_SWITCH proto_switch[] = { 176 { esp6_input, IPPROTO_ESP }, /* IPv6 æå·åããã*/177 { ah6_input, IPPROTO_AH }, /* IPv6 èªè¨¼ããã*/178 { frag6_input, IPPROTO_FRAGMENT }, /* æçããã*/179 { route6_input, IPPROTO_ROUTING }, /* çµè·¯å¶å¾¡ããã*/180 { dest6_input, IPPROTO_DSTOPTS }, /* IPv6 çµç¹ãªãã·ã§ã³*/163 { esp6_input, IPPROTO_ESP }, /* IPv6 暗号化ヘッダ */ 164 { ah6_input, IPPROTO_AH }, /* IPv6 認証ヘッダ */ 165 { frag6_input, IPPROTO_FRAGMENT }, /* 断片ヘッダ */ 166 { route6_input, IPPROTO_ROUTING }, /* 経路制御ヘッダ */ 167 { dest6_input, IPPROTO_DSTOPTS }, /* IPv6 終点オプション */ 181 168 { ip6_no_header_input, 182 IPPROTO_NONE }, /* 次ãããç¡ã*/169 IPPROTO_NONE }, /* 次ヘッダ無し */ 183 170 { icmp6_input, IPPROTO_ICMPV6 }, 184 171 … … 204 191 205 192 /* 206 * get_upper_proto -- ä¸ä½ãããã³ã«å¦çé¢æ°ãè¿ãã193 * get_upper_proto -- 上位プロトコル処理関数を返す。 207 194 */ 208 195 … … 219 206 220 207 /* 221 * ip6_no_header_input -- 次ããããç¡ãã®å ´åã®å 222 ¥åå¦ç 208 * ip6_no_header_input -- 次ヘッダが無しの場合の入力処理 223 209 */ 224 210 … … 231 217 232 218 /* 233 * ip6_hopopts_input -- ä¸ç¶ç¹ãªãã·ã§ã³å 234 ¥åå¦ç 235 * 236 * æ¬å®è£ 237 ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå 238 ¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã 239 * 240 * æ»ãå¤: 241 * 242 * 0 ä»¥ä¸ æ£å¸¸ 243 * IP6_OPT_RET_ERR (-1) ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã 244 * IP6_OPT_RET_REL (-2) ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã 219 * ip6_hopopts_input -- 中継点オプション入力処理 220 * 221 * 本実装では、パディング以外のオプションを全て未知オプションとして処理する。 222 * 223 * 戻り値: 224 * 225 * 0 以上 正常 226 * IP6_OPT_RET_ERR (-1) エラー、呼出側でネットワークバッファを開放する。 227 * IP6_OPT_RET_REL (-2) エラー、ネットワークバッファは開放されている。 245 228 */ 246 229 … … 290 273 291 274 /* 292 * ip6_get_prev_hdr -- ç´åã®æ¡å¼µãããã® next ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãè¿ãã293 * 294 * 注æ: off ã«ã¯ IF_HDR_SIZE ãå«ã¾ãã¦ããã275 * ip6_get_prev_hdr -- 直前の拡張ヘッダの next フィールドのアドレスを返す。 276 * 277 * 注意: off には IF_HDR_SIZE も含まれている。 295 278 */ 296 279 … … 336 319 337 320 /* 338 * ip6_init -- IPv6 ã®åæåé¢æ°321 * ip6_init -- IPv6 の初期化関数 339 322 */ 340 323 … … 347 330 348 331 /* 349 * ip6_input -- IPv6 ã®å 350 ¥åé¢æ° 332 * ip6_input -- IPv6 の入力関数 351 333 */ 352 334 … … 365 347 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInReceives, 1); 366 348 367 /* IP ãããã®é·ãããã§ãã¯ããã*/349 /* IP ヘッダの長さをチェックする。*/ 368 350 if (input->len < IF_IP6_HDR_SIZE) { 369 351 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1); … … 374 356 ip6h = GET_IP6_HDR(input); 375 357 376 /* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/358 /* バージョンをチェックする。*/ 377 359 if (IP6_VCF_V(ntohl(ip6h->vcf)) != IPV6_VERSION) { 378 360 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_VER], 1); … … 382 364 383 365 /* 384 * 次ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã366 * 次のデータグラムは破棄する。 385 367 * 386 * ã»å§ç¹ã¢ãã¬ã¹ããã«ããã£ã¹ã387 * ã»çµç¹ã¢ãã¬ã¹ãæªå®ç¾©368 * ・始点アドレスがマルチキャスト 369 * ・終点アドレスが未定義 388 370 * 389 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã«ã¼ãããã¯ã§ãªãã¨ãã390 * 次ã®ãã¼ã¿ã°ã©ã ãç ´æ£ããã371 * ネットワークインタフェースがループバックでないとき、 372 * 次のデータグラムも破棄する。 391 373 * 392 * ã»å§ç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯393 * ã»çµç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯374 * ・始点アドレスがループバック 375 * ・終点アドレスがループバック 394 376 * 395 * æªæã®ããã¦ã¼ã¶ã TCP/UDP ã¹ã¿ãã¯ã®æ··ä¹±ã396 * ã»ãã¥ãªãã£ãã§ãã¯ããã¤ãã¹ãããããIPv4397 * ãããã¢ãã¬ã¹ãæªç¨ãããã¨ãé²ããã398 * 以ä¸ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã377 * 悪意のあるユーザが TCP/UDP スタックの混乱や 378 * セキュリティチェックをバイパスするため、IPv4 379 * マップアドレスを悪用することを防ぐため 380 * 以下のデータグラムは破棄する。 399 381 * 400 * ã»å§ç¹ã¢ãã¬ã¹ã::ffff:127.0.0.1401 * ã»çµç¹ã¢ãã¬ã¹ã::ffff:127.0.0.1382 * ・始点アドレスが ::ffff:127.0.0.1 383 * ・終点アドレスが ::ffff:127.0.0.1 402 384 */ 403 385 … … 432 414 433 415 if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) { 434 /* å®å 435 ããã«ããã£ã¹ãã®å ´åã®å¦ç */ 416 /* 宛先がマルチキャストの場合の処理 */ 436 417 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInMcastPkts, 1); 437 418 if (!in6_lookup_multi(ifp, &ip6h->dst)) { … … 448 429 } 449 430 450 /* ã¢ãã¬ã¹ãæªè§£æ±ºã®å ´åã¯ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/431 /* アドレスが未解決の場合はデータグラムを破棄する。*/ 451 432 if (IFA6_IS_NOTREADY(ia6)) { 452 433 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1); … … 456 437 } 457 438 458 /* ãªãã»ãããè¨å®ããã*/439 /* オフセットを設定する。*/ 459 440 offp = GET_IP6_NEXT_HDR(input) - input->buf; 460 441 461 /* ãã¤ãã¼ãé·ãåãåºãã*/442 /* ペイロード長を取り出す。*/ 462 443 plen = ntohs(ip6h->plen); 463 444 464 445 465 /* 次ãããã®ä½ç½®ãåæåããã*/446 /* 次ヘッダの位置を初期化する。*/ 466 447 nextp = offsetof(T_IP6_HDR, next); 467 448 468 449 /* 469 * ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ãããã®ãã§ãã¯450 * 中継点 (Hop-by-Hop) オプションヘッダのチェック 470 451 */ 471 452 if (ip6h->next == IPPROTO_HOPOPTS) { 472 453 473 /* ä¸ç¶ç¹ãããã®é·ãããã§ãã¯ããã*/454 /* 中継点ヘッダの長さをチェックする。*/ 474 455 if (plen < sizeof(T_IP6_HBH_HDR)) { 475 456 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1); … … 492 473 493 474 /* 494 * ãã¤ãã¼ãé·ã 0 ã§ãä¸ç¶ç¹ãªãã·ã§ã³ãããã¨ãã¯ã 495 * 巨大ãã¤ãã¼ãã»ãªãã·ã§ã³ãå«ã¾ããªããã°ãªããªãã 496 * ãã®ã¨ãã巨大ãã¤ãã¼ãã»ãªãã·ã§ã³ã«ãã 497 * ãã¤ãã¼ãé·ããã§ãã¯ããå¿ 498 è¦ãããããæ¬å®è£ 499 ã§ã¯ã 500 * 巨大ãã¤ãã¼ãã»ãªãã·ã§ã³ãæªç¥ã®ãªãã·ã§ã³ã¨ã㦠501 * æ±ãã®ã§ãä½ãããªãã 475 * ペイロード長が 0 で、中継点オプションがあるときは、 476 * 巨大ペイロード・オプションが含まれなければならない。 477 * このとき、巨大ペイロード・オプションにある 478 * ペイロード長をチェックする必要があるが、本実装では、 479 * 巨大ペイロード・オプションを未知のオプションとして 480 * 扱うので、何もしない。 502 481 */ 503 482 next = ((T_IP6_HBH_HDR *)(ip6h + 1))->next; … … 506 485 next = ip6h->next; 507 486 508 /* IPv6 ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/487 /* IPv6 データグラム長をチェックする。*/ 509 488 if (input->len - IF_IP6_HDR_SIZE < plen) { 510 489 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1); … … 515 494 input->len = IF_IP6_HDR_SIZE + plen; 516 495 517 /* ä¸ä½ãããã³ã«å¦çé¢æ°ãå¼ã³åºãã*/496 /* 上位プロトコル処理関数を呼び出す。*/ 518 497 nest = 0; 519 498 while (next != IPPROTO_DONE) { … … 528 507 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInUnknownProtos, 1); 529 508 530 /* icmp6_error ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã*/509 /* icmp6_error でネットワークバッファを開放する。*/ 531 510 icmp6_error(input, ICMP6_PARAM_PROB, 532 511 ICMP6_PARAMPROB_NEXT_HEADER, nextp); … … 545 524 546 525 /* 547 * ip6_nexthdr -- 次ã®ãããã®ãªãã»ãããè¿ãã548 * 549 * æ»ãå¤ == -1 : æå¾ã®ããããã¾ãã¯ã¨ã©ã¼ã550 * æ»ãå¤ > 0 : ããã«ããããç¶ãã526 * ip6_nexthdr -- 次のヘッダのオフセットを返す。 527 * 528 * 戻り値 == -1 : 最後のヘッダ、またはエラー。 529 * 戻り値 > 0 : さらにヘッダが続く。 551 530 */ 552 531 … … 566 545 break; 567 546 568 case IPPROTO_FRAGMENT: /* æçããã*/547 case IPPROTO_FRAGMENT: /* 断片ヘッダ */ 569 548 if (nbuf->len < off + sizeof(T_IP6_FRAG_HDR)) 570 549 return (ER_UINT)-1; 571 550 572 /* ä¸éã®ãã©ã°ã¡ã³ãã®å ´åã¯å¦çããããã*/551 /* 中間のフラグメントの場合は処理をやめる。*/ 573 552 ip6fh = (T_IP6_FRAG_HDR *)(nbuf->buf + off); 574 553 if (ntohs(ip6fh->off_flag) & IP6F_MORE_FRAG) … … 579 558 break; 580 559 581 case IPPROTO_AH: /* IPv6 èªè¨¼ããã*/582 case IPPROTO_HOPOPTS: /* IPv6 ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³*/583 case IPPROTO_ROUTING: /* çµè·¯å¶å¾¡ããã*/584 case IPPROTO_DSTOPTS: /* IPv6 çµç¹ãªãã·ã§ã³*/560 case IPPROTO_AH: /* IPv6 認証ヘッダ */ 561 case IPPROTO_HOPOPTS: /* IPv6 中継点 (Hop-by-Hop) オプション */ 562 case IPPROTO_ROUTING: /* 経路制御ヘッダ */ 563 case IPPROTO_DSTOPTS: /* IPv6 終点オプション */ 585 564 if (nbuf->len < off + sizeof(T_IP6_EXT_HDR)) 586 565 return (ER_UINT)-1; … … 599 578 600 579 /* 601 * ip6_lasthdr -- æå¾ã®ãããã®ãªãã»ãããè¿ãã580 * ip6_lasthdr -- 最後のヘッダのオフセットを返す。 602 581 */ 603 582 … … 618 597 619 598 /* 620 * ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç621 * 622 * æ»ãå¤:623 * 624 * 0 ä»¥ä¸ æ£å¸¸ããªãã·ã§ã³é·ã625 * IP6_OPT_RET_ERR (-1) ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã626 * IP6_OPT_RET_REL (-2) ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã599 * ip6_unknown_opt -- 未知のオプションの処理 600 * 601 * 戻り値: 602 * 603 * 0 以上 正常、オプション長。 604 * IP6_OPT_RET_ERR (-1) エラー、呼出側でネットワークバッファを開放する。 605 * IP6_OPT_RET_REL (-2) エラー、ネットワークバッファは開放されている。 627 606 */ 628 607 … … 631 610 { 632 611 switch (IP6OPT_TYPE(*opt)) { 633 case IP6OPT_TYPE_SKIP: /* ç¡è¦ããã*/612 case IP6OPT_TYPE_SKIP: /* 無視する。 */ 634 613 return *(opt + 1); 635 614 break; 636 case IP6OPT_TYPE_ICMP: /* ç ´æ£ãã¦ããã«ããã£ã¹ãã§ãªããã° ICMP ãè¿éããã*/615 case IP6OPT_TYPE_ICMP: /* 破棄して、マルチキャストでなければ ICMP を返送する。 */ 637 616 if (IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) 638 617 return IP6_OPT_RET_ERR; 639 618 /* no break; */ 640 case IP6OPT_TYPE_FORCEICMP: /* ç ´æ£ãã¦ãICMP ãè¿éããã*/619 case IP6OPT_TYPE_FORCEICMP: /* 破棄して、ICMP を返送する。 */ 641 620 icmp6_error(input, ICMP6_PARAM_PROB, 642 621 ICMP6_PARAMPROB_OPTION, … … 644 623 return IP6_OPT_RET_REL; 645 624 break; 646 /*case IP6OPT_TYPE_DISCARD: ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/625 /*case IP6OPT_TYPE_DISCARD: データグラムを破棄する。 */ 647 626 } 648 627 … … 651 630 652 631 /* 653 * ip6_remove_exthdrs -- IPv6 æ¡å¼µããããåé¤ãã以éãåã«è©°ããã632 * ip6_remove_exthdrs -- IPv6 拡張ヘッダを削除し、以降を前に詰める。 654 633 */ 655 634 … … 660 639 uint_t next; 661 640 662 /* éå§ãªãã»ããã IP ãããã«è¨å®ããã*/641 /* 開始オフセットを IP ヘッダに設定する。*/ 663 642 off = ((uint8_t *)GET_IP_HDR(nbuf)) - nbuf->buf; 664 643 665 /* æçµããããæ¢ç´¢ããã*/644 /* 最終ヘッダを探索する。*/ 666 645 off = ip6_lasthdr(nbuf, off, IPPROTO_IPV6, &next); 667 646 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_output.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 153 141 154 142 /* 155 * å 156 ¨åå¤æ° 157 */ 158 159 /* ãªã³ã¯ MTU */ 143 * 全域変数 144 */ 145 146 /* リンク MTU */ 160 147 161 148 uint32_t linkmtu = IF_MTU; 162 149 163 150 /* 164 * å±æå¤æ°151 * 局所変数 165 152 */ 166 153 … … 172 159 173 160 /* 174 * ip6_output -- IPv6 ã®åºåé¢æ°161 * ip6_output -- IPv6 の出力関数 175 162 */ 176 163 … … 203 190 204 191 /* 205 * éè¤ã¢ãã¬ã¹æ¤åºè¦è«ä»¥å¤ã«ã¯ãéä¿¡å 206 ã¢ãã¬ã¹ã« 207 * ç¡æå®ãæå®ã§ããªãã 192 * 重複アドレス検出要請以外には、送信元アドレスに 193 * 無指定を指定できない。 208 194 */ 209 195 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) && (flags & IPV6_OUT_FLG_DAD) == 0) { … … 212 198 } 213 199 214 /* éä¿¡å 215 ã¢ãã¬ã¹ã«ã¯ãã«ããã£ã¹ãã¢ãã¬ã¹ãæå®ã§ããªãã*/ 200 /* 送信元アドレスにはマルチキャストアドレスを指定できない。*/ 216 201 if (IN6_IS_ADDR_MULTICAST(&ip6h->src)) { 217 202 error = E_PAR; … … 220 205 221 206 /* 222 * çµè·¯é¸æãè¡ãã207 * 経路選択を行う。 223 208 */ 224 209 if ((gw = in6_rtalloc(ifp, &ip6h->dst)) == NULL) { … … 228 213 229 214 if (!IN6_IS_ADDR_MULTICAST(&ip6h->dst)) { 230 /* ã¦ããã£ã¹ãã¢ãã¬ã¹ã®å¦ç*/215 /* ユニキャストアドレスの処理 */ 231 216 } 232 217 else { 233 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®å¦ç*/218 /* マルチキャストアドレスの処理 */ 234 219 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutMcastPkts, 1); 235 220 if (flags & IPV6_OUT_FLG_HOP_LIMIT) … … 239 224 } 240 225 241 /* Traffic Class 㨠Flow Label ããµãã¼ãããªãã®ã§ 0 ã«è¨å®ããã*/226 /* Traffic Class と Flow Label をサポートしないので 0 に設定する。*/ 242 227 ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0)); 243 228 … … 252 237 253 238 /* 254 * Path MTU ãç»é²ããã¦ããå ´åã255 * MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ã®å ´åã¯ã256 * MTU ã IPv6 MMTU ã«è¨å®ãåå²ãã¦éä¿¡ããã239 * Path MTU が登録されている場合、 240 * MTU が IPv6 MMTU(1280 オクテット)以下の場合は、 241 * MTU を IPv6 MMTU に設定し分割して送信する。 257 242 */ 258 243 mtu = IPV6_MMTU; … … 271 256 if (plen + IP6_HDR_SIZE <= mtu && !alwaysfrag) { 272 257 273 /* åå²ããå¿ 274 è¦ããªãã¨ãã®å¦ç */ 258 /* 分割する必要がないときの処理 */ 275 259 if ((error = nd6_output(ifp, output, gw, NULL, tmout)) != E_OK) { 276 260 NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1); … … 280 264 else { 281 265 282 /* æç ID ãè¨å®ããã*/266 /* 断片 ID を設定する。*/ 283 267 id = ip6_id ++; 284 268 285 /* MTU ã IPv6 ã®æ大ãã±ãããµã¤ãºãè¶ 286 ããªãããã«ããã*/ 269 /* MTU が IPv6 の最大パケットサイズを超えないようにする。*/ 287 270 if (mtu > IPV6_MAXPACKET) 288 271 mtu = IPV6_MAXPACKET; 289 272 290 273 /* 291 * MTU ãããåå²ä¸è½é¨åï¼TINET-1.4 ã§ã¯ãåå²ããã以å¤ã® 292 * æ¡å¼µãããã®åºåã¯æªå®è£ 293 ã®ãã 0 ãªã¯ãããï¼ 294 * ã¨æçãããã®ãµã¤ãºãå¼ããã¨ãã8 ãªã¯ããã以ä¸ãªããã° 295 * åå²ãã¦éä¿¡ã§ããªãããã¨ã©ã¼ã«ããã 274 * MTU から、分割不能部分(TINET-1.4 では、分割ヘッダ以外の 275 * 拡張ヘッダの出力は未実装のため 0 オクテット) 276 * と断片ヘッダのサイズを引いたとき、8 オクテット以上なければ 277 * 分割して送信できないためエラーにする。 296 278 */ 297 279 if (((mtu - sizeof(T_IP6_FRAG_HDR)) & ~7) < 8) { … … 301 283 302 284 /* 303 * IPv6 ãããã® next ãã£ã¼ã«ãã«è¨å®ããå¤ã¯ãæçãããã 304 * æçãããã® next ãã£ã¼ã«ãã«è¨å®ããå¤ã¯ã 305 * å 306 ã®ãã¼ã¿ã°ã©ã ã® next ãã£ã¼ã«ãã®å¤ã 285 * IPv6 ヘッダの next フィールドに設定する値は、断片ヘッダ。 286 * 断片ヘッダの next フィールドに設定する値は、 287 * 元のデータグラムの next フィールドの値。 307 288 */ 308 289 nextproto = ip6h->next; 309 290 ip6h->next = IPPROTO_FRAGMENT; 310 291 311 /* åå²ãã¦éä¿¡ããã*/292 /* 分割して送信する。*/ 312 293 NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT], 1); 313 294 for (foff = 0; foff < plen; foff += flen) { 314 295 315 /* æçã®é·ããè¨ç®ãã8 ãªã¯ãããå¢çã«èª¿æ´ããã*/296 /* 断片の長さを計算し、8 オクテット境界に調整する。*/ 316 297 if (foff + (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) < plen) 317 298 flen = (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) >> 3 << 3; … … 319 300 flen = plen - foff; 320 301 321 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/302 /* ネットワークバッファを獲得する。*/ 322 303 if (tget_net_buf(&frag, flen + IF_IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR), TMO_IP6_FRAG_GET_NET_BUF) == E_OK) { 323 304 324 /* IPv6 ããããã³ãã¼ããã*/305 /* IPv6 ヘッダをコピーする。*/ 325 306 fip6h = GET_IP6_HDR(frag); 326 307 *fip6h = *ip6h; 327 308 328 /* IPv6 ããããåããã*/309 /* IPv6 ヘッダを埋める。*/ 329 310 fip6h->plen = htons(flen + sizeof(T_IP6_FRAG_HDR)); 330 311 331 /* æçããããåããã*/312 /* 断片ヘッダを埋める。*/ 332 313 fip6f = (T_IP6_FRAG_HDR *)GET_IP6_NEXT_HDR(frag); 333 314 fip6f->off_flag = htons((uint16_t)(foff & ~7)); … … 338 319 fip6f->next = nextproto; 339 320 340 /* SDU ãã³ãã¼ããã*/321 /* SDU をコピーする。*/ 341 322 memcpy((uint8_t*)(fip6f + 1), GET_IP6_NEXT_HDR(output) + foff, flen); 342 323 NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT_FRAGS], 1); 343 324 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragCreates, 1); 344 325 345 /* éä¿¡ããã*/326 /* 送信する。*/ 346 327 if ((error = nd6_output(ifp, frag, gw, NULL, tmout)) != E_OK) { 347 328 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragFails, 1); … … 350 331 } 351 332 else { 352 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ã§ããªããã°ãéä¿¡ããããããã*/333 /* ネットワークバッファが獲得できなければ、送信をあきらめる。*/ 353 334 error = E_NOMEM; 354 335 goto drop; … … 356 337 } 357 338 358 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/339 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 359 340 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 360 341 syscall(rel_net_buf(output)); … … 378 359 379 360 drop: 380 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/361 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 381 362 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 382 363 syscall(rel_net_buf(output)); -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 117 105 118 106 /* 119 * IPv6 ãããã»ãã¤ãã¼ãã¢ã¯ã»ã¹ãã¯ã107 * IPv6 ヘッダ・ペイロードアクセスマクロ 120 108 */ 121 109 … … 132 120 #define SET_IP6_SDU_SIZE(iph,slen) ((iph)->plen=htons(slen)) 133 121 134 /* ip6_output ã®ãã©ã°*/135 136 #define IPV6_OUT_FLG_DAD 0x0100 /* éè¤ã¢ãã¬ã¹æ¤åº*/137 #define IPV6_OUT_FLG_HOP_LIMIT 0x0200 /* ããããªãããæå®*/138 139 /* ããããªããããã©ã°ãä»ãæãããããªãããå¤ãæä½ãããã¯ã*/122 /* ip6_output のフラグ */ 123 124 #define IPV6_OUT_FLG_DAD 0x0100 /* 重複アドレス検出 */ 125 #define IPV6_OUT_FLG_HOP_LIMIT 0x0200 /* ホップリミット指定 */ 126 127 /* ホップリミットフラグが付く時、ホップリミット値を操作するマクロ */ 140 128 141 129 #define IPV6_OUT_GET_HOP_LIMIT(f) ((f)&0x00ff) … … 143 131 144 132 /* 145 * ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç146 * 147 * æ»ãå¤:148 * 149 * 0 ä»¥ä¸ æ£å¸¸ããªãã·ã§ã³é·ã150 * IP6_OPT_RET_ERR (-1) ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã151 * IP6_OPT_RET_REL (-2) ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã133 * ip6_unknown_opt -- 未知のオプションの処理 134 * 135 * 戻り値: 136 * 137 * 0 以上 正常、オプション長。 138 * IP6_OPT_RET_ERR (-1) エラー、呼出側でネットワークバッファを開放する。 139 * IP6_OPT_RET_REL (-2) エラー、ネットワークバッファは開放されている。 152 140 */ 153 141 … … 156 144 157 145 /* 158 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã146 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 159 147 */ 160 148 … … 177 165 178 166 /* 179 * IPv6 ã® MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡167 * IPv6 の MMTU サイズのネットワークバッファ 180 168 */ 181 169 182 170 typedef struct t_net_buf_ipv6_mmtu { 183 uint16_t len; /* ãã¼ã¿ã®é·ã*/184 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/185 uint8_t unit; /* ã¤ã³ã¿ãã§ã¼ã¹çªå·*/171 uint16_t len; /* データの長さ */ 172 uint8_t idix; /* mpfid のインデックス */ 173 uint8_t unit; /* インタフェース番号 */ 186 174 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 187 175 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 191 179 #endif 192 180 uint8_t buf[IF_HDR_SIZE + IPV6_MMTU]; 193 /* ãããã¡æ¬ä½*/181 /* バッファ本体 */ 194 182 } T_NET_BUF_IPV6_MMTU; 195 183 196 184 /* 197 * 65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡185 * 65536 オクテットサイズのネットワークバッファ 198 186 */ 199 187 200 188 typedef struct t_net_buf6_65536 { 201 uint16_t len; /* ãã¼ã¿ã®é·ã*/202 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/203 uint8_t flags; /* ãã©ã°*/189 uint16_t len; /* データの長さ */ 190 uint8_t idix; /* mpfid のインデックス */ 191 uint8_t flags; /* フラグ */ 204 192 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 205 193 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 209 197 #endif 210 198 uint8_t buf[IF_IP6_HDR_SIZE + 65536]; 211 /* ãããã¡æ¬ä½*/199 /* バッファ本体 */ 212 200 #if defined(IF_PDU_HDR_PADDING) 213 201 uint8_t padding[IF_PDU_HDR_PADDING]; 214 #endif /* ãããã®ä½å*/202 #endif /* ヘッダの余分 */ 215 203 } T_NET_BUF6_65536; 216 204 … … 218 206 219 207 /* 220 * åæ§æãã¥ã¼ç¨ IPv6 ãããã®å®ç¾©208 * 再構成キュー用 IPv6 ヘッダの定義 221 209 */ 222 210 … … 229 217 uint8_t hlim; /* Hop Limit */ 230 218 T_IN6_ADDR src; /* Source Address */ 231 T_NET_BUF *next_frag; /* 次㮠IPv6 ãã©ã°ã¡ã³ã*/232 uint16_t foff; /* æçãããã®ãªãã»ãã*/233 uint16_t flen; /* æçé·*/234 uint16_t ftim; /* åæ§æã¿ã¤ã ã¢ã¦ã*/219 T_NET_BUF *next_frag; /* 次の IPv6 フラグメント */ 220 uint16_t foff; /* 断片ヘッダのオフセット */ 221 uint16_t flen; /* 断片長 */ 222 uint16_t ftim; /* 再構成タイムアウト */ 235 223 uint16_t dummy1; 236 224 uint8_t dummy2[sizeof(T_IN6_ADDR) - (sizeof(T_NET_BUF*) + sizeof(uint16_t) * 4)]; … … 247 235 248 236 /* 249 * ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡237 * データグラム再構成用ネットワークバッファ 250 238 */ 251 239 252 240 typedef struct t_net_buf6_reassm { 253 uint16_t len; /* ãã¼ã¿ã®é·ã*/254 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/255 uint8_t flags; /* ãã©ã°*/241 uint16_t len; /* データの長さ */ 242 uint8_t idix; /* mpfid のインデックス */ 243 uint8_t flags; /* フラグ */ 256 244 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 257 245 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 261 249 #endif 262 250 uint8_t buf[IP6_CFG_FRAG_REASSM_SIZE]; 263 /* ãããã¡æ¬ä½*/251 /* バッファ本体 */ 264 252 } T_NET_BUF6_REASSM; 265 253 … … 267 255 268 256 /* 269 * TCP ã®åæ§æãã¥ã¼ã«ããã IPv6 ãããã®å®ç¾©257 * TCP の再構成キューにおける IPv6 ヘッダの定義 270 258 */ 271 259 … … 274 262 uint8_t cf; /* Traffic Class: 8 bit */ 275 263 /* Flow Label: 4 bit (20 bit) */ 276 uint16_t thoff; /* TCP ãããã®ãªãã»ãã*/264 uint16_t thoff; /* TCP ヘッダのオフセット */ 277 265 uint16_t plen; /* Payload Length */ 278 266 uint8_t next; /* Next Header */ … … 285 273 286 274 /* 287 * SNMP 㮠管çæ 288 å ±ãã¼ã¹ (MIB) 275 * SNMP の 管理情報ベース (MIB) 289 276 */ 290 277 … … 317 304 318 305 /* 319 * é¢æ°306 * 関数 320 307 */ 321 308 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 7 7 * Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN 8 8 * 9 * ä¸è¨èä½æ¨©è 10 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 11 * ã«ãã£ã¦å 12 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 13 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 14 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼ 16 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 17 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 18 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 19 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 20 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 21 * ç¨ã§ããå½¢ã§åé 22 å¸ããå ´åã«ã¯ï¼åé 23 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 24 * è 25 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 26 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 27 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 28 * ç¨ã§ããªãå½¢ã§åé 29 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 35 * 害ãããï¼ä¸è¨èä½æ¨©è 36 ããã³TOPPERSããã¸ã§ã¯ããå 37 責ãããã¨ï¼ 9 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 10 * によって公表されている GNU General Public License の Version 2 に記 11 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 12 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 13 * 利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次の条件を満たすこと. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 38 27 * 39 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 40 ã 41 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 42 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 43 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 28 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 29 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 30 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 31 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 44 32 * 45 33 * @(#) $Id$ … … 47 35 48 36 /* 49 * IPsec ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã37 * IPsec で使用するカーネルオブジェクト 50 38 */ 51 39 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 132 120 133 121 /* 134 * è¿é£ãã£ãã·ã¥122 * 近隣キャッシュ 135 123 */ 136 124 … … 138 126 139 127 /* 140 * nd6_free -- ã«ã¼ã¿ãåé¤ããã128 * nd6_free -- ルータを削除する。 141 129 */ 142 130 … … 150 138 ln->state = ND6_LLINFO_INCOMPLETE; 151 139 152 /* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/140 /* プレフィックス・リストからルータを削除する。*/ 153 141 nd6_defrtrlist_del(dr); 154 142 } … … 156 144 157 145 /* 158 * nd6_timer -- è¿é£æ¢ç´¢ç®¡çã¿ã¤ãã¼146 * nd6_timer -- 近隣探索管理タイマー 159 147 */ 160 148 … … 167 155 int_t ix; 168 156 169 /* è¿é£ãã£ãã·ã¥ã®å¦ç*/157 /* 近隣キャッシュの処理 */ 170 158 syscall(wai_sem(SEM_ND6_CACHE)); 171 159 syscall(get_tim(&now)); … … 177 165 switch (ln->state) { 178 166 179 case ND6_LLINFO_INCOMPLETE: /* æªè§£æ±º*/167 case ND6_LLINFO_INCOMPLETE: /* 未解決 */ 180 168 if (ln->asked < ND6_MAX_MCAST_QUERY) { 181 169 /* 182 * ãã«ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç170 * マルチキャストアドレス要請の再送回数以下の場合の処理 183 171 */ 184 172 ln->asked ++; 185 ln->expire = now + ND6_RETRANS_TIME; /* è¿é£æ¢ç´¢éä¿¡éé*/173 ln->expire = now + ND6_RETRANS_TIME; /* 近隣探索送信間隔 */ 186 174 nd6_ns_output(ifp, &in6_addr_unspecified, &ln->addr, ln, false); 187 175 } … … 189 177 if (ln->hold != NULL) { 190 178 /* 191 * æçµçã«ã¯ãä¿çããã¦ãããããã¯ã¼ã¯ãããã¡ã 192 * ããã°ãICMP6 ERROR ãèªåèªèº«ã«è¿ãããã¨ã 193 * ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã 194 * ããããç¾å¨ãicmp6_error ã®å®è£ 195 ãä¸å®å 196 ¨ã®ããã 197 * ãããã¯ã¼ã¯ãããã¡ã®éæ¾ã®ã¿è¡ãã 179 * 最終的には、保留されているネットワークバッファが 180 * あれば、ICMP6 ERROR を自分自身に返したあと、 181 * ネットワークバッファを開放する。 182 * しかし、現在、icmp6_error の実装が不完全のため、 183 * ネットワークバッファの開放のみ行う。 198 184 */ 199 #if 0 /* ä¿ç*/185 #if 0 /* 保留 */ 200 186 icmp6_error(ln->hold, ICMP6_DST_UNREACH, 201 187 ICMP6_DST_UNREACH_ADDR, 0); … … 209 195 break; 210 196 211 case ND6_LLINFO_REACHABLE: /* å°éå¯è½*/197 case ND6_LLINFO_REACHABLE: /* 到達可能 */ 212 198 if (ln->expire) { 213 199 ln->expire = now + ND6_GCOLLECTION_TIME; … … 216 202 break; 217 203 218 case ND6_LLINFO_STALE: /* å°éå¯è½æ§ã¯æªç¢ºèª*/204 case ND6_LLINFO_STALE: /* 到達可能性は未確認 */ 219 205 if (ln->expire) { 220 206 if (ln->hold != NULL) { … … 227 213 break; 228 214 229 case ND6_LLINFO_DELAY: /* å°éå¯è½æ§ã®ç¢ºèªå¾ 230 æ© */ 215 case ND6_LLINFO_DELAY: /* 到達可能性の確認待機 */ 231 216 ln->asked = 1; 232 ln->expire = now + ND6_RETRANS_TIME; /* è¿é£æ¢ç´¢éä¿¡éé*/217 ln->expire = now + ND6_RETRANS_TIME; /* 近隣探索送信間隔 */ 233 218 ln->state = ND6_LLINFO_PROBE; 234 219 nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false); 235 220 break; 236 221 237 case ND6_LLINFO_PROBE: /* å°éå¯è½æ§ã確èªä¸*/222 case ND6_LLINFO_PROBE: /* 到達可能性を確認中 */ 238 223 if (ln->asked < ND6_MAX_UCAST_QUERY) { 239 224 /* 240 * ã¦ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç225 * ユニキャストアドレス要請の再送回数以下の場合の処理 241 226 */ 242 227 ln->asked ++; 243 ln->expire += ND6_RETRANS_TIME; /* è¿é£æ¢ç´¢éä¿¡éé*/228 ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */ 244 229 nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false); 245 230 } … … 259 244 syscall(sig_sem(SEM_ND6_CACHE)); 260 245 261 /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®å¦ç*/246 /* ディフォルトルータ・リストの処理 */ 262 247 nd6_defrtrlist_timer(); 263 248 264 /* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®å¦ç*/249 /* プレフィックス・リストの処理 */ 265 250 nd6_prelist_timer(); 266 251 267 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®å¦ç*/252 /* ネットワークインタフェースのアドレスの処理 */ 268 253 in6_ifaddr_timer(ifp); 269 254 270 255 /* 271 * å°éå¯è½ç¶æ 272 ã®æå¹æéã®æ´æ° 256 * 到達可能状態の有効時間の更新 273 257 */ 274 258 if ((int32_t)(nd6_recalc_reachtm_interval - now) < 0) { … … 281 265 282 266 /* 283 * nd6_get_cache -- è¿é£ãã£ãã·ã¥ãç²å¾ããã267 * nd6_get_cache -- 近隣キャッシュを獲得する。 284 268 */ 285 269 … … 291 275 292 276 /* 293 * nd6_ifattach -- è¿é£æ¢ç´¢ã®åæè¨å®ãè¡ãã277 * nd6_ifattach -- 近隣探索の初期設定を行う。 294 278 */ 295 279 … … 300 284 301 285 /* 302 * nd6_output_hold -- è¿é£æ¢ç´¢ãã£ãã·ã¥ã«ä¿çããã¦ãã 303 * ã¢ãã¬ã¹è§£æ±ºå¾ 304 ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã 305 * 306 * 注æ: ã»ããã© SEM_ND6_CACHE ã«ããããã¯ç¶æ 307 ã§å¼åºããã¨ã 286 * nd6_output_hold -- 近隣探索キャッシュに保留されている 287 * アドレス解決待ちのデータグラムがあれば送信する。 288 * 289 * 注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。 308 290 */ 309 291 … … 313 295 SYSTIM now; 314 296 315 /* ã¢ãã¬ã¹è§£æ±ºå¾ 316 ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/ 297 /* アドレス解決待ちのデータグラムがあれば送信する。*/ 317 298 if (ln->hold) { 318 299 319 /* ã¿ã¤ã ã¢ã¦ãã®å¦ç*/300 /* タイムアウトの処理 */ 320 301 if (ln->tmout != TMO_FEVR) { 321 302 322 303 /* 323 * ã¿ã¤ã ã¢ã¦ãã®æå®ãæ°¸ä¹ 324 ã§ãªããæéãéãã¦ããã°ã 325 * åºåããªãã§çµäºããã 304 * タイムアウトの指定が永久でなく、時間を過ぎていれば、 305 * 出力しないで終了する。 326 306 */ 327 307 syscall(get_tim(&now)); … … 341 321 342 322 /* 343 * nd6_lookup -- è¿é£æ¢ç´¢ãã£ãã·ã¥ãæ¢ç´¢ããã 344 * 345 * 注æ: ã»ããã© SEM_ND6_CACHE ã«ããããã¯ç¶æ 346 ã§å¼åºããã¨ã 323 * nd6_lookup -- 近隣探索キャッシュを探索する。 324 * 325 * 注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。 347 326 * 348 327 */ … … 356 335 for (ix = NUM_ND6_CACHE_ENTRY; ix -- > 0; ) { 357 336 if (nd6_cache[ix].state == 0) { 358 /* æªä½¿ç¨ã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/337 /* 未使用エントリのインデックスを記録する。*/ 359 338 if (fix == -1) 360 339 fix = ix; … … 364 343 } 365 344 else if ((int32_t)(nd6_cache[ix].expire - min) < 0) { /* nd6_cache[ix].expire < min */ 366 /* æå¹æéãæçã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/345 /* 有効期限が最短エントリのインデックスを記録する。*/ 367 346 min = nd6_cache[ix].expire; 368 347 mix = ix; … … 387 366 388 367 /* 389 * nd6_cache_lladdr -- è¿é£æ¢ç´¢ãã£ãã·ã¥ã«ç»é²ããã368 * nd6_cache_lladdr -- 近隣探索キャッシュに登録する。 390 369 */ 391 370 … … 399 378 int_t newstate = ND6_LLINFO_INCOMPLETE; 400 379 401 /* ã¢ãã¬ã¹ãç¡æå®ãªãä½ãããªãã*/380 /* アドレスが無指定なら何もしない。*/ 402 381 if (IN6_IS_ADDR_UNSPECIFIED(from)) 403 382 return NULL; 404 383 405 /* è¿é£ãã£ãã·ã¥ã«ç»é²ããã*/384 /* 近隣キャッシュに登録する。*/ 406 385 syscall(wai_sem(SEM_ND6_CACHE)); 407 386 if ((ln = nd6_lookup(from, false)) == NULL) { … … 421 400 422 401 /* 423 * ç¶æ 424 é·ç§»è¡¨ 402 * 状態遷移表 425 403 * 426 404 * nd_na_flags 427 * newnetry olladdr lladdr llchange å¦ç (L: lladdr ãç»é²ãã)405 * newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する) 428 406 * 429 407 * F F N - (1) … … 436 414 */ 437 415 438 /* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/416 /* データリンク層のアドレスが通知されていれば更新する。*/ 439 417 if (lladdr != NULL) { 440 418 ln->ifaddr = *(T_IF_ADDR *)lladdr; … … 458 436 } 459 437 460 /* è¿é£ãã£ãã·ã¥ã¨ã³ããªãæ´æ°ããã*/438 /* 近隣キャッシュエントリを更新する。*/ 461 439 if (doupdate) { 462 440 ln->state = newstate; … … 466 444 ln->expire = now + ND6_GCOLLECTION_TIME; 467 445 468 /* ã¢ãã¬ã¹è§£æ±ºå¾ 469 ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/ 446 /* アドレス解決待ちのデータグラムがあれば送信する。*/ 470 447 nd6_output_hold(ifp, ln); 471 448 } … … 476 453 477 454 478 /* ã«ã¼ã¿éç¥ã®å¦ç*/455 /* ルータ通知の処理 */ 479 456 switch (type) { 480 457 … … 506 483 507 484 /* 508 * nd6_is_addr_neighbor -- æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããããã§ãã¯ããã485 * nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。 509 486 */ 510 487 … … 525 502 526 503 /* 527 * nd6_output -- è¿é£æ¢ç´¢ã®åºåé¢æ° 528 * 529 * 注æ: ã»ããã© SEM_ND6_CACHE ã«ããããã¯ç¶æ 530 ã§å¼åºããã¨ã 504 * nd6_output -- 近隣探索の出力関数 505 * 506 * 注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。 531 507 */ 532 508 … … 538 514 539 515 /* 540 * ãã¦å 541 ã¢ãã¬ã¹ããã«ããã£ã¹ãããè¿é£ãã£ãã·ã¥ã 542 * ä¸è¦ã®å ´åã¯ç´ã¡ã«éä¿¡ããã 516 * あて先アドレスがマルチキャストか、近隣キャッシュが 517 * 不要の場合は直ちに送信する。 543 518 */ 544 519 if (!(IN6_IS_ADDR_MULTICAST(dst) || !IF_IN6_NEED_CACHE(ifp))) { 545 520 if (ln == NULL) { 546 /* è¿é£ãã£ãã·ã¥ãæªå®ç¾©ã®å ´å*/521 /* 近隣キャッシュが未定義の場合 */ 547 522 if (nd6_is_addr_neighbor(ifp, dst)) { 548 523 /* 549 * æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããæã¯ã550 * è¿é£ãã£ãã·ã¥ãæ¢ç´¢ããæªå®ç¾©ã®å ´åã¯ç»é²ããã524 * 指定されたアドレスのノードが同一リンクにある時は、 525 * 近隣キャッシュを探索し、未定義の場合は登録する。 551 526 */ 552 527 ln = nd6_lookup(dst, true); … … 559 534 560 535 /* 561 * è¿é£ãã£ãã·ã¥ã®ç¶æ 562 ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãåãã£ã¦ãã¦ãã 563 * å°éå¯è½æ§ã確èªããã¦ããªãã¨ãã¯ãå°éä¸è½éç¥ãéå§ããã 536 * 近隣キャッシュの状態が、データリンク層のアドレスが分かっていても、 537 * 到達可能性が確認されていないときは、到達不能通知を開始する。 564 538 */ 565 539 if (ln->state == ND6_LLINFO_STALE) { … … 571 545 572 546 /* 573 * è¿é£ãã£ãã·ã¥ã®ç¶æ 574 ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´å㯠575 * è¿é£æ¢ç´¢ãè¡ãã 547 * 近隣キャッシュの状態が、データリンク層のアドレス未解決の場合は 548 * 近隣探索を行う。 576 549 */ 577 550 if (ln->state <= ND6_LLINFO_INCOMPLETE) { 578 551 579 /* ã¿ã¤ã ã¢ã¦ãã®æå®ããã¼ãªã³ã°ãªãã¿ã¤ã ã¢ã¦ãã§çµäºããã*/552 /* タイムアウトの指定がポーリングならタイムアウトで終了する。*/ 580 553 if (tmout == TMO_POL) { 581 554 error = E_TMOUT; … … 586 559 ln->state = ND6_LLINFO_INCOMPLETE; 587 560 588 /* ãã§ã«ãæªè§£æ±ºã®ãããã¯ã¼ã¯ãããã¡ãããã°ãéæ¾ããã*/561 /* すでに、未解決のネットワークバッファがあれば、開放する。*/ 589 562 if (ln->hold != NULL) { 590 563 syscall(rel_net_buf(ln->hold)); … … 592 565 593 566 /* 594 * éä¿¡ããã³ãã£ã³ã°ããã595 * IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨å®ããã¦ããã¨ãã¯ã596 * éä¿¡ããã³ãã£ã³ã°ããªãã567 * 送信をペンディングする。 568 * IF でネットワークバッファを開放しないフラグが設定されているときは、 569 * 送信をペンディングしない。 597 570 */ 598 571 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 599 572 ln->hold = output; 600 573 601 /* ã¿ã¤ã ã¢ã¦ãã®è¨å®*/574 /* タイムアウトの設定 */ 602 575 if (tmout == TMO_FEVR) 603 576 ln->tmout = tmout; … … 618 591 if ((int32_t)(ln->expire - now) < 0) { 619 592 /* ln->expire < now */ 620 ln->expire += ND6_RETRANS_TIME; /* è¿é£æ¢ç´¢éä¿¡éé*/593 ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */ 621 594 ln->asked ++; 622 595 nd6_ns_output(ifp, &in6_addr_unspecified, dst, ln, false); … … 629 602 630 603 /* 631 * éè¤ãæ¤åºãããã¤ã³ã¿ãã§ã¼ã¹ã«ã¯åºåããªãã604 * 重複が検出されたインタフェースには出力しない。 632 605 */ 633 606 if ((ifp->flags & ND6_IFF_IFDISABLED) != 0) { … … 645 618 646 619 /* 647 * nd6_storelladdr -- åºåãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿ãã620 * nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。 648 621 */ 649 622 … … 662 635 663 636 /* 664 * nd6_option -- è¿é£æ¢ç´¢ãªãã·ã§ã³ã®å¦ç 665 * 666 * 注æ: ãªãã·ã§ã³ãªãã»ããé 667 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã 637 * nd6_option -- 近隣探索オプションの処理 638 * 639 * 注意: オプションオフセット配列には、オフセット + 8 が設定されている。 668 640 */ 669 641 … … 673 645 T_ND_OPT_HDR *opth; 674 646 ER error = E_OK; 675 int_t pi_count = 0; /* ãã¬ãã£ãã¯ã¹æ 676 å ±ã®åæ° */ 647 int_t pi_count = 0; /* プレフィックス情報の個数 */ 677 648 678 649 opth = (T_ND_OPT_HDR *)nh; … … 681 652 while (error == E_OK && ((uint8_t *)opth - (uint8_t *)nh) < (256 - 8) && len > 0) { 682 653 683 /* ãªãã·ã§ã³é·ã 0 ã®æã¯ãä¸æ£ãªãªãã·ã§ã³ã¨ãã¦å¦çããã*/654 /* オプション長が 0 の時は、不正なオプションとして処理する。*/ 684 655 if (opth->len == 0) { 685 656 error = E_PAR; … … 687 658 } 688 659 689 /* ãªãã·ã§ã³ã®ã¿ã¤ãã«ããåå²ããã*/660 /* オプションのタイプにより分岐する。*/ 690 661 switch (opth->type) { 691 case ND_OPT_SOURCE_LINKADDR: /* éä¿¡å 692 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 693 case ND_OPT_TARGET_LINKADDR: /* 対象ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 694 case ND_OPT_REDIRECTED_HEADER: /* ãªãã¤ã¬ã¯ãã»ããã */ 662 case ND_OPT_SOURCE_LINKADDR: /* 送信先ネットワークインタフェースのアドレス */ 663 case ND_OPT_TARGET_LINKADDR: /* 対象ネットワークインタフェースのアドレス */ 664 case ND_OPT_REDIRECTED_HEADER: /* リダイレクト・ヘッダ */ 695 665 case ND_OPT_MTU: /* MTU */ 696 666 if (opt[ND_OPT_OFF_ARRAY_IX(opth->type)]) { 697 /* ãã¬ãã£ãã¯ã¹æ 698 å ±ä»¥å¤ã®åããªãã·ã§ã³ãè¤æ°æå®ããã¦ããã*/ 667 /* プレフィックス情報以外の同じオプションが複数指定されている。*/ 699 668 error = E_PAR; 700 669 } … … 703 672 } 704 673 break; 705 case ND_OPT_PREFIX_INFORMATION: /* ãã¬ãã£ãã¯ã¹æ 706 å ± */ 674 case ND_OPT_PREFIX_INFORMATION: /* プレフィックス情報 */ 707 675 if (!opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)]) { 708 676 /* 709 * ãã¬ãã£ãã¯ã¹æ 710 å ±ã¯æåã«ç¾ãããªãã»ããã®ã¿è¨é²ããã 677 * プレフィックス情報は最初に現れたオフセットのみ記録する。 711 678 */ 712 679 opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8; … … 716 683 default: 717 684 /* 718 * å°æ¥å®ç¾©ããããããã³ã«ã¸ã®æ¡å¼µã«å¯¾å¿ããããã719 * èªèã§ããªããªãã·ã§ã³ã¯åã«ç¡è¦ããå¦çãç¶è¡ããã685 * 将来定義されるプロトコルへの拡張に対応するため、 686 * 認識できないオプションは単に無視し、処理を続行する。 720 687 */ 721 688 break; 722 689 } 723 len -= opth->len << 3; /* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã*/690 len -= opth->len << 3; /* オプション長の単位は 8 バイト */ 724 691 opth = (T_ND_OPT_HDR *)((uint8_t *)opth + (opth->len << 3)); 725 692 } -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 82 70 83 71 /* 84 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ï¼T_IFNETï¼ã®ãã©ã°85 */ 86 87 #define ND6_IFF_IFDISABLED UINT_C(0x01) /* ã¤ã³ã¿ãã§ã¼ã¹ãç¡å¹ã«ããã*/88 89 /* 90 * è¿é£ãã£ãã·ã¥72 * ネットワークインタフェース構造体(T_IFNET)のフラグ 73 */ 74 75 #define ND6_IFF_IFDISABLED UINT_C(0x01) /* インタフェースを無効にする。*/ 76 77 /* 78 * 近隣キャッシュ 91 79 */ 92 80 … … 95 83 T_NET_BUF *hold; 96 84 TMO tmout; 97 SYSTIM expire; /* [ms] æå¹æéãåããæå»*/85 SYSTIM expire; /* [ms] 有効時間が切れる時刻 */ 98 86 T_IF_ADDR ifaddr; 99 87 uint8_t state; … … 102 90 } T_LLINFO_ND6; 103 91 104 /* è¿é£ãã£ãã·ã¥ã®ç¶æ 105 */ 106 107 #define ND6_LLINFO_FREE 0 /* æªä½¿ç¨ */ 108 #define ND6_LLINFO_NO_STATE 1 /* ç¶æ 109 æªå®ç¾© */ 110 #define ND6_LLINFO_INCOMPLETE 2 /* æªè§£æ±º */ 111 #define ND6_LLINFO_REACHABLE 3 /* å°éå¯è½ */ 112 #define ND6_LLINFO_STALE 4 /* å°éå¯è½æ§ã¯æªç¢ºèª */ 113 #define ND6_LLINFO_DELAY 5 /* å°éå¯è½æ§ã®ç¢ºèªå¾ 114 æ© */ 115 #define ND6_LLINFO_PROBE 6 /* å°éå¯è½æ§ã確èªä¸ */ 92 /* 近隣キャッシュの状態 */ 93 94 #define ND6_LLINFO_FREE 0 /* 未使用 */ 95 #define ND6_LLINFO_NO_STATE 1 /* 状態未定義 */ 96 #define ND6_LLINFO_INCOMPLETE 2 /* 未解決 */ 97 #define ND6_LLINFO_REACHABLE 3 /* 到達可能 */ 98 #define ND6_LLINFO_STALE 4 /* 到達可能性は未確認 */ 99 #define ND6_LLINFO_DELAY 5 /* 到達可能性の確認待機 */ 100 #define ND6_LLINFO_PROBE 6 /* 到達可能性を確認中 */ 116 101 117 102 #define ND6_IS_LLINFO_PROBREACH(n) ((n)->state > ND6_LLINFO_INCOMPLETE) 118 103 119 /* è¿é£ãã£ãã·ã¥ã®å¶å¾¡ããã */ 120 121 #define ND6_LLIF_ROUTER UINT_C(0x80) /* ã«ã¼ã¿ */ 122 #define ND6_LLIF_ASKED UINT_C(0x40) /* éç¥æ¸ã¿ */ 123 #define ND6_LLIF_STATE_MASK UINT_C(0x07) /* ç¶æ 124 ãã¹ã¯ */ 125 126 /* è¿é£æ¢ç´¢ãã£ãã·ã¥ãæå¹æéã®å®ç¾© */ 104 /* 近隣キャッシュの制御ビット */ 105 106 #define ND6_LLIF_ROUTER UINT_C(0x80) /* ルータ */ 107 #define ND6_LLIF_ASKED UINT_C(0x40) /* 通知済み */ 108 #define ND6_LLIF_STATE_MASK UINT_C(0x07) /* 状態マスク */ 109 110 /* 近隣探索キャッシュ、有効時間の定義 */ 127 111 128 112 #define ND6_SLOW_TMO ((60*60*1000)/NET_TIMER_HZ) 129 /* 1 [ æé] */130 /* è¿é£æ¢ç´¢ãã£ãã·ã¥æ´æ°ã¿ã¤ã ã¢ã¦ã*/131 132 #define ND6_MAX_DAD_TRY 15 /* éè¤ã¢ãã¬ã¹æ¤åºã®åéåæ°*/133 #define ND6_MAX_MCAST_QUERY 3 /* ãã«ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°*/134 #define ND6_MAX_UCAST_QUERY 3 /* ã¦ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°*/113 /* 1 [時間] */ 114 /* 近隣探索キャッシュ更新タイムアウト */ 115 116 #define ND6_MAX_DAD_TRY 15 /* 重複アドレス検出の再送回数 */ 117 #define ND6_MAX_MCAST_QUERY 3 /* マルチキャストアドレス要請の再送回数 */ 118 #define ND6_MAX_UCAST_QUERY 3 /* ユニキャストアドレス要請の再送回数 */ 135 119 136 120 #define ND6_INFINITE_LIFETIME 0xffffffff 137 121 138 122 #define ND6_GCOLLECTION_TIME (60*60*24*SYSTIM_HZ) 139 /* ã´ãæ¾ãå¨æã1 æ¥ */ 140 #define ND6_DELAY_TIME (5*SYSTIM_HZ) /* 確èªå¾ 141 æ©é 142 延 */ 143 #define ND6_FIRST_DAD_DELAY_TIME (1*SYSTIM_HZ) /* æåã®éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é 144 延 */ 123 /* ゴミ拾い周期、1 日 */ 124 #define ND6_DELAY_TIME (5*SYSTIM_HZ) /* 確認待機遅延 */ 125 #define ND6_FIRST_DAD_DELAY_TIME (1*SYSTIM_HZ) /* 最初の重複アドレス検出送信遅延 */ 145 126 #define ND6_DAD_DELAY_TIME (5*SYSTIM_HZ/10) 146 /* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é 147 延 */ 148 149 /* è¿é£æ¢ç´¢ç¨ã¿ã¤ãã®è¨å® */ 150 151 #define ND6_TIMER_TMO ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] éé */ 152 153 /* 154 * å°éå¯è½ç¶æ 155 ã®æå¹æé 156 */ 157 158 #define ND6_DEF_REACHABLE_TIME (30*SYSTIM_HZ) /* å°éå¯è½ç¶æ 159 ã®æå¹æéã®æ¢å®å¤ */ 127 /* 重複アドレス検出送信遅延 */ 128 129 /* 近隣探索用タイマの設定 */ 130 131 #define ND6_TIMER_TMO ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] 間隔 */ 132 133 /* 134 * 到達可能状態の有効時間 135 */ 136 137 #define ND6_DEF_REACHABLE_TIME (30*SYSTIM_HZ) /* 到達可能状態の有効時間の既定値 */ 160 138 #define ND6_MAX_REACHABLE_TIME (60*60*SYSTIM_HZ) 161 /* å°éå¯è½ç¶æ 162 ã®æå¹æéã®æ¢å®å¤ */ 139 /* 到達可能状態の有効時間の既定値 */ 163 140 #define ND6_RECALC_REACHTM_INTERVAL (60*60*2*SYSTIM_HZ) 164 /* å°éå¯è½ç¶æ 165 ã®æå¹æéåè¨ç®éé */ 166 167 #define ND6_MIN_REACHTM_RAND_FACTOR 512 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 0.5 */ 168 169 #if 1 /* ã¿ã¤ãã¼ã®èµ·åééãèæ 170 ®ããè¦å®ããçãè¨å® */ 171 #define ND6_MAX_REACHTM_RAND_FACTOR 1484 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 1.45 */ 141 /* 到達可能状態の有効時間再計算間隔 */ 142 143 #define ND6_MIN_REACHTM_RAND_FACTOR 512 /* 最小乱数補正値、1,024 * 0.5 */ 144 145 #if 1 /* タイマーの起動間隔を考慮し、規定より短く設定 */ 146 #define ND6_MAX_REACHTM_RAND_FACTOR 1484 /* 最小乱数補正値、1,024 * 1.45 */ 172 147 #else 173 #define ND6_MAX_REACHTM_RAND_FACTOR 1536 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 1.5 */148 #define ND6_MAX_REACHTM_RAND_FACTOR 1536 /* 最小乱数補正値、1,024 * 1.5 */ 174 149 #endif 175 150 176 /* å°éå¯è½ç¶æ 177 ã®æå¹æéã®è¨ç®ãã¯ã */ 151 /* 到達可能状態の有効時間の計算マクロ */ 178 152 179 153 #define ND6_CALC_REACH_TIME(b) \ … … 182 156 183 157 /* 184 * è¿é£æ¢ç´¢ã®éä¿¡éé158 * 近隣探索の送信間隔 185 159 */ 186 160 … … 188 162 189 163 /* 190 * ã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ãããå¤164 * ルータ通知により変更されることがある値 191 165 */ 192 166 193 167 #if NUM_ND6_DEF_RTR_ENTRY > 0 194 168 195 /* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤*/169 /* ルータ通知を受信する場合は、通知された値 */ 196 170 197 171 #define ND6_REACHABLE_TIME nd6_reachable_time … … 200 174 #else /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */ 201 175 202 /* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤*/176 /* ルータ通知を受信しない場合の値は既定値 */ 203 177 204 178 #define ND6_REACHABLE_TIME ND6_DEF_REACHABLE_TIME … … 208 182 209 183 /* 210 * ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã184 * ディフォルトルータ・リスト 211 185 */ 212 186 213 187 typedef struct t_def_router { 214 188 T_IN6_ADDR addr; 215 SYSTIM expire; /* [ms] æå¹æéãåããæå»*/216 uint32_t lifetime; /* [ms] æå¹æé*/217 uint16_t plistmap; /* ãã¬ãã£ãã¯ã¹ããã*/218 uint8_t flags; /* ã«ã¼ã¿éç¥ã®ãã©ã°*/189 SYSTIM expire; /* [ms] 有効時間が切れる時刻 */ 190 uint32_t lifetime; /* [ms] 有効時間 */ 191 uint16_t plistmap; /* プレフィックスマップ */ 192 uint8_t flags; /* ルータ通知のフラグ */ 219 193 uint8_t state; 220 194 } T_DEF_ROUTER; 221 195 222 /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç¶æ 223 */ 224 225 #define ND6_DEF_RTR_BUSY 0xff /* 使ç¨ä¸ */ 226 227 /* ãã¬ãã£ãã¯ã¹ã®ã¤ã³ããã¯ã¹ */ 196 /* ディフォルトルータ・リストの状態 */ 197 198 #define ND6_DEF_RTR_BUSY 0xff /* 使用中 */ 199 200 /* プレフィックスのインデックス */ 228 201 229 202 #define ND6_PREFIX_IX_INVALID 0xff 230 203 231 204 /* 232 * ãã¬ãã£ãã¯ã¹ã»ãªã¹ã205 * プレフィックス・リスト 233 206 */ 234 207 235 208 typedef struct t_nd6_prefix { 236 T_IN6_ADDR prefix; /* ãã¬ãã£ãã¯ã¹*/237 uint32_t expire; /* [s] æå¹æéãåããæå»*/238 uint32_t preferred; /* [s] æ¨å¥¨æå¹æéãåããæå»*/239 uint32_t vltime; /* [s] æå¹æé*/240 uint32_t pltime; /* [s] æ¨å¥¨æå¹æé*/241 uint16_t routermap; /* ã«ã¼ã¿ããã*/242 uint8_t flags; /* ãã©ã°*/243 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é·*/209 T_IN6_ADDR prefix; /* プレフィックス */ 210 uint32_t expire; /* [s] 有効時間が切れる時刻 */ 211 uint32_t preferred; /* [s] 推奨有効時間が切れる時刻 */ 212 uint32_t vltime; /* [s] 有効時間 */ 213 uint32_t pltime; /* [s] 推奨有効時間 */ 214 uint16_t routermap; /* ルータマップ */ 215 uint8_t flags; /* フラグ */ 216 uint8_t prefix_len; /* プレフィックス長 */ 244 217 } T_ND6_PREFIX; 245 218 246 /* ãã©ã° */ 247 248 #define ND6_PREFIX_FLAG_ONLINK UINT_C(0x80) /* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹ */ 249 #define ND6_PREFIX_FLAG_AUTO UINT_C(0x40) /* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®*/ 250 251 #define ND6_PREFIX_STATE_BUSY UINT_C(0x01) /* 使ç¨ä¸ */ 252 #define ND6_PREFIX_STATE_ONLINK UINT_C(0x02) /* ãªã³ãªã³ã¯ç¶æ 253 */ 254 #define ND6_PREFIX_STATE_DETACHED UINT_C(0x04) /* é使ç¨ç¶æ 255 */ 256 257 /* 258 * å¤æ° 219 /* フラグ */ 220 221 #define ND6_PREFIX_FLAG_ONLINK UINT_C(0x80) /* オンリンクプレフィックス */ 222 #define ND6_PREFIX_FLAG_AUTO UINT_C(0x40) /* ステートレス・アドレス自動設定*/ 223 224 #define ND6_PREFIX_STATE_BUSY UINT_C(0x01) /* 使用中 */ 225 #define ND6_PREFIX_STATE_ONLINK UINT_C(0x02) /* オンリンク状態 */ 226 #define ND6_PREFIX_STATE_DETACHED UINT_C(0x04) /* 非使用状態 */ 227 228 /* 229 * 変数 259 230 */ 260 231 … … 266 237 267 238 /* 268 * é¢æ°239 * 関数 269 240 */ 270 241 -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 126 114 127 115 /* 128 * å±æé¢æ°116 * 局所関数 129 117 */ 130 118 … … 136 124 137 125 /* 138 * nd6_dad_duplicated -- éè¤ã¢ãã¬ã¹ãæ¤åºããæã®å¦ç126 * nd6_dad_duplicated -- 重複アドレスを検出した時の処理 139 127 */ 140 128 … … 149 137 ifa->flags |= IN6_IFF_DUPLICATED; 150 138 151 /* ã¿ã¤ãã¼ãåæ¢ããã*/139 /* タイマーを停止する。*/ 152 140 untimeout((callout_func)nd6_dad_timer, ifa); 153 141 154 142 /* 155 * ãã IPv6 ã¢ãã¬ã¹ããã¦ãã¼ã¯ã«å²ãå½ã¦ãã156 * ï¼ã¤ã¼ãµãããç¨ã® EUI-64ï¼ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ããã¼ã¹ã¨ãã157 * ã¤ã³ã¿ãã§ã¼ã¹ ID ã§çæãããã®ã§ããã°ã158 * ãã®ã¤ã³ã¿ãã§ã¼ã¹ã§ã® IPv6 ã®åä½ã¯ç¡å¹ã«ãã¹ãã§ãã159 * ï¼RFC2462bis-03 ã»ã¯ã·ã§ã³ 5.4.5ï¼ã143 * もし IPv6 アドレスが、ユニークに割り当てらた 144 * (イーサネット用の EUI-64)ハードウェアアドレスをベースとした 145 * インタフェース ID で生成されたのであれば、 146 * このインタフェースでの IPv6 の動作は無効にすべきである 147 * (RFC2462bis-03 セクション 5.4.5)。 160 148 */ 161 149 if (IN6_IS_ADDR_LINKLOCAL(&ifa->addr)) … … 165 153 166 154 /* 167 * nd6_dad_ns_output -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ãåºåããã155 * nd6_dad_ns_output -- 重複アドレス検出 (DAD) 要請を出力する。 168 156 */ 169 157 … … 178 166 179 167 /* 180 * nd6_dad_ns_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«å 181 ¥å 168 * nd6_dad_ns_input -- 重複アドレス検出 (DAD) 要請入力 182 169 */ 183 170 … … 188 175 189 176 /* 190 * ã¾ã ãéè¤ã¢ãã¬ã¹æ¤åºè¦è«ãåºåãã¦ããªãå ´å177 * まだ、重複アドレス検出要請を出力していない場合 191 178 */ 192 179 if (ifa->ns_ocount == 0) … … 197 184 198 185 /* 199 * nd6_dad_na_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥å 200 ¥å 186 * nd6_dad_na_input -- 重複アドレス検出 (DAD) 通知入力 201 187 */ 202 188 … … 210 196 211 197 /* 212 * nd6_dad_timer -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ã¿ã¤ãã¼198 * nd6_dad_timer -- 重複アドレス検出 (DAD) タイマー 213 199 */ 214 200 … … 231 217 nd6_dad_ns_output(ifp, ifa); 232 218 233 /* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨å®ããã*/219 /* タイムアウトを近隣探索の送信間隔に設定する。*/ 234 220 timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ); 235 221 } … … 243 229 244 230 /* 245 * nd6_ns_input -- è¿é£è¦è«ã®å 246 ¥åå¦çã 231 * nd6_ns_input -- 近隣要請の入力処理。 247 232 */ 248 233 … … 266 251 267 252 /* 268 * ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã269 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤270 * ã»ãããé·ãçã253 * ヘッダのチェック、以下の場合は破棄する。 254 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 255 * ・ヘッダ長が短い 271 256 */ 272 257 if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_SOLICIT_HDR_SIZE) … … 277 262 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) { 278 263 /* 279 * å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéè¤ã¢ãã¬ã¹æ¤åº 280 * ãã¦å 281 ã¢ãã¬ã¹ã¯ãè¦è«ãã«ããã£ã¹ãã§ãªããã°ãªããªãã 264 * 始点アドレスが無指定なら、重複アドレス検出 265 * あて先アドレスは、要請マルチキャストでなければならない。 282 266 */ 283 267 if (!IN6_IS_ADDR_NS_MULTICAST(&ip6h->dst)) … … 285 269 } 286 270 287 /* ç®çã¢ãã¬ã¹ããã«ããã£ã¹ããªãã¨ã©ã¼*/271 /* 目的アドレスがマルチキャストならエラー */ 288 272 if (IN6_IS_ADDR_MULTICAST(&nsh->target)) 289 273 goto err_ret; 290 274 291 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/275 /* 近隣探索オプションのオフセットを記録する。*/ 292 276 if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_SOLICIT_HDR_SIZE), 293 277 input->len - (off + NEIGHBOR_SOLICIT_HDR_SIZE)) != E_OK) 294 278 goto err_ret; 295 279 296 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ (å§ç¹ãªã³ã¯ã¢ãã¬ã¹) */280 /* 近隣探索オプション (始点リンクアドレス) */ 297 281 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) { 298 282 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_SOLICIT_HDR_SIZE) + 299 283 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8); 300 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 301 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 284 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 302 285 lladdr = (uint8_t *)(opth + 1); 303 286 lladdr_len = (opth->len << 3); … … 307 290 goto err_ret; 308 291 309 /* å®å 310 ã¢ãã¬ã¹ããã«ããã£ã¹ããªãè¿é£éç¥ã«ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãä»ããã*/ 292 /* 宛先アドレスがマルチキャストなら近隣通知にデータリンク層のアドレスを付ける。*/ 311 293 if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) 312 294 tlladdr = true; … … 315 297 316 298 /* 317 * ç®çã¢ãã¬ã¹ããèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« 318 * å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ã調ã¹ãã 319 * ãªãã代çãµã¼ãã¹ã¯å®è£ 320 ãã¦ããªãã 299 * 目的アドレスが、自分のネットワークインタフェースに 300 * 割り当てられているアドレスか調べる。 301 * なお、代理サービスは実装していない。 321 302 */ 322 303 ifa = in6_lookup_ifaddr(ifp, &nsh->target); … … 325 306 goto free_ret; 326 307 327 /* æ¢ç´¢çµæã¢ãã¬ã¹ãéè¤ãã¦ããã°å¿çããªãã§çµäºããã*/308 /* 探索結果アドレスが重複していれば応答しないで終了する。*/ 328 309 if (ifa->flags & IN6_IFF_DUPLICATED) 329 310 goto err_ret; 330 311 331 312 /* 332 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼313 * ネットワークインタフェースのアドレス長が一致しなければエラー 333 314 */ 334 315 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) … … 336 317 337 318 /* 338 * å§ç¹ã¢ãã¬ã¹ãèªåã®ã¢ãã¬ã¹ã¨ä¸è´ããã°éè¤ãã¦ããã319 * 始点アドレスが自分のアドレスと一致すれば重複している。 339 320 */ 340 321 if (IN6_ARE_ADDR_EQUAL(&ifa->addr, &ip6h->src)) 341 322 goto free_ret; 342 323 343 /* éè¤æ¤åºä¸ã«ãè¿é£è¦è«ãåä¿¡ããã¨ãã®å¦ç*/324 /* 重複検出中に、近隣要請を受信したときの処理 */ 344 325 if (ifa->flags & IN6_IFF_TENTATIVE) { 345 326 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) … … 354 335 355 336 /* 356 * å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéä¿¡ç¸æã¯éè¤ã¢ãã¬ã¹æ¤åºä¸ã§ã 357 * ç´æ¥éä¿¡ãããã¨ã¯ã§ããªãã®ã§ãå 358 ¨ãã¼ããã«ããã£ã¹ã 359 * ã¢ãã¬ã¹ã«éä¿¡ããã 337 * 始点アドレスが無指定なら、送信相手は重複アドレス検出中で、 338 * 直接送信することはできないので、全ノードマルチキャスト 339 * アドレスに送信する。 360 340 */ 361 341 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) { … … 364 344 } 365 345 366 /* è¿é£ãã£ãã·ã¥ã«ç»é²ããã*/346 /* 近隣キャッシュに登録する。*/ 367 347 nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_NEIGHBOR_SOLICIT, 0); 368 348 … … 379 359 380 360 /* 381 * nd6_ns_output -- è¿é£è¦è«ãåºåããã361 * nd6_ns_output -- 近隣要請を出力する。 382 362 */ 383 363 … … 398 378 return; 399 379 400 /* è¿é£è¦è«ãã¤ãã¼ãé·ãè¨ç®ããã*/380 /* 近隣要請ペイロード長を計算する。*/ 401 381 if (!dad && IF_SOFTC_TO_IFADDR(ifp->ic)) 402 382 len = (NEIGHBOR_SOLICIT_HDR_SIZE + ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3; … … 405 385 406 386 /* 407 * è¦è«ãã«ããã£ã¹ãã»ã¢ãã¬ã¹å®ã®è¿é£æ¢ç´¢ã§ã¯ã408 * ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã409 * æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨å®ããã387 * 要請マルチキャスト・アドレス宛の近隣探索では、 388 * 他のリンクからの偽造されたデータグラムを 389 * 排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。 410 390 */ 411 391 if (IN6_IS_ADDR_UNSPECIFIED(daddr) || IN6_IS_ADDR_MULTICAST(daddr)) 412 392 ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM); 413 393 414 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨å®ããã*/394 /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/ 415 395 if (in6_get_datagram(&output, len, 0, daddr, NULL, 416 396 IPPROTO_ICMPV6, IPV6_MAXHLIM, … … 422 402 if (IN6_IS_ADDR_UNSPECIFIED(daddr)) { 423 403 424 /* å®å 425 ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ãè¦è«ãã«ããã£ã¹ãã¢ãã¬ã¹ãè¨å®ããã*/ 404 /* 宛先アドレスが無指定の場合は、要請マルチキャストアドレスを設定する。*/ 426 405 ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL; 427 406 ip6h->dst.s6_addr32[2] = IPV6_ADDR_INT32_ONE; … … 430 409 } 431 410 432 /* éä¿¡å 433 ã¢ãã¬ã¹ã®è¨å® */ 411 /* 送信元アドレスの設定 */ 434 412 if (!dad) { 435 413 436 /* éè¤ã¢ãã¬ã¹æ¤åºã§ã¯ãªãæã®éä¿¡å 437 ã¢ãã¬ã¹æ±ºå®å¦çã*/ 414 /* 重複アドレス検出ではない時の送信元アドレス決定処理。*/ 438 415 T_IN6_ADDR *saddr; 439 416 440 417 if (ln && ln->hold) { 441 418 /* 442 * éä¿¡ããã³ãã£ã³ã°ããã¦ãããã¼ã¿ã°ã©ã ã® 443 * éä¿¡å 444 ã¢ãã¬ã¹ãå©ç¨ããã 419 * 送信がペンディングされているデータグラムの 420 * 送信元アドレスを利用する。 445 421 */ 446 422 if (ln->hold->len > IF_IP6_HDR_SIZE) … … 456 432 else { 457 433 /* 458 * å®å 459 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 460 ã¢ãã¬ã¹ãã 461 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 434 * 宛先アドレスにふさわしい送信元アドレスを、 435 * ネットワークインタフェースから探索して利用する。 462 436 */ 463 437 T_IN6_IFADDR *ifa; … … 472 446 else { 473 447 474 /* éè¤ã¢ãã¬ã¹æ¤åºæã®éä¿¡å 475 ã¢ãã¬ã¹ã¯ç¡æå®ã*/ 448 /* 重複アドレス検出時の送信元アドレスは無指定。*/ 476 449 memset(&ip6h->src, 0, sizeof(T_IN6_ADDR)); 477 450 } 478 451 479 /* è¿é£è¦è«ããããè¨å®ããã*/452 /* 近隣要請ヘッダを設定する。*/ 480 453 nsh = GET_NEIGHBOR_SOLICIT_HDR(output, IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET); 481 454 nsh->hdr.type = ND_NEIGHBOR_SOLICIT; … … 486 459 if (!dad && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) { 487 460 488 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¨ãã¦ãæ¢ç´¢ç®æ¨ã® MAC ã¢ãã¬ã¹ãè¨å®ããã*/461 /* 近隣探索オプションとして、探索目標の MAC アドレスを設定する。*/ 489 462 T_ND_OPT_HDR *opth; 490 463 uint_t optlen; … … 498 471 } 499 472 500 /* ãã§ãã¯ãµã ãè¨ç®ããã*/473 /* チェックサムを計算する。*/ 501 474 nsh->hdr.sum = 0; 502 475 nsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nsh - output->buf, len); 503 476 504 /* éä¿¡ããã*/477 /* 送信する。*/ 505 478 NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS], 506 479 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 512 485 513 486 /* 514 * nd6_na_input -- è¿é£éç¥ã®å 515 ¥åå¦çã 487 * nd6_na_input -- 近隣通知の入力処理。 516 488 */ 517 489 … … 536 508 537 509 /* 538 * ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã539 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤540 * ã»ãããé·ãçã510 * ヘッダのチェック、以下の場合は破棄する。 511 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 512 * ・ヘッダ長が短い 541 513 */ 542 514 if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_ADVERT_HDR_SIZE) … … 545 517 nah = (T_NEIGHBOR_ADVERT_HDR *)(input->buf + off); 546 518 547 /* ç®çã¢ãã¬ã¹ããã«ããã£ã¹ããªãã¨ã©ã¼*/519 /* 目的アドレスがマルチキャストならエラー */ 548 520 if (IN6_IS_ADDR_MULTICAST(&nah->target)) 549 521 goto err_ret; 550 522 551 /* è¿é£è¦è«ã¸ã®å¿çã§ãå®å 552 ã¢ãã¬ã¹ããã«ããã£ã¹ããªãã¨ã©ã¼ */ 523 /* 近隣要請への応答で、宛先アドレスがマルチキャストならエラー */ 553 524 if ((nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) && 554 525 IN6_IS_ADDR_MULTICAST(&ip6h->dst)) 555 526 goto err_ret; 556 527 557 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/528 /* 近隣探索オプションのオフセットを記録する。*/ 558 529 if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_ADVERT_HDR_SIZE), 559 530 input->len - (off + NEIGHBOR_ADVERT_HDR_SIZE)) != E_OK) 560 531 goto err_ret; 561 532 562 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ (ç®çãªã³ã¯ã¢ãã¬ã¹) */533 /* 近隣探索オプション (目的リンクアドレス) */ 563 534 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) { 564 535 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_ADVERT_HDR_SIZE) + 565 536 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8); 566 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 567 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 537 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 568 538 lladdr = (uint8_t *)(opth + 1); 569 539 lladdr_len = (opth->len << 3); … … 573 543 574 544 /* 575 * ç®çã¢ãã¬ã¹ãèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ã®576 * ããããã«ä¸è´ããã¨ãã¯ãéè¤ãã¦ãããã¨ãæå³ãã¦ããã545 * 目的アドレスが自分のネットワークインタフェースに割り当てられているアドレスの 546 * いずれかに一致したときは、重複していることを意味している。 577 547 */ 578 548 if (ifa) { … … 585 555 586 556 /* 587 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼557 * ネットワークインタフェースのアドレス長が一致しなければエラー 588 558 */ 589 559 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) 590 560 goto err_ret; 591 561 592 /* è¿é£ãã£ãã·ã¥ãæ¢ç´¢ããã*/562 /* 近隣キャッシュを探索する。*/ 593 563 syscall(wai_sem(SEM_ND6_CACHE)); 594 564 if ((ln = nd6_lookup(&nah->target, false)) == NULL) 595 565 goto free_ret; 596 566 597 /* è¿é£ãã£ãã·ã¥ã®ç¶æ 598 ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´å */ 567 /* 近隣キャッシュの状態が、データリンク層のアドレス未解決の場合 */ 599 568 if (ln->state == ND6_LLINFO_INCOMPLETE) { 600 /* éç¥ããããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ã®é·ãã 0 ã®å ´å*/569 /* 通知されたデータリンク層のアドレスの長さが 0 の場合 */ 601 570 if (lladdr == NULL) 602 571 goto free_ret; … … 633 602 634 603 /* 635 * ç¶æ 636 é·ç§»è¡¨ 604 * 状態遷移表 637 605 * 638 606 * nd_na_flags_reserved 639 * OVERRIDE SOLICTED lladdr llchange å¦ç (L: lladdr ãç»é²ãã)607 * OVERRIDE SOLICTED lladdr llchange 処理 (L: lladdr を登録する) 640 608 * 641 609 * F F N - (2c) … … 653 621 */ 654 622 if ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) == 0 && (lladdr != NULL && llchange)) { /* (1) */ 655 /* ç¶æ 656 ã REACHABLE ãªã STALE ã«é·ç§»ããã*/ 623 /* 状態が REACHABLE なら STALE に遷移する。*/ 657 624 if (ln->state == ND6_LLINFO_REACHABLE) { 658 625 syscall(get_tim(&now)); … … 666 633 lladdr == NULL) { /* (2c) */ 667 634 668 /* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/635 /* データリンク層のアドレスが通知されていれば更新する。*/ 669 636 if (lladdr != NULL) 670 637 ln->ifaddr = *(T_IF_ADDR *)lladdr; 671 638 672 /* è¿é£è¦è«ã¸ã®å¿çãªã REACHABLE ã«é·ç§»ããã*/639 /* 近隣要請への応答なら REACHABLE に遷移する。*/ 673 640 if (nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) { 674 641 ln->state = ND6_LLINFO_REACHABLE; … … 680 647 } 681 648 /* 682 * ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã683 * ç°ãªãã¢ãã¬ã¹ãªãæ´æ°ããã649 * データリンク層のアドレスが通知され、 650 * 異なるアドレスなら更新する。 684 651 */ 685 652 else if (lladdr != NULL && llchange) { … … 690 657 } 691 658 692 /* ã«ã¼ã¿éç¥ãã©ã°ã®å¦ç*/659 /* ルータ通知フラグの処理 */ 693 660 if ((ln->flags & ND6_LLIF_ROUTER ) != 0 && 694 661 (nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) == 0) { 695 662 /* 696 * éä¿¡ç¸æãã«ã¼ã¿éç¥ãã©ã°ãç¡å¹ã«ããå ´åã697 * ãã£ãã©ã«ãã»ã«ã¼ã¿ãªã¹ããã対象ã®ã«ã¼ã¿ãåé¤ãã698 * è¿é£æ¢ç´¢ãã£ãã·ã¥ãæ´æ°ããã663 * 送信相手がルータ通知フラグを無効にした場合。 664 * ディフォルト・ルータリストから対象のルータを削除し、 665 * 近隣探索キャッシュを更新する。 699 666 */ 700 667 T_DEF_ROUTER *dr = NULL; … … 714 681 ln->asked = 0; 715 682 716 /* ã¢ãã¬ã¹è§£æ±ºå¾ 717 ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/ 683 /* アドレス解決待ちのデータグラムがあれば送信する。*/ 718 684 nd6_output_hold(ifp, ln); 719 685 … … 729 695 730 696 /* 731 * nd6_na_output -- è¿é£éç¥ãåºåããã697 * nd6_na_output -- 近隣通知を出力する。 732 698 */ 733 699 … … 747 713 748 714 /* 749 * è¿é£éç¥ãã¤ãã¼ãé·ãè¨ç®ããã750 * tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã追å ããã715 * 近隣通知ペイロード長を計算する。 716 * tlladdr が真ならネットワークインタフェースのアドレスを追加する。 751 717 */ 752 718 if (tlladdr && IF_SOFTC_TO_IFADDR(ifp->ic)) … … 756 722 757 723 /* 758 * ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã759 * æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨å®ããã724 * 他のリンクからの偽造されたデータグラムを 725 * 排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。 760 726 */ 761 727 ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM); 762 728 763 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨å®ããã*/729 /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/ 764 730 if (in6_get_datagram(&output, len, 0, daddr, NULL, 765 731 IPPROTO_ICMPV6, IPV6_MAXHLIM, … … 771 737 if (IN6_IS_ADDR_UNSPECIFIED(daddr)) { 772 738 /* 773 * å®å 774 ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ã 775 * ãªã³ã¯ãã¼ã«ã«å 776 ¨ãã¼ãã»ãã«ããã£ã¹ãã¢ãã¬ã¹ãè¨å®ããã 739 * 宛先アドレスが無指定の場合は、 740 * リンクローカル全ノード・マルチキャストアドレスを設定する。 777 741 */ 778 742 ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL; … … 786 750 787 751 /* 788 * å®å 789 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 790 ã¢ãã¬ã¹ãã 791 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 752 * 宛先アドレスにふさわしい送信元アドレスを、 753 * ネットワークインタフェースから探索して利用する。 792 754 */ 793 755 if ((ifa = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) { … … 797 759 ip6h->src = ifa->addr; 798 760 799 /* è¿é£éç¥ããããè¨å®ããã*/761 /* 近隣通知ヘッダを設定する。*/ 800 762 nah = GET_NEIGHBOR_ADVERT_HDR(output, IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET); 801 763 nah->hdr.type = ND_NEIGHBOR_ADVERT; … … 803 765 nah->target = *taddr; 804 766 805 /* tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã追å ããã*/767 /* tlladdr が真ならネットワークインタフェースのアドレスを追加する。*/ 806 768 if (tlladdr && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) { 807 769 … … 821 783 nah->nd_na_flags_reserved = flags; 822 784 823 /* ãã§ãã¯ãµã ãè¨ç®ããã*/785 /* チェックサムを計算する。*/ 824 786 nah->hdr.sum = 0; 825 787 nah->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nah - output->buf, len); 826 788 827 /* éä¿¡ããã*/789 /* 送信する。*/ 828 790 NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS], 829 791 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 835 797 836 798 /* 837 * nd6_dad_start -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ãéå§ããã799 * nd6_dad_start -- 重複アドレス検出 (DAD) を開始する。 838 800 * 839 * 第3å¼æ°ã®tick ã¯ãã¤ã³ã¿ãã§ã¼ã¹ãèµ·åããã¦ãããéè¤æ¤åºã 840 * éä¿¡ããã¾ã§ã®æå°é 841 延å¤ã§ããã 801 * 第3引数のtick は、インタフェースが起動されてから、重複検出を 802 * 送信するまでの最小遅延値である。 842 803 */ 843 804 … … 845 806 nd6_dad_start (T_IFNET *ifp, T_IN6_IFADDR *ifa, int_t *tick) 846 807 { 847 /* ãã©ã°ããã§ãã¯ããã*/808 /* フラグをチェックする。*/ 848 809 if (!(ifa->flags & IN6_IFF_TENTATIVE)) 849 810 return; … … 862 823 return; 863 824 864 /* éè¤ã¢ãã¬ã¹æ¤åºã«ã¦ã³ã¿ããªã»ããããã*/825 /* 重複アドレス検出カウンタをリセットする。*/ 865 826 ifa->ns_icount = ifa->na_icount = ifa->ns_ocount = 0; 866 827 867 828 /* 868 * éè¤ã¢ãã¬ã¹æ¤åºè¦è«ãéä¿¡ããããã ããã¤ã³ã¿ãã§ã¼ã¹ã 869 * åæåããç´å¾ã«ãæåã«éä¿¡ããå ´åã¯ãã©ã³ãã ãªé 870 延ãè¡ãã 829 * 重複アドレス検出要請を送信する。ただし、インタフェースを 830 * 初期化した直後に、最初に送信する場合は、ランダムな遅延を行う。 871 831 */ 872 832 if (tick == NULL) { 873 833 nd6_dad_ns_output(ifp, ifa); 874 834 875 /* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨å®ããã*/835 /* タイムアウトを近隣探索の送信間隔に設定する。*/ 876 836 timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ); 877 837 } … … 879 839 int_t ntick; 880 840 881 if (*tick == 0) /* æåã®éä¿¡*/841 if (*tick == 0) /* 最初の送信 */ 882 842 ntick = net_rand() % (ND6_FIRST_DAD_DELAY_TIME * NET_TIMER_HZ / SYSTIM_HZ); 883 843 else -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 123 111 124 112 /* 125 * å¤é¨é¢æ°ã®å®ç¾©113 * 外部関数の定義 126 114 */ 127 115 … … 133 121 134 122 /* 135 * å 136 ¨åå¤æ° 137 */ 138 139 SYSTIM nd6_base_reachable_time = ND6_DEF_REACHABLE_TIME; /* ã«ã¼ã¿ããéç¥ãããå¤ */ 140 SYSTIM nd6_reachable_time = ND6_DEF_REACHABLE_TIME; /* ã«ã¼ã¿ããéç¥ãããå¤ã®è£æ£å¤ */ 141 SYSTIM nd6_recalc_reachtm_interval = ND6_RECALC_REACHTM_INTERVAL; /* å°éå¯è½ç¶æ 142 ã®æå¹æéåè¨ç®éé */ 143 SYSTIM nd6_retrans_time = ND6_DEF_RETRANS_TIME; /* è¿é£æ¢ç´¢ã®éä¿¡éé */ 144 uint8_t ip6_defhlim = IPV6_DEFHLIM; /* ããããªãããã®è¦å®å¤ */ 145 146 /* 147 * å±æå¤æ° 148 */ 149 150 /* 151 * ãã¬ãã£ãã¯ã¹ã»ãªã¹ã 123 * 全域変数 124 */ 125 126 SYSTIM nd6_base_reachable_time = ND6_DEF_REACHABLE_TIME; /* ルータから通知された値 */ 127 SYSTIM nd6_reachable_time = ND6_DEF_REACHABLE_TIME; /* ルータから通知された値の補正値 */ 128 SYSTIM nd6_recalc_reachtm_interval = ND6_RECALC_REACHTM_INTERVAL; /* 到達可能状態の有効時間再計算間隔 */ 129 SYSTIM nd6_retrans_time = ND6_DEF_RETRANS_TIME; /* 近隣探索の送信間隔 */ 130 uint8_t ip6_defhlim = IPV6_DEFHLIM; /* ホップリミットの規定値 */ 131 132 /* 133 * 局所変数 134 */ 135 136 /* 137 * プレフィックス・リスト 152 138 */ 153 139 … … 155 141 156 142 /* 157 * ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã143 * ディフォルトルータ・リスト 158 144 */ 159 145 160 146 static T_DEF_ROUTER nd6_def_router[NUM_ND6_DEF_RTR_ENTRY]; 161 static uint_t def_router_count = 0; /* ãªã¹ãã«ããã«ã¼ã¿æ°*/162 163 /* 164 * make_mask -- ãããç¨ã®ãã¹ã¯ãçæããã147 static uint_t def_router_count = 0; /* リストにあるルータ数 */ 148 149 /* 150 * make_mask -- マップ用のマスクを生成する。 165 151 */ 166 152 … … 171 157 int_t ix; 172 158 173 /* ãã¹ã¯ãçæããã*/159 /* マスクを生成する。*/ 174 160 mask = 1; 175 161 for (ix = index; ix -- > 0; ) … … 181 167 /* 182 168 * find_pfxlist_reachable_router -- 183 * æå®ãããã¬ãã£ãã¯ã¹ãéç¥ããã«ã¼ã¿ããªã³ã¯ä¸ã«åå¨ããããã§ãã¯ããã169 * 指定したプレフィックスを通知したルータがリンク上に存在するかチェックする。 184 170 */ 185 171 … … 205 191 206 192 /* 207 * pfxlist_onlink_check -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ãªã³ãªã³ã¯ç¶æ 208 ããã§ãã¯ããã 193 * pfxlist_onlink_check -- プレフィックス・リストのオンリンク状態をチェックする。 209 194 * 210 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã211 * ããã¯ãã¦ããå¼ã³åºããã¨ã195 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 196 * ロックしてから呼び出すこと。 212 197 */ 213 198 … … 230 215 if (ix >= 0) { 231 216 /* 232 * ãªã³ãªã³ã¯ç¶æ 233 ã®ãã¬ãã£ãã¯ã¹ãæä½ä¸ã¤åå¨ããã¨ãã®å¦çã 234 * åãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ 235 ããããããéç¥ãã¦ããã«ã¼ã¿ã® 236 * ç¶æ 237 ã«å¾ã£ã¦è¨å®ããã 217 * オンリンク状態のプレフィックスが最低一つ存在するときの処理。 218 * 各プレフィックスのオンリンク状態を、それらを通知してきたルータの 219 * 状態に従って設定する。 238 220 */ 239 221 … … 256 238 else { 257 239 /* 258 * ã©ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã§ã¯ãªãã 259 * ãã£ãã©ã«ãã«ã¼ã¿ãåå¨ããªãã¨ãã®å¦çã 260 * ãã¹ã¦ã®ãã¬ãã£ãã¯ã¹ã使ç¨å¯è½ç¶æ 261 ã«è¨å®ããã 240 * どのプレフィックスもオンリンクではなく、 241 * ディフォルトルータも存在しないときの処理。 242 * すべてのプレフィックスを使用可能状態に設定する。 262 243 */ 263 244 … … 275 256 276 257 /* 277 * åãã¬ãã£ãã¯ã¹æ¯ã«ãéç¥ãã¦ããã«ã¼ã¿ã®ç¶æ 278 㨠279 * ãªã³ãªã³ã¯ã®ç¶æ 280 ãä¸è´ããªããã°ããªã³ãªã³ã¯ç¶æ 281 ãæ´æ°ããã 258 * 各プレフィックス毎に、通知してきたルータの状態と 259 * オンリンクの状態が一致しなければ、オンリンク状態を更新する。 282 260 */ 283 261 for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) { … … 302 280 303 281 /* 304 * ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã305 * å°ãªãã¨ã 1 å°åå¨ããã確èªããã282 * リンク上にプレフィックスを通知しているルータが 283 * 少なくとも 1 台存在するか確認する。 306 284 */ 307 285 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { … … 317 295 if (ix >= 0) { 318 296 /* 319 * ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã320 * å°ãªãã¨ã 1 å°åå¨ããæã®å¦çã297 * リンク上にプレフィックスを通知しているルータが 298 * 少なくとも 1 台存在する時の処理。 321 299 */ 322 300 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { … … 334 312 else { 335 313 /* 336 * ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã 337 * 1 å°åå¨ããªãæã¯å 338 ¨ã¦ã®ã¢ãã¬ã¹ãå©ç¨ã§ããããã«ããã 314 * リンク上にプレフィックスを通知しているルータが 315 * 1 台存在しない時は全てのアドレスを利用できるようにする。 339 316 */ 340 317 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { … … 347 324 348 325 /* 349 * pfxrtr_add -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã326 * pfxrtr_add -- プレフィックスエントリとディフォルトルータ・エントリをリンクする。 350 327 * 351 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã352 * ããã¯ãã¦ããå¼ã³åºããã¨ã328 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 329 * ロックしてから呼び出すこと。 353 330 */ 354 331 … … 356 333 pfxrtr_add (int_t prefix_index, int_t rtr_index) 357 334 { 358 /* ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã*/335 /* プレフィックスエントリとディフォルトルータ・エントリをリンクする。*/ 359 336 nd6_prefix[prefix_index].routermap |= make_mask(rtr_index); 360 337 nd6_def_router[rtr_index].plistmap |= make_mask(prefix_index); … … 364 341 365 342 /* 366 * nd6_pfxrtr_lookup -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªããã«ã¼ã¿ãæ¢ç´¢ããã343 * nd6_pfxrtr_lookup -- プレフィックスエントリからルータを探索する。 367 344 */ 368 345 … … 374 351 375 352 /* 376 * defrouter_select -- åªå 377 ãã£ãã©ã«ãã»ã«ã¼ã¿ãé¸æããªããã 353 * defrouter_select -- 優先ディフォルト・ルータを選択しなおす。 378 354 * 379 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã380 * ããã¯ãã¦ããå¼ã³åºããã¨ã355 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 356 * ロックしてから呼び出すこと。 381 357 */ 382 358 … … 392 368 if ((ln = nd6_lookup(&dr->addr, false)) != NULL && ND6_IS_LLINFO_PROBREACH(ln)) { 393 369 394 /* é¸æããã«ã¼ã¿ãå 395 é ã«ç§»ãã*/ 370 /* 選択したルータを先頭に移す。*/ 396 371 router = *dr; 397 372 for (tix = ix; tix > 0; tix --) … … 404 379 405 380 /* 406 * defrtrlist_update -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ´æ°ããã381 * defrtrlist_update -- ディフォルトルータ・リストを更新する。 407 382 * 408 * æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã409 * ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã383 * 戻り値は、ルータのインデックス。 384 * ただし、値が -1 なら、プレフィックス・リストは更新しない。 410 385 */ 411 386 … … 420 395 syscall(wai_sem(SEM_ND6_DEFRTRLIST)); 421 396 422 /* ç»é²æ¸ã調ã¹ãã*/397 /* 登録済か調べる。*/ 423 398 if ((fdr = nd6_defrtrlist_lookup(src)) != NULL) { 424 /* ç»é²æ¸ã¿ã®å ´åã®å¦ç*/399 /* 登録済みの場合の処理 */ 425 400 if (lifetime == 0) { 426 401 nd6_defrtrlist_del(fdr); … … 429 404 } 430 405 else { 431 fdr->lifetime = lifetime * SYSTIM_HZ; /* lifetime ã®åä½ã¯ç§*/406 fdr->lifetime = lifetime * SYSTIM_HZ; /* lifetime の単位は秒 */ 432 407 fdr->flags = flags; 433 408 fdr->expire = now + fdr->lifetime; … … 443 418 if (fdr == NULL && def_router_count < NUM_ND6_DEF_RTR_ENTRY) { 444 419 /* 445 * def_router_count < NUM_ND6_DEF_RTR_ENTRY ã§ããã°ã446 * nd6_def_router[def_router_count]; ã空ãã¨ã³ããª420 * def_router_count < NUM_ND6_DEF_RTR_ENTRY であれば、 421 * nd6_def_router[def_router_count]; が空きエントリ 447 422 */ 448 423 fdr = &nd6_def_router[def_router_count]; 449 424 } 450 425 451 /* 空ãã¨ã³ããªããªããã°ãæå¹æéãçãã¨ã³ããªãåé¤ããã*/426 /* 空きエントリがなければ、有効時間が短いエントリを削除する。*/ 452 427 if (fdr == NULL) { 453 428 T_DEF_ROUTER *sdr = NULL; … … 458 433 diff = (int32_t)(dr->expire - now); 459 434 if (diff <= 0) { /* dr->expire <= now */ 460 /* æ¢ã«ãæå¹æéãéãã¦ããã*/435 /* 既に、有効時間が過ぎている。*/ 461 436 sdr = dr; 462 437 break; … … 471 446 } 472 447 473 /* åã¡ã³ãã«å¤ãè¨å®ããã*/448 /* 各メンバに値を設定する。*/ 474 449 fdr->plistmap = 0; 475 450 fdr->addr = *src; 476 fdr->lifetime = lifetime * SYSTIM_HZ; /* lifetime ã®åä½ã¯ç§*/451 fdr->lifetime = lifetime * SYSTIM_HZ; /* lifetime の単位は秒 */ 477 452 fdr->flags = flags; 478 453 fdr->expire = now + fdr->lifetime; … … 481 456 482 457 /* 483 * ãã£ãã©ã«ãã«ã¼ã¿ã¨ãã¦ç»é²ãããã484 * æ¢ã«ãã£ãã©ã«ãã«ã¼ã¿ãããã°é¸æããªãããªãã458 * ディフォルトルータとして登録するが、 459 * 既にディフォルトルータがあれば選択しなおさない。 485 460 */ 486 461 if (fdr - nd6_def_router != 0) … … 492 467 493 468 /* 494 * in6_ifadd -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ã追å ããã469 * in6_ifadd -- インタフェースにアドレスを追加する。 495 470 */ 496 471 … … 506 481 507 482 /* 508 * ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã483 * リンクローカルアドレスが未登録であれば何もしない。 509 484 */ 510 485 if ((lla->flags & IN6_IFF_DEFINED) == 0) … … 512 487 513 488 /* 514 * ã«ã¼ã¿ããéç¥ããããã¬ãã£ãã¯ã¹é·ãã515 * ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®ãã¬ãã£ãã¯ã¹é·ã¨516 * ç°ãªã£ã¦ããã°ã¨ã©ã¼489 * ルータから通知されたプレフィックス長が、 490 * リンクローカルアドレスのプレフィックス長と 491 * 異なっていればエラー 517 492 */ 518 493 if (lla->prefix_len != pr->prefix_len) 519 494 return E_PAR; 520 495 521 /* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/496 /* プレフィックスマスクを生成する。*/ 522 497 in6_plen2pmask(&mask, pr->prefix_len); 523 498 524 /* ã¢ãã¬ã¹ãçæããã*/499 /* アドレスを生成する。*/ 525 500 for (ix = 0; ix < 4; ix ++) 526 501 addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] & mask.s6_addr32[ix]) 527 502 | ( lla->addr.s6_addr32[ix] & ~mask.s6_addr32[ix]); 528 503 529 /* ãã©ã°ãåæåããã*/504 /* フラグを初期化する。*/ 530 505 ia->flags = 0; 531 506 … … 536 511 537 512 /* 538 * nd6_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã513 * nd6_prefix_lookup -- プレフィックスを探索する。 539 514 */ 540 515 … … 556 531 557 532 /* 558 * prelist_remove -- ãã¬ãã£ãã¯ã¹ãªã¹ããããã¬ãã£ãã¯ã¹ãåé¤ããã533 * prelist_remove -- プレフィックスリストからプレフィックスを削除する。 559 534 * 560 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã561 * ããã¯ãã¦ããå¼ã³åºããã¨ã535 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 536 * ロックしてから呼び出すこと。 562 537 */ 563 538 … … 569 544 int_t rix; 570 545 571 /* æå¹æéåãã«ããã*/546 /* 有効時間切れにする。*/ 572 547 pr->vltime = 0; 573 548 pr->pltime = 0; … … 579 554 } 580 555 581 /* ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªã®ãªã³ã¯ã解é¤ããã*/556 /* プレフィックスエントリとディフォルトルータ・エントリのリンクを解除する。*/ 582 557 pr->routermap = 0; 583 558 mask = make_mask(pr - nd6_prefix); … … 585 560 nd6_def_router[rix].plistmap &= ~mask; 586 561 587 /* ãã¬ãã£ãã¯ã¹ãç¡å¹ã«ããã*/562 /* プレフィックスを無効にする。*/ 588 563 pr->flags &= ~ND6_PREFIX_STATE_BUSY; 589 564 … … 592 567 593 568 /* 594 * nd6_prefix_onlink -- ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨å®ããã¢ãã¬ã¹ã使ç¨å¯è½ã«ããã569 * nd6_prefix_onlink -- プレフィックスをオンリンクに設定し、アドレスを使用可能にする。 595 570 * 596 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã597 * ããã¯ãã¦ããå¼ã³åºããã¨ã571 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 572 * ロックしてから呼び出すこと。 598 573 */ 599 574 … … 605 580 int_t ix; 606 581 607 /* æ¢ã«ãªã³ãªã³ã¯ç¶æ 608 ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/ 582 /* 既にオンリンク状態になっている場合はエラー。*/ 609 583 if ((pr->flags & ND6_PREFIX_STATE_ONLINK) != 0) 610 584 return E_OBJ; 611 585 612 /* ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã*/586 /* リンクローカルアドレスが未登録であれば何もしない。*/ 613 587 lla = &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL]; 614 588 if ((lla->flags & IN6_IFF_DEFINED) == 0) … … 616 590 617 591 /* 618 * æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã® 619 * ã¢ãã¬ã¹æ 620 å ±ãæ¢ãã 592 * 指定されたプレフィックスが割り当てられているインタフェースの 593 * アドレス情報を探す。 621 594 */ 622 595 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { … … 628 601 if (ix >= 0) { 629 602 630 /* ã¢ãã¬ã¹æ 631 å ±ã使ç¨å¯è½ã«ããã*/ 603 /* アドレス情報を使用可能にする。*/ 632 604 ia->flags &= ~IN6_IFF_DETACHED; 633 605 634 /* ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨å®ããã*/606 /* プレフィックスをオンリンクに設定する。*/ 635 607 pr->flags |= ND6_PREFIX_STATE_ONLINK; 636 608 } … … 640 612 641 613 /* 642 * nd6_prefix_offlink -- ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨å®ããã¢ãã¬ã¹ã使ç¨ä¸å¯ã«ããã614 * nd6_prefix_offlink -- プレフィックスをオフリンクに設定し、アドレスを使用不可にする。 643 615 * 644 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã645 * ããã¯ãã¦ããå¼ã³åºããã¨ã616 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 617 * ロックしてから呼び出すこと。 646 618 */ 647 619 … … 653 625 int_t ix; 654 626 655 /* æ¢ã«ãªããªã³ã¯ç¶æ 656 ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/ 627 /* 既にオフリンク状態になっている場合はエラー。*/ 657 628 if ((pr->flags & ND6_PREFIX_STATE_ONLINK) == 0) 658 629 return E_OBJ; 659 630 660 631 /* 661 * æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã® 662 * ã¢ãã¬ã¹æ 663 å ±ãæ¢ãã 632 * 指定されたプレフィックスが割り当てられているインタフェースの 633 * アドレス情報を探す。 664 634 */ 665 635 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { … … 671 641 if (ix >= 0) { 672 642 673 /* ã¢ãã¬ã¹æ 674 å ±ã使ç¨ä¸å¯ã«ããã*/ 643 /* アドレス情報を使用不可にする。*/ 675 644 ia->flags |= IN6_IFF_DETACHED; 676 645 677 /* ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨å®ããã*/646 /* プレフィックスをオフリンクに設定する。*/ 678 647 pr->flags &= ~ND6_PREFIX_STATE_ONLINK; 679 648 } … … 683 652 684 653 /* 685 * in6_init_prefix_ltimes -- ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨å®ããã654 * in6_init_prefix_ltimes -- プレフィックスの有効時間を設定する。 686 655 */ 687 656 … … 691 660 SYSTIM now; 692 661 693 /* æ¨å¥¨æå¹æéãæå¹æéããé·ãã¨ãã¯ã¨ã©ã¼*/662 /* 推奨有効時間が有効時間より長いときはエラー */ 694 663 if (pr->pltime > pr->vltime) 695 664 return E_PAR; … … 712 681 713 682 /* 714 * nd6_prelist_add -- ãã¬ãã£ãã¯ã¹ãªã¹ãã«ãã¬ãã£ãã¯ã¹ã追å ããã683 * nd6_prelist_add -- プレフィックスリストにプレフィックスを追加する。 715 684 * 716 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã717 * ããã¯ãã¦ããå¼ã³åºããã¨ã685 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 686 * ロックしてから呼び出すこと。 718 687 */ 719 688 … … 725 694 ER error; 726 695 727 /* ãã¬ãã£ãã¯ã¹ãªã¹ããã空ãã®ãã¬ãã£ãã¯ã¹ã¨ã³ããªãæ¢ç´¢ããã*/696 /* プレフィックスリストから空きのプレフィックスエントリを探索する。*/ 728 697 for (ix = NUM_ND6_PREFIX_ENTRY; ix --; ) { 729 698 pr = &nd6_prefix[ix]; … … 732 701 } 733 702 734 /* ãã¬ãã£ãã¯ã¹ãªã¹ãã«ç©ºãããªããã°ã¨ã©ã¼*/703 /* プレフィックスリストに空きがなければエラー */ 735 704 if (ix < 0) 736 705 return NULL; … … 738 707 pr->flags |= ND6_PREFIX_STATE_BUSY; 739 708 740 /* ãã¬ãã£ãã¯ã¹ã追å ããã*/709 /* プレフィックスを追加する。*/ 741 710 pr->prefix = pi->prefix; 742 711 pr->prefix_len = pi->prefix_len; 743 712 744 /* ãã©ã°ãè¨å®ããã*/713 /* フラグを設定する。*/ 745 714 if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) 746 715 pr->flags |= ND6_PREFIX_FLAG_ONLINK; … … 748 717 pr->flags |= ND6_PREFIX_FLAG_AUTO; 749 718 750 /* ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨å®ããã*/719 /* プレフィックスの有効時間を設定する。*/ 751 720 pr->vltime = ntohl(pi->valid); 752 721 pr->pltime = ntohl(pi->preferred); … … 758 727 } 759 728 760 /* ã«ã¼ã¿ããããåæåããã*/729 /* ルータマップを初期化する。*/ 761 730 pr->routermap = 0; 762 731 763 /* ã«ã¼ã¿ã追å ããã*/732 /* ルータを追加する。*/ 764 733 pfxrtr_add(pr - nd6_prefix, rtr_index); 765 734 … … 768 737 769 738 /* 770 * prelist_update -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã739 * prelist_update -- プレフィックス・リストを更新する。 771 740 */ 772 741 … … 782 751 if ((pr = nd6_prefix_lookup(&pi->prefix, pi->prefix_len)) != NULL) { 783 752 /* 784 * ç»é²æ¸ã¿ã®å ´åã¯ããã¬ãã£ãã¯ã¹ãªã¹ããæ´æ°ããã753 * 登録済みの場合は、プレフィックスリストを更新する。 785 754 */ 786 755 787 756 /* 788 * ãã©ã°ã®æ´æ°ã®æ³¨æ:789 * on-link ããã㨠autonomous ãããã¯790 * 1 ãã 0 ã«å¤æ´ãã¦ã¯ãªããªãã757 * フラグの更新の注意: 758 * on-link ビットと autonomous ビットは 759 * 1 から 0 に変更してはならない。 791 760 */ 792 761 … … 798 767 if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) { 799 768 /* 800 * éç¥ããããã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã®æã¯ã801 * æå¹æéãæ´æ°ããã769 * 通知されたプレフィックスがオンリンクの時は、 770 * 有効時間を更新する。 802 771 */ 803 772 pr->vltime = ntohl(pi->valid); … … 809 778 (pr->flags & ND6_PREFIX_STATE_ONLINK) == 0) { 810 779 /* 811 * ãªããªã³ã¯ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«ãªã£ãæã®å¦çãå®è¡ããã780 * オフリンクのプレフィックスがオンリンクになった時の処理を実行する。 812 781 */ 813 782 if (nd6_prefix_onlink(pr) != E_OK) { … … 821 790 pfxrtr_add(pr - nd6_prefix, router_index); 822 791 } 823 else { /* æªç»é²ã®å ´å*/824 825 /* æå¹æé 0 ã®ãã¬ãã£ãã¯ã¹ã¯è¿½å ããªãã*/792 else { /* 未登録の場合 */ 793 794 /* 有効時間 0 のプレフィックスは追加しない。*/ 826 795 if (pi->valid == 0) { 827 796 syscall(sig_sem(SEM_ND6_DEFRTRLIST)); … … 829 798 } 830 799 831 /* ãªããªã³ã¯ã§ã¢ãã¬ã¹èªåè¨å®ã«ä½¿ç¨ããªããã°è¿½å ããªãã*/800 /* オフリンクでアドレス自動設定に使用しなければ追加しない。*/ 832 801 if ((pi->flags & (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) != 833 802 (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) { … … 836 805 } 837 806 838 /* ãã¬ãã£ãã¯ã¹ã追å ããã*/807 /* プレフィックスを追加する。*/ 839 808 if ((pr = nd6_prelist_add(pi, router_index)) == NULL) { 840 809 syslog(LOG_ERROR, "[ND6 RTR] prefix add failed."); … … 845 814 if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0) { 846 815 /* 847 * ãªããªã³ã¯ã»ãã¬ãã£ãã¯ã¹ã®å ´åã¯ãæå¹æéã 0 ã«è¨å®ããã848 * ãã¨ã§æå¹æéåãã¨ãªãããªã¹ãããåé¤ãããã816 * オフリンク・プレフィックスの場合は、有効時間を 0 に設定する。 817 * あとで有効期限切れとなり、リストから削除される。 849 818 */ 850 819 pr->vltime = 0; … … 855 824 856 825 /* 857 * ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ãè¡ãã826 * ステートレス・アドレス自動設定を行う。 858 827 */ 859 828 if ((pr->flags & ND6_PREFIX_FLAG_AUTO) == 0) { … … 863 832 864 833 /* 865 * éç¥ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã® 866 * ã¢ãã¬ã¹æ 867 å ±ãæ¢ãã 834 * 通知されたプレフィックスが割り当てられているインタフェースの 835 * アドレス情報を探す。 868 836 */ 869 837 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { … … 875 843 } 876 844 877 if (ix >= 0) { /* ç»é²æ¸ã¿ã®ã¨ã*/845 if (ix >= 0) { /* 登録済みのとき */ 878 846 if ((ia->flags & IN6_IFF_AUTOCONF) == 0) { 879 847 /* 880 * ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ã«ãã881 * è¨å®ããã¦ããªããã°æ´æ°ããªãã848 * ステートレス・アドレス自動設定により 849 * 設定されていなければ更新しない。 882 850 */ 883 851 ; … … 885 853 else if (ia->flags & IN6_IFF_TENTATIVE) { 886 854 /* 887 * éè¤æ¤åºä¸ãªãæ´æ°ããªãã855 * 重複検出中なら更新しない。 888 856 */ 889 857 ; … … 896 864 int_t ix; 897 865 898 /* æå¹æéãè¨å®ããã*/866 /* 有効時間を設定する。*/ 899 867 syscall(get_tim(&now)); 900 868 … … 908 876 if (pr->vltime > (2 * 60 * 60) || pr->vltime > vltime) { 909 877 /* 910 * lifetime.expire ãpi->valid (æå¹æé) ã¨911 * pi->preferred ( æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã912 * éç¥ãããæå¹æéã 2 æé以ä¸ããç¾å¨ã®æ®ãæéãã913 * é·ããã°ãæ°ããæå¹æéã«ã¯ãéç¥ãããæå¹æéãè¨å®ããã878 * lifetime.expire、pi->valid (有効時間) と 879 * pi->preferred (推奨有効時間) の単位は [s]。 880 * 通知された有効時間が 2 時間以上か、現在の残り時間より 881 * 長ければ、新しい有効時間には、通知された有効時間を設定する。 914 882 */ 915 883 vltime = pr->vltime; … … 919 887 else { 920 888 /* 921 * IPsec ã¯æªå®è£ 922 ã®ããã2 æéãè¨å®ããã 889 * IPsec は未実装のため、2 時間を設定する。 923 890 */ 924 891 vltime = 2 * 60 * 60; … … 927 894 lla = &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL]; 928 895 929 /* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/896 /* プレフィックスマスクを生成する。*/ 930 897 in6_plen2pmask(&mask, pr->prefix_len); 931 898 932 /* ã¢ãã¬ã¹ãçæããã*/899 /* アドレスを生成する。*/ 933 900 for (ix = 0; ix < 4; ix ++) 934 901 addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] & mask.s6_addr32[ix]) … … 941 908 } 942 909 943 else { /* æªç»é²ã®ã¨ã*/910 else { /* 未登録のとき */ 944 911 945 912 /* 946 * ãã¬ãã£ãã¯ã¹é·ããã§ãã¯ããã 947 * ããããã¬ãã£ãã¯ã¹é·ã¨ã¤ã³ã¿ãã§ã¼ã¹ ID ã®åè¨ã 948 * 128 ãããã«ä¸è´ããªãæã¯ããã¬ãã£ãã¯ã¹æ 949 å ±ãç¡è¦ããã 913 * プレフィックス長をチェックする。 914 * もし、プレフィックス長とインタフェース ID の合計が 915 * 128 ビットに一致しない時は、プレフィックス情報を無視する。 950 916 */ 951 917 if ((ifidlen = in6_if2idlen(ifp)) < 0) … … 972 938 973 939 /* 974 * nd6_prelist_timer -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼940 * nd6_prelist_timer -- プレフィックス・リストの管理タイマー 975 941 */ 976 942 … … 983 949 984 950 syscall(get_tim(&now)); 985 now /= SYSTIM_HZ; /* æå¹æéã®åä½ã¯[s] */951 now /= SYSTIM_HZ; /* 有効時間の単位は [s] */ 986 952 987 953 syscall(wai_sem(SEM_ND6_DEFRTRLIST)); … … 996 962 997 963 /* 998 * nd6_rs_output -- ã«ã¼ã¿è¦è«ãåºåããã964 * nd6_rs_output -- ルータ要請を出力する。 999 965 */ 1000 966 … … 1011 977 1012 978 /* 1013 * éä¿¡å 1014 ã¢ãã¬ã¹ã«ã¯ããªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ãè¨å®ãããã 1015 * ã¾ã è¨å®ããããªããã°ãç¡æå®ãè¨å®ããã 979 * 送信元アドレスには、リンクローカルアドレスを設定するが、 980 * まだ設定されいなければ、無指定を設定する。 1016 981 */ 1017 982 if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) != NULL && !IFA6_IS_NOTREADY(ifa)) … … 1022 987 len = (ROUTER_SOLICIT_HDR_SIZE + 7) >> 3 << 3; 1023 988 1024 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨å®ããã*/989 /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/ 1025 990 if (in6_get_datagram(&output, len, 0, &in6_addr_linklocal_allrouters, 1026 991 saddr, IPPROTO_ICMPV6, … … 1028 993 return; 1029 994 1030 /* ã«ã¼ã¿è¦è«ããããè¨å®ããã*/995 /* ルータ要請ヘッダを設定する。*/ 1031 996 rsh = GET_ROUTER_SOLICIT_HDR(output, IF_IP6_ROUTER_SOLICIT_HDR_OFFSET); 1032 997 rsh->hdr.type = ND_ROUTER_SOLICIT; … … 1034 999 rsh->nd_rs_reserved = 0; 1035 1000 1036 /* ãã§ãã¯ãµã ãè¨ç®ããã*/1001 /* チェックサムを計算する。*/ 1037 1002 rsh->hdr.sum = 0; 1038 1003 rsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)rsh - output->buf, len); 1039 1004 1040 /* éä¿¡ããã*/1005 /* 送信する。*/ 1041 1006 NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS], 1042 1007 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 1048 1013 1049 1014 /* 1050 * nd6_defrtrlist_lookup -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã1015 * nd6_defrtrlist_lookup -- ディフォルトルータ・リストを探索する。 1051 1016 */ 1052 1017 … … 1067 1032 1068 1033 /* 1069 * nd6_router_lookup -- ã«ã¼ã¿ã®ã¢ãã¬ã¹ãè¿ãã1034 * nd6_router_lookup -- ルータのアドレスを返す。 1070 1035 * 1071 1036 */ … … 1081 1046 1082 1047 /* 1083 * nd6_defrtrlist_del -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã1048 * nd6_defrtrlist_del -- ディフォルトルータ・リストからルータを削除する。 1084 1049 * 1085 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã1086 * ããã¯ãã¦ããå¼ã³åºããã¨ã1050 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 1051 * ロックしてから呼び出すこと。 1087 1052 */ 1088 1053 … … 1098 1063 if ((ia = in6ifa_ifpwithrtrix(ifp, rtrix)) != NULL) { 1099 1064 /* 1100 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã¬ãã£ãã¯ã¹ãéç¥ãã1101 * ã«ã¼ã¿ãå°éä¸è½ã«ããã1065 * ネットワークインタフェースのプレフィックスを通知した 1066 * ルータを到達不能にする。 1102 1067 */ 1103 1068 ia->router_index = IN6_RTR_IX_UNREACH; 1104 1069 } 1105 1070 1106 /* ãã¬ãã£ãã¯ã¹ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/1071 /* プレフィックスリストからルータを削除する。*/ 1107 1072 mask = make_mask(rtrix); 1108 1073 for (pix = NUM_ND6_PREFIX_ENTRY; pix --; ) 1109 1074 nd6_prefix[pix].routermap &= ~mask; 1110 1075 1111 /* åé¤ããã«ã¼ã¿ä»¥éãåã«è©°ããã*/1076 /* 削除したルータ以降を前に詰める。*/ 1112 1077 for (rix = rtrix + 1; rix < def_router_count; rix ++) 1113 1078 nd6_def_router[rix - 1] = nd6_def_router[rix]; 1114 1079 1115 /* ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã«ã¼ã¿ãæ´æ°ããã*/1080 /* プレフィックスリストのルータも更新する。*/ 1116 1081 if (dr != nd6_def_router) { 1117 1082 1118 /* ãã¹ã¯ãçæããã*/1083 /* マスクを生成する。*/ 1119 1084 mask = 1; 1120 1085 for (ix = rtrix - 1; ix -- > 0; ) … … 1128 1093 def_router_count --; 1129 1094 1130 /* ãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ 1131 ã確èªããã*/ 1095 /* プレフィックスのオンリンク状態を確認する。*/ 1132 1096 pfxlist_onlink_check(); 1133 1097 1134 1098 /* 1135 * åé¤ããã«ã¼ã¿ãåªå 1136 ãã£ãã©ã«ãã«ã¼ã¿ã®å ´åã¯ã 1137 * åªå 1138 ãã£ãã©ã«ãã«ã¼ã¿ãé¸æããªããã 1099 * 削除するルータが優先ディフォルトルータの場合は、 1100 * 優先ディフォルトルータを選択しなおす。 1139 1101 */ 1140 1102 if (rtrix == 0) … … 1143 1105 1144 1106 /* 1145 * nd6_defrtrlist_timer -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼1107 * nd6_defrtrlist_timer -- ディフォルトルータ・リストの管理タイマー 1146 1108 */ 1147 1109 … … 1167 1129 1168 1130 /* 1169 * nd6_get_drl -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããç²å¾ããã1131 * nd6_get_drl -- ディフォルトルータ・リストを獲得する。 1170 1132 */ 1171 1133 … … 1178 1140 1179 1141 /* 1180 * nd6_get_prl -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããç²å¾ããã1142 * nd6_get_prl -- プレフィックス・リストを獲得する。 1181 1143 */ 1182 1144 … … 1190 1152 1191 1153 /* 1192 * nd6_ra_input -- ã«ã¼ã¿éç¥ã®å 1193 ¥åå¦çã 1154 * nd6_ra_input -- ルータ通知の入力処理。 1194 1155 */ 1195 1156 … … 1215 1176 1216 1177 /* 1217 * ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã1218 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤1219 * ã»ãããé·ãçã1220 * ã»å§ç¹ã¢ãã¬ã¹ãããªã³ã¯ãã¼ã«ã«ã§ã¯ãªã(RFC2461)1178 * ヘッダのチェック、以下の場合は破棄する。 1179 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 1180 * ・ヘッダ長が短い 1181 * ・始点アドレスが、リンクローカルではない (RFC2461) 1221 1182 */ 1222 1183 if (ip6h->hlim != IPV6_MAXHLIM || … … 1227 1188 rah = GET_ROUTER_ADVERT_HDR(input, off); 1228 1189 1229 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/1190 /* 近隣探索オプションのオフセットを記録する。*/ 1230 1191 if (nd6_options(nd_opt_off, input->buf + (off + ROUTER_ADVERT_HDR_SIZE), 1231 1192 input->len - (off + ROUTER_ADVERT_HDR_SIZE)) != E_OK) 1232 1193 goto err_ret; 1233 1194 /* 1234 * å°éå¯è½ç¶æ 1235 ã®æå¹æéã®æ´æ° 1195 * 到達可能状態の有効時間の更新 1236 1196 1237 1197 */ 1238 1198 if (rah->reachable) { 1239 advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000; /* rah->reachable ã®åä½ã¯ms */1199 advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000; /* rah->reachable の単位は ms */ 1240 1200 if (advrea <= ND6_MAX_REACHABLE_TIME && 1241 1201 advrea != nd6_base_reachable_time) { … … 1249 1209 } 1250 1210 1251 /* è¿é£æ¢ç´¢ã®éä¿¡ééã®æ´æ°*/1211 /* 近隣探索の送信間隔の更新 */ 1252 1212 if (rah->retransmit) { 1253 1213 nd6_retrans_time = ntohl(rah->retransmit) * SYSTIM_HZ / 1000; 1254 /* rah->retransmit ã®åä½ã¯ms */1255 } 1256 1257 /* ããããªãããã®è¦å®å¤ã®æ´æ°*/1214 /* rah->retransmit の単位は ms */ 1215 } 1216 1217 /* ホップリミットの規定値の更新 */ 1258 1218 if (rah->nd_ra_current_hoplimit) { 1259 1219 ip6_defhlim = rah->nd_ra_current_hoplimit; 1260 1220 } 1261 1221 1262 /* ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®æ´æ°*/1222 /* ディフォルトルータリストの更新 */ 1263 1223 rix = defrtrlist_update(&ip6h->src, 1264 1224 ntohs(rah->nd_ra_router_lifetime), 1265 rah->nd_ra_flags); /* rah->nd_ra_router_lifetime ã®åä½ã¯ç§*/1266 1267 /* ãã¬ãã£ãã¯ã¹ãªã¹ãã®æ´æ°*/1225 rah->nd_ra_flags); /* rah->nd_ra_router_lifetime の単位は秒 */ 1226 1227 /* プレフィックスリストの更新 */ 1268 1228 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)]) { 1269 1229 T_ND_OPT_PREFIX_INFO *pi; … … 1273 1233 pi_off = off + ROUTER_ADVERT_HDR_SIZE 1274 1234 + nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)] - 8; 1275 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 1276 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 1235 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 1277 1236 while (pi_count -- > 0) { 1278 1237 pi = (T_ND_OPT_PREFIX_INFO*)(input->buf + pi_off); 1279 1238 if (pi->type != ND_OPT_PREFIX_INFORMATION) 1280 /* ãªãã·ã§ã³ã¿ã¤ãããã¬ãã£ãã¯ã¹æ 1281 å ±ã§ãªããã°ä½ãããªãã*/ 1239 /* オプションタイプがプレフィックス情報でなければ何もしない。*/ 1282 1240 ; 1283 1241 else if (pi->len != 4) 1284 /* ãã¬ãã£ãã¯ã¹æ 1285 å ±ã®é·ãã 32 (8Ã4) ã§ãªããã°ä¸æ£ */ 1242 /* プレフィックス情報の長さが 32 (8×4) でなければ不正 */ 1286 1243 syslog(LOG_NOTICE, "[ND6 RTR] prefix opt len: %d.", pi->len); 1287 1244 else if (pi->prefix_len > 128) 1288 /* ãã¬ãã£ãã¯ã¹é·ã¯ 128 ããã以ä¸*/1245 /* プレフィックス長は 128 ビット以下 */ 1289 1246 syslog(LOG_NOTICE, "[ND6 RTR] prefix len: %d.", pi->prefix_len); 1290 1247 else if (IN6_IS_ADDR_MULTICAST(&pi->prefix) || 1291 1248 IN6_IS_ADDR_LINKLOCAL(&pi->prefix)) 1292 /* ãã«ããã£ã¹ãã¨ãªã³ã¯ãã¼ã«ã«ã¯ä¸æ£*/1249 /* マルチキャストとリンクローカルは不正 */ 1293 1250 syslog(LOG_NOTICE, "[ND6 RTR] invalid addr: %s from %s.", 1294 1251 ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src)); 1295 #if 0 /* FreeBSD 6.3 ã§åé¤ããã¦ããã*/1252 #if 0 /* FreeBSD 6.3 で削除されている。*/ 1296 1253 else if (IN6_IS_ADDR_AGGREGATE_UNICAST(&pi->prefix) && 1297 1254 (pi->prefix_len != 64) ) 1298 /* éç´å¯è½ã¦ããã£ã¹ãã§ããã¬ãã£ãã¯ã¹é·ã 64 ããã以å¤ã¯ä¸æ£*/1255 /* 集約可能ユニキャストで、プレフィックス長が 64 ビット以外は不正 */ 1299 1256 syslog(LOG_NOTICE, "[ND6 RTR] invalid prefix len for global: %d.", pi->prefix_len); 1300 1257 #endif 1301 1258 else if (ntohl(pi->preferred) > ntohl(pi->valid)) 1302 /* æ¨å¥¨æå¹æéãæå¹æéããé·ããã°ä¸æ£*/1259 /* 推奨有効時間が有効時間より長ければ不正 */ 1303 1260 syslog(LOG_NOTICE, "[ND6 RTR] preferred(%d) > valid time(%d).", ntohl(pi->preferred), ntohl(pi->valid)); 1304 1261 else { … … 1307 1264 if (rix >= 0) { 1308 1265 /* 1309 * defrtrlist_update ã®æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã1310 * ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã1266 * defrtrlist_update の戻り値は、ルータのインデックス。 1267 * ただし、値が -1 なら、プレフィックス・リストは更新しない。 1311 1268 */ 1312 prelist_update(pi, rix); /* ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã*/1269 prelist_update(pi, rix); /* プレフィックス・リストを更新する。*/ 1313 1270 } 1314 1271 } 1315 pi_off += pi->len << 3; /* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã*/1316 } 1317 } 1318 1319 /* MTU ã®æ´æ°*/1272 pi_off += pi->len << 3; /* オプション長の単位は 8 バイト */ 1273 } 1274 } 1275 1276 /* MTU の更新 */ 1320 1277 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_MTU)]) { 1321 1278 T_ND_OPT_MTU_HDR *optmtuh; … … 1326 1283 1327 1284 /* 1328 * å¤ã®ãã§ãã¯1285 * 値のチェック 1329 1286 * 1330 * ãªãã·ã§ã³é·: 11331 * äºç´: 01287 * オプション長: 1 1288 * 予約: 0 1332 1289 */ 1333 1290 if (optmtuh->len != 1 || optmtuh->reserved != 0) 1334 1291 goto err_ret; 1335 1292 1336 /* MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ãªãç¡è¦ããã*/1293 /* MTU が IPv6 MMTU(1280 オクテット)以下なら無視する。*/ 1337 1294 mtu = ntohl(optmtuh->mtu); 1338 1295 if (mtu >= IPV6_MMTU) { … … 1343 1300 1344 1301 /* 1345 * ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ãã£ãã·ã¥ã«ç»é²ããã1302 * ルータの始点リンクアドレスを近隣キャッシュに登録する。 1346 1303 */ 1347 1304 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) { 1348 1305 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ROUTER_ADVERT_HDR_SIZE) + 1349 1306 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8); 1350 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 1351 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 1307 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 1352 1308 lladdr = (uint8_t *)(opth + 1); 1353 1309 lladdr_len = (opth->len << 3); … … 1355 1311 1356 1312 /* 1357 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼1313 * ネットワークインタフェースのアドレス長が一致しなければエラー 1358 1314 */ 1359 1315 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) 1360 1316 goto err_ret; 1361 1317 1362 /* è¿é£ãã£ãã·ã¥ã«ç»é²ããã*/1318 /* 近隣キャッシュに登録する。*/ 1363 1319 nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_ROUTER_ADVERT, 0); 1364 1320 1365 1321 /* 1366 * ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ãã£ãã·ã¥ã«ç»é²ããã®ã§ã 1367 * ãªã³ãªã³ã¯ç¶æ 1368 ãå¤åããå¯è½æ§ããããããããããã§ãã¯ããã 1322 * ルータの始点リンクアドレスを近隣キャッシュに登録したので、 1323 * オンリンク状態が変化する可能性があるため、それをチェックする。 1369 1324 */ 1370 1325 pfxlist_onlink_check(); … … 1380 1335 1381 1336 /* 1382 * ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã¯ãç ´æ£ãã¦çµäºããã1337 * ルータ通知を受信しない場合は、破棄して終了する。 1383 1338 */ 1384 1339 NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RA_IN_PACKETS], 1); … … 1391 1346 1392 1347 /* 1393 * nd6_rtrsol_ctl -- ã«ã¼ã¿è¦è«åºåã®å¶å¾¡1348 * nd6_rtrsol_ctl -- ルータ要請出力の制御 1394 1349 */ 1395 1350 … … 1400 1355 int_t try; 1401 1356 1402 /* ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®ã¢ãã¬ã¹æ 1403 å ±ãå¾ãã*/ 1357 /* リンクローカルアドレスのアドレス情報を得る。*/ 1404 1358 if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) == NULL) 1405 1359 return; 1406 1360 1407 /* ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºãå¾ 1408 ã¤ã*/ 1361 /* リンクローカルアドレスの重複検出終了を待つ。*/ 1409 1362 do { 1410 /* ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºå¾ 1411 ã¡æéãè¨å®ããã*/ 1363 /* リンクローカルアドレスの重複検出終了待ち時間を設定する。*/ 1412 1364 syscall(dly_tsk(net_rand() % TMO_ND6_RTR_SOL_DELAY)); 1413 1365 1414 /* å¾ 1415 ã£ã¦ããéã«éè¤ãæ¤åºããããçµäºããã*/ 1366 /* 待っている間に重複が検出されたら終了する。*/ 1416 1367 if (ifa->flags & IN6_IFF_DUPLICATED) 1417 1368 return; … … 1421 1372 for (try = 0; try < NUM_ND6_RTR_SOL_RETRY; try ++) { 1422 1373 1423 /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã«ã¨ã³ããªãããã°çµäº*/1374 /* ディフォルトルータ・リストにエントリがあれば終了 */ 1424 1375 if (def_router_count > 0) 1425 1376 return; 1426 1377 1427 /* ã«ã¼ã¿è¦è«ãåºåããã*/1378 /* ルータ要請を出力する。*/ 1428 1379 nd6_rs_output(); 1429 1380 1430 /* åºåã® 2 åç®ä»¥éã®é 1431 延æéãè¨å®ããã*/ 1381 /* 出力の 2 回目以降の遅延時間を設定する。*/ 1432 1382 syscall(dly_tsk(TMO_ND6_RTR_SOL_INTERVAL)); 1433 1383 } … … 1437 1387 1438 1388 /* 1439 * nd6_onlink_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã1389 * nd6_onlink_prefix_lookup -- プレフィックスを探索する。 1440 1390 */ 1441 1391 … … 1450 1400 now /= SYSTIM_HZ; 1451 1401 1452 /* æ¨å¥¨æå¹æéå 1453 ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/ 1402 /* 推奨有効時間内のプレフィックスを探索する。*/ 1454 1403 for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) { 1455 1404 pr = &nd6_prefix[ix]; … … 1463 1412 } 1464 1413 1465 /* æå¹æéå 1466 ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/ 1414 /* 有効時間内のプレフィックスを探索する。*/ 1467 1415 for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) { 1468 1416 pr = &nd6_prefix[ix]; -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/route6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 115 103 #if 0 116 104 /* 117 * é信帯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã118 * ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã105 * 通信帯域を食いつぶす攻撃への対応のため、 106 * タイプ 0 経路制御ヘッダの処理を行わない。 119 107 */ 120 108 121 109 /* 122 * ip6_rthdr0 -- ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å 123 ¥åé¢æ° 110 * ip6_rthdr0 -- タイプ 0 経路制御ヘッダの入力関数 124 111 */ 125 112 … … 128 115 { 129 116 if (rt0h->segleft == 0) { 130 /* ä¸ç¶ãã¼ãæ°ã¯ 0 ãªã®ã§ãçµç¹ãã¼ã*/117 /* 中継ノード数は 0 なので、終点ノード */ 131 118 return E_OK; 132 119 } 133 120 134 /* len 㨠segleft ã®æ£å½æ§ãã§ãã¯*/121 /* len と segleft の正当性チェック */ 135 122 #ifdef IP6_CFG_COMPAT_RFC1883 136 123 if ((rt0h->len % 2) || (rt0h->len > 46)) { … … 139 126 #endif 140 127 /* 141 * len ã¯å¶æ°ã§ã(23 * 2) ã¾ã§ã142 * ãã ãã(23 * 2) ã®å¶é㯠RFC 2462 ã§åé¤ããã¦ããã128 * len は偶数で、(23 * 2) まで。 129 * ただし、(23 * 2) の制限は RFC 2462 で削除されている。 143 130 */ 144 131 icmp6_error(input, ICMP6_PARAM_PROB, … … 148 135 } 149 136 150 /* len ãä¸ç¶ãã¼ãæ°ã¨çç¾ãã¦ããªãããã§ãã¯ããã*/137 /* len が中継ノード数と矛盾していないかチェックする。*/ 151 138 if ((rt0h->len / 2) < rt0h->segleft) { 152 139 /* 153 * len 㯠8ãªã¯ãããåä½ãsegleft 㯠16ãªã¯ãããåä½ãªã®ã§ã154 * len / 2 == segleft ã¨ãªãã¯ãã155 * len / 2 < segleft ã¯ã¨ã©ã¼ã140 * len は 8オクテット単位、segleft は 16オクテット単位なので、 141 * len / 2 == segleft となるはず。 142 * len / 2 < segleft はエラー。 156 143 */ 157 144 icmp6_error(input, ICMP6_PARAM_PROB, … … 162 149 163 150 /* 164 * æ®ãã®ä¸ç¶ãã¼ãæ°ã 1 以ä¸ã§ããã°ããã®ãã¼ãã¯æçµç㪠165 * çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£ 166 ã§ã¯ãä¸ç¶ãããªãã®ã§ã 167 * å 168 ¥åãã¼ã¿ã°ã©ã ã®å¦çãçµäºããã 151 * 残りの中継ノード数が 1 以上であれば、このノードは最終的な 152 * 終点ノードではない。本実装では、中継をしないので、 153 * 入力データグラムの処理を終了する。 169 154 */ 170 155 syscall(rel_net_buf(input)); … … 175 160 176 161 /* 177 * route6_input -- çµè·¯å¶å¾¡ãããã®å 178 ¥åé¢æ° 162 * route6_input -- 経路制御ヘッダの入力関数 179 163 */ 180 164 … … 186 170 uint_t len, off = *offp; 187 171 188 /* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/172 /* ネットワークバッファの残りの長さをチェックする。*/ 189 173 if (input->len - off < sizeof(T_IP6_RT_HDR)) 190 174 goto buf_rel; … … 193 177 len = (rth->len + 1) << 3; 194 178 195 /* çµè·¯å¶å¾¡ãããã®é·ãããã§ãã¯ããã*/179 /* 経路制御ヘッダの長さをチェックする。*/ 196 180 if (input->len < off + len) 197 181 goto buf_rel; … … 199 183 #if 0 200 184 /* 201 * é信帯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã202 * ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã185 * 通信帯域を食いつぶす攻撃への対応のため、 186 * タイプ 0 経路制御ヘッダの処理を行わない。 203 187 */ 204 188 if (rth->type == IPV6_RTHDR_TYPE_0) { 205 189 if (ip6_rthdr0(input, (T_IP6_RT0_HDR*)rth) != E_OK) { 206 190 207 /* ã¨ã©ã¼ã®å ´åã¯ãip6_rthdr0 ã§ãããã¡ãéæ¾ãã¦ããã*/191 /* エラーの場合は、ip6_rthdr0 でバッファを開放している。*/ 208 192 return IPPROTO_DONE; 209 193 } … … 212 196 213 197 /* 214 * æ®ãã®ä¸ç¶ãã¼ãæ°ã 1 以ä¸ã§ããã°ããã®ãã¼ãã¯æçµç㪠215 * çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£ 216 ã§ã¯ãä¸ç¶ãããªãã®ã§ã 217 * ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã 198 * 残りの中継ノード数が 1 以上であれば、このノードは最終的な 199 * 終点ノードではない。本実装では、中継をしないので、 200 * ICMP6 エラーを返送して処理を終了する。 218 201 */ 219 202 icmp6_error(input, ICMP6_PARAM_PROB, … … 226 209 227 210 /* 228 * æ®ãã®ä¸ç¶ãã¼ãæ°ã 1 以ä¸ã§ããã°ããã®ãã¼ãã¯æçµç㪠229 * çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£ 230 ã§ã¯ãä¸ç¶ãããªãã®ã§ã 231 * ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã 211 * 残りの中継ノード数が 1 以上であれば、このノードは最終的な 212 * 終点ノードではない。本実装では、中継をしないので、 213 * ICMP6 エラーを返送して処理を終了する。 232 214 */ 233 215 icmp6_error(input, ICMP6_PARAM_PROB, -
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/scope6.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 143 131 144 132 /* 145 * in6_addrscope -- ã¢ãã¬ã¹ã®ã¹ã³ã¼ã ID ãè¿ãã133 * in6_addrscope -- アドレスのスコープ ID を返す。 146 134 */ 147 135 -
EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.tf
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 6 6 $ Tomakomai National College of Technology, JAPAN 7 7 $ 8 $ ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 $ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 $ å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 $ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 $ 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 $ ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 $ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 $ ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 $ è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 $ ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 $ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 $ ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 $ ã¨ï¼ 27 $ (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 $ ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 $ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 32 $ 害ãããï¼ä¸è¨èä½æ¨©è 33 ããã³TOPPERSããã¸ã§ã¯ããå 34 責ãããã¨ï¼ 35 $ ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 36 $ ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ãã 38 $ å 39 責ãããã¨ï¼ 8 $ 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 $ スコード中に含まれていること. 14 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 $ の無保証規定を掲載すること. 18 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 $ と. 21 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 26 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 $ 免責すること. 40 28 $ 41 $ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 42 ã 43 $ ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 44 $ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 45 $ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 46 $ ã®è²¬ä»»ãè² ããªãï¼ 29 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 $ の責任を負わない. 47 34 $ 48 35 $ @(#) $Id$ … … 51 38 52 39 $ ===================================================================== 53 $ tinet_cfg.h ã®çæ40 $ tinet_cfg.h の生成 54 41 $ ===================================================================== 55 42 … … 99 86 100 87 $ ===================================================================== 101 $ tinet_cfg.c ã®çæ88 $ tinet_cfg.c の生成 102 89 $ ===================================================================== 103 90 … … 128 115 129 116 $ 130 $ ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼117 $ インクルードディレクティブ(#include) 131 118 $ 132 119 $NL$ … … 137 124 $INCLUDES$ 138 125 139 $ // TCP (IPv4) åä»å£126 $ // TCP (IPv4) 受付口 140 127 $IF LENGTH(TCP4_REP.ID_LIST) + LENGTH(VRID_TCP4_REP.ID_LIST)$ 141 128 $NL$ … … 168 155 $END$ 169 156 170 $ // TCP (IPv6) åä»å£157 $ // TCP (IPv6) 受付口 171 158 $IF LENGTH(TCP6_REP.ID_LIST) + LENGTH(VRID_TCP6_REP.ID_LIST)$ 172 159 $NL$ … … 199 186 $END$ 200 187 201 $ // TCP (IPv4) é信端ç¹188 $ // TCP (IPv4) 通信端点 202 189 $IF LENGTH(TCP4_CEP.ID_LIST) + LENGTH(VRID_TCP4_CEP.ID_LIST)$ 203 190 $NL$ … … 240 227 $END$ 241 228 242 $ // TCP (IPv6) é信端ç¹229 $ // TCP (IPv6) 通信端点 243 230 $IF LENGTH(TCP6_CEP.ID_LIST) + LENGTH(VRID_TCP6_CEP.ID_LIST)$ 244 231 $NL$ … … 281 268 $END$ 282 269 283 $ // UDP (IPv4) é信端ç¹270 $ // UDP (IPv4) 通信端点 284 271 $IF LENGTH(UDP4_CEP.ID_LIST) + LENGTH(VRID_UDP4_CEP.ID_LIST)$ 285 272 $NL$ … … 316 303 $END$ 317 304 318 $ // UDP (IPv6) é信端ç¹305 $ // UDP (IPv6) 通信端点 319 306 $IF LENGTH(UDP6_CEP.ID_LIST) + LENGTH(VRID_UDP6_CEP.ID_LIST)$ 320 307 $NL$ … … 352 339 353 340 $ ===================================================================== 354 $ tinet_kern.cfg ã®çæ341 $ tinet_kern.cfg の生成 355 342 $ ===================================================================== 356 343 … … 358 345 /* tinet_kern.cfg */$NL$ 359 346 360 $ // TCP (IPv4) åä»å£347 $ // TCP (IPv4) 受付口 361 348 $IF LENGTH(TCP4_REP.ID_LIST) + LENGTH(VRID_TCP4_REP.ID_LIST)$ 362 349 $NL$ … … 371 358 $END$ 372 359 373 $ // TCP (IPv4) åä»å£360 $ // TCP (IPv4) 受付口 374 361 $IF LENGTH(TCP6_REP.ID_LIST) + LENGTH(VRID_TCP6_REP.ID_LIST)$ 375 362 $NL$ … … 384 371 $END$ 385 372 386 $ // TCP (IPv4) é信端ç¹373 $ // TCP (IPv4) 通信端点 387 374 $IF LENGTH(TCP4_CEP.ID_LIST) + LENGTH(VRID_TCP4_CEP.ID_LIST)$ 388 375 $NL$ … … 403 390 $END$ 404 391 405 $ // TCP (IPv6) é信端ç¹392 $ // TCP (IPv6) 通信端点 406 393 $IF LENGTH(TCP6_CEP.ID_LIST) + LENGTH(VRID_TCP6_CEP.ID_LIST)$ 407 394 $NL$ … … 422 409 $END$ 423 410 424 $ // UDP (IPv4) é信端ç¹411 $ // UDP (IPv4) 通信端点 425 412 $IF LENGTH(UDP4_CEP.ID_LIST) + LENGTH(VRID_UDP4_CEP.ID_LIST)$ 426 413 $NL$ … … 437 424 $END$ 438 425 439 $ // UDP (IPv6) é信端ç¹426 $ // UDP (IPv6) 通信端点 440 427 $IF LENGTH(UDP6_CEP.ID_LIST) + LENGTH(VRID_UDP6_CEP.ID_LIST)$ 441 428 $NL$ -
EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r279 r321 6 6 # Tomakomai National College of Technology, JAPAN 7 7 # 8 # ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 # ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 # å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 # ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 # è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 # ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 # ã¨ï¼ 27 # (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 32 # 害ãããï¼ä¸è¨èä½æ¨©è 33 ããã³TOPPERSããã¸ã§ã¯ããå 34 責ãããã¨ï¼ 35 # ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 36 # ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ãã 38 # å 39 責ãããã¨ï¼ 8 # 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 # ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 # 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 # スコード中に含まれていること. 14 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 # の無保証規定を掲載すること. 18 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 # と. 21 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 # また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 26 # 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 # 免責すること. 40 28 # 41 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 42 ã 43 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 44 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 45 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 46 # ã®è²¬ä»»ãè² ããªãï¼ 29 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 # の責任を負わない. 47 34 # 48 # @(#) $Id : tinet.tf 3 2013-09-27 01:07:16Z coas-nagasima$35 # @(#) $Id$ 49 36 # 50 37 # ===================================================================== 51 38 52 39 # ===================================================================== 53 # tinet_cfg.h ã®çæ40 # tinet_cfg.h の生成 54 41 # ===================================================================== 55 42 … … 100 87 101 88 # ===================================================================== 102 # tinet_cfg.c ã®çæ89 # tinet_cfg.c の生成 103 90 # ===================================================================== 104 91 … … 132 119 EOS 133 120 # 134 # ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼121 # インクルードディレクティブ(#include) 135 122 # 136 123 $tinetCfgC.add() … … 143 130 end 144 131 145 # // TCP (IPv4) åä»å£132 # // TCP (IPv4) 受付口 146 133 if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP4_REP].size > 0 147 134 $tinetCfgC.add() … … 174 161 end 175 162 176 # // TCP (IPv6) åä»å£163 # // TCP (IPv6) 受付口 177 164 if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0 178 165 $tinetCfgC.add() … … 205 192 end 206 193 207 # // TCP (IPv4) é信端ç¹194 # // TCP (IPv4) 通信端点 208 195 if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP4_CEP].size > 0 209 196 $tinetCfgC.add() … … 246 233 end 247 234 248 # // TCP (IPv6) é信端ç¹235 # // TCP (IPv6) 通信端点 249 236 if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0 250 237 $tinetCfgC.add() … … 287 274 end 288 275 289 # // UDP (IPv4) é信端ç¹276 # // UDP (IPv4) 通信端点 290 277 if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP4_CEP].size > 0 291 278 $tinetCfgC.add() … … 322 309 end 323 310 324 # // UDP (IPv6) é信端ç¹311 # // UDP (IPv6) 通信端点 325 312 if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0 326 313 $tinetCfgC.add() … … 358 345 359 346 # ===================================================================== 360 # tinet_kern.cfg ã®çæ361 # ===================================================================== 362 363 # // TCP (IPv4) åä»å£347 # tinet_kern.cfg の生成 348 # ===================================================================== 349 350 # // TCP (IPv4) 受付口 364 351 if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP4_REP].size > 0 365 352 $cfgData[:TCP_CRE_REP].each do |key, params| … … 381 368 end 382 369 383 # // TCP (IPv6) åä»å£370 # // TCP (IPv6) 受付口 384 371 if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0 385 372 $cfgData[:TCP6_CRE_REP].each do |key, params| … … 401 388 end 402 389 403 # // TCP (IPv4) é信端ç¹390 # // TCP (IPv4) 通信端点 404 391 if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP4_CEP].size > 0 405 392 $cfgData[:TCP_CRE_CEP].each do |key, params| … … 457 444 end 458 445 459 # // TCP (IPv6) é信端ç¹446 # // TCP (IPv6) 通信端点 460 447 if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0 461 448 $cfgData[:TCP6_CRE_CEP].each do |key, params| … … 513 500 end 514 501 515 # // UDP (IPv4) é信端ç¹502 # // UDP (IPv4) 通信端点 516 503 if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP4_CEP].size > 0 517 504 $cfgData[:UDP_CRE_CEP].each do |key, params| … … 547 534 end 548 535 549 # // UDP (IPv6) é信端ç¹536 # // UDP (IPv6) 通信端点 550 537 if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0 551 538 $cfgData[:UDP6_CRE_CEP].each do |key, params| -
Property svn:mime-type
changed from
-
EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * TINET ã®æ¨æºã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TINET の標準システムコンフィギュレーションファイル 48 36 */ 49 37 … … 75 63 76 64 /* 77 * TINET ãããã³ã«ã¹ã¿ãã¯å 78 é¨ã®ã«ã¼ãã«ãªãã¸ã§ã¯ãã®æå® 65 * TINET プロトコルスタック内部のカーネルオブジェクトの指定 79 66 */ 80 67 -
EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_config.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * TINET 1.2 ã¨ã®äºææ§ã®ããã®å®ç¾©51 */ 52 53 /* TCP ã®ååãªã¼ãã³ããµãã¼ãããã*/38 * TINET 1.2 との互換性のための定義 39 */ 40 41 /* TCPの受動オープンをサポートする。*/ 54 42 55 43 #define TCP_CFG_PASSIVE_OPEN 56 44 57 /* TCP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/45 /* TCPのノンブロッキングコール機能を組込む。*/ 58 46 59 47 #define TCP_CFG_NON_BLOCKING 60 48 61 /* UDP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/49 /* UDPのノンブロッキングコール機能を組込む。*/ 62 50 63 51 #define UDP_CFG_NON_BLOCKING 64 52 65 53 /* 66 * NIC ãã·ã¹ãã ãCPUãå¿ç¨ããã°ã©ã ã«67 * ä¾åããå®ç¾©ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããã54 * NIC、システム、CPU、応用プログラムに 55 * 依存する定義ファイルをインクルードする。 68 56 */ 69 57 … … 94 82 95 83 /* 96 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©84 * TINET 1.1 との互換性のための定義 97 85 */ 98 86 … … 102 90 103 91 /* 104 * TINET 1.2 ã¨ã®äºææ§ã®ããã®å®ç¾©92 * TINET 1.2 との互換性のための定義 105 93 */ 106 94 … … 110 98 111 99 /* 112 * TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©100 * TINET 1.3 との互換性のための定義 113 101 114 102 #ifdef NUM_MPF_NET_BUF_REASSM … … 118 106 119 107 /* 120 * TCP ã«é¢ããå®ç¾©121 */ 122 123 /* 124 * MAX_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æ大å¤108 * TCP に関する定義 109 */ 110 111 /* 112 * MAX_TCP_RCV_SEG: 受信セグメントサイズの最大値 125 113 * 126 * 注æ: å¤æ´ãã¹ãã§ã¯ãªãã114 * 注意: 変更すべきではない。 127 115 */ 128 116 … … 132 120 133 121 /* 134 * DEF_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤122 * DEF_TCP_SND_SEG: 送信セグメントサイズの規定値 135 123 */ 136 124 … … 140 128 141 129 /* 142 * TCP é信端ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½130 * TCP 通信端点の送受信ウィンドバッファの省コピー機能 143 131 */ 144 132 … … 156 144 157 145 /* 158 * TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã146 * TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット 159 147 * 160 * -1: BSD ã®å®è£ 161 ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã 162 * 0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã 148 * -1: BSD の実装、緊急ポインタは、緊急データの最後のバイトの次のバイトを差す。 149 * 0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。 163 150 */ 164 151 … … 168 155 169 156 /* 170 * ARP ã«é¢ããå®ç¾©157 * ARP に関する定義 171 158 */ 172 159 173 160 #ifndef ARP_CACHE_KEEP 174 #define ARP_CACHE_KEEP (20*60*NET_TIMER_HZ) /* ARP ãã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ã*/175 #endif 176 177 /* 178 * ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã«é¢ããå®ç¾©161 #define ARP_CACHE_KEEP (20*60*NET_TIMER_HZ) /* ARP キャッシュのタイムアウト */ 162 #endif 163 164 /* 165 * ループバックインタフェースに関する定義 179 166 */ 180 167 181 168 #ifndef LOMTU 182 #define LOMTU 1500 /* ã«ã¼ãããã¯ã®MTU */183 #endif 184 185 /* 186 * TINET ãµãã¼ãé¢æ°ã«é¢ããå®ç¾©187 */ 188 189 #ifndef NUM_IPV4ADDR_STR_BUFF /* ip2str ã«ããã IP ã¢ãã¬ã¹æååç¨ãããã¡æ°*/169 #define LOMTU 1500 /* ループバックの MTU */ 170 #endif 171 172 /* 173 * TINET サポート関数に関する定義 174 */ 175 176 #ifndef NUM_IPV4ADDR_STR_BUFF /* ip2str における IP アドレス文字列用バッファ数 */ 190 177 191 178 #if defined(SUPPORT_PPP) … … 202 189 203 190 #ifndef NUM_IPV6ADDR_STR_BUFF 204 #define NUM_IPV6ADDR_STR_BUFF 2 /* ip62str ã«ããã IP ã¢ãã¬ã¹æååç¨ãããã¡æ°*/205 #endif 206 207 #ifndef NUM_MACADDR_STR_BUFF /* macstr ã«ããã MAC ã¢ãã¬ã¹æååç¨ãããã¡æ°*/191 #define NUM_IPV6ADDR_STR_BUFF 2 /* ip62str における IP アドレス文字列用バッファ数 */ 192 #endif 193 194 #ifndef NUM_MACADDR_STR_BUFF /* macstr における MAC アドレス文字列用バッファ数 */ 208 195 209 196 #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING) … … 220 207 221 208 /* 222 * TINET å 223 é¨ã®ã¿ã¤ã ã¢ã¦ãå¤ã®è¨å® 209 * TINET 内部のタイムアウト値の設定 224 210 */ 225 211 226 212 #ifndef TMO_IP4_FRAG_GET_NET_BUF 227 #define TMO_IP4_FRAG_GET_NET_BUF ULONG_C(1000*1000) /* [ms] ãIPv4 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/213 #define TMO_IP4_FRAG_GET_NET_BUF ULONG_C(1000*1000) /* [ms]、IPv4 データグラム再構成用ネットワークバッファ獲得タイムアウト */ 228 214 #endif 229 215 230 216 #ifndef TMO_IP6_FRAG_GET_NET_BUF 231 #define TMO_IP6_FRAG_GET_NET_BUF ULONG_C(1000*1000) /* [ms] ãIPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/217 #define TMO_IP6_FRAG_GET_NET_BUF ULONG_C(1000*1000) /* [ms]、IPv6 データグラム再構成用ネットワークバッファ獲得タイムアウト */ 232 218 #endif 233 219 234 220 #ifndef TMO_PPP_GET_NET_BUF 235 #define TMO_PPP_GET_NET_BUF ULONG_C(1000*1000) /* [ms] ãPPP åä¿¡ç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/221 #define TMO_PPP_GET_NET_BUF ULONG_C(1000*1000) /* [ms]、PPP 受信用ネットワークバッファ獲得タイムアウト */ 236 222 #endif 237 223 238 224 #ifndef TMO_ARP_GET_NET_BUF 239 #define TMO_ARP_GET_NET_BUF ULONG_C(1000*1000) /* [ms] ãARP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/225 #define TMO_ARP_GET_NET_BUF ULONG_C(1000*1000) /* [ms]、ARP のネットワークバッファ獲得タイムアウト */ 240 226 #endif 241 227 242 228 #ifndef TMO_TCP_GET_NET_BUF 243 #define TMO_TCP_GET_NET_BUF ULONG_C(1000*1000) /* [ms] ãTCP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/229 #define TMO_TCP_GET_NET_BUF ULONG_C(1000*1000) /* [ms]、TCP のネットワークバッファ獲得タイムアウト */ 244 230 #endif 245 231 246 232 #ifndef TMO_TCP_OUTPUT 247 #define TMO_TCP_OUTPUT ULONG_C(1000*1000) /* [ms] ãTCP åºåã¿ã¤ã ã¢ã¦ã*/233 #define TMO_TCP_OUTPUT ULONG_C(1000*1000) /* [ms]、TCP 出力タイムアウト */ 248 234 #endif 249 235 250 236 #ifndef TMO_UDP_OUTPUT 251 #define TMO_UDP_OUTPUT ULONG_C(1000*1000) /* [ms] ãUDP åºåã¿ã¤ã ã¢ã¦ã*/237 #define TMO_UDP_OUTPUT ULONG_C(1000*1000) /* [ms]、UDP 出力タイムアウト */ 252 238 #endif 253 239 254 240 #ifndef TMO_ICMP_OUTPUT 255 #define TMO_ICMP_OUTPUT ULONG_C(1000*1000) /* [ms] ãICMP åºåã¿ã¤ã ã¢ã¦ã*/241 #define TMO_ICMP_OUTPUT ULONG_C(1000*1000) /* [ms]、ICMP 出力タイムアウト */ 256 242 #endif 257 243 258 244 #ifndef TMO_ND6_NS_OUTPUT 259 #define TMO_ND6_NS_OUTPUT ULONG_C(1000*1000) /* [ms] ãè¿é£è¦è«åºåã¿ã¤ã ã¢ã¦ã*/245 #define TMO_ND6_NS_OUTPUT ULONG_C(1000*1000) /* [ms]、近隣要請出力タイムアウト */ 260 246 #endif 261 247 262 248 #ifndef TMO_ND6_NA_OUTPUT 263 #define TMO_ND6_NA_OUTPUT ULONG_C(1000*1000) /* [ms] ãè¿é£éç¥åºåã¿ã¤ã ã¢ã¦ã*/249 #define TMO_ND6_NA_OUTPUT ULONG_C(1000*1000) /* [ms]、近隣通知出力タイムアウト */ 264 250 #endif 265 251 266 252 #ifndef TMO_ND6_RS_OUTPUT 267 #define TMO_ND6_RS_OUTPUT ULONG_C(1000*1000) /* [ms] ãã«ã¼ã¿è¦è«åºåã¿ã¤ã ã¢ã¦ã*/253 #define TMO_ND6_RS_OUTPUT ULONG_C(1000*1000) /* [ms]、ルータ要請出力タイムアウト */ 268 254 #endif 269 255 270 256 #ifndef TMO_ARP_OUTPUT 271 #define TMO_ARP_OUTPUT ULONG_C(1000*1000) /* [ms] ãã¢ãã¬ã¹è§£æ±ºè¦æ±åºåã¿ã¤ã ã¢ã¦ã*/257 #define TMO_ARP_OUTPUT ULONG_C(1000*1000) /* [ms]、アドレス解決要求出力タイムアウト */ 272 258 #endif 273 259 274 260 #ifndef TMO_ND6_RTR_SOL_DELAY 275 #define TMO_ND6_RTR_SOL_DELAY ULONG_C(1000*1000) /* [ms]ãã«ã¼ã¿è¦è«åºåé 276 延 */ 261 #define TMO_ND6_RTR_SOL_DELAY ULONG_C(1000*1000) /* [ms]、ルータ要請出力遅延 */ 277 262 #endif 278 263 279 264 #ifndef TMO_ND6_RTR_SOL_INTERVAL 280 #define TMO_ND6_RTR_SOL_INTERVAL ULONG_C(4000*1000) /* [ms] ãã«ã¼ã¿è¦è«åºåéé*/265 #define TMO_ND6_RTR_SOL_INTERVAL ULONG_C(4000*1000) /* [ms]、ルータ要請出力間隔 */ 281 266 #endif 282 267 283 268 #ifndef TMO_IN_REDIRECT 284 /* [s] ãåãç´ãã«ã¼ãã£ã³ã°ã¨ã³ããªã¿ã¤ã ã¢ã¦ã*/269 /* [s]、向け直しルーティングエントリタイムアウト*/ 285 270 #define TMO_IN_REDIRECT (10*60*NET_TIMER_HZ) 286 271 #endif 287 272 288 273 /* 289 * TINET å 290 é¨ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®è¨å® 274 * TINET 内部のタスクのスタックサイズの設定 291 275 */ 292 276 293 277 #ifndef TCP_OUT_TASK_STACK_SIZE 294 #define TCP_OUT_TASK_STACK_SIZE 1024 /* TCP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/278 #define TCP_OUT_TASK_STACK_SIZE 1024 /* TCP 出力タスクのスタックサイズ */ 295 279 #endif 296 280 297 281 #ifndef UDP_OUT_TASK_STACK_SIZE 298 #define UDP_OUT_TASK_STACK_SIZE 1024 /* UDP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/282 #define UDP_OUT_TASK_STACK_SIZE 1024 /* UDP 出力タスクのスタックサイズ */ 299 283 #endif 300 284 301 285 #ifndef PPP_INPUT_STACK_SIZE 302 #define PPP_INPUT_STACK_SIZE 1024 /* PPP ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/286 #define PPP_INPUT_STACK_SIZE 1024 /* PPP タスクのスタックサイズ */ 303 287 #endif 304 288 305 289 #ifndef PPP_OUTPUT_STACK_SIZE 306 #define PPP_OUTPUT_STACK_SIZE 1024 /* PPP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/290 #define PPP_OUTPUT_STACK_SIZE 1024 /* PPP 出力タスクのスタックサイズ */ 307 291 #endif 308 292 309 293 #ifndef ETHER_INPUT_STACK_SIZE 310 #define ETHER_INPUT_STACK_SIZE 1024 /* Ethernet å 311 ¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 294 #define ETHER_INPUT_STACK_SIZE 1024 /* Ethernet 入力タスクのスタックサイズ */ 312 295 #endif 313 296 314 297 #ifndef ETHER_OUTPUT_STACK_SIZE 315 #define ETHER_OUTPUT_STACK_SIZE 1024 /* Ethernet åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/298 #define ETHER_OUTPUT_STACK_SIZE 1024 /* Ethernet 出力タスクのスタックサイズ */ 316 299 #endif 317 300 318 301 #ifndef LOOP_INPUT_STACK_SIZE 319 #define LOOP_INPUT_STACK_SIZE 1024 /* ã«ã¼ãããã¯å 320 ¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 302 #define LOOP_INPUT_STACK_SIZE 1024 /* ループバック入力タスクのスタックサイズ */ 321 303 #endif 322 304 323 305 #ifndef LOOP_OUTPUT_STACK_SIZE 324 #define LOOP_OUTPUT_STACK_SIZE 1024 /* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/306 #define LOOP_OUTPUT_STACK_SIZE 1024 /* ループバック出力タスクのスタックサイズ */ 325 307 #endif 326 308 327 309 #ifndef NET_TIMER_STACK_SIZE 328 #define NET_TIMER_STACK_SIZE 1024 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 329 #endif 330 331 /* 332 * TINET å 333 é¨ã®ã¿ã¹ã¯ã®åªå 334 度ã®è¨å® 310 #define NET_TIMER_STACK_SIZE 1024 /* ネットワークタイマタスクのスタックサイズ */ 311 #endif 312 313 /* 314 * TINET 内部のタスクの優先度の設定 335 315 */ 336 316 337 317 #ifndef TCP_OUT_TASK_PRIORITY 338 #define TCP_OUT_TASK_PRIORITY 5 /* TCP åºåã¿ã¹ã¯ã®åªå 339 度 */ 318 #define TCP_OUT_TASK_PRIORITY 5 /* TCP 出力タスクの優先度 */ 340 319 #endif 341 320 342 321 #ifndef UDP_OUT_TASK_PRIORITY 343 #define UDP_OUT_TASK_PRIORITY 5 /* UDP åºåã¿ã¹ã¯ã®åªå 344 度 */ 322 #define UDP_OUT_TASK_PRIORITY 5 /* UDP 出力タスクの優先度 */ 345 323 #endif 346 324 347 325 #ifndef PPP_INPUT_PRIORITY 348 #define PPP_INPUT_PRIORITY 5 /* PPP ã¿ã¹ã¯ã®åªå 349 度 */ 326 #define PPP_INPUT_PRIORITY 5 /* PPP タスクの優先度 */ 350 327 #endif 351 328 352 329 #ifndef PPP_OUTPUT_PRIORITY 353 #define PPP_OUTPUT_PRIORITY 5 /* PPP ã¿ã¹ã¯ã®åªå 354 度 */ 330 #define PPP_OUTPUT_PRIORITY 5 /* PPP タスクの優先度 */ 355 331 #endif 356 332 357 333 #ifndef ETHER_INPUT_PRIORITY 358 #define ETHER_INPUT_PRIORITY 5 /* Ethernet å 359 ¥åã¿ã¹ã¯ã®åªå 360 度 */ 334 #define ETHER_INPUT_PRIORITY 5 /* Ethernet 入力タスクの優先度 */ 361 335 #endif 362 336 363 337 #ifndef ETHER_OUTPUT_PRIORITY 364 #define ETHER_OUTPUT_PRIORITY 5 /* Ethernet åºåã¿ã¹ã¯ã®åªå 365 度 */ 338 #define ETHER_OUTPUT_PRIORITY 5 /* Ethernet 出力タスクの優先度 */ 366 339 #endif 367 340 368 341 #ifndef LOOP_INPUT_PRIORITY 369 #define LOOP_INPUT_PRIORITY 5 /* ã«ã¼ãããã¯å 370 ¥åã¿ã¹ã¯ã®åªå 371 度 */ 342 #define LOOP_INPUT_PRIORITY 5 /* ループバック入力タスクの優先度 */ 372 343 #endif 373 344 374 345 #ifndef LOOP_OUTPUT_PRIORITY 375 #define LOOP_OUTPUT_PRIORITY 5 /* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®åªå 376 度 */ 346 #define LOOP_OUTPUT_PRIORITY 5 /* ループバック出力タスクの優先度 */ 377 347 #endif 378 348 379 349 #ifndef NET_TIMER_PRIORITY 380 #define NET_TIMER_PRIORITY 5 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®åªå 381 度 */ 382 #endif 383 384 /* 385 * TINET å 386 é¨ã®ãã¼ã¿ãã¥ã¼ã®ã¨ã³ããªæ°ã®è¨å® 387 */ 388 389 /* UDP åä¿¡ãã¥ã¼ãµã¤ãº */ 350 #define NET_TIMER_PRIORITY 5 /* ネットワークタイマタスクの優先度 */ 351 #endif 352 353 /* 354 * TINET 内部のデータキューのエントリ数の設定 355 */ 356 357 /* UDP 受信キューサイズ */ 390 358 391 359 #ifndef NUM_DTQ_UDP_RCVQ 392 #define NUM_DTQ_UDP_RCVQ 1 /* éã³ã¼ã«ããã¯ç¨*/360 #define NUM_DTQ_UDP_RCVQ 1 /* 非コールバック用 */ 393 361 #endif 394 362 395 363 #ifndef NUM_DTQ_UDP_OUTPUT 396 #define NUM_DTQ_UDP_OUTPUT 1 /* UDP åºåãã¼ã¿ãã¥ã¼ãµã¤ãº*/364 #define NUM_DTQ_UDP_OUTPUT 1 /* UDP 出力データキューサイズ */ 397 365 #endif 398 366 399 367 #ifndef NUM_DTQ_PPP_OUTPUT 400 #define NUM_DTQ_PPP_OUTPUT 2 /* PPP åºåãã¼ã¿ãã¥ã¼ãµã¤ãºã2 以ä¸*/368 #define NUM_DTQ_PPP_OUTPUT 2 /* PPP 出力データキューサイズ、2 以上 */ 401 369 #endif 402 370 403 371 #ifndef NUM_DTQ_ETHER_OUTPUT 404 #define NUM_DTQ_ETHER_OUTPUT 2 /* Ethernet åºåãã¼ã¿ãã¥ã¼ãµã¤ãº*/372 #define NUM_DTQ_ETHER_OUTPUT 2 /* Ethernet 出力データキューサイズ */ 405 373 #endif 406 374 407 375 #ifndef NUM_DTQ_LOOP_INPUT 408 #define NUM_DTQ_LOOP_INPUT 0 /* ã«ã¼ãããã¯å 409 ¥åãã¼ã¿ãã¥ã¼ãµã¤ãº */ 376 #define NUM_DTQ_LOOP_INPUT 0 /* ループバック入力データキューサイズ */ 410 377 #endif 411 378 412 379 #ifndef NUM_DTQ_LOOP_OUTPUT 413 #define NUM_DTQ_LOOP_OUTPUT 0 /* ã«ã¼ãããã¯åºåãã¼ã¿ãã¥ã¼ãµã¤ãº */ 414 #endif 415 416 /* 417 * TINET ãããã³ã«ã¹ã¿ãã¯å 418 é¨ã®ãªãã¼ã 380 #define NUM_DTQ_LOOP_OUTPUT 0 /* ループバック出力データキューサイズ */ 381 #endif 382 383 /* 384 * TINET プロトコルスタック内部のリネーム 419 385 */ 420 386 -
EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_defs.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 56 44 57 45 /* 58 * ã«ã¼ãã«ã®èå¥46 * カーネルの識別 59 47 */ 60 48 -
EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_kernel_defs.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 45 33 46 34 /* 47 * ã«ã¼ãã«ã«é¢ããäºææ§å®ç¾©ãã¡ã¤ã«35 * カーネルに関する互換性定義ファイル 48 36 */ 49 37 … … 56 44 57 45 /* 58 * ãã¼ã¿åã®å®ç¾©ï¼inttype.hï¼46 * データ型の定義(inttype.h) 59 47 */ 60 48 61 49 #ifdef _int8_ 62 typedef _int8_ int8_t; /* 符å·ä»ã 8 ãããæ´æ°*/63 typedef unsigned _int8_ uint8_t; /* 符å·ç¡ã 8 ãããæ´æ°*/50 typedef _int8_ int8_t; /* 符号付き 8 ビット整数 */ 51 typedef unsigned _int8_ uint8_t; /* 符号無し 8 ビット整数 */ 64 52 #endif /* of #ifdef _int8_ */ 65 53 66 54 #ifdef _int16_ 67 typedef _int16_ int16_t; /* 符å·ä»ã 16 ãããæ´æ°*/68 typedef unsigned _int16_ uint16_t; /* 符å·ç¡ã 16 ãããæ´æ°*/55 typedef _int16_ int16_t; /* 符号付き 16 ビット整数 */ 56 typedef unsigned _int16_ uint16_t; /* 符号無し 16 ビット整数 */ 69 57 #endif /* of #ifdef _int16_ */ 70 58 71 59 #ifdef _int32_ 72 typedef _int32_ int32_t; /* 符å·ä»ã 32 ãããæ´æ°*/73 typedef unsigned _int32_ uint32_t; /* 符å·ç¡ã 32 ãããæ´æ°*/60 typedef _int32_ int32_t; /* 符号付き 32 ビット整数 */ 61 typedef unsigned _int32_ uint32_t; /* 符号無し 32 ビット整数 */ 74 62 #endif /* of #ifdef _int32_ */ 75 63 76 64 #ifdef _int64_ 77 typedef unsigned _int64_ uint64_t; /* 符å·ç¡ã 64 ãããæ´æ°*/65 typedef unsigned _int64_ uint64_t; /* 符号無し 64 ビット整数 */ 78 66 #endif /* of #ifdef _int64_ */ 79 67 80 typedef signed int int_t; /* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ°*/81 typedef unsigned int uint_t; /* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ°*/68 typedef signed int int_t; /* 自然なサイズの符号付き整数 */ 69 typedef unsigned int uint_t; /* 自然なサイズの符号無し整数 */ 82 70 83 typedef signed long long_t; /* é·ãã®ãµã¤ãºã®ç¬¦å·ä»ãæ´æ°*/84 typedef unsigned long ulong_t; /* é·ãã®ãµã¤ãºã®ç¬¦å·ç¡ãæ´æ°*/71 typedef signed long long_t; /* 長めのサイズの符号付き整数 */ 72 typedef unsigned long ulong_t; /* 長めのサイズの符号無し整数 */ 85 73 86 74 #ifdef _vp_int_ 87 typedef _vp_int_ intptr_t; /* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ°*/75 typedef _vp_int_ intptr_t; /* ポインタまたは符号付き整数 */ 88 76 #else /* of #ifdef _vp_int_ */ 89 typedef VP intptr_t; /* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ°*/77 typedef VP intptr_t; /* ポインタまたは符号付き整数 */ 90 78 #endif /* of #ifdef _vp_int_ */ 91 79 92 typedef int bool_t; /* çå½å¤*/80 typedef int bool_t; /* 真偽値 */ 93 81 94 82 #ifndef true 95 #define true 1 /* ç*/83 #define true 1 /* 真 */ 96 84 #endif /* true */ 97 85 98 86 #ifndef false 99 #define false 0 /* å½*/87 #define false 0 /* 偽 */ 100 88 #endif /* false */ 101 89 102 90 #endif /* of #ifndef _MACRO_ONLY */ 103 91 104 /* æ§é ä½ structure ä¸ã®ãã£ã¼ã«ã field ã®ãã¤ãä½ç½®ãè¿ããã¯ã*/92 /* 構造体 structure 中のフィールド field のバイト位置を返すマクロ */ 105 93 #ifndef offsetof 106 94 #define offsetof(structure, field) ((size_t) &(((structure *) 0)->field)) … … 108 96 109 97 /* 110 * æ´æ°å®æ°ãä½ããã¯ã98 * 整数定数を作るマクロ 111 99 */ 112 100 #ifndef UINT_C 113 #define UINT_C(val) (val ## U) /* uint_t åã®å®æ°ãä½ããã¯ã*/101 #define UINT_C(val) (val ## U) /* uint_t型の定数を作るマクロ */ 114 102 #endif /* UINT_C */ 115 103 116 104 #ifndef ULONG_C 117 #define ULONG_C(val) (val ## UL) /* ulong_t åã®å®æ°ãä½ããã¯ã*/105 #define ULONG_C(val) (val ## UL) /* ulong_t型の定数を作るマクロ */ 118 106 #endif /* ULONG_C */ 119 107
Note:
See TracChangeset
for help on using the changeset viewer.