Changeset 389 for azure_iot_hub/trunk/asp3_dcre/tinet
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- Location:
- azure_iot_hub/trunk/asp3_dcre/tinet
- Files:
-
- 269 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tinet/Makefile.tinet
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile;charset=UTF-8
r388 r389 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$ … … 46 34 47 35 # 48 # ãããã«ã¦ã§ã¢ã® Makefile ã®ã¤ã³ã¯ã«ã¼ããã«è¿½å ããã49 # 50 51 # 52 # ã«ã¼ãã«ã®èå¥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 # TINET 1.7 以éã¯ããããã¯ã¼ã¯å±¤ã®æå®ãå¤æ´ããã65 # TINET 1.7 以降は、ネットワーク層の指定を変更した。 78 66 # 79 67 … … 95 83 96 84 # 97 # ãããã¯ã¼ã¯ãµã¼ãã¹ã«é¢ããå®ç¾©98 # 99 100 # æ±ç¨éä¿¡æ©è½85 # ネットワークサービスに関する定義 86 # 87 88 # 汎用通信機能 101 89 102 90 TINET_DIRS = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet:$(TINET_ROOT)/netinet6 … … 143 131 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_PPP 144 132 145 # IPv6 ç¨cp133 # IPv6用 cp 146 134 TINET_COBJS := $(TINET_COBJS) ppp_ipv6cp.o 147 135 148 # IPv4 ç¨cp136 # IPv4用 cp 149 137 TINET_COBJS := $(TINET_COBJS) ppp_ipcp.o 150 138 … … 158 146 endif 159 147 160 # ã¿ã¼ã²ããä¾åã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã148 # ターゲット依存の定義のインクルード 161 149 162 150 ifeq ($(TARGET_KERNEL),ASP) … … 219 207 220 208 # 221 # TINET ã©ã¤ãã©ãªã®å®ç¾©209 # TINET ライブラリの定義 222 210 # 223 211 … … 257 245 258 246 # 259 # ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã260 # ãªãã¸ã§ã¯ããã¡ã¤ã«ã®å®ç¾©247 # ライブラリ化するソースファイルから生成される 248 # オブジェクトファイルの定義 261 249 # 262 250 TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=))) … … 283 271 284 272 # 285 # ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã286 # ãªãã¸ã§ã¯ããã¡ã¤ã«ã®ä¾åé¢ä¿ã®å®ç¾©273 # ライブラリ化するソースファイルから生成される 274 # オブジェクトファイルの依存関係の定義 287 275 # 288 276 $(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c tcpn_usrreq.c … … 291 279 292 280 # 293 # TINET ã©ã¤ãã©ãªã®å®ç¾©281 # TINET ライブラリの定義 294 282 # 295 283 TINET_LIB_OBJS = $(TINET_LCOBJS) 296 284 297 285 # 298 # TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©286 # TINET コンフィギュレーションファイルの定義 299 287 # 300 288 … … 318 306 319 307 # 320 # å 321 ±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 308 # 共通コンパイルオプションの定義への追加 322 309 # 323 310 CDEFS := $(CDEFS) $(TINET_CDEFS) … … 325 312 326 313 # 327 # TINET ã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å314 # TINET コンパイルオプションの定義への追加 328 315 # 329 316 TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing 330 317 331 318 # 332 # ã·ã¹ãã ãµã¼ãã¹ãããã«ã¦ã§ã¢ã«é¢ããå®ç¾©319 # システムサービス、ミドルウェアに関する定義 333 320 # 334 321 … … 368 355 369 356 # 370 # TINET ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ357 # TINET ライブラリファイルの生成 371 358 # 372 359 libtinet.a: $(TINET_LIB_OBJS) … … 376 363 377 364 # 378 # ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©365 # コンパイルルールの定義 379 366 # 380 367 … … 397 384 398 385 # 399 # ã³ã³ãã¤ã«çµæã®æ¶å»386 # コンパイル結果の消去 400 387 # 401 388 cleantinet: -
Property svn:mime-type
changed from
-
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 … … 93 81 94 82 /* 95 * å¤æ°83 * 変数 96 84 */ 97 85 … … 106 94 107 95 /* 108 * å¤æ°109 */ 110 111 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½*/96 * 変数 97 */ 98 99 /* ネットワークインタフェース構造体 */ 112 100 113 101 static T_IFNET ether_ifnet; … … 115 103 #ifdef SUPPORT_MIB 116 104 117 /* SNMP 㮠管çæ 118 å ±ãã¼ã¹ (MIB) */ 105 /* SNMP の 管理情報ベース (MIB) */ 119 106 120 107 T_IF_STATS if_stats; … … 125 112 126 113 /* 127 * é¢æ°114 * 関数 128 115 */ 129 116 … … 131 118 132 119 /* 133 * ieee_802_input -- IEEE 802.3 å 134 ¥åå¦ç 120 * ieee_802_input -- IEEE 802.3 入力処理 135 121 */ 136 122 … … 150 136 151 137 /* 152 * ether_srand -- ä¹±æ°ãåæå¤ãè¿ãã138 * ether_srand -- 乱数を初期値を返す。 153 139 */ 154 140 … … 178 164 179 165 /* 180 * ether_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã166 * ether_get_ifnet -- ネットワークインタフェース構造体を返す。 181 167 */ 182 168 … … 190 176 191 177 /* 192 * ether_in6_resolve_multicast -- ã¤ã¼ãµãããã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ178 * ether_in6_resolve_multicast -- イーサネットのマルチキャストアドレスへの変換 193 179 */ 194 180 … … 196 182 ether_in6_resolve_multicast (T_ETHER_ADDR *ifaddr, const T_IN6_ADDR *maddr) 197 183 { 198 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ããã§ãã¯ããã*/184 /* マルチキャストアドレスかチェックする。*/ 199 185 if (!IN6_IS_ADDR_MULTICAST(maddr)) 200 186 return E_PAR; 201 187 202 /* ã¤ã¼ãµãããã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ*/188 /* イーサネットのマルチキャストアドレスへの変換 */ 203 189 ether_map_ipv6_multicast(ifaddr, maddr); 204 190 … … 209 195 210 196 /** 211 * ether_set_link_up -- ãªã³ã¯ããã¨ãã«NICããå¼ã³åºããã197 * ether_set_link_up -- リンクしたときにNICから呼び出される 212 198 */ 213 199 void … … 219 205 if (ether_ifnet.flags & IF_FLAG_UP) { 220 206 #if defined(_IP4_CFG) && defined(SUPPORT_ETHER) 221 /* ARP åæ§ç¯ï¼*/207 /* ARP再構築? */ 222 208 #endif /* #if defined(_IP4_CFG) && defined(SUPPORT_ETHER) */ 223 209 224 210 #ifdef SUPPORT_IGMP 225 /* IGMP åå*/211 /* IGMP参加 */ 226 212 #endif /* #ifdef SUPPORT_IGMP */ 227 213 } … … 233 219 234 220 /** 235 * ether_set_link_up -- ãªã³ã¯ãåæããã¨ãã«NICããå¼ã³åºããã221 * ether_set_link_up -- リンクが切断したときにNICから呼び出される 236 222 */ 237 223 void … … 247 233 248 234 /* 249 * ether_set_up -- DHCP ã§ã¢ãã¬ã¹ãè¨å®ãããã¨ãå¼ã³åºããã235 * ether_set_up -- DHCPでアドレスが設定されたとき呼び出される 250 236 */ 251 237 … … 262 248 263 249 /* 264 * ether_set_down -- DHCP ã§ã¢ãã¬ã¹ã解æ¾ãããã¨ãå¼ã³åºããã250 * ether_set_down -- DHCPでアドレスが解放されたとき呼び出される 265 251 */ 266 252 … … 277 263 278 264 /* 279 * ether_set_link_callback -- ãªã³ã¯ç¶æ 280 å¤åæã®ã³ã¼ã«ããã¯ç»é² 265 * ether_set_link_callback -- リンク状態変化時のコールバック登録 281 266 */ 282 267 … … 291 276 292 277 /* 293 * ether_raw_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºç¡ã278 * ether_raw_output -- Ethernet インタフェースの出力関数、MAC アドレス解決無し 294 279 */ 295 280 … … 299 284 ER error = E_OK; 300 285 301 /* Ethernet åºåãã¥ã¼ã«æå 302 ¥ããã*/ 286 /* Ethernet 出力キューに投入する。*/ 303 287 if ((error = tsnd_dtq(DTQ_ETHER_OUTPUT, (intptr_t)output, tmout)) != E_OK) { 304 288 NET_COUNT_ETHER(net_count_ether.out_err_packets, 1); 305 289 NET_COUNT_MIB(if_stats.ifOutDiscards, 1); 306 290 307 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/291 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 308 292 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 309 293 syscall(rel_net_buf(output)); … … 318 302 319 303 /* 320 * ether_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºæã304 * ether_output -- Ethernet インタフェースの出力関数、MAC アドレス解決有り 321 305 */ 322 306 … … 328 312 T_ETHER_HDR *eth; 329 313 330 /* éä¿¡å 331 MAC ã¢ãã¬ã¹ãè¨å®ããã*/ 314 /* 送信元 MAC アドレスを設定する。*/ 332 315 ic = IF_ETHER_NIC_GET_SOFTC(); 333 316 eth = GET_ETHER_HDR(output); … … 340 323 case ETHER_TYPE_IP: /* IPv4 */ 341 324 #ifdef ETHER_CFG_MULTICAST 342 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®å ´å*/325 /* マルチキャストアドレスの場合 */ 343 326 if(IN4_IS_ADDR_MULTICAST(*(uint32_t*)dst)){ 344 /* ã¤ã¼ãµãããã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ*/327 /* イーサネットのマルチキャストアドレスへの変換 */ 345 328 ether_map_ipv4_multicast((T_ETHER_ADDR *)ð->dhost, *(T_IN4_ADDR*)dst); 346 329 error = ether_raw_output(output, tmout); … … 348 331 } 349 332 #endif 350 if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) { /* true ãªãã¢ãã¬ã¹è§£æ±ºæ¸*/333 if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) { /* true ならアドレス解決済 */ 351 334 error = ether_raw_output(output, tmout); 352 335 } … … 363 346 error = ether_raw_output(output, tmout); 364 347 365 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/348 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 366 349 else if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 367 350 syscall(rel_net_buf(output)); … … 377 360 NET_COUNT_MIB(if_stats.ifOutErrors, 1); 378 361 379 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/362 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 380 363 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 381 364 syscall(rel_net_buf(output)); … … 394 377 395 378 /* 396 * Ethernet åºåã¿ã¹ã¯379 * Ethernet 出力タスク 397 380 */ 398 381 … … 448 431 449 432 /* 450 * Ethernet å 451 ¥åã¿ã¹ã¯ 433 * Ethernet 入力タスク 452 434 */ 453 435 … … 462 444 uint8_t rcount = 0; 463 445 464 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç®¡çãåæåããã*/446 /* ネットワークインタフェース管理を初期化する。*/ 465 447 ifinit(); 466 448 467 /* ã¤ã¼ãµããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç®¡çãåæåããã*/449 /* イーサネットネットワークインタフェース管理を初期化する。*/ 468 450 469 451 #if defined(_IP4_CFG) 470 452 471 ether_ifnet.in4_ifaddr.addr = IPV4_ADDR_LOCAL; /* IPv4 ã¢ãã¬ã¹*/472 ether_ifnet.in4_ifaddr.mask = IPV4_ADDR_LOCAL_MASK; /* ãµãããããã¹ã¯*/453 ether_ifnet.in4_ifaddr.addr = IPV4_ADDR_LOCAL; /* IPv4 アドレス */ 454 ether_ifnet.in4_ifaddr.mask = IPV4_ADDR_LOCAL_MASK; /* サブネットマスク */ 473 455 474 456 #endif /* of #if defined(_IP4_CFG) */ 475 457 476 /* NIC ãåæåããã*/458 /* NIC を初期化する。*/ 477 459 ic = IF_ETHER_NIC_GET_SOFTC(); 478 460 IF_ETHER_NIC_PROBE(ic); 479 461 IF_ETHER_NIC_INIT(ic); 480 462 481 /* Ethernet åºåã¿ã¹ã¯ãèµ·åãã*/463 /* Ethernet 出力タスクを起動する */ 482 464 syscall(act_tsk(ETHER_OUTPUT_TASK)); 483 465 484 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã*/466 /* ネットワークタイマタスクを起動する */ 485 467 syscall(act_tsk(NET_TIMER_TASK)); 486 468 … … 492 474 #if defined(_IP4_CFG) 493 475 494 /* ARP ãåæåããã*/476 /* ARP を初期化する。*/ 495 477 arp_init(); 496 478 … … 499 481 ether_ifnet.ic = ic; 500 482 501 /* ä¹±æ°çæãåæåããã*/483 /* 乱数生成を初期化する。*/ 502 484 net_srand(0); 503 485 … … 511 493 proto = ntohs(eth->type); 512 494 513 /* ä¹±æ°çæãåæåããã*/495 /* 乱数生成を初期化する。*/ 514 496 if (rcount == 0) { 515 497 -
azure_iot_hub/trunk/asp3_dcre/tinet/net/ethernet.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 }); -
azure_iot_hub/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
r388 r389 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 … … 122 110 #if IF_ETHER_NIC_HDR_ALIGN != 0 123 111 124 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* ã¢ã©ã¤ã³èª¿æ´*/112 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* アライン調整 */ 125 113 126 114 #endif /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */ … … 137 125 #if IF_ETHER_NIC_HDR_ALIGN != 0 138 126 139 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* ã¢ã©ã¤ã³èª¿æ´*/127 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* アライン調整 */ 140 128 141 129 #endif /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */ … … 152 140 #if IF_ETHER_NIC_HDR_ALIGN != 0 153 141 154 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* ã¢ã©ã¤ã³èª¿æ´*/142 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* アライン調整 */ 155 143 156 144 #endif /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */ … … 166 154 167 155 /* 168 * MAC ã¢ãã¬ã¹ã®å®ç¾©169 */ 170 171 #define ETHER_MCAST_ADDR UINT_C(0x01) /* ãã«ããã£ã¹ãã»ã¢ãã¬ã¹*/172 #define ETHER_LOCAL_ADDR UINT_C(0x02) /* ãã¼ã«ã«ã»ã¢ãã¬ã¹*/156 * MAC アドレスの定義 157 */ 158 159 #define ETHER_MCAST_ADDR UINT_C(0x01) /* マルチキャスト・アドレス */ 160 #define ETHER_LOCAL_ADDR UINT_C(0x02) /* ローカル・アドレス */ 173 161 174 162 typedef struct t_ether_addr { … … 183 171 184 172 /* 185 * Type ãã£ã¼ã«ã173 * Type フィールド 186 174 */ 187 175 … … 191 179 192 180 /* 193 * ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã194 */ 195 196 #define T_IF_HDR T_ETHER_HDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã*/197 #define T_IF_ADDR T_ETHER_ADDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹*/198 #define IF_HDR_ALIGN 2 /* ãããã®ã¢ã©ã¤ã³åä½*/199 #define IF_MTU 1500 /* ã¤ã³ã¿ãã§ã¼ã¹ã®MTU */200 #define IF_MIN_LEN ETHER_MIN_LEN /* ã¤ã³ã¿ã¼ãã§ã¼ã¹ãã¬ã¼ã ã®æçé·*/201 202 #define IF_OUTPUT(o,d,g,t) ether_output(o,d,g,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°*/203 #define IF_RAW_OUTPUT(o,t) ether_raw_output(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/181 * インタフェースの選択マクロ 182 */ 183 184 #define T_IF_HDR T_ETHER_HDR /* インタフェースのヘッダ */ 185 #define T_IF_ADDR T_ETHER_ADDR /* インタフェースのアドレス */ 186 #define IF_HDR_ALIGN 2 /* ヘッダのアライン単位 */ 187 #define IF_MTU 1500 /* インタフェースの MTU */ 188 #define IF_MIN_LEN ETHER_MIN_LEN /* インターフェースフレームの最短長 */ 189 190 #define IF_OUTPUT(o,d,g,t) ether_output(o,d,g,t) /* インタフェースの出力関数 */ 191 #define IF_RAW_OUTPUT(o,t) ether_raw_output(o,t) /* インタフェースの出力関数、アドレス解決無し */ 204 192 #define IF_SET_PROTO(b,p) (GET_ETHER_HDR(b)->type = htons(p)) 205 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãããã³ã«è¨å®é¢æ°*/193 /* インタフェースのプロトコル設定関数 */ 206 194 #define IF_SOFTC_TO_IFADDR(s) ((T_IF_ADDR*)(s)->ifaddr.lladdr) 207 /* ã½ããã¦ã§ã¢æ 208 å ±ãã MAC ã¢ãã¬ã¹ãåãåºã */ 209 #define IF_GET_IFNET() ether_get_ifnet() /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã */ 210 #define IF_TYPE IFT_ETHER /* ã¤ã³ã¿ãã§ã¼ã¹ã®å */ 211 #define IF_SRAND() ether_srand() /* ã¤ã³ã¿ãã§ã¼ã¹ã®ä¹±æ°åæå¤ */ 212 213 /* IPv4 é¢ä¿ */ 214 215 #define IF_PROTO_IP ETHER_TYPE_IP /* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv4 ãããã³ã«æå® */ 216 #define IF_PROTO_ARP ETHER_TYPE_ARP /* ã¤ã³ã¿ãã§ã¼ã¹ã® ARP ãããã³ã«æå® */ 217 218 /* IPv6 é¢ä¿ */ 219 220 #define MAX_IF_MADDR_CNT 2 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹é 221 åã®æ大ãµã¤ãº */ 195 /* ソフトウェア情報から MAC アドレスを取り出す */ 196 #define IF_GET_IFNET() ether_get_ifnet() /* ネットワークインタフェース構造体を返す。 */ 197 #define IF_TYPE IFT_ETHER /* インタフェースの型 */ 198 #define IF_SRAND() ether_srand() /* インタフェースの乱数初期値 */ 199 200 /* IPv4 関係 */ 201 202 #define IF_PROTO_IP ETHER_TYPE_IP /* インタフェースの IPv4 プロトコル指定 */ 203 #define IF_PROTO_ARP ETHER_TYPE_ARP /* インタフェースの ARP プロトコル指定 */ 204 205 /* IPv6 関係 */ 206 207 #define MAX_IF_MADDR_CNT 2 /* インタフェースのマルチキャストアドレス配列の最大サイズ */ 222 208 #define IF_MADDR_INIT { { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } } 223 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹é 224 åã®åæå */ 225 #define IF_PROTO_IPV6 ETHER_TYPE_IPV6 /* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv6 ãããã³ã«æå® */ 209 /* インタフェースのマルチキャストアドレス配列の初期化 */ 210 #define IF_PROTO_IPV6 ETHER_TYPE_IPV6 /* インタフェースの IPv6 プロトコル指定 */ 226 211 #define IF_ADDMULTI(s) IF_ETHER_NIC_ADDMULTI(s) 227 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ç»é²*/228 #define IF_IN6_NEED_CACHE(i) (true) /* è¿é£æ¢ç´¢ãã£ãã·ã¥ã使ç¨ããã*/212 /* マルチキャストアドレスの登録 */ 213 #define IF_IN6_NEED_CACHE(i) (true) /* 近隣探索キャッシュを使用する。 */ 229 214 #define IF_IN6_IFID(i,a) IF_ETHER_NIC_IN6_IFID(i,a) 230 /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åã®è¨å®*/215 /* インタフェース識別子の設定 */ 231 216 #define IF_IN6_RESOLVE_MULTICAST(i,m) \ 232 217 ether_in6_resolve_multicast(i,m) 233 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ*/218 /* インタフェースのマルチキャストアドレスへの変換 */ 234 219 235 220 #define IF_FLAG_UP 0x01U … … 237 222 238 223 /* 239 * åæ¹åç 240 § 224 * 前方参照 241 225 */ 242 226 … … 274 258 275 259 /* 276 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 277 å ± 260 * ネットワークインタフェースに依存しないソフトウェア情報 278 261 */ 279 262 … … 281 264 282 265 struct t_if_softc { 283 T_IF_ADDR ifaddr; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 284 uint16_t timer; /* éä¿¡ã¿ã¤ã ã¢ã¦ã */ 285 T_IF_ETHER_NIC_SOFTC *sc; /* ãã£ãã¤ã¹ä¾åã®ã½ããã¦ã§ã¢æ 286 å ± */ 287 ID semid_txb_ready; /* éä¿¡ã»ããã© */ 288 ID semid_rxb_ready; /* åä¿¡ã»ããã© */ 266 T_IF_ADDR ifaddr; /* ネットワークインタフェースのアドレス */ 267 uint16_t timer; /* 送信タイムアウト */ 268 T_IF_ETHER_NIC_SOFTC *sc; /* ディバイス依存のソフトウェア情報 */ 269 ID semid_txb_ready; /* 送信セマフォ */ 270 ID semid_rxb_ready; /* 受信セマフォ */ 289 271 290 272 #ifdef _IP6_CFG 291 273 292 T_IF_ADDR maddrs[MAX_IF_MADDR_CNT]; /* ãã«ããã£ã¹ãã¢ãã¬ã¹ãªã¹ã*/274 T_IF_ADDR maddrs[MAX_IF_MADDR_CNT]; /* マルチキャストアドレスリスト */ 293 275 294 276 #endif /* of #ifdef _IP6_CFG */ … … 298 280 299 281 /* 300 * å¤æ°282 * 変数 301 283 */ 302 284 … … 308 290 309 291 /* 310 * é¢æ°292 * 関数 311 293 */ 312 294 313 295 #ifdef _IP6_CFG 314 296 315 /* åæ¹åç 316 § */ 297 /* 前方参照 */ 317 298 318 299 #ifndef T_IN6_ADDR_DEFINED -
azure_iot_hub/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
-
azure_iot_hub/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
-
azure_iot_hub/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
r388 r389 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$ … … 117 105 118 106 /* 119 * é¢æ°107 * 関数 120 108 */ 121 109 … … 123 111 124 112 /* 125 * if_slowtimo -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ãå¶å¾¡113 * if_slowtimo -- インタフェースのワッチドッグタイマ制御 126 114 */ 127 115 … … 142 130 143 131 /* 144 * ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ç®¡çã®åæå132 * ifinit -- インタフェース管理の初期化 145 133 */ 146 134 … … 156 144 157 145 /* 158 * if_addmulti -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ç»é²146 * if_addmulti -- マルチキャストアドレスの登録 159 147 */ 160 148 … … 173 161 return E_PAR; 174 162 175 /* IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/163 /* IPv6 マルチキャストアドレスを登録する。*/ 176 164 ifp->in6_maddrs[ix] = *(T_IN6_ADDR*)maddr; 177 165 178 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã«å¤æããç»é²ããã*/166 /* インタフェースのアドレスに変換し、登録する。*/ 179 167 error = IF_IN6_RESOLVE_MULTICAST(&llmaddr, (T_IN6_ADDR*)maddr); 180 168 if (error != E_OK) -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 … … 89 77 90 78 struct t_ifnet { 91 T_IF_SOFTC *ic; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 92 å ± */ 79 T_IF_SOFTC *ic; /* ネットワークインタフェースのソフトウェア情報 */ 93 80 T_IN6_IFADDR in6_ifaddrs[NUM_IN6_IFADDR_ENTRY]; 94 /* IPv6 ã¢ãã¬ã¹æ 95 å ± */ 81 /* IPv6 アドレス情報 */ 96 82 T_IN6_ADDR in6_maddrs [MAX_IN6_MADDR_CNT]; 97 /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹ */ 98 T_IN4_IFADDR in4_ifaddr; /* IPv4 ã¢ãã¬ã¹æ 99 å ± */ 83 /* マルチキャスト IPv6 アドレス */ 84 T_IN4_IFADDR in4_ifaddr; /* IPv4 アドレス情報 */ 100 85 ether_status_callback_fn link_callback; 101 uint8_t flags; /* ãã©ã°*/86 uint8_t flags; /* フラグ */ 102 87 }; 103 88 … … 105 90 106 91 struct t_ifnet { 107 T_IF_SOFTC *ic; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 108 å ± */ 92 T_IF_SOFTC *ic; /* ネットワークインタフェースのソフトウェア情報 */ 109 93 T_IN6_IFADDR in6_ifaddrs[NUM_IN6_IFADDR_ENTRY]; 110 /* IPv6 ã¢ãã¬ã¹æ 111 å ± */ 94 /* IPv6 アドレス情報 */ 112 95 T_IN6_ADDR in6_maddrs [MAX_IN6_MADDR_CNT]; 113 /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹*/96 /* マルチキャスト IPv6 アドレス */ 114 97 ether_status_callback_fn link_callback; 115 uint8_t flags; /* ãã©ã°*/98 uint8_t flags; /* フラグ */ 116 99 }; 117 100 … … 123 106 124 107 struct t_ifnet { 125 T_IF_SOFTC *ic; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 126 å ± */ 127 T_IN4_IFADDR in4_ifaddr; /* IPv4 ã¢ãã¬ã¹æ 128 å ± */ 108 T_IF_SOFTC *ic; /* ネットワークインタフェースのソフトウェア情報 */ 109 T_IN4_IFADDR in4_ifaddr; /* IPv4 アドレス情報 */ 129 110 ether_status_callback_fn link_callback; 130 uint8_t flags; /* ãã©ã°*/111 uint8_t flags; /* フラグ */ 131 112 }; 132 113 … … 146 127 147 128 /* 148 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã129 * 関数シミュレーションマクロ 149 130 */ 150 131 … … 152 133 153 134 /* 154 * é¢æ°135 * 関数 155 136 */ 156 137 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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$ … … 119 107 120 108 /* 121 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹122 */ 123 124 /* 125 * å¤é¨é¢æ°ã®å®ç¾©109 * ローカルループバックインタフェース 110 */ 111 112 /* 113 * 外部関数の定義 126 114 */ 127 115 … … 129 117 130 118 /* 131 * å¤æ°132 */ 133 134 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½*/119 * 変数 120 */ 121 122 /* ネットワークインタフェース構造体 */ 135 123 136 124 #if defined(_IP6_CFG) 137 125 138 126 static T_IFNET loop_ifnet = { 139 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 140 å ± */ 141 {}, /* IPv6 ã¢ãã¬ã¹æ 142 å ± */ 143 {}, /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹ */ 127 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 128 {}, /* IPv6 アドレス情報 */ 129 {}, /* マルチキャスト IPv6 アドレス */ 144 130 }; 145 131 … … 147 133 148 134 static T_IFNET loop_ifnet = { 149 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 150 å ± */ 135 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 151 136 { 152 IPV4_ADDR_LOOPBACK, /* IPv4 ã¢ãã¬ã¹*/153 IPV4_ADDR_LOOPBACK_MASK, /* ãµãããããã¹ã¯*/137 IPV4_ADDR_LOOPBACK, /* IPv4 アドレス */ 138 IPV4_ADDR_LOOPBACK_MASK, /* サブネットマスク */ 154 139 }, 155 140 }; … … 158 143 159 144 /* 160 * loop_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã145 * loop_get_ifnet -- ネットワークインタフェース構造体を返す。 161 146 */ 162 147 … … 168 153 169 154 /* 170 * looutput -- ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°155 * looutput -- ローカルループバックインタフェースの出力関数 171 156 */ 172 157 … … 185 170 186 171 /* 187 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»åºåã¿ã¹ã¯172 * ローカルループバックインタフェース・出力タスク 188 173 */ 189 174 … … 208 193 209 194 /* 210 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å 211 ¥åã¿ã¹ã¯ 195 * ローカルループバックインタフェース・入力タスク 212 196 */ 213 197 … … 227 211 #if defined(_IP4_CFG) 228 212 229 /* IPv4 å 230 ¥åé¢æ°ãå¼ã³åºã */ 213 /* IPv4 入力関数を呼び出す */ 231 214 if (IP4_VHL_V(GET_IP4_HDR(input)->vhl) == IPV4_VERSION) 232 215 ip_input(input); … … 236 219 #if defined(_IP6_CFG) 237 220 238 /* IPv6 å 239 ¥åé¢æ°ãå¼ã³åºã */ 221 /* IPv6 入力関数を呼び出す */ 240 222 if (IP6_VCF_V(ntohl(GET_IP6_HDR(input)->vcf)) == IPV6_VERSION) 241 223 ip6_input(input); -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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() /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã*/105 #define IF_SRAND() (0) /* ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ä¹±æ°åæå¤*/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() /* ネットワークインタフェース構造体を返す。 */ 93 #define IF_SRAND() (0) /* インターフェースの乱数初期値 */ 106 94 107 /* IPv4 é¢ä¿*/95 /* IPv4 関係 */ 108 96 109 #define IF_PROTO_IP 0 /* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãããã³ã«æå®*/97 #define IF_PROTO_IP 0 /* インタフェースの IP プロトコル指定 */ 110 98 111 /* IPv6 é¢ä¿*/99 /* IPv6 関係 */ 112 100 113 #define MAX_IF_MADDR_CNT 0 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹é 114 åã®æ大ãµã¤ãº */ 115 #define IF_IN6_NEED_CACHE(i) (false) /* è¿é£æ¢ç´¢ãã£ãã·ã¥ã使ç¨ããã */ 101 #define MAX_IF_MADDR_CNT 0 /* インタフェースのマルチキャストアドレス配列の最大サイズ */ 102 #define IF_IN6_NEED_CACHE(i) (false) /* 近隣探索キャッシュを使用する。 */ 116 103 117 104 /* 118 * åæ¹åç 119 § 105 * 前方参照 120 106 */ 121 107 … … 145 131 146 132 /* 147 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 148 å ± 133 * ネットワークインタフェースに依存しないソフトウェア情報 149 134 */ 150 135 … … 152 137 153 138 /* 154 * é¢æ°139 * 関数 155 140 */ 156 141 … … 159 144 160 145 /* 161 * ãã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¦çã¿ã¹ã¯146 * ローカルループバックインタフェース・処理タスク 162 147 */ 163 148 -
azure_iot_hub/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
r388 r389 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 * PPP ã¢ãã¬ã¹ã®å®ç¾©ï¼ããã¼ï¼61 * PPP アドレスの定義(ダミー) 74 62 */ 75 63 … … 79 67 80 68 /* 81 * ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã69 * インタフェースの選択マクロ 82 70 */ 83 71 84 #define T_IF_HDR T_PPP_HDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã*/85 #define T_IF_ADDR T_PPP_ADDR /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹*/86 #define IF_HDR_ALIGN 2 /* ãããã®ã¢ã©ã¤ã³åä½*/87 #define IF_MTU DEF_PPP_MTU /* ã¤ã³ã¿ãã§ã¼ã¹ã®MTU */72 #define T_IF_HDR T_PPP_HDR /* インタフェースのヘッダ */ 73 #define T_IF_ADDR T_PPP_ADDR /* インタフェースのアドレス */ 74 #define IF_HDR_ALIGN 2 /* ヘッダのアライン単位 */ 75 #define IF_MTU DEF_PPP_MTU /* インタフェースの MTU */ 88 76 89 #define IF_OUTPUT(o,d,g,t) ppp_output(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°*/90 #define IF_RAW_OUTPUT(o,t) ppp_output(o,t) /* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/77 #define IF_OUTPUT(o,d,g,t) ppp_output(o,t) /* インタフェースの出力関数 */ 78 #define IF_RAW_OUTPUT(o,t) ppp_output(o,t) /* インタフェースの出力関数、アドレス解決無し*/ 91 79 #define IF_SET_PROTO(b,p) (*GET_PPP_HDR(b) = htons(p)) 92 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãããã³ã«è¨å®é¢æ°*/80 /* インタフェースのプロトコル設定関数 */ 93 81 #define IF_SOFTC_TO_IFADDR(s) ((T_IF_ADDR*)(s)->ifaddr.lladdr) 94 /* ã½ããã¦ã§ã¢æ 95 å ±ãã PPP ã¢ãã¬ã¹ãåãåºã */ 96 #define IF_GET_IFNET() ppp_get_ifnet() /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã*/ 97 #define IF_SRAND() (0) /* ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ä¹±æ°åæå¤ */ 82 /* ソフトウェア情報から PPP アドレスを取り出す */ 83 #define IF_GET_IFNET() ppp_get_ifnet() /* ネットワークインタフェース構造体を返す。*/ 84 #define IF_SRAND() (0) /* インターフェースの乱数初期値 */ 98 85 99 /* IPv4 é¢ä¿*/86 /* IPv4 関係 */ 100 87 101 #define IF_PROTO_IP PPP_IP /* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv4 ãããã³ã«æå®*/88 #define IF_PROTO_IP PPP_IP /* インタフェースの IPv4 プロトコル指定 */ 102 89 103 /* IPv6 é¢ä¿*/90 /* IPv6 関係 */ 104 91 105 #define MAX_IF_MADDR_CNT 0 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹é 106 åã®æ大ãµã¤ãº*/ 107 #define IF_PROTO_IPV6 PPP_IPV6 /* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv6 ãããã³ã«æå® */ 108 #define IF_IN6_NEED_CACHE(i) (false) /* è¿é£æ¢ç´¢ãã£ãã·ã¥ã使ç¨ããã */ 109 #define IF_IN6_IFID(i,a) get_rand_ifid(i,a) /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åã®è¨å® */ 110 #define IF_IN6_RESOLVE_MULTICAST(i,m) {} /* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ */ 92 #define MAX_IF_MADDR_CNT 0 /* インタフェースのマルチキャストアドレス配列の最大サイズ*/ 93 #define IF_PROTO_IPV6 PPP_IPV6 /* インタフェースの IPv6 プロトコル指定 */ 94 #define IF_IN6_NEED_CACHE(i) (false) /* 近隣探索キャッシュを使用する。 */ 95 #define IF_IN6_IFID(i,a) get_rand_ifid(i,a) /* インタフェース識別子の設定 */ 96 #define IF_IN6_RESOLVE_MULTICAST(i,m) {} /* インタフェースのマルチキャストアドレスへの変換 */ 111 97 112 98 /* 113 * MTU (MRU) ã«é¢ããå®ç¾©99 * MTU (MRU) に関する定義 114 100 */ 115 101 116 #define DEF_PPP_MTU 1500 /* PPP ã® æ¨æºMTU */117 #define MAX_PPP_MTU 16384 /* PPP ã® æ大MTU */118 #define MIN_PPP_MTU 128 /* PPP ã® æå°MTU */102 #define DEF_PPP_MTU 1500 /* PPP の 標準 MTU */ 103 #define MAX_PPP_MTU 16384 /* PPP の 最大 MTU */ 104 #define MIN_PPP_MTU 128 /* PPP の 最小 MTU */ 119 105 120 106 /* 121 * PPP ããã107 * PPP ヘッダ 122 108 */ 123 109 124 typedef uint16_t T_PPP_HDR; /* ä¸ä½ãããã³ã«*/110 typedef uint16_t T_PPP_HDR; /* 上位プロトコル */ 125 111 126 112 /* 127 * åæ¹åç 128 § 113 * 前方参照 129 114 */ 130 115 … … 154 139 155 140 /* 156 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 157 å ± 141 * ネットワークインタフェースに依存しないソフトウェア情報 158 142 */ 159 143 160 144 struct t_if_softc { 161 T_IF_ADDR ifaddr; /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹*/145 T_IF_ADDR ifaddr; /* ネットワークインタフェースのアドレス */ 162 146 }; 163 147 164 148 /* 165 * é¢æ°149 * 関数 166 150 */ 167 151 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 * SNMP 㮠管çæ 88 å ±ãã¼ã¹ (MIB) 75 * SNMP の 管理情報ベース (MIB) 89 76 */ 90 77 -
azure_iot_hub/trunk/asp3_dcre/tinet/net/net.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 }); -
azure_iot_hub/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
r388 r389 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 * ã»çµ±è¨æ 86 å ± 73 * ・統計情報 87 74 */ 88 75 … … 124 111 125 112 /* 126 * ã¢ãã¬ã¹å½¢å¼ã®å®ç¾©113 * アドレス形式の定義 127 114 */ 128 115 129 #define AT_ETHER UINT_C(0x01) /* ã¤ã¼ãµããã*/130 #define AT_INET4 UINT_C(0x10) /* IPv4 ã¢ãã¬ã¹*/131 #define AT_INET6 UINT_C(0x20) /* IPv6 ã¢ãã¬ã¹*/116 #define AT_ETHER UINT_C(0x01) /* イーサネット */ 117 #define AT_INET4 UINT_C(0x10) /* IPv4 アドレス */ 118 #define AT_INET6 UINT_C(0x20) /* IPv6 アドレス */ 132 119 133 120 /* 134 * IPv4 UDP ãªãã·ã§ã³ã®å®ç¾©121 * IPv4 UDPオプションの定義 135 122 */ 136 123 … … 145 132 146 133 /* 147 * TINET ç¬èªé¢æ°134 * TINET 独自関数 148 135 */ 149 136 -
azure_iot_hub/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
r388 r389 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 … … 58 45 59 46 /* 60 * ãããã¯ã¼ã¯ãããã¡47 * ネットワークバッファ 61 48 */ 62 49 -
azure_iot_hub/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
r388 r389 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 … … 89 77 90 78 /* 91 * å¤æ°79 * 変数 92 80 */ 93 81 … … 295 283 296 284 /* 297 * nbuf_get_tbl -- ãããã¯ã¼ã¯ãããã¡ç®¡ç表ãç²å¾ããã285 * nbuf_get_tbl -- ネットワークバッファ管理表を獲得する。 298 286 * 299 * 注æ: ãããã¯ã¼ã¯çµ±è¨æ 300 å ±ã®è¨æ¸¬ç¨ 287 * 注意: ネットワーク統計情報の計測用 301 288 */ 302 289 … … 308 295 309 296 /* 310 * nbuf_get_tbl_size -- ãããã¯ã¼ã¯ãããã¡ç®¡çã¨ã³ããªæ°ãç²å¾ããã297 * nbuf_get_tbl_size -- ネットワークバッファ管理エントリ数を獲得する。 311 298 * 312 * 注æ: ãããã¯ã¼ã¯çµ±è¨æ 313 å ±ã®è¨æ¸¬ç¨ 299 * 注意: ネットワーク統計情報の計測用 314 300 */ 315 301 … … 323 309 324 310 /* 325 * tget_net_buf_up -- 大ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã311 * tget_net_buf_up -- 大きなサイズの方向に探索して、ネットワークバッファを獲得する。 326 312 */ 327 313 … … 332 318 ER error = E_OK; 333 319 334 /* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/320 /* 最適なサイズの固定長メモリプールを探す。*/ 335 321 ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY); 336 322 while (ix -- > 0 && minlen > net_buf_table[ix].size) … … 365 351 366 352 /* 367 * tget_net_buf_down -- å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã353 * tget_net_buf_down -- 小さなサイズの方向に探索して、ネットワークバッファを獲得する。 368 354 */ 369 355 … … 374 360 ER error = E_OK; 375 361 376 /* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/362 /* 最適なサイズの固定長メモリプールを探す。*/ 377 363 ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY); 378 364 while (ix -- > 0 && maxlen > net_buf_table[ix].size) … … 411 397 412 398 /* 413 * tget_net_buf_ex -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼æ¡å¼µæ©è½ï¼ã399 * tget_net_buf_ex -- ネットワークバッファを獲得する(拡張機能)。 414 400 */ 415 401 … … 417 403 tget_net_buf_ex (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout) 418 404 { 419 /* æå°ãµã¤ãºãæ大ãµã¤ãºãè¶ 420 ãã¦ãããã¨ã©ã¼ */ 405 /* 最小サイズが最大サイズを超えていたらエラー */ 421 406 if ((nbatr & NBA_SEARCH_DESCENT) != 0 && minlen > maxlen) { 422 407 syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d > maxlen=%4d.", minlen, maxlen); … … 424 409 } 425 410 426 /* å²å½ã¦å¯è½ãªæ大ã®ãµã¤ãºãè¶ 427 ãã¦ãããã¨ã©ã¼ */ 411 /* 割当て可能な最大のサイズを超えていたらエラー */ 428 412 if (minlen > net_buf_table[0].size || maxlen > net_buf_table[0].size) { 429 413 syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d or maxlen=%4d > %4d", … … 434 418 #if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE) 435 419 436 /* TCP ã§äºç´ãããããã¯ã¼ã¯ãããã¡ãåãåºãã*/420 /* TCP で予約したネットワークバッファを取り出す。*/ 437 421 if ((nbatr & NBA_RESERVE_TCP) != 0) { 438 422 if ((*buf = TCP_PULL_RES_NBUF(nbatr)) != NULL) { … … 454 438 455 439 /* 456 * tget_net_buf -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼äºæï¼ã440 * tget_net_buf -- ネットワークバッファを獲得する(互換)。 457 441 */ 458 442 … … 464 448 465 449 /* 466 * rel_net_buf -- ãããã¯ã¼ã¯ãããã¡ãè¿å´ããã450 * rel_net_buf -- ネットワークバッファを返却する。 467 451 */ 468 452 … … 472 456 ER error = E_OK; 473 457 474 /* ãããã¯ã¼ã¯ãããã¡ã® ID ã®æ£å½æ§ãæ¤è¨¼ããã*/458 /* ネットワークバッファの ID の正当性を検証する。*/ 475 459 if ((int_t)buf->idix >= (int_t)(sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY))) { 476 460 syslog(LOG_WARNING, "[NET BUF] E_ID, ID=%d.", buf->idix); … … 481 465 #if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE) 482 466 483 /* TCP ã§ããããã¯ã¼ã¯ãããã¡ãäºç´ããã*/467 /* TCP で、ネットワークバッファを予約する。*/ 484 468 if (TCP_PUSH_RES_NBUF(buf) == NULL) 485 469 return E_OK; … … 487 471 #endif /* of #if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE) */ 488 472 489 /* åºå®ã¡ã¢ãªãã¼ã«ã«è¿ãã*/473 /* 固定メモリプールに返す。*/ 490 474 491 475 int idix = buf->idix; … … 501 485 502 486 /* 503 * rus_net_buf -- ãããã¯ã¼ã¯ãããã¡ãåå©ç¨ããã487 * rus_net_buf -- ネットワークバッファを再利用する。 504 488 */ 505 489 … … 522 506 523 507 /* 524 * net_buf_siz -- ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãè¿ãã508 * net_buf_siz -- ネットワークバッファのサイズを返す。 525 509 */ 526 510 … … 537 521 538 522 /* 539 * net_buf_max_siz -- ãããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºãè¿ãã523 * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。 540 524 */ 541 525 … … 550 534 551 535 /* 552 * tget_net_buf_ex -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼æ¡å¼µæ©è½ï¼ã536 * tget_net_buf_ex -- ネットワークバッファを獲得する(拡張機能)。 553 537 */ 554 538 … … 569 553 570 554 /* 571 * tget_net_buf -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼äºæï¼ã555 * tget_net_buf -- ネットワークバッファを獲得する(互換)。 572 556 */ 573 557 … … 580 564 581 565 /* 582 * rel_net_buf -- ãããã¯ã¼ã¯ãããã¡ãè¿å´ããã566 * rel_net_buf -- ネットワークバッファを返却する。 583 567 */ 584 568 … … 593 577 594 578 /* 595 * net_buf_max_siz -- ãããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºãè¿ãã579 * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。 596 580 */ 597 581 -
azure_iot_hub/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
r388 r389 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[IF_MIN_LEN]; /* ãããã¡æ¬ä½*/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[IF_MIN_LEN]; /* バッファ本体 */ 78 64 }; 79 65 … … 87 73 88 74 /* 89 * 64 ãªã¯ããã75 * 64 オクテット 90 76 */ 91 77 92 78 typedef struct t_net_buf_64 { 93 uint16_t len; /* ãã¼ã¿ã®é·ã*/94 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/95 uint8_t flags; /* ãã©ã°*/96 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 97 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 98 #endif 99 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 100 uint8_t halign[4 - IF_HDR_ALIGN]; 101 #endif 102 uint8_t buf[64]; /* ãããã¡æ¬ä½*/79 uint16_t len; /* データの長さ */ 80 uint8_t idix; /* mpfid のインデックス */ 81 uint8_t flags; /* フラグ */ 82 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 83 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 84 #endif 85 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 86 uint8_t halign[4 - IF_HDR_ALIGN]; 87 #endif 88 uint8_t buf[64]; /* バッファ本体 */ 103 89 } T_NET_BUF_64; 104 90 105 91 /* 106 * 128 ãªã¯ããã92 * 128 オクテット 107 93 */ 108 94 109 95 typedef struct t_net_buf_128 { 110 uint16_t len; /* ãã¼ã¿ã®é·ã*/111 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/112 uint8_t flags; /* ãã©ã°*/113 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 114 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 115 #endif 116 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 117 uint8_t halign[4 - IF_HDR_ALIGN]; 118 #endif 119 uint8_t buf[128]; /* ãããã¡æ¬ä½*/96 uint16_t len; /* データの長さ */ 97 uint8_t idix; /* mpfid のインデックス */ 98 uint8_t flags; /* フラグ */ 99 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 100 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 101 #endif 102 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 103 uint8_t halign[4 - IF_HDR_ALIGN]; 104 #endif 105 uint8_t buf[128]; /* バッファ本体 */ 120 106 } T_NET_BUF_128; 121 107 122 108 /* 123 * 256 ãªã¯ããã109 * 256 オクテット 124 110 */ 125 111 126 112 typedef struct t_net_buf_256 { 127 uint16_t len; /* ãã¼ã¿ã®é·ã*/128 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/129 uint8_t flags; /* ãã©ã°*/130 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 131 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 132 #endif 133 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 134 uint8_t halign[4 - IF_HDR_ALIGN]; 135 #endif 136 uint8_t buf[256]; /* ãããã¡æ¬ä½*/113 uint16_t len; /* データの長さ */ 114 uint8_t idix; /* mpfid のインデックス */ 115 uint8_t flags; /* フラグ */ 116 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 117 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 118 #endif 119 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 120 uint8_t halign[4 - IF_HDR_ALIGN]; 121 #endif 122 uint8_t buf[256]; /* バッファ本体 */ 137 123 } T_NET_BUF_256; 138 124 139 125 /* 140 * 512 ãªã¯ããã126 * 512 オクテット 141 127 */ 142 128 143 129 typedef struct t_net_buf_512 { 144 uint16_t len; /* ãã¼ã¿ã®é·ã*/145 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/146 uint8_t flags; /* ãã©ã°*/147 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 148 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 149 #endif 150 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 151 uint8_t halign[4 - IF_HDR_ALIGN]; 152 #endif 153 uint8_t buf[512];/* ãããã¡æ¬ä½*/130 uint16_t len; /* データの長さ */ 131 uint8_t idix; /* mpfid のインデックス */ 132 uint8_t flags; /* フラグ */ 133 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 134 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 135 #endif 136 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 137 uint8_t halign[4 - IF_HDR_ALIGN]; 138 #endif 139 uint8_t buf[512];/* バッファ本体 */ 154 140 } T_NET_BUF_512; 155 141 156 142 /* 157 * 1024 ãªã¯ããã143 * 1024 オクテット 158 144 */ 159 145 160 146 typedef struct t_net_buf_1024 { 161 uint16_t len; /* ãã¼ã¿ã®é·ã*/162 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/163 uint8_t flags; /* ãã©ã°*/164 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 165 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 166 #endif 167 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 168 uint8_t halign[4 - IF_HDR_ALIGN]; 169 #endif 170 uint8_t buf[1024]; /* ãããã¡æ¬ä½*/147 uint16_t len; /* データの長さ */ 148 uint8_t idix; /* mpfid のインデックス */ 149 uint8_t flags; /* フラグ */ 150 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 151 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 152 #endif 153 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 154 uint8_t halign[4 - IF_HDR_ALIGN]; 155 #endif 156 uint8_t buf[1024]; /* バッファ本体 */ 171 157 } T_NET_BUF_1024; 172 158 173 159 /* 174 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ大 PDU ãµã¤ãº160 * ネットワークインタフェースの最大 PDU サイズ 175 161 */ 176 162 … … 178 164 179 165 typedef struct t_net_buf_if_pdu { 180 uint16_t len; /* ãã¼ã¿ã®é·ã*/181 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/182 uint8_t flags; /* ãã©ã°*/166 uint16_t len; /* データの長さ */ 167 uint8_t idix; /* mpfid のインデックス */ 168 uint8_t flags; /* フラグ */ 183 169 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 184 170 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 188 174 #endif 189 175 uint8_t buf[IF_PDU_SIZE]; 190 /* ãããã¡æ¬ä½*/176 /* バッファ本体 */ 191 177 #if defined(IF_PDU_HDR_PADDING) 192 178 uint8_t padding[IF_PDU_HDR_PADDING]; 193 #endif /* ãããã®ä½å*/179 #endif /* ヘッダの余分 */ 194 180 } T_NET_BUF_IF_PDU; 195 181 … … 197 183 198 184 /* 199 * ãããã¯ã¼ã¯ãããã¡è¡¨185 * ネットワークバッファ表 200 186 */ 201 187 … … 218 204 219 205 /* 220 * ãããã¯ã¼ã¯ãããã¡ã»ãã©ã°221 */ 222 223 /* 224 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹åºåå¾ã«ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªãã225 * 注æ: åºåå¾ã«ãã®ãã©ã°ã¯ã¯ãªã¢ãããã206 * ネットワークバッファ・フラグ 207 */ 208 209 /* 210 * ネットワークインタフェース出力後にネットワークバッファを開放しない。 211 * 注意: 出力後にこのフラグはクリアされる。 226 212 */ 227 213 #define NB_FLG_NOREL_IFOUT UINT_C(0x80) 228 214 229 215 /* 230 * ESP ç¨ãã©ã°216 * ESP 用フラグ 231 217 */ 232 218 #define NB_FLG_DECRYPED UINT_C(0x40) 233 219 234 220 /* 235 * ãããã¯ã¼ã¯ãããã¡ç²å¾å±æ§236 */ 237 238 /* æ¢ç´¢å±æ§*/239 240 #define NBA_SEARCH_ASCENT UINT_C(0x1000) /* 大ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã*/241 #define NBA_SEARCH_DESCENT UINT_C(0x2000) /* å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã*/242 #define NBA_RESERVE_TCP UINT_C(0x4000) /* TCP ç¨ã«ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/243 #define NBA_ID_MASK UINT_C(0x0fff) /* éä¿¡ç«¯ç¹ ID ã渡ãå ´åã®ãã¹ã¯å¤*/244 245 /* 246 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã221 * ネットワークバッファ獲得属性 222 */ 223 224 /* 探索属性 */ 225 226 #define NBA_SEARCH_ASCENT UINT_C(0x1000) /* 大きなサイズの方向に探索する。 */ 227 #define NBA_SEARCH_DESCENT UINT_C(0x2000) /* 小さなサイズの方向に探索する。 */ 228 #define NBA_RESERVE_TCP UINT_C(0x4000) /* TCP 用にネットワークバッファを予約する。*/ 229 #define NBA_ID_MASK UINT_C(0x0fff) /* 通信端点 ID を渡す場合のマスク値 */ 230 231 /* 232 * 関数シミュレーションマクロ 247 233 */ 248 234 … … 250 236 251 237 /* 252 * é¢æ°238 * 関数 253 239 */ 254 240 -
azure_iot_hub/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
r388 r389 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 … … 137 124 138 125 /* 139 * è¨æ¸¬ç¨å¤æ°126 * 計測用変数 140 127 */ 141 128 … … 145 132 146 133 T_NET_COUNT net_count_ppp; 147 T_NET_COUNT_VAL net_count_ppp_no_bufs; /* net_buf å²ãå½ã¦å¤±ææ°*/134 T_NET_COUNT_VAL net_count_ppp_no_bufs; /* net_buf 割り当て失敗数 */ 148 135 149 136 #endif /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */ -
azure_iot_hub/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
r388 r389 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 */ … … 248 235 #ifdef SUPPORT_LOOP 249 236 250 /* ã«ã¼ãããã¯*/237 /* ループバック */ 251 238 252 239 #if NET_COUNT_ENABLE & PROTO_FLG_LOOP … … 292 279 #if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC 293 280 294 #define NC_ETHER_NIC_RESETS 0 /* ãªã»ããæ°*/295 #define NC_ETHER_NIC_TXB_QOVRS 1 /* éä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/296 #define NC_ETHER_NIC_TIMEOUTS 2 /* éä¿¡ã¿ã¤ã ã¢ã¦ãæ°*/297 #define NC_ETHER_NIC_COLS 3 /* ã³ãªã¸ã§ã³æ°*/298 #define NC_ETHER_NIC_OUT_ERR_PACKETS 4 /* éä¿¡ã¨ã©ã¼ãã±ããæ°*/299 #define NC_ETHER_NIC_OUT_PACKETS 5 /* éä¿¡ãã±ããæ°*/300 #define NC_ETHER_NIC_OUT_OCTETS 6 /* éä¿¡ãªã¯ãããæ°*/301 #define NC_ETHER_NIC_RXB_QOVRS 7 /* åä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/302 #define NC_ETHER_NIC_NO_BUFS 8 /* net_buf å²ãå½ã¦å¤±ææ°*/303 #define NC_ETHER_NIC_IN_ERR_PACKETS 9 /* åä¿¡ã¨ã©ã¼ãã±ããæ°*/304 #define NC_ETHER_NIC_IN_PACKETS 10 /* åä¿¡ãã±ããæ°*/305 #define NC_ETHER_NIC_IN_OCTETS 11 /* åä¿¡ãªã¯ãããæ°*/306 #define NC_ETHER_NIC_SIZE 12 /* ã«ã¦ã³ã¿æ°*/281 #define NC_ETHER_NIC_RESETS 0 /* リセット数 */ 282 #define NC_ETHER_NIC_TXB_QOVRS 1 /* 送信セマフォ資源返却上限オーバー数*/ 283 #define NC_ETHER_NIC_TIMEOUTS 2 /* 送信タイムアウト数 */ 284 #define NC_ETHER_NIC_COLS 3 /* コリジョン数 */ 285 #define NC_ETHER_NIC_OUT_ERR_PACKETS 4 /* 送信エラーバケット数 */ 286 #define NC_ETHER_NIC_OUT_PACKETS 5 /* 送信バケット数 */ 287 #define NC_ETHER_NIC_OUT_OCTETS 6 /* 送信オクテット数 */ 288 #define NC_ETHER_NIC_RXB_QOVRS 7 /* 受信セマフォ資源返却上限オーバー数*/ 289 #define NC_ETHER_NIC_NO_BUFS 8 /* net_buf 割り当て失敗数 */ 290 #define NC_ETHER_NIC_IN_ERR_PACKETS 9 /* 受信エラーバケット数 */ 291 #define NC_ETHER_NIC_IN_PACKETS 10 /* 受信バケット数 */ 292 #define NC_ETHER_NIC_IN_OCTETS 11 /* 受信オクテット数 */ 293 #define NC_ETHER_NIC_SIZE 12 /* カウンタ数 */ 307 294 308 295 #define NET_COUNT_ETHER_NIC(v,c) ((v)+=(c)) … … 322 309 #endif /* of #ifdef SUPPORT_ETHER */ 323 310 324 /* ãããã¯ã¼ã¯ãããã¡*/311 /* ネットワークバッファ */ 325 312 326 313 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF … … 358 345 #if NET_COUNT_ENABLE & PROTO_FLG_IP4 359 346 360 #define NC_IP4_FRAG_OUT_FRAGS 0 /* åå²éä¿¡ããã©ã°ã¡ã³ãæ° */ 361 #define NC_IP4_FRAG_OUT 1 /* åå²éä¿¡æ° */ 362 #define NC_IP4_OUT_ERR_PACKETS 2 /* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ° */ 363 #define NC_IP4_OUT_PACKETS 3 /* éä¿¡ãã¼ã¿ã°ã©ã æ° */ 364 #define NC_IP4_OUT_OCTETS 4 /* éä¿¡ãªã¯ãããæ° */ 365 #define NC_IP4_FRAG_IN_TMOUT 5 /* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ° */ 366 #define NC_IP4_FRAG_IN_NO_BUF 6 /* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ° */ 367 #define NC_IP4_FRAG_IN_DROP 7 /* åå²åä¿¡ç ´æ£æ° */ 368 #define NC_IP4_FRAG_IN_OK 8 /* åå²åä¿¡åæ§ææåæ° */ 369 #define NC_IP4_FRAG_IN_FRAGS 9 /* åå²åä¿¡ãã©ã°ã¡ã³ãæ° */ 370 #define NC_IP4_FRAG_IN 10 /* åå²åä¿¡æ° */ 371 #define NC_IP4_OPTS 11 /* ãªãã·ã§ã³å 372 ¥åæ° */ 373 #define NC_IP4_IN_ERR_PROTO 12 /* ãããã³ã«ã¨ã©ã¼æ° */ 374 #define NC_IP4_IN_ERR_ADDR 13 /* ã¢ãã¬ã¹ã¨ã©ã¼æ° */ 375 #define NC_IP4_IN_ERR_VER 14 /* ãã¼ã¸ã§ã³ã¨ã©ã¼æ° */ 376 #define NC_IP4_IN_ERR_SHORT 15 /* é·ãã¨ã©ã¼æ° */ 377 #define NC_IP4_IN_ERR_CKSUM 16 /* ãã§ãã¯ãµã ã¨ã©ã¼æ° */ 378 #define NC_IP4_IN_ERR_PACKETS 17 /* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ° */ 379 #define NC_IP4_IN_PACKETS 18 /* åä¿¡ãã¼ã¿ã°ã©ã æ° */ 380 #define NC_IP4_IN_OCTETS 19 /* åä¿¡ãªã¯ãããæ° */ 381 #define NC_IP4_SIZE 20 /* ã«ã¦ã³ã¿æ° */ 347 #define NC_IP4_FRAG_OUT_FRAGS 0 /* 分割送信、フラグメント数 */ 348 #define NC_IP4_FRAG_OUT 1 /* 分割送信数 */ 349 #define NC_IP4_OUT_ERR_PACKETS 2 /* 送信エラーデータグラム数 */ 350 #define NC_IP4_OUT_PACKETS 3 /* 送信データグラム数 */ 351 #define NC_IP4_OUT_OCTETS 4 /* 送信オクテット数 */ 352 #define NC_IP4_FRAG_IN_TMOUT 5 /* 分割受信タイムアウト数 */ 353 #define NC_IP4_FRAG_IN_NO_BUF 6 /* 分割受信バッファり当て失敗数 */ 354 #define NC_IP4_FRAG_IN_DROP 7 /* 分割受信破棄数 */ 355 #define NC_IP4_FRAG_IN_OK 8 /* 分割受信再構成成功数 */ 356 #define NC_IP4_FRAG_IN_FRAGS 9 /* 分割受信フラグメント数 */ 357 #define NC_IP4_FRAG_IN 10 /* 分割受信数 */ 358 #define NC_IP4_OPTS 11 /* オプション入力数 */ 359 #define NC_IP4_IN_ERR_PROTO 12 /* プロトコルエラー数 */ 360 #define NC_IP4_IN_ERR_ADDR 13 /* アドレスエラー数 */ 361 #define NC_IP4_IN_ERR_VER 14 /* バージョンエラー数 */ 362 #define NC_IP4_IN_ERR_SHORT 15 /* 長さエラー数 */ 363 #define NC_IP4_IN_ERR_CKSUM 16 /* チェックサムエラー数 */ 364 #define NC_IP4_IN_ERR_PACKETS 17 /* 受信エラーデータグラム数 */ 365 #define NC_IP4_IN_PACKETS 18 /* 受信データグラム数 */ 366 #define NC_IP4_IN_OCTETS 19 /* 受信オクテット数 */ 367 #define NC_IP4_SIZE 20 /* カウンタ数 */ 382 368 383 369 #define NET_COUNT_IP4(v,c) ((v)+=(c)) … … 439 425 #if NET_COUNT_ENABLE & PROTO_FLG_IP6 440 426 441 #define NC_IP6_FRAG_OUT_FRAGS 0 /* åå²éä¿¡ããã©ã°ã¡ã³ãæ°*/442 #define NC_IP6_FRAG_OUT 1 /* åå²éä¿¡æ°*/443 #define NC_IP6_OUT_ERR_PACKETS 2 /* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°*/444 #define NC_IP6_OUT_PACKETS 3 /* éä¿¡ãã¼ã¿ã°ã©ã æ°*/445 #define NC_IP6_OUT_OCTETS 4 /* éä¿¡ãªã¯ãããæ°*/446 #define NC_IP6_FRAG_IN_TMOUT 5 /* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°*/447 #define NC_IP6_FRAG_IN_NO_BUF 6 /* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°*/448 #define NC_IP6_FRAG_IN_DROP 7 /* åå²åä¿¡ç ´æ£æ°*/449 #define NC_IP6_FRAG_IN_OK 8 /* åå²åä¿¡åæ§ææåæ°*/450 #define NC_IP6_FRAG_IN_FRAGS 9 /* åå²åä¿¡ãã©ã°ã¡ã³ãæ°*/451 #define NC_IP6_FRAG_IN 10 /* åå²åä¿¡æ°*/452 #define NC_IP6_IN_ERR_PROTO 11 /* ãããã³ã«ã¨ã©ã¼æ°*/453 #define NC_IP6_IN_ERR_ADDR 12 /* ã¢ãã¬ã¹ã¨ã©ã¼æ°*/454 #define NC_IP6_IN_ERR_VER 13 /* ãã¼ã¸ã§ã³ã¨ã©ã¼æ°*/455 #define NC_IP6_IN_ERR_SHORT 14 /* é·ãã¨ã©ã¼æ°*/456 #define NC_IP6_IN_ERR_PACKETS 15 /* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°*/457 #define NC_IP6_IN_PACKETS 16 /* åä¿¡ãã¼ã¿ã°ã©ã æ°*/458 #define NC_IP6_IN_OCTETS 17 /* åä¿¡ãªã¯ãããæ°*/459 #define NC_IP6_SIZE 18 /* ã«ã¦ã³ã¿æ°*/427 #define NC_IP6_FRAG_OUT_FRAGS 0 /* 分割送信、フラグメント数 */ 428 #define NC_IP6_FRAG_OUT 1 /* 分割送信数 */ 429 #define NC_IP6_OUT_ERR_PACKETS 2 /* 送信エラーデータグラム数 */ 430 #define NC_IP6_OUT_PACKETS 3 /* 送信データグラム数 */ 431 #define NC_IP6_OUT_OCTETS 4 /* 送信オクテット数 */ 432 #define NC_IP6_FRAG_IN_TMOUT 5 /* 分割受信タイムアウト数 */ 433 #define NC_IP6_FRAG_IN_NO_BUF 6 /* 分割受信バッファり当て失敗数 */ 434 #define NC_IP6_FRAG_IN_DROP 7 /* 分割受信破棄数 */ 435 #define NC_IP6_FRAG_IN_OK 8 /* 分割受信再構成成功数 */ 436 #define NC_IP6_FRAG_IN_FRAGS 9 /* 分割受信フラグメント数 */ 437 #define NC_IP6_FRAG_IN 10 /* 分割受信数 */ 438 #define NC_IP6_IN_ERR_PROTO 11 /* プロトコルエラー数 */ 439 #define NC_IP6_IN_ERR_ADDR 12 /* アドレスエラー数 */ 440 #define NC_IP6_IN_ERR_VER 13 /* バージョンエラー数 */ 441 #define NC_IP6_IN_ERR_SHORT 14 /* 長さエラー数 */ 442 #define NC_IP6_IN_ERR_PACKETS 15 /* 受信エラーデータグラム数 */ 443 #define NC_IP6_IN_PACKETS 16 /* 受信データグラム数 */ 444 #define NC_IP6_IN_OCTETS 17 /* 受信オクテット数 */ 445 #define NC_IP6_SIZE 18 /* カウンタ数 */ 460 446 461 447 #define NET_COUNT_IP6(v,c) ((v)+=(c)) … … 475 461 #if NET_COUNT_ENABLE & PROTO_FLG_ICMP6 476 462 477 #define NC_ICMP6_OUT_ERR_PACKETS 0 /* éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°*/478 #define NC_ICMP6_OUT_PACKETS 1 /* éä¿¡ ICMP ãã¼ã¿æ°*/479 #define NC_ICMP6_OUT_OCTETS 2 /* éä¿¡ ICMP ãªã¯ãããæ°*/480 #define NC_ICMP6_IN_ERR_CKSUM 3 /* é·ãã¨ã©ã¼æ°*/481 #define NC_ICMP6_IN_ERR_PACKETS 4 /* åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°*/482 #define NC_ICMP6_IN_PACKETS 5 /* åä¿¡ ICMP ãã¼ã¿æ°*/483 #define NC_ICMP6_IN_OCTETS 6 /* åä¿¡ ICMP ãªã¯ãããæ°*/484 #define NC_ICMP6_SIZE 7 /* ã«ã¦ã³ã¿æ°*/463 #define NC_ICMP6_OUT_ERR_PACKETS 0 /* 送信エラー ICMP データ数 */ 464 #define NC_ICMP6_OUT_PACKETS 1 /* 送信 ICMP データ数 */ 465 #define NC_ICMP6_OUT_OCTETS 2 /* 送信 ICMP オクテット数 */ 466 #define NC_ICMP6_IN_ERR_CKSUM 3 /* 長さエラー数 */ 467 #define NC_ICMP6_IN_ERR_PACKETS 4 /* 受信エラー ICMP データ数 */ 468 #define NC_ICMP6_IN_PACKETS 5 /* 受信 ICMP データ数 */ 469 #define NC_ICMP6_IN_OCTETS 6 /* 受信 ICMP オクテット数 */ 470 #define NC_ICMP6_SIZE 7 /* カウンタ数 */ 485 471 486 472 #define NET_COUNT_ICMP6(v,c) ((v)+=(c)) … … 500 486 #if NET_COUNT_ENABLE & PROTO_FLG_ND6 501 487 502 #define NC_ND6_DAD_OUT_PACKETS 0 /* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°*/503 #define NC_ND6_NS_OUT_PACKETS 1 /* è¿é£è¦è«éä¿¡æ°*/504 #define NC_ND6_NS_IN_PACKETS 2 /* è¿é£è¦è«åä¿¡æ°*/505 #define NC_ND6_NA_OUT_PACKETS 3 /* è¿é£éç¥éä¿¡æ°*/506 #define NC_ND6_NA_IN_PACKETS 4 /* è¿é£éç¥åä¿¡æ°*/507 #define NC_ND6_RS_OUT_PACKETS 5 /* ã«ã¼ã¿è¦è«åºåæ°*/508 #define NC_ND6_RA_IN_PACKETS 6 /* ã«ã¼ã¿éç¥åä¿¡æ°*/509 #define NC_ND6_SIZE 7 /* ã«ã¦ã³ã¿æ°*/488 #define NC_ND6_DAD_OUT_PACKETS 0 /* 重複アドレス検出送信数 */ 489 #define NC_ND6_NS_OUT_PACKETS 1 /* 近隣要請送信数 */ 490 #define NC_ND6_NS_IN_PACKETS 2 /* 近隣要請受信数 */ 491 #define NC_ND6_NA_OUT_PACKETS 3 /* 近隣通知送信数 */ 492 #define NC_ND6_NA_IN_PACKETS 4 /* 近隣通知受信数 */ 493 #define NC_ND6_RS_OUT_PACKETS 5 /* ルータ要請出力数 */ 494 #define NC_ND6_RA_IN_PACKETS 6 /* ルータ通知受信数 */ 495 #define NC_ND6_SIZE 7 /* カウンタ数 */ 510 496 511 497 #define NET_COUNT_ND6(v,c) ((v)+=(c)) … … 531 517 #if NET_COUNT_ENABLE & PROTO_FLG_TCP 532 518 533 #define NC_TCP_CONNECTS 0 /* è½åãªã¼ãã³æ°*/534 #define NC_TCP_ACCEPTS 1 /* ååãªã¼ãã³æ°*/535 #define NC_TCP_RTT_UPDATES 2 /* RTT æ´æ°æ°*/536 #define NC_TCP_SEND_RSTS 3 /* éä¿¡ãRST æ°*/537 #define NC_TCP_SEND_ACKS 4 /* éä¿¡ãACK æ°*/538 #define NC_TCP_SEND_URG_SEGS 5 /* éä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°*/539 #define NC_TCP_SEND_DATA_SEGS 6 /* éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°*/540 #define NC_TCP_SEND_REXMIT_SEGS 7 /* åéä¿¡ã»ã°ã¡ã³ãæ°*/541 #define NC_TCP_SEND_SEGS 8 /* éä¿¡ã»ã°ã¡ã³ãæ°*/542 #define NC_TCP_SEND_CNTL_SEGS 9 /* éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°*/543 #define NC_TCP_SEND_DATA_OCTETS 10 /* éä¿¡ãã¼ã¿ãªã¯ãããæ°*/544 #define NC_TCP_FREE_RCV_QUEUE 11 /* åä¿¡ãã¥ã¼è§£æ¾æ°*/545 #define NC_TCP_RECV_DUP_SEGS 12 /* åä¿¡ãå¤éæ°*/546 #define NC_TCP_RECV_DROP_SEGS 13 /* åä¿¡ãç ´æ£æ°*/547 #define NC_TCP_RECV_RSTS 14 /* åä¿¡ãRST æ°*/548 #define NC_TCP_RECV_DUP_ACKS 15 /* åä¿¡ãå¤é ACK æ°*/549 #define NC_TCP_RECV_ACKS 16 /* åä¿¡ãACK æ°*/550 #define NC_TCP_RECV_BAD_CKSUMS 17 /* åä¿¡ããã§ãã¯ãµã ä¸æ£æ°*/551 #define NC_TCP_RECV_BAD_HEADERS 18 /* åä¿¡ããããä¸æ£æ°*/552 #define NC_TCP_RECV_URG_SEGS 19 /* åä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°*/553 #define NC_TCP_RECV_DATA_SEGS 20 /* åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°*/554 #define NC_TCP_RECV_SEGS 21 /* åä¿¡ã»ã°ã¡ã³ãæ°*/555 #define NC_TCP_RECV_DATA_OCTETS 22 /* åä¿¡ãã¼ã¿ãªã¯ãããæ°*/556 #define NC_TCP_RECV_OCTETS 23 /* åä¿¡ãªã¯ãããæ°*/557 #define NC_TCP_SIZE 24 /* ã«ã¦ã³ã¿æ°*/519 #define NC_TCP_CONNECTS 0 /* 能動オープン数 */ 520 #define NC_TCP_ACCEPTS 1 /* 受動オープン数 */ 521 #define NC_TCP_RTT_UPDATES 2 /* RTT 更新数 */ 522 #define NC_TCP_SEND_RSTS 3 /* 送信、RST 数 */ 523 #define NC_TCP_SEND_ACKS 4 /* 送信、ACK 数 */ 524 #define NC_TCP_SEND_URG_SEGS 5 /* 送信、緊急セグメント数 */ 525 #define NC_TCP_SEND_DATA_SEGS 6 /* 送信データセグメント数 */ 526 #define NC_TCP_SEND_REXMIT_SEGS 7 /* 再送信セグメント数 */ 527 #define NC_TCP_SEND_SEGS 8 /* 送信セグメント数 */ 528 #define NC_TCP_SEND_CNTL_SEGS 9 /* 送信制御セグメント数 */ 529 #define NC_TCP_SEND_DATA_OCTETS 10 /* 送信データオクテット数 */ 530 #define NC_TCP_FREE_RCV_QUEUE 11 /* 受信キュー解放数 */ 531 #define NC_TCP_RECV_DUP_SEGS 12 /* 受信、多重数 */ 532 #define NC_TCP_RECV_DROP_SEGS 13 /* 受信、破棄数 */ 533 #define NC_TCP_RECV_RSTS 14 /* 受信、RST 数 */ 534 #define NC_TCP_RECV_DUP_ACKS 15 /* 受信、多重 ACK 数 */ 535 #define NC_TCP_RECV_ACKS 16 /* 受信、ACK 数 */ 536 #define NC_TCP_RECV_BAD_CKSUMS 17 /* 受信、チェックサム不正数 */ 537 #define NC_TCP_RECV_BAD_HEADERS 18 /* 受信、ヘッダ不正数 */ 538 #define NC_TCP_RECV_URG_SEGS 19 /* 受信、緊急セグメント数 */ 539 #define NC_TCP_RECV_DATA_SEGS 20 /* 受信データセグメント数 */ 540 #define NC_TCP_RECV_SEGS 21 /* 受信セグメント数 */ 541 #define NC_TCP_RECV_DATA_OCTETS 22 /* 受信データオクテット数 */ 542 #define NC_TCP_RECV_OCTETS 23 /* 受信オクテット数 */ 543 #define NC_TCP_SIZE 24 /* カウンタ数 */ 558 544 559 545 #define NET_COUNT_TCP(v,c) ((v)+=(c)) … … 598 584 599 585 /* 600 * SNMP 㮠管çæ 601 å ±ãã¼ã¹ (MIB) 586 * SNMP の 管理情報ベース (MIB) 602 587 */ 603 588 -
azure_iot_hub/trunk/asp3_dcre/tinet/net/net_endian.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 … … 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 … … 179 167 180 168 /* 181 * 注æ: IPããã以éã¯ã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã¦ããäºã182 * åæã¨ãã¦ãããã4 ãã¤ãå¢çã§ã¢ã¯ã»ã¹ãã183 * ããã»ããµã§ããããã¯ã¼ã¯å´ã®ãã¼ã¿ãã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³184 * ããã¦ããªãå ´åã¯ãntoahlãahtonlãnahcmpl ã使ç¨ãããã¨ã169 * 注意: IPヘッダ以降は、4 バイト境界にアラインされている事を 170 * 前提としているが、4 バイト境界でアクセスする 171 * プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン 172 * されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。 185 173 */ 186 174 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 … … 108 96 109 97 /* 110 * å¤æ°98 * 変数 111 99 */ 112 100 … … 114 102 115 103 /* 116 * net_rand -- ä¹±æ°ãè¿ãã104 * net_rand -- 乱数を返す。 117 105 */ 118 106 … … 125 113 126 114 /* 127 * srand -- ä¹±æ°ãåæåããã115 * srand -- 乱数を初期化する。 128 116 */ 129 117 … … 138 126 139 127 /* 140 * convert_hexdigit -- 16 é²æ°âæååå¤æ128 * convert_hexdigit -- 16進数→文字列変換 141 129 */ 142 130 … … 166 154 167 155 /* 168 * mac2str -- MAC ã¢ãã¬ã¹ãæååã«å¤æããã156 * mac2str -- MAC アドレスを文字列に変換する。 169 157 */ 170 158 … … 206 194 207 195 /* 208 * rev_memcpy_hword -- å転ã¡ã¢ãªã³ãã¼ï¼2 ãã¤ãï¼209 * 210 * ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã211 * å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ã解決ããã196 * rev_memcpy_hword -- 反転メモリコピー(2 バイト) 197 * 198 * バイト単位にアクセスする事により、 199 * 境界へのアラインの問題を解決する。 212 200 */ 213 201 … … 220 208 221 209 /* 222 * rev_memcpy_word -- å転ã¡ã¢ãªã³ãã¼ï¼4 ãã¤ãï¼223 * 224 * ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã225 * å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ã解決ããã210 * rev_memcpy_word -- 反転メモリコピー(4 バイト) 211 * 212 * バイト単位にアクセスする事により、 213 * 境界へのアラインの問題を解決する。 226 214 */ 227 215 … … 236 224 237 225 /* 238 * rev_memcmp_word -- å転ã¡ã¢ãªæ¯è¼ï¼4 ãã¤ãï¼239 * 240 * ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã241 * å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ã解決ããã226 * rev_memcmp_word -- 反転メモリ比較(4 バイト) 227 * 228 * バイト単位にアクセスする事により、 229 * 境界へのアラインの問題を解決する。 242 230 */ 243 231 -
azure_iot_hub/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
r388 r389 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$ … … 112 100 113 101 /* 114 * å¤æ°102 * 変数 115 103 */ 116 104 … … 118 106 119 107 /* 120 * å¼åºãã¨ã³ããªç»é²108 * 呼出しエントリ登録 121 109 */ 122 110 … … 126 114 int_t ix; 127 115 128 /* å¼åºãã¨ã³ããªãç²å¾ãã*/116 /* 呼出しエントリを獲得する */ 129 117 syscall(wai_sem(SEM_CALL_OUT_LOCK)); 130 118 for (ix = NUM_NET_CALLOUT; callout[-- ix].func != NULL; ) … … 135 123 } 136 124 137 /* å¼åºãã¨ã³ããªãè¨å®ãã*/125 /* 呼出しエントリを設定する */ 138 126 callout[ix].func = func; 139 127 callout[ix].arg = arg; … … 143 131 144 132 /* 145 * å¼åºãã¨ã³ããªåé¤133 * 呼出しエントリ削除 146 134 */ 147 135 … … 151 139 int_t ix; 152 140 153 /* ã¨ã³ããªãæ¢ã*/141 /* エントリを探す */ 154 142 for (ix = NUM_NET_CALLOUT; ix -- > 0; ) { 155 143 syscall(wai_sem(SEM_CALL_OUT_LOCK)); … … 164 152 165 153 /* 166 * ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ 167 * 168 * 注æ: ã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ããå¿ 169 è¦ãããããï¼ 170 * å¨æãã³ãã©ã¯ä½¿ç¨ã§ããªãã 154 * ネットワークタイマタスク 155 * 156 * 注意: タスクコンテキストで実行する必要があるため, 157 * 周期ハンドラは使用できない。 171 158 */ 172 159 … … 192 179 syslog(LOG_NOTICE, "[NET/TIMER:%d] started.", tskid); 193 180 194 /* IP ãåæåããã*/181 /* IP を初期化する。*/ 195 182 196 183 #if defined(_IP6_CFG) … … 204 191 #ifdef SUPPORT_TCP 205 192 206 /* TCP åºåã¿ã¹ã¯ãèµ·åãã*/193 /* TCP 出力タスクを起動する */ 207 194 syscall(act_tsk(TCP_OUTPUT_TASK)); 208 195 … … 211 198 #if defined(SUPPORT_UDP) && defined(UDP_CFG_NON_BLOCKING) 212 199 213 /* UDP åºåã¿ã¹ã¯ãèµ·åãã*/200 /* UDP 出力タスクを起動する */ 214 201 syscall(act_tsk(UDP_OUTPUT_TASK)); 215 202 … … 217 204 218 205 while (true) { 219 /* ã¿ã¤ã ã¢ã¦ãããã¨ã³ããªãå¼åºãã*/206 /* タイムアウトしたエントリを呼出す。*/ 220 207 syscall(wai_sem(SEM_CALL_OUT_TIMEOUT)); 221 208 for (ix = NUM_NET_CALLOUT; ix -- > 0; ) { … … 235 222 236 223 /* 237 * ãããã¯ã¼ã¯ã¿ã¤ããã³ãã©238 * 239 * NET_TIMER_CYCLE (100ms) æ¯ã«å¼åºãããã224 * ネットワークタイマハンドラ 225 * 226 * NET_TIMER_CYCLE (100ms) 毎に呼出される。 240 227 */ 241 228 -
azure_iot_hub/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
r388 r389 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(100000) /* [us] ãfast timeout 使ç¨æã®åä½å¨æ*/95 /* ã¿ã¤ãã®å¨æ³¢æ°*/82 #define NET_TIMER_CYCLE ULONG_C(100000) /* [us]、fast timeout 使用時の動作周期 */ 83 /* タイマの周波数 */ 96 84 #define NET_TIMER_HZ (SYSTIM_HZ/NET_TIMER_CYCLE) 97 85 98 86 #ifdef _IP6_CFG 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 … … 112 100 113 101 /* 114 * å 115 ¨åå¤æ° 116 */ 117 118 uint8_t ppp_phase = PPP_PHASE_INITIALIZE; /* ãªã³ã¯ã®ç¶æ 119 */ 120 121 /* 122 * ãããã³ã«è¡¨ 102 * 全域変数 103 */ 104 105 uint8_t ppp_phase = PPP_PHASE_INITIALIZE; /* リンクの状態 */ 106 107 /* 108 * プロトコル表 123 109 */ 124 110 … … 150 136 151 137 /* 152 * å¤æ°138 * 変数 153 139 */ 154 140 … … 160 146 161 147 /* 162 * é¢æ°148 * 関数 163 149 */ 164 150 … … 172 158 173 159 /* 174 * PPP å 175 ¥åã®è§£æ 160 * PPP 入力の解析 176 161 */ 177 162 … … 186 171 NET_COUNT_PPP(net_count_ppp.in_packets, 1); 187 172 188 /* ãã¬ã¼ã é·ããã§ãã¯ãã*/189 if (input->len < sizeof(T_PPP_HDR)) { /* FreeBSD ã§ã¯ PPP_HDRLEN ã¯4 */173 /* フレーム長をチェックする */ 174 if (input->len < sizeof(T_PPP_HDR)) { /* FreeBSD では PPP_HDRLEN は 4 */ 190 175 syslog(LOG_NOTICE, "[PPP] recv short frame."); 191 176 goto buf_rel; … … 194 179 proto = ntohs(*GET_PPP_HDR(input)); 195 180 196 /* ãããã³ã«ã LCP 以å¤ã§ãLCP ããªã¼ãã³ããã¦ããªããã°ã¨ã©ã¼*/181 /* プロトコルが LCP 以外で、LCP がオープンされていなければエラー */ 197 182 if (proto != PPP_LCP && lcp_fsm.state != PPP_FSM_OPENED) { 198 183 syslog(LOG_NOTICE, "[PPP] LCP not open."); … … 200 185 } 201 186 202 /* ãªã³ã¯ãèªè¨¼ç¶æ 203 以åã¯ãLCPãLQRãPAPãCHAP ã®ã¿åãä»ãã */ 187 /* リンクが認証状態以前は、LCP、LQR、PAP、CHAP のみ受け付ける */ 204 188 if (ppp_phase <= PPP_PHASE_AUTHENTICATE && 205 189 !(proto == PPP_LCP || proto == PPP_LQR || … … 209 193 } 210 194 211 /* ä¸ä½ãããã³ã«ã®å 212 ¥åé¢æ°ãå¼åºã */ 195 /* 上位プロトコルの入力関数を呼出す */ 213 196 for (ix = 0; (entry = protocols[ix]) != NULL; ix ++) { 214 197 if (entry->proto == proto && entry->input != NULL) { … … 232 215 233 216 /* 234 * ppp_output -- PPP ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°217 * ppp_output -- PPP インタフェースの出力関数 235 218 */ 236 219 … … 242 225 #ifdef PPP_CFG_MODEM 243 226 244 #if 0 /* ä¿ç */ 245 /* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾ 246 ã¤ã*/ 227 #if 0 /* 保留 */ 228 /* モデムの接続完了まで待つ。*/ 247 229 if ((error = wait_modem()) != E_OK) 248 230 goto buf_ret; … … 252 234 253 235 #ifdef _IP6_CFG 254 /* IPV6CP ã®æ¥ç¶å®äºã¾ã§å¾ 255 ã¤ã*/ 236 /* IPV6CP の接続完了まで待つ。*/ 256 237 if ((error = wait_ipv6cp()) != E_OK) 257 238 goto buf_ret; … … 259 240 260 241 #ifdef _IP4_CFG 261 /* IPCP ã®æ¥ç¶å®äºã¾ã§å¾ 262 ã¤ã*/ 242 /* IPCP の接続完了まで待つ。*/ 263 243 if ((error = wait_ipcp()) != E_OK) 264 244 goto buf_ret; … … 266 246 267 247 #ifdef _IP4_CFG 268 /* IPCP ã®æ¥ç¶å®äºã¾ã§å¾ 269 ã¤ã*/ 248 /* IPCP の接続完了まで待つ。*/ 270 249 if ((error = wait_ipcp()) != E_OK) 271 250 goto buf_ret; … … 281 260 #endif /* of #ifdef PPP_IDLE_TIMEOUT */ 282 261 283 /* PPP åºåãã¥ã¼ã«æå 284 ¥ããã*/ 262 /* PPP 出力キューに投入する。*/ 285 263 if ((error = tsnd_dtq(DTQ_PPP_OUTPUT, output, tmout)) != E_OK) 286 264 goto buf_ret; … … 304 282 305 283 /* 306 * ppp_cp_output -- CP ãã¬ã¼ã ã®éä¿¡284 * ppp_cp_output -- CP フレームの送信 307 285 */ 308 286 … … 312 290 T_PPP_CP_HDR *cph; 313 291 314 /* CP ããããè¨å®ãã*/292 /* CP ヘッダを設定する */ 315 293 cph = GET_PPP_CP_HDR(output); 316 294 cph->code = code; … … 318 296 cph->len = htons(output->len - sizeof(T_PPP_HDR)); 319 297 320 /* PPP åºåãã¥ã¼ã«æå 321 ¥ããã*/ 298 /* PPP 出力キューに投入する。*/ 322 299 if (snd_dtq(DTQ_PPP_OUTPUT, output) != E_OK) { 323 300 syscall(rel_net_buf(output)); … … 327 304 328 305 /* 329 * PPP å 330 ¥åã¿ã¹ã¯ 306 * PPP 入力タスク 331 307 */ 332 308 … … 340 316 uint8_t rcount = 0; 341 317 342 /* ãã¼ããåæè¨å®ãã*/318 /* ポートを初期設定する */ 343 319 syscall(serial_opn_por(HDLC_PORTID)); 344 320 syscall(serial_ctl_por(HDLC_PORTID, IOCTL_FCSND | IOCTL_FCRCV)); … … 357 333 #endif /* of #ifdef PPP_CFG_MODEM */ 358 334 359 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã*/335 /* ネットワークタイマタスクを起動する */ 360 336 syscall(act_tsk(NET_TIMER_TASK)); 361 337 362 /* ä¸ä½ãããã³ã«ãåæåãã*/338 /* 上位プロトコルを初期化する */ 363 339 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) 364 340 if (proto->init != NULL) … … 368 344 lcp_open(PPP_OPEN_PASSIVE); 369 345 370 /* PPP åºåã¿ã¹ã¯ãèµ·åãã*/346 /* PPP 出力タスクを起動する */ 371 347 syscall(act_tsk(PPP_OUTPUT_TASK)); 372 348 373 /* ä¹±æ°çæãåæåããã*/349 /* 乱数生成を初期化する。*/ 374 350 net_srand(0); 375 351 … … 380 356 if (input->len > 0) { 381 357 382 /* ä¹±æ°çæãåæåããã*/358 /* 乱数生成を初期化する。*/ 383 359 if (rcount == 0) 384 360 net_srand(input->len); … … 422 398 423 399 /* 424 * PPP åºåã¿ã¹ã¯400 * PPP 出力タスク 425 401 */ 426 402 … … 447 423 448 424 /* 449 * ã¢ã¤ãã«ã¿ã¤ã ã¢ã¦ãå¦ç425 * アイドルタイムアウト処理 450 426 */ 451 427 -
azure_iot_hub/trunk/asp3_dcre/tinet/net/ppp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 … … 101 89 102 90 /* 103 * ãªã³ã¯ã®ç¶æ 104 91 * リンクの状態 105 92 */ 106 93 … … 116 103 117 104 /* 118 * PPP ãªã³ã¯å¶å¾¡ (CP) ãããæ§é ä½105 * PPP リンク制御 (CP) ヘッダ構造体 119 106 */ 120 107 121 108 typedef struct t_ppp_cp_hdr { 122 uint8_t code; /* å¶å¾¡ã³ã¼ã*/123 uint8_t id; /* èå¥å*/124 uint16_t len; /* é·ã*/109 uint8_t code; /* 制御コード */ 110 uint8_t id; /* 識別子 */ 111 uint16_t len; /* 長さ */ 125 112 } __attribute__((packed, aligned(2)))T_PPP_CP_HDR; 126 113 … … 128 115 129 116 /* 130 * PPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ã117 * PPP リンク制御 (CP) の制御コード 131 118 */ 132 119 … … 141 128 142 129 /* 143 * æ§ææ 144 å ± (CI) ããã 130 * 構成情報 (CI) ヘッダ 145 131 */ 146 132 147 133 typedef struct t_ppp_ci_hdr { 148 uint8_t type; /* CI ã®å*/149 uint8_t len; /* é·ã*/134 uint8_t type; /* CI の型 */ 135 uint8_t len; /* 長さ */ 150 136 } __attribute__((packed, aligned(2)))T_PPP_CI_HDR; 151 137 -
azure_iot_hub/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
r388 r389 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$ … … 124 112 125 113 /* 126 * å®æ°114 * 定数 127 115 */ 128 116 … … 133 121 134 122 /* 135 * network_phase -- ã³ãã¯ã·ã§ã³ç¢ºç«123 * network_phase -- コネクション確立 136 124 */ 137 125 … … 144 132 ppp_phase = PPP_PHASE_NETWORK; 145 133 146 /* ä¸ä½ãããã³ã«ããªã¼ãã³ãã*/134 /* 上位プロトコルをオープンする */ 147 135 num = 0; 148 136 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) 149 #if 0 /* ä¿çãåé¤ç¦æ¢*/137 #if 0 /* 保留、削除禁止 */ 150 138 if (proto->proto < 0xc000 && proto->open != NULL) { 151 139 #else /* of #if 0 */ … … 158 146 159 147 if (num == 0) 160 /* ä¸ä½ãããã³ã«ããªã*/148 /* 上位プロトコルがない */ 161 149 lcp_close(); 162 150 else … … 165 153 166 154 /* 167 * link_required -- ãªã³ã¯ãéè¨ããã155 * link_required -- リンクを開設する。 168 156 */ 169 157 … … 174 162 175 163 /* 176 * link_terminated -- ãã°ã¢ã¦ããã¦ããªã³ã¯ãåæããã164 * link_terminated -- ログアウトして、リンクを切断する。 177 165 */ 178 166 … … 186 174 187 175 /* 188 * link_down -- ãªã³ã¯ã解æ¾ããã176 * link_down -- リンクを解放する。 189 177 */ 190 178 … … 195 183 T_PPP_PROTENT *proto; 196 184 197 /* ä¸ä½ãããã³ã«ã解æ¾ãã*/185 /* 上位プロトコルを解放する */ 198 186 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) { 199 187 if (proto->proto != PPP_LCP && proto->lowerdown != NULL) … … 208 196 209 197 /* 210 * link_established -- ãªã³ã¯ã®æ¥ç¶ã確ç«ããã198 * link_established -- リンクの接続が確立した。 211 199 */ 212 200 … … 223 211 #endif /* of #if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP) */ 224 212 225 /* ä¸ä½ãããã³ã«ãèµ·åãã*/213 /* 上位プロトコルを起動する */ 226 214 for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) 227 215 if (proto->lowerup != NULL) 228 216 (*proto->lowerup)(); 229 217 230 /* èªè¨¼ãªãã·ã§ã³ã確èªããããæªå®è£ 231 ã*/ 218 /* 認証オプションを確認する。【未実装】*/ 232 219 233 220 ppp_phase = PPP_PHASE_AUTHENTICATE; … … 284 271 285 272 /* 286 * auth_reset -- èªè¨¼ãªãã·ã§ã³ãå確èªããã273 * auth_reset -- 認証オプションを再確認する。 287 274 */ 288 275 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 … … 113 100 114 101 /* 115 * é¢æ°102 * 関数 116 103 */ 117 104 … … 125 112 126 113 /* 127 * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢114 * FSM から呼出されるコールバック関 128 115 */ 129 116 130 117 static int_t ccp_reqci (T_PPP_FSM *fsm, T_NET_BUF *nbuf); 131 /* ç¸æã®æ§ææ 132 å ±ã確èªããã */ 133 134 /* 135 * å 136 ¨åå¤æ° 118 /* 相手の構成情報を確認する。 */ 119 120 /* 121 * 全域変数 137 122 */ 138 123 139 124 T_PPP_FSM_CALLBACKS ccp_callbacks = { 140 NULL, /* èªæ§ææ 141 å ±ããªã»ããããã */ 142 NULL, /* æ§ææ 143 å ±ã®é·ããè¿ãã */ 144 NULL, /* èªæ§ææ 145 å ±ã追å ããã */ 146 NULL, /* ACK ãåä¿¡ããã¨ãã®å¦ç */ 147 NULL, /* NAK ãåä¿¡ããã¨ãã®å¦ç */ 148 NULL, /* REJ ãåä¿¡ããã¨ãã®å¦ç */ 149 ccp_reqci, /* ç¸æã®æ§ææ 150 å ±ã確èªããã */ 151 NULL, /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 152 NULL, /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 153 NULL, /* ä¸ä½å±¤ãéå§ããã */ 154 NULL, /* ä¸ä½å±¤ãçµäºããã */ 155 NULL, /* åéããã */ 156 NULL, /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 125 NULL, /* 自構成情報をリセットする。 */ 126 NULL, /* 構成情報の長さを返す。 */ 127 NULL, /* 自構成情報を追加する。 */ 128 NULL, /* ACK を受信したときの処理 */ 129 NULL, /* NAK を受信したときの処理 */ 130 NULL, /* REJ を受信したときの処理 */ 131 ccp_reqci, /* 相手の構成情報を確認する。 */ 132 NULL, /* リンク接続を確立する。 */ 133 NULL, /* リンク接続を解放する。 */ 134 NULL, /* 下位層を開始する。 */ 135 NULL, /* 下位層を終了する。 */ 136 NULL, /* 再送する。 */ 137 NULL, /* 不明な CP を受信したときの処理 */ 157 138 }; 158 139 159 140 T_PPP_FSM ccp_fsm = { 160 &ccp_callbacks, /* ã³ã¼ã«ããã¯é¢æ°*/161 PPP_CCP, /* ãããã³ã«*/141 &ccp_callbacks, /* コールバック関数 */ 142 PPP_CCP, /* プロトコル */ 162 143 }; 163 144 164 145 T_PPP_PROTENT ccp_protent = { 165 146 PPP_CCP, 166 ccp_init, /* åæå */ 167 ccp_input, /* å 168 ¥å */ 169 ccp_protrej, /* Proto-REJ åä¿¡å¦ç */ 170 ccp_lowerup, /* ä¸ä½å±¤ãèµ·åãã */ 171 ccp_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 172 ccp_open, /* ãªã¼ãã³ãã */ 173 ccp_close, /* ã¯ãã¼ãºãã */ 174 NULL, /* ãã¼ã¿å 175 ¥å */ 147 ccp_init, /* 初期化 */ 148 ccp_input, /* 入力 */ 149 ccp_protrej, /* Proto-REJ 受信処理 */ 150 ccp_lowerup, /* 下位層を起動する */ 151 ccp_lowerdown, /* 下位層を停止する */ 152 ccp_open, /* オープンする */ 153 ccp_close, /* クローズする */ 154 NULL, /* データ入力 */ 176 155 }; 177 156 178 157 /* 179 * ccp_init -- CCP ã¢ã¸ã¥ã¼ã«ã®åæå158 * ccp_init -- CCP モジュールの初期化 180 159 */ 181 160 … … 187 166 188 167 /* 189 * ccp_input -- CCP å 190 ¥å 168 * ccp_input -- CCP 入力 191 169 */ 192 170 … … 200 178 201 179 /* 202 * ccp_reqci -- ç¸æã®æ§ææ 203 å ±ã解æããã 180 * ccp_reqci -- 相手の構成情報を解析する。 204 181 */ 205 182 … … 208 185 { 209 186 /* 210 * å®è£ 211 äºå®ãç¾å¨ã¯ãã¹ã¦ã®ãªãã·ã§ã³ãæå¦ããã 187 * 実装予定、現在はすべてのオプションを拒否する。 212 188 */ 213 189 return nbuf->len > (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) ? PPP_CONFREJ : PPP_CONFACK; … … 215 191 216 192 /* 217 * ccp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç193 * ccp_protrej -- Proto-REJ を受信したときの処理 218 194 */ 219 195 … … 225 201 226 202 /* 227 * ccp_lowerup -- CCP ä¸ä½å±¤ãèµ·åããã203 * ccp_lowerup -- CCP 下位層を起動する。 228 204 */ 229 205 … … 235 211 236 212 /* 237 * ccp_lowerdown -- CCP ä¸ä½å±¤ãåæ¢ããã213 * ccp_lowerdown -- CCP 下位層を停止する。 238 214 */ 239 215 … … 245 221 246 222 /* 247 * ccp_open -- CCP ã®ãªã¼ã223 * ccp_open -- CCP のオープ 248 224 */ 249 225 … … 255 231 256 232 /* 257 * ccp_close -- CCP ã®ã¯ãã¼ãº233 * ccp_close -- CCP のクローズ 258 234 */ 259 235 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 * å 115 ¨åå¤æ° 116 */ 117 118 uint8_t ppp_open_mode = PPP_OPEN_PASSIVE; /* ãªã¼ãã³æã®åä½ã¢ã¼ã */ 119 120 /* 121 * é¢æ° 102 * 全域変数 103 */ 104 105 uint8_t ppp_open_mode = PPP_OPEN_PASSIVE; /* オープン時の動作モード */ 106 107 /* 108 * 関数 122 109 */ 123 110 … … 133 120 134 121 /* 135 * fsm_sconfreq -- Configure-Request ãéä¿¡ããã122 * fsm_sconfreq -- Configure-Request を送信する。 136 123 */ 137 124 … … 145 132 fsm->state == PPP_FSM_ACKRCVD || 146 133 fsm->state == PPP_FSM_ACKSENT)) { 147 /* ã¾ã ãã´ããã¦ããªãããªãã·ã§ã³ããªã»ããããã*/134 /* まだネゴをしていない。オプションをリセットする。 */ 148 135 if (fsm->callbacks->resetci) 149 136 (*fsm->callbacks->resetci)(fsm); … … 151 138 } 152 139 if (retransmit == 0) { 153 /* æ°ãããªã¯ã¨ã¹ããåéã«ã¦ã³ã¿ããªã»ããããæ°ãã ID ãè¨å®ããã*/140 /* 新しいリクエスト。再送カウンタをリセットし、新しい ID を設定する。 */ 154 141 fsm->retrans = MAX_PPP_CONFIGURES; 155 142 fsm->reqid = ++ fsm->id; … … 159 146 160 147 if (fsm->callbacks->cilen && fsm->callbacks->addci) { 161 /* æ§ææ 162 å ±ãã±ãããä½ãã */ 148 /* 構成情報パケットを作る。 */ 163 149 len = (*fsm->callbacks->cilen)(fsm); 164 150 … … 166 152 (*fsm->callbacks->addci)(fsm, output); 167 153 168 /* æ§ææ 169 å ±ãã±ãããéä¿¡ããã */ 154 /* 構成情報パケットを送信する。 */ 170 155 IF_SET_PROTO(output, fsm->proto); 171 156 ppp_cp_output(PPP_CONFREQ, fsm->reqid, output); … … 177 162 178 163 /* 179 * fsm_rconfreq -- Configure-Request ãåä¿¡ããã¨ãã®å¦ç164 * fsm_rconfreq -- Configure-Request を受信したときの処理 180 165 */ 181 166 … … 200 185 201 186 case PPP_FSM_OPENED: 202 /* ä¸ä½å±¤ãåæ¢ãã¦ããã´ã«ç§»ãã*/187 /* 上位層を停止して、ネゴに移る。 */ 203 188 if (fsm->callbacks->down != NULL) 204 189 (*fsm->callbacks->down)(fsm); 205 fsm_sconfreq(fsm, 0); /* æåã® Configure-Request ãéãã*/190 fsm_sconfreq(fsm, 0); /* 最初の Configure-Request を送る。 */ 206 191 break; 207 192 208 193 case PPP_FSM_STOPPED: 209 /* ç¸æãããã´ãéå§ããã*/210 fsm_sconfreq(fsm, 0); /* æåã® Configure-Request ãéãã*/194 /* 相手からネゴが開始された */ 195 fsm_sconfreq(fsm, 0); /* 最初の Configure-Request を送る。 */ 211 196 fsm->state = PPP_FSM_REQSENT; 212 197 break; … … 216 201 syscall(get_net_buf(&output, input->len)); 217 202 218 /* ä¸ä½ãããã³ã«ã«è¦æ±ããã Configure-Request ãéãã */ 219 if (fsm->callbacks->reqci != NULL) /* æ§ææ 220 å ±ããã§ãã¯ããã */ 203 /* 上位プロトコルに要求された Configure-Request を送る。 */ 204 if (fsm->callbacks->reqci != NULL) /* 構成情報をチェックする。 */ 221 205 code = (*fsm->callbacks->reqci)(fsm, input, output); 222 206 else if (output->len > sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) … … 225 209 code = PPP_CONFACK; 226 210 227 /* ç¸æã« ACK, NAK ã¾ã㯠REJ ãéä¿¡ããã*/211 /* 相手に ACK, NAK または REJ を送信する。 */ 228 212 ppp_cp_output(code, id, output); 229 213 … … 240 224 } 241 225 else { 242 /* ACK ã REJ ãéã*/226 /* ACK か REJ を送る */ 243 227 if (fsm->state != PPP_FSM_ACKRCVD) 244 228 fsm->state = PPP_FSM_REQSENT; … … 249 233 250 234 /* 251 * fsm_rconfnakrej -- Configure-NAK/REJ ãåä¿¡ããã¨ãã®å¦ç235 * fsm_rconfnakrej -- Configure-NAK/REJ を受信したときの処理 252 236 */ 253 237 … … 258 242 T_NET_BUF *output; 259 243 260 /* äºæãã ID ã§ãªãããNAK/REJ ãäºæãã¦ããªãã¨ãã¯çµäºããã*/244 /* 予期した ID でないか、NAK/REJ を予期していないときは終了する。*/ 261 245 if (id != fsm->reqid || fsm->seen_ack) { 262 246 syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp NAK/REJ."); … … 291 275 case PPP_FSM_ACKSENT: 292 276 untimeout((FP)fsm_timeout, fsm); 293 if (ret < 0) /* éä¿¡ãã Conf-Req ãç ´æã空㮠NAK/REJ ãå±ããã*/277 if (ret < 0) /* 送信した Conf-Req が破損し空の NAK/REJ が届いた。*/ 294 278 fsm->state = PPP_FSM_STOPPED; 295 279 else … … 304 288 305 289 case PPP_FSM_OPENED: 306 /* åèµ·åãããã´ãããç´ãã*/290 /* 再起動し、ネゴをやり直す。*/ 307 291 if (fsm->callbacks->down != NULL) 308 292 (*fsm->callbacks->down)(fsm); … … 314 298 315 299 /* 316 * fsm_rconfack -- Configure-ACK ãåä¿¡ããã¨ãã®å¦ç300 * fsm_rconfack -- Configure-ACK を受信したときの処理 317 301 */ 318 302 … … 322 306 T_NET_BUF *output; 323 307 324 /* äºæãã ID ã§ãªãããACK ãäºæãã¦ããªãã¨ãã¯çµäºããã*/308 /* 予期した ID でないか、ACK を予期していないときは終了する。*/ 325 309 if (id != fsm->reqid || fsm->seen_ack) { 326 310 syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp ACK."); … … 369 353 370 354 case PPP_FSM_OPENED: 371 /* åèµ·åãããã´ãããç´ãã*/355 /* 再起動し、ネゴをやり直す。*/ 372 356 if (fsm->callbacks->down != NULL) 373 357 (*fsm->callbacks->down)(fsm); … … 384 368 385 369 /* 386 * fsm_rtermreq -- Terminate-Request ãåä¿¡ããã¨ãã®å¦ç370 * fsm_rtermreq -- Terminate-Request を受信したときの処理 387 371 */ 388 372 … … 412 396 413 397 /* 414 * fsm_rtermack -- Terminate-ACK ãåä¿¡ããã¨ãã®å¦ç398 * fsm_rtermack -- Terminate-ACK を受信したときの処理 415 399 */ 416 400 … … 421 405 case PPP_FSM_CLOSING: 422 406 untimeout((FP)fsm_timeout, fsm); 423 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/407 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 424 408 fsm->state = PPP_FSM_CLOSED; 425 409 #else /* of #if 0 */ … … 450 434 451 435 /* 452 * fsm_rcoderej -- Code-REJ ãåä¿¡ããã¨ãã®å¦ç436 * fsm_rcoderej -- Code-REJ を受信したときの処理 453 437 */ 454 438 … … 458 442 T_PPP_CP_HDR *hdr; 459 443 460 /* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããçããã°ã¨ã©ã¼*/444 /* PPP リンク制御 (CP) ヘッダより短ければエラー */ 461 445 if (input->len < sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) { 462 446 syslog(LOG_WARNING, "[PPP/FSM] bad len: %d in recv Code-REJ.", input->len); … … 473 457 474 458 /* 475 * fsm_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç459 * fsm_timeout -- タイムアウト処理 476 460 */ 477 461 … … 485 469 case PPP_FSM_STOPPING: 486 470 if (fsm->retrans <= 0) { 487 /* æ大åéåæ°ãè¶ 488 ããã¨ãã®å¦ç */ 489 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/ 471 /* 最大再送回数を超えたときの処理 */ 472 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 490 473 fsm->state = (fsm->state == PPP_FSM_CLOSING) ? PPP_FSM_CLOSED : PPP_FSM_STOPPED; 491 474 #else /* of #if 0 */ … … 496 479 } 497 480 else { 498 /* Terminate-Request ãéä¿¡ããã*/481 /* Terminate-Request を送信する。*/ 499 482 fsm_stermreq(fsm, ++ fsm->id); 500 483 } … … 504 487 case PPP_FSM_ACKSENT: 505 488 if (fsm->retrans <= 0) { 506 /* æ大åéåæ°ãè¶ 507 ããã¨ãã®å¦ç */ 489 /* 最大再送回数を超えたときの処理 */ 508 490 syslog(LOG_WARNING, "[PPP/FSM] retrans Conf-Req."); 509 491 fsm->state = PPP_FSM_STOPPED; … … 512 494 } 513 495 else { 514 /* Configure-Request ãåéããã*/496 /* Configure-Request を再送する。*/ 515 497 if (fsm->callbacks->retrans != NULL) 516 498 (*fsm->callbacks->retrans)(fsm); … … 529 511 530 512 /* 531 * fsm_stermreq -- Terminate-Request ãéä¿¡ããã513 * fsm_stermreq -- Terminate-Request を送信する。 532 514 */ 533 515 … … 546 528 547 529 /* 548 * fsm_init -- FSM ã¢ã¸ã¥ã¼ã«ã®åæå530 * fsm_init -- FSM モジュールの初期化 549 531 */ 550 532 … … 557 539 558 540 /* 559 * fsm_lowerup -- FSM ä¸ä½å±¤ãèµ·åããã541 * fsm_lowerup -- FSM 下位層を起動する。 560 542 */ 561 543 … … 584 566 585 567 /* 586 * fsm_lowerdown -- FSM ä¸ä½å±¤ãåæ¢ããã568 * fsm_lowerdown -- FSM 下位層を停止する。 587 569 */ 588 570 … … 627 609 628 610 /* 629 * fsm_open -- FSM ã®ãªã¼ãã³611 * fsm_open -- FSM のオープン 630 612 */ 631 613 … … 651 633 case PPP_FSM_CLOSING: 652 634 fsm->state = PPP_FSM_STOPPING; 653 /* nobreak; ä¸ã«è½ã¡ã*/635 /* nobreak; 下に落ちる */ 654 636 655 637 case PPP_FSM_STOPPED: … … 662 644 663 645 /* 664 * fsm_close -- ãªã³ã¯ã®åæãéå§ããã646 * fsm_close -- リンクの切断を開始する。 665 647 */ 666 648 … … 673 655 break; 674 656 675 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/657 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 676 658 case PPP_FSM_STOPPED: 677 659 fsm->state = PPP_FSM_CLOSED; … … 692 674 (*fsm->callbacks->down)(fsm); 693 675 694 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããTerminate-Request ãéä¿¡ããã*/676 /* タイムアウトを設定し、Terminate-Request を送信する。*/ 695 677 fsm->retrans = MAX_PPP_TERMINATES; 696 678 fsm_stermreq(fsm, fsm->reqid = ++ fsm->id); … … 701 683 702 684 /* 703 * fsm_input -- å 704 ¥åãPPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã 685 * fsm_input -- 入力、PPP リンク制御 (CP) の制御コードにより適当な関数を呼出す 705 686 */ 706 687 … … 711 692 T_NET_BUF *output; 712 693 713 /* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããçããã°ã¨ã©ã¼*/694 /* PPP リンク制御 (CP) ヘッダより短ければエラー */ 714 695 if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) { 715 696 syslog(LOG_WARNING, "[PPP/FSM] short hdr: %d.", input->len); … … 719 700 hdr = GET_PPP_CP_HDR(input); 720 701 721 /* ãããã®é·ãã¨å 722 ¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */ 702 /* ヘッダの長さと入力データサイズが一致しなければエラー */ 723 703 if (hdr->len != input->len - sizeof(T_PPP_HDR)) { 724 704 syslog(LOG_WARNING, "[PPP/FSM] bad len: %d.", hdr->len); … … 726 706 } 727 707 728 /* ç¶æ 729 ã INITIAL ã STARTING ãªãã¨ã©ã¼ */ 708 /* 状態が INITIAL か STARTING ならエラー */ 730 709 if (fsm->state == PPP_FSM_INITIAL || fsm->state == PPP_FSM_STARTING) { 731 710 syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in input.", fsm->state); … … 734 713 735 714 /* 736 * å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã715 * 制御コードにより適当な関数を呼出す 737 716 */ 738 717 … … 775 754 776 755 /* 777 * fsm_protoreject -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç756 * fsm_protoreject -- Proto-REJ を受信したときの処理 778 757 */ 779 758 … … 785 764 untimeout((FP)fsm_timeout, fsm); 786 765 787 #if 0 /* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/788 /* ä¸ã«è½ã¡ã*/766 #if 0 /* 本来の動作は CLOSED に遷移する。*/ 767 /* 下に落ちる */ 789 768 #else /* of #if 0 */ 790 769 fsm->state = PPP_FSM_STOPPED; … … 805 784 case PPP_FSM_ACKSENT: 806 785 untimeout((FP)fsm_timeout, fsm); 807 /* ä¸ã«è½ã¡ã*/786 /* 下に落ちる */ 808 787 809 788 case PPP_FSM_STOPPED: … … 817 796 (*fsm->callbacks->down)(fsm); 818 797 819 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããTerminate-Request ãéä¿¡ããã*/798 /* タイムアウトを設定し、Terminate-Request を送信する。*/ 820 799 fsm->retrans = MAX_PPP_TERMINATES; 821 800 fsm_stermreq(fsm, fsm->reqid = ++ fsm->id); -
azure_iot_hub/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
r388 r389 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 } 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 } 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 -
azure_iot_hub/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
r388 r389 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 * RFC1171 (PPP) ã® HDLC é¨ã®å®ç¾©93 */ 94 95 /* 96 * å¤æ°80 * RFC1171 (PPP) の HDLC 部の定義 81 */ 82 83 /* 84 * 変数 97 85 */ 98 86 … … 100 88 101 89 /* 102 * é¢æ°90 * 関数 103 91 */ 104 92 … … 107 95 108 96 /* 109 * genfcstab.c ã«ããä½æãã FCS ã®ã«ãã¯ã¢ãã表 110 * RFC1171 åç 111 § 97 * genfcstab.c により作成した FCS のルックアップ表 98 * RFC1171 参照 112 99 */ 113 100 … … 180 167 181 168 /* 182 * ã¤ã³ã©ã¤ã³é¢æ°169 * インライン関数 183 170 */ 184 171 … … 188 175 189 176 /* 190 * HDLC_putoctet -- HDLC ãªã¯ãããåºå177 * HDLC_putoctet -- HDLC オクテット出力 191 178 */ 192 179 … … 212 199 213 200 /* 214 * HDLC_wirte -- HDLC åºå201 * HDLC_wirte -- HDLC 出力 215 202 */ 216 203 … … 241 228 if (lcp_local_ack_cfg.options & LCP_CFG_ACCOMP) { 242 229 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq)); 243 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ ãéä¿¡ãã*/230 /* フレーム開始フラグシーケンス を送信する */ 244 231 if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq, sizeof(flag_seq))) < 0) { 245 232 goto err_ret; … … 250 237 251 238 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac)); 252 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress 㨠Control ãéä¿¡ãã*/239 /* フレーム開始フラグシーケンス、Address と Control を送信する */ 253 240 if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) { 254 241 goto err_ret; 255 242 } 256 /* Address 㨠Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã*/243 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */ 257 244 fcs = HDLC_INIT_FCS_AC; 258 245 } … … 261 248 262 249 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac)); 263 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress 㨠Control ãéä¿¡ãã*/250 /* フレーム開始フラグシーケンス、Address と Control を送信する */ 264 251 if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) { 265 252 goto err_ret; 266 253 } 267 /* Address 㨠Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã*/254 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */ 268 255 fcs = HDLC_INIT_FCS_AC; 269 256 … … 282 269 #endif /* of #ifdef LCP_CFG_PCOMP */ 283 270 284 /* ãã¼ã¿ãéä¿¡ãã*/271 /* データを送信する */ 285 272 while (len -- > 0) { 286 273 … … 291 278 } 292 279 293 /* FCS ãéä¿¡ãã*/280 /* FCS を送信する */ 294 281 fcs = ~fcs; 295 282 if ((error = HDLC_putoctet(fcs & 0xff)) != E_OK) … … 298 285 goto err_ret; 299 286 300 /* ãã¬ã¼ã çµäºãã©ã°ã·ã¼ã±ã³ã¹ãéä¿¡ãã*/287 /* フレーム終了フラグシーケンスを送信する */ 301 288 if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq_ac[0], sizeof(char))) < 0) 302 289 goto err_ret; … … 310 297 311 298 /* 312 * HDLC_getoctet -- HDLC ãªã¯ãããå 313 ¥å 314 * 315 * æ»ãå¤ã true ãªããã©ã°ã·ã¼ã±ã³ã¹ 299 * HDLC_getoctet -- HDLC オクテット入力 300 * 301 * 戻り値が true ならフラグシーケンス 316 302 */ 317 303 … … 321 307 ER error; 322 308 323 /* 1ãªã¯ãããå 324 ¥åãã */ 309 /* 1オクテット入力する */ 325 310 if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0) { 326 311 return error; 327 312 } 328 313 329 /* å 330 ¥åãããªã¯ãããããã©ã°ã·ã¼ã±ã³ã¹ãªã true ãè¿ã */ 314 /* 入力したオクテットがフラグシーケンスなら true を返す */ 331 315 if (*octet == HDLC_FLAG_SEQ) 332 316 return true; 333 317 334 /* å 335 ¥åãããªã¯ããããã¨ã¹ã±ã¼ããªããããï¼ãªã¯ãããå 336 ¥åããã¹ã¯ã解é¤ãã */ 318 /* 入力したオクテットがエスケープなら、もう1オクテット入力しマスクを解除する */ 337 319 if (*octet == HDLC_CNTL_ESC) { 338 320 if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0) … … 346 328 347 329 /* 348 * HDLC_read -- HDLC å 349 ¥å 350 * 351 * HDLC ãã¬ã¼ã ãå 352 ¥åããã 330 * HDLC_read -- HDLC 入力 331 * 332 * HDLC フレームを入力する。 353 333 */ 354 334 … … 362 342 buf = nbuf->buf; 363 343 364 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å 365 ¥åãèªã¿é£ã°ã */ 344 /* フレーム開始フラグシーケンスまで入力を読み飛ばす */ 366 345 while ((error = HDLC_getoctet(&octet)) != true) { 367 346 … … 372 351 373 352 else if (octet == '\n') { 374 /* ã¢ãã å¶å¾¡ãå¼ã³åºãã*/353 /* モデム制御を呼び出す。*/ 375 354 modem_cntl(modem_getline(nbuf, size)); 376 /* ä¸åº¦ããã®é¢æ°ãçµäºããã*/355 /* 一度、この関数を終了する。*/ 377 356 nbuf->len = 0; 378 357 return E_OK; … … 383 362 } 384 363 385 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å 386 ¥åãèªã¿é£ã°ã */ 364 /* フレーム開始フラグシーケンスの間は入力を読み飛ばす */ 387 365 while (1) { 388 366 if ((error = HDLC_getoctet(&octet)) == E_OK) … … 394 372 NET_COUNT_PPP_HDLC(net_count_hdlc.in_packets, 1); 395 373 396 /* å 397 ¥åãããªã¯ããã㯠Address: All-Stations ã */ 374 /* 入力したオクテットは Address: All-Stations か */ 398 375 if (octet == HDLC_ADDR_ALL) { 399 376 400 /* 次ã¯Control: UI */377 /* 次は Control: UI */ 401 378 if ((error = HDLC_getoctet(&octet)) != E_OK || octet != HDLC_CNTL_UI) { 402 379 error = E_SYS; … … 405 382 if ((error = HDLC_getoctet(&octet)) != E_OK) 406 383 goto err_ret; 407 /* Address 㨠Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã*/384 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */ 408 385 fcs = HDLC_INIT_FCS_AC; 409 386 } … … 439 416 nbuf->len ++; 440 417 441 /* SUD + FCS ãå 442 ¥åãã */ 418 /* SUD + FCS を入力する */ 443 419 while ((error = HDLC_getoctet(&octet)) == E_OK) { 444 420 fcs = Next_FCS(fcs, octet); … … 465 441 goto err_ret; 466 442 467 /* FCS ããã§ãã¯ãã*/443 /* FCS をチェックする */ 468 444 if (fcs != HDLC_GOOD_FCS) { 469 445 error = E_SYS; … … 479 455 480 456 /* 481 * HDLC_dummy_read -- HDLC å 482 ¥å (空èªã¿) 483 * 484 * HDLC ãã¬ã¼ã ã空èªã¿ããã 457 * HDLC_dummy_read -- HDLC 入力 (空読み) 458 * 459 * HDLC フレームを空読みする。 485 460 */ 486 461 … … 491 466 ER error; 492 467 493 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å 494 ¥åãèªã¿é£ã°ã */ 468 /* フレーム開始フラグシーケンスまで入力を読み飛ばす */ 495 469 while ((error = HDLC_getoctet(&octet)) != true) { 496 470 if (error != E_OK) … … 498 472 } 499 473 500 /* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å 501 ¥åãèªã¿é£ã°ã */ 474 /* フレーム開始フラグシーケンスの間は入力を読み飛ばす */ 502 475 while (octet == HDLC_FLAG_SEQ) 503 476 if (HDLC_getoctet(&octet) != E_OK) 504 477 return; 505 478 506 /* å 507 ¥åãããªã¯ããã㯠Address: All-Stations ã */ 479 /* 入力したオクテットは Address: All-Stations か */ 508 480 if (octet == HDLC_ADDR_ALL) { 509 481 510 /* 次ã¯Control: UI */482 /* 次は Control: UI */ 511 483 if (HDLC_getoctet(&octet) != E_OK || octet != HDLC_CNTL_UI) 512 484 return; … … 532 504 533 505 /* 534 * HDLC_raw_getoctet -- HDLC ãªã¯ããã (Raw) å 535 ¥å 506 * HDLC_raw_getoctet -- HDLC オクテット (Raw) 入力 536 507 */ 537 508 … … 540 511 uint8_t ch; 541 512 542 /* 1ãªã¯ãããå 543 ¥åãã */ 513 /* 1オクテット入力する */ 544 514 if (serial_rea_dat(HDLC_PORTID, &ch, sizeof(ch)) <= 0) 545 515 return '\0'; … … 550 520 551 521 /* 552 * HDLC_raw_putoctet -- HDLC ãªã¯ããã (Raw) åºå522 * HDLC_raw_putoctet -- HDLC オクテット (Raw) 出力 553 523 */ 554 524 … … 556 526 { 557 527 NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, 1); 558 /* 1 ãªã¯ãããåºåãã*/528 /* 1オクテット出力する */ 559 529 serial_wri_dat(HDLC_PORTID, &ch, sizeof(ch)); 560 530 } -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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$ … … 124 112 125 113 /* 126 * é¢æ°114 * 関数 127 115 */ 128 116 … … 136 124 137 125 /* 138 * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢ 139 */ 140 141 static void ipcp_resetci(T_PPP_FSM *fsm); /* èªæ§ææ 142 å ±ããªã»ããããã */ 143 static int_t ipcp_cilen (T_PPP_FSM *fsm); /* æ§ææ 144 å ±ã®é·ããè¿ãã */ 126 * FSM から呼出されるコールバック関 127 */ 128 129 static void ipcp_resetci(T_PPP_FSM *fsm); /* 自構成情報をリセットする。 */ 130 static int_t ipcp_cilen (T_PPP_FSM *fsm); /* 構成情報の長さを返す。 */ 145 131 static void ipcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output); 146 /* èªæ§ææ 147 å ±ã追å ããã */ 132 /* 自構成情報を追加する。 */ 148 133 static bool_t ipcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input); 149 /* ACK ãåä¿¡ããã¨ãã®å¦ç*/134 /* ACK を受信したときの処理 */ 150 135 static bool_t ipcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input); 151 /* NAK ãåä¿¡ããã¨ãã®å¦ç*/136 /* NAK を受信したときの処理 */ 152 137 static bool_t ipcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input); 153 /* REJ ãåä¿¡ããã¨ãã®å¦ç*/138 /* REJ を受信したときの処理 */ 154 139 static int_t ipcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output); 155 /* ç¸æã®æ§ææ 156 å ±ã確èªããã */ 157 static void ipcp_up (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 158 static void ipcp_down (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 159 static void ipcp_finished(T_PPP_FSM *fsm); /* ä¸ä½å±¤ãçµäºããã */ 160 161 /* 162 * å¤æ° 163 */ 164 165 static T_IFNET ipcp_local_def_cfg = { /* èªæ§ææ 166 å ±ã®è¦å®å¤ */ 140 /* 相手の構成情報を確認する。 */ 141 static void ipcp_up (T_PPP_FSM *fsm); /* リンク接続を確立する。 */ 142 static void ipcp_down (T_PPP_FSM *fsm); /* リンク接続を解放する。 */ 143 static void ipcp_finished(T_PPP_FSM *fsm); /* 下位層を終了する。 */ 144 145 /* 146 * 変数 147 */ 148 149 static T_IFNET ipcp_local_def_cfg = { /* 自構成情報の規定値 */ 167 150 NULL, 168 151 { 169 IPV4_ADDR_LOCAL, /* IPv4 ã¢ãã¬ã¹*/170 UINT_C(0), /* ãµãããããã¹ã¯*/152 IPV4_ADDR_LOCAL, /* IPv4 アドレス */ 153 UINT_C(0), /* サブネットマスク */ 171 154 }, 172 155 }; 173 156 174 static T_IFNET ipcp_remote_def_cfg = { /* ç¸æã®æ§ææ 175 å ±ã®è¦å®å¤ */ 157 static T_IFNET ipcp_remote_def_cfg = { /* 相手の構成情報の規定値 */ 176 158 NULL, 177 159 { 178 IPV4_ADDR_REMOTE, /* IPv4 ã¢ãã¬ã¹*/179 UINT_C(0), /* ãµãããããã¹ã¯*/160 IPV4_ADDR_REMOTE, /* IPv4 アドレス */ 161 UINT_C(0), /* サブネットマスク */ 180 162 } 181 163 }; 182 164 183 static T_IFNET ipcp_local_neg_cfg; /* ãã´ä¸ã®èªæ§ææ 184 å ± */ 185 186 static T_IFNET ipcp_remote_neg_cfg; /* ãã´ä¸ã®ç¸æã®æ§ææ 187 å ± */ 188 189 /* 190 * å 191 ¨åå¤æ° 165 static T_IFNET ipcp_local_neg_cfg; /* ネゴ中の自構成情報 */ 166 167 static T_IFNET ipcp_remote_neg_cfg; /* ネゴ中の相手の構成情報 */ 168 169 /* 170 * 全域変数 192 171 */ 193 172 194 173 T_PPP_FSM_CALLBACKS ipcp_callbacks = { 195 ipcp_resetci, /* èªæ§ææ 196 å ±ããªã»ããããã */ 197 ipcp_cilen, /* æ§ææ 198 å ±ã®é·ããè¿ãã */ 199 ipcp_addci, /* èªæ§ææ 200 å ±ã追å ããã */ 201 ipcp_ackci, /* ACK ãåä¿¡ããã¨ãã®å¦ç */ 202 ipcp_nakci, /* NAK ãåä¿¡ããã¨ãã®å¦ç */ 203 ipcp_rejci, /* REJ ãåä¿¡ããã¨ãã®å¦ç */ 204 ipcp_reqci, /* ç¸æã®æ§ææ 205 å ±ã確èªããã */ 206 ipcp_up, /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 207 ipcp_down, /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 208 NULL, /* ä¸ä½å±¤ãéå§ããã */ 209 ipcp_finished, /* ä¸ä½å±¤ãçµäºããã */ 210 NULL, /* åéããã */ 211 NULL, /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 174 ipcp_resetci, /* 自構成情報をリセットする。 */ 175 ipcp_cilen, /* 構成情報の長さを返す。 */ 176 ipcp_addci, /* 自構成情報を追加する。 */ 177 ipcp_ackci, /* ACK を受信したときの処理 */ 178 ipcp_nakci, /* NAK を受信したときの処理 */ 179 ipcp_rejci, /* REJ を受信したときの処理 */ 180 ipcp_reqci, /* 相手の構成情報を確認する。 */ 181 ipcp_up, /* リンク接続を確立する。 */ 182 ipcp_down, /* リンク接続を解放する。 */ 183 NULL, /* 下位層を開始する。 */ 184 ipcp_finished, /* 下位層を終了する。 */ 185 NULL, /* 再送する。 */ 186 NULL, /* 不明な CP を受信したときの処理 */ 212 187 }; 213 188 214 189 T_PPP_FSM ipcp_fsm = { 215 &ipcp_callbacks, /* ã³ã¼ã«ããã¯é¢æ°*/216 PPP_IPCP, /* ãããã³ã«*/190 &ipcp_callbacks, /* コールバック関数 */ 191 PPP_IPCP, /* プロトコル */ 217 192 }; 218 193 219 194 T_PPP_PROTENT ipcp_protent = { 220 195 PPP_IPCP, 221 ipcp_init, /* åæå */ 222 ipcp_input, /* å 223 ¥å */ 224 ipcp_protrej, /* Proto-REJ åä¿¡å¦ç */ 225 ipcp_lowerup, /* ä¸ä½å±¤ãèµ·åãã */ 226 ipcp_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 227 ipcp_open, /* ãªã¼ãã³ãã */ 228 ipcp_close, /* ã¯ãã¼ãºãã */ 229 ip_input, /* ãã¼ã¿å 230 ¥åãIPv4 å 231 ¥å */ 196 ipcp_init, /* 初期化 */ 197 ipcp_input, /* 入力 */ 198 ipcp_protrej, /* Proto-REJ 受信処理 */ 199 ipcp_lowerup, /* 下位層を起動する */ 200 ipcp_lowerdown, /* 下位層を停止する */ 201 ipcp_open, /* オープンする */ 202 ipcp_close, /* クローズする */ 203 ip_input, /* データ入力、IPv4 入力 */ 232 204 }; 233 205 234 T_IFNET ipcp_local_ack_cfg; /* ç¸æã«è¨±å¯ãããã®èªæ§ææ 235 å ± */ 236 T_IFNET ipcp_remote_ack_cfg; /* ç¸æã«è¨±å¯ããæ§ææ 237 å ± */ 238 239 /* 240 * ppp_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã 206 T_IFNET ipcp_local_ack_cfg; /* 相手に許可されたの自構成情報 */ 207 T_IFNET ipcp_remote_ack_cfg; /* 相手に許可した構成情報 */ 208 209 /* 210 * ppp_get_ifnet -- ネットワークインタフェース構造体を返す。 241 211 */ 242 212 … … 248 218 249 219 /* 250 * wait_ipcp -- IP æ¥ç¶å®äºã¾ã§å¾ 251 ã¤ã 252 * 253 * æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã 220 * wait_ipcp -- IP 接続完了まで待つ。 221 * 222 * 戻り値: 接続に失敗したら E_OBJ を返す。 254 223 */ 255 224 … … 265 234 #ifdef PPP_CFG_MODEM 266 235 267 /* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾ 268 ã¤ã*/ 236 /* モデムの接続完了まで待つ。*/ 269 237 if ((error = wait_modem()) != E_OK) 270 238 return error; … … 273 241 274 242 /* 275 * ååãªã¼ãã³ããç¸æããã®æ¥ç¶å¾ 276 ã¡ãªã LCP ãä¸åº¦ã¯ãã¼ãºãã 277 * è½åãªã¼ãã³ç¶æ 278 ã§ãåãªã¼ãã³ããã 243 * 受動オープンし、相手からの接続待ちなら LCP を一度クローズし、 244 * 能動オープン状態で、再オープンする。 279 245 */ 280 246 lcp_close(); … … 286 252 287 253 if (ipcp_fsm.state != PPP_FSM_OPENED) { 288 /* IP æ¥ç¶å®äºã¾ã§å¾ 289 ã¤ã*/ 254 /* IP 接続完了まで待つ。*/ 290 255 wai_sem(SEM_IPCP_READY); 291 256 if (ipcp_fsm.state != PPP_FSM_OPENED) … … 297 262 298 263 /* 299 * ipcp_init -- IPCP ã¢ã¸ã¥ã¼ã«ã®åæå264 * ipcp_init -- IPCP モジュールの初期化 300 265 */ 301 266 … … 307 272 308 273 /* 309 * ipcp_input -- IPCP å 310 ¥å 274 * ipcp_input -- IPCP 入力 311 275 */ 312 276 … … 320 284 321 285 /* 322 * ipcp_resetci -- IPCPã®æ§ææ 323 å ±ããªã»ããããã 286 * ipcp_resetci -- IPCPの構成情報をリセットする。 324 287 */ 325 288 … … 327 290 ipcp_resetci (T_PPP_FSM *fsm) 328 291 { 329 /* èªæ§ææ 330 å ±ã®åæè¨å® */ 292 /* 自構成情報の初期設定 */ 331 293 ipcp_local_neg_cfg = ipcp_local_def_cfg; 332 294 memset((void*)&ipcp_local_ack_cfg, 0, sizeof(T_IFNET)); 333 295 334 /* ç¸æã®æ§ææ 335 å ±ã®åæè¨å® */ 296 /* 相手の構成情報の初期設定 */ 336 297 ipcp_remote_neg_cfg = ipcp_remote_def_cfg; 337 298 memset((void*)&ipcp_remote_ack_cfg, 0, sizeof(T_IFNET)); … … 339 300 340 301 /* 341 * ipcp_cilen -- æ§ææ 342 å ±ã®é·ããè¿ãã 302 * ipcp_cilen -- 構成情報の長さを返す。 343 303 */ 344 304 … … 348 308 int_t cilen = 0; 349 309 350 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IPv4 ã¢ãã¬ã¹*/310 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IPv4 アドレス */ 351 311 352 312 return cilen; … … 354 314 355 315 /* 356 * ipcp_addci -- IPCPã®æ§ææ 357 å ±ã追å ããã 316 * ipcp_addci -- IPCPの構成情報を追加する。 358 317 */ 359 318 … … 365 324 buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 366 325 367 /* IPv4 ã¢ãã¬ã¹ãªãã·ã§ã³ã追å ããã*/326 /* IPv4 アドレスオプションを追加する。 */ 368 327 *buf ++ = IPCP_CIT_ADDR; 369 328 *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); … … 373 332 374 333 /* 375 * ipcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç376 * 377 * æ»ãå¤: true ACK ã¯æ£å¸¸378 * false ACK ã¯ç°å¸¸334 * ipcp_ackci -- ACK を受信したときの処理 335 * 336 * 戻り値: true ACK は正常 337 * false ACK は異常 379 338 */ 380 339 … … 389 348 390 349 /* 391 * æ§ææ 392 å ±ã¯éä¿¡ããé ã«å®å 393 ¨ã«ä¸è´ããªããã°ãªããªãã 394 * å¾ã£ã¦ãipcp_addci ã§ä½æããé ã«è§£æããã 350 * 構成情報は送信した順に完全に一致しなければならない。 351 * 従って、ipcp_addci で作成した順に解析する。 395 352 */ 396 353 397 /* ADDR ãªãã·ã§ã³ã解æããã*/354 /* ADDR オプションを解析する。 */ 398 355 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) || 399 356 *buf ++ != IPCP_CIT_ADDR || … … 408 365 409 366 /* 410 * ipcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç411 * 412 * æ»ãå¤: 1 NAK ã¯æ£å¸¸413 * 0 NAK ã¯ç°å¸¸367 * ipcp_nakci -- NAK を受信したときの処理 368 * 369 * 戻り値: 1 NAK は正常 370 * 0 NAK は異常 414 371 */ 415 372 … … 427 384 new_cfg = ipcp_local_neg_cfg; 428 385 429 /* ADDR ãªãã·ã§ã³ã解æããã*/386 /* ADDR オプションを解析する。 */ 430 387 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 431 388 * buf == IPCP_CIT_ADDR && … … 437 394 } 438 395 439 /* å¾ã¯ç¡è¦ããã*/396 /* 後は無視する。*/ 440 397 while (len > sizeof(T_PPP_CI_HDR)) { 441 398 cilen = *(buf + 1); … … 446 403 } 447 404 448 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/405 /* 長さが 0 でなければエラー */ 449 406 if (len != 0) 450 407 return 0; 451 408 452 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/409 /* 新しいオプションを設定する。*/ 453 410 if (fsm->state != PPP_FSM_OPENED) 454 411 ipcp_local_neg_cfg = new_cfg; … … 458 415 459 416 /* 460 * ipcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç461 * 462 * æ»ãå¤: 1 REJ ã¯æ£å¸¸463 * 0 REJ ã¯ç°å¸¸417 * ipcp_rejci -- REJ を受信したときの処理 418 * 419 * 戻り値: 1 REJ は正常 420 * 0 REJ は異常 464 421 */ 465 422 … … 476 433 new_cfg = ipcp_local_neg_cfg; 477 434 478 /* ADDR ãªãã·ã§ã³ã解æããã*/435 /* ADDR オプションを解析する。 */ 479 436 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 480 437 * buf == IPCP_CIT_ADDR && … … 485 442 } 486 443 487 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/444 /* 長さが 0 でなければエラー */ 488 445 if (len != 0) 489 446 return 0; 490 447 491 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/448 /* 新しいオプションを設定する。*/ 492 449 if (fsm->state != PPP_FSM_OPENED) 493 450 ipcp_local_neg_cfg = new_cfg; … … 497 454 498 455 /* 499 * ipcp_reqci -- ç¸æã®æ§ææ 500 å ±ã解æããã 456 * ipcp_reqci -- 相手の構成情報を解析する。 501 457 */ 502 458 … … 509 465 510 466 rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 511 /* rp: REJ ãap: ACK ãã CI ã®ãã¤ã³ã¿*/512 /* æå¦ããå ´åã¯ãå¼æ° buf ã«ä¸æ¸ãããã*/467 /* rp: REJ、ap: ACK する CI のポインタ */ 468 /* 拒否する場合は、引数 buf に上書きする。 */ 513 469 len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)); 514 470 np = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 515 final = PPP_CONFACK; /* æçµçã«éä¿¡ããã³ã¼ã*/471 final = PPP_CONFACK; /* 最終的に送信するコード */ 516 472 while (len > 0) { 517 473 code = PPP_CONFACK; 518 cp = ap; /* cp: ç¾å¨å¦çä¸ã®CI */474 cp = ap; /* cp: 現在処理中の CI */ 519 475 520 476 if (len < sizeof(T_PPP_CI_HDR)) { 521 477 522 /* æ®ãã CI ãããããçã*/478 /* 残りが CI ヘッダより短い */ 523 479 syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", len); 524 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/525 len = 0; /* ã«ã¼ãããæããã*/480 cilen = len; /* データ長が異常の場合の処置 */ 481 len = 0; /* ループから抜ける。 */ 526 482 code = PPP_CONFREJ; 527 483 goto endswitch; 528 484 } 529 485 530 type = *ap ++; /* CI ã®å*/531 cilen = *ap ++; /* CI ã®é·ã*/486 type = *ap ++; /* CI の型 */ 487 cilen = *ap ++; /* CI の長さ */ 532 488 if (len < cilen) { 533 489 534 /* æ®ãã CI é·ããçã*/490 /* 残りが CI 長より短い */ 535 491 syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", cilen); 536 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/537 len = 0; /* ã«ã¼ãããæããã*/492 cilen = len; /* データ長が異常の場合の処置 */ 493 len = 0; /* ループから抜ける。 */ 538 494 code = PPP_CONFREJ; 539 495 goto endswitch; … … 541 497 len -= sizeof(T_PPP_CI_HDR); 542 498 543 /* CI ã®åã«ããåå²ããã*/499 /* CI の型により分岐する。*/ 544 500 switch (type) { 545 501 546 case IPCP_CIT_ADDR: /* IPv4 ã¢ãã¬ã¹*/547 548 /* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°ã¨ã©ã¼*/502 case IPCP_CIT_ADDR: /* IPv4 アドレス */ 503 504 /* CI 長が、ヘッダ + 4 オクテットでなければエラー */ 549 505 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) 550 506 code = PPP_CONFREJ; … … 559 515 code = PPP_CONFNAK; 560 516 } 561 #if 1 /* è¦ç¢ºèª*/517 #if 1 /* 要確認 */ 562 518 else if (addr == 0 && ipcp_remote_neg_cfg.in4_ifaddr.addr == 0) 563 519 #else … … 578 534 579 535 if (code == PPP_CONFNAK) { 580 /* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã */ 581 /* æå¤§å¤ MAX_PPP_FAILURES ãè¶ 582 ãããæå¦ããã */ 536 /* CI の型が Magic Number の場合を除いて、NAK の回数が */ 537 /* 最大値 MAX_PPP_FAILURES を超えたら拒否する。 */ 583 538 if (fsm->failures >= MAX_PPP_FAILURES) 584 539 code = PPP_CONFREJ; … … 587 542 } 588 543 589 /* ãã® CI ãæå¦ãã*/544 /* この CI を拒否する */ 590 545 if (code == PPP_CONFREJ) { 591 if (rp < cp) /* åã«è©°ããã*/546 if (rp < cp) /* 前に詰める。*/ 592 547 memcpy(rp, cp, cilen); 593 548 rp += cilen; … … 599 554 } 600 555 601 /* æçµçãªé·ãã調æ´ããã*/556 /* 最終的な長さを調整する。*/ 602 557 switch (final) { 603 558 case PPP_CONFNAK: … … 617 572 618 573 /* 619 * ipcp_up -- ãªã³ã¯æ¥ç¶ã確ç«ããã574 * ipcp_up -- リンク接続を確立する。 620 575 */ 621 576 … … 623 578 ipcp_up (T_PPP_FSM *fsm) 624 579 { 625 /* èªæ§ææ 626 å ±ã®åæè¨å® */ 580 /* 自構成情報の初期設定 */ 627 581 ipcp_local_ack_cfg = ipcp_local_neg_cfg; 628 582 629 583 /* 630 * ãµãããããã¹ã¯ã¨631 * ãã¼ã«ã«ã»ããã¼ããã£ã¹ã IPv4 ã¢ãã¬ã¹ãè¨å®ããã584 * サブネットマスクと 585 * ローカル・ブロードキャスト IPv4 アドレスを設定する。 632 586 */ 633 587 ipcp_local_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in4_ifaddr.addr); 634 588 635 /* ç¸æã®æ§ææ 636 å ±ã®åæè¨å® */ 589 /* 相手の構成情報の初期設定 */ 637 590 ipcp_remote_ack_cfg = ipcp_remote_neg_cfg; 638 591 639 592 /* 640 * ãµãããããã¹ã¯ã¨641 * ãã¼ã«ã«ã»ããã¼ããã£ã¹ã IPv4 ã¢ãã¬ã¹ãè¨å®ããã593 * サブネットマスクと 594 * ローカル・ブロードキャスト IPv4 アドレスを設定する。 642 595 */ 643 596 ipcp_remote_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in4_ifaddr.addr); … … 651 604 652 605 /* 653 * ipcp_down -- ãªã³ã¯æ¥ç¶ã解æ¾ããã606 * ipcp_down -- リンク接続を解放する。 654 607 */ 655 608 … … 662 615 663 616 /* 664 * ipcp_finished -- ä¸ä½å±¤ãçµäºããã617 * ipcp_finished -- 下位層を終了する。 665 618 */ 666 619 … … 671 624 672 625 /* 673 * ipcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç626 * ipcp_protrej -- Proto-REJ を受信したときの処理 674 627 */ 675 628 … … 681 634 682 635 /* 683 * ipcp_lowerup -- IPCP ä¸ä½å±¤ãèµ·åããã636 * ipcp_lowerup -- IPCP 下位層を起動する。 684 637 */ 685 638 … … 691 644 692 645 /* 693 * ipcp_lowerdown -- IPCP ä¸ä½å±¤ãåæ¢ããã646 * ipcp_lowerdown -- IPCP 下位層を停止する。 694 647 */ 695 648 … … 701 654 702 655 /* 703 * ipcp_open -- IPCP ã®ãªã¼ãã³656 * ipcp_open -- IPCP のオープン 704 657 */ 705 658 … … 711 664 712 665 /* 713 * ipcp_close -- IPCP ã®ã¯ãã¼ãº666 * ipcp_close -- IPCP のクローズ 714 667 */ 715 668 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/net/ppp_ipv6cp.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 124 112 125 113 /* 126 * é¢æ°114 * 関数 127 115 */ 128 116 … … 136 124 137 125 /* 138 * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢ 139 */ 140 141 static void ipv6cp_resetci(T_PPP_FSM *fsm); /* èªæ§ææ 142 å ±ããªã»ããããã */ 143 static int_t ipv6cp_cilen (T_PPP_FSM *fsm); /* æ§ææ 144 å ±ã®é·ããè¿ãã */ 126 * FSM から呼出されるコールバック関 127 */ 128 129 static void ipv6cp_resetci(T_PPP_FSM *fsm); /* 自構成情報をリセットする。 */ 130 static int_t ipv6cp_cilen (T_PPP_FSM *fsm); /* 構成情報の長さを返す。 */ 145 131 static void ipv6cp_addci (T_PPP_FSM *fsm, T_NET_BUF *output); 146 /* èªæ§ææ 147 å ±ã追å ããã */ 132 /* 自構成情報を追加する。 */ 148 133 static bool_t ipv6cp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input); 149 /* ACK ãåä¿¡ããã¨ãã®å¦ç*/134 /* ACK を受信したときの処理 */ 150 135 static bool_t ipv6cp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input); 151 /* NAK ãåä¿¡ããã¨ãã®å¦ç*/136 /* NAK を受信したときの処理 */ 152 137 static bool_t ipv6cp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input); 153 /* REJ ãåä¿¡ããã¨ãã®å¦ç*/138 /* REJ を受信したときの処理 */ 154 139 static int_t ipv6cp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output); 155 /* ç¸æã®æ§ææ 156 å ±ã確èªããã */ 157 static void ipv6cp_up (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 158 static void ipv6cp_down (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 159 static void ipv6cp_finished(T_PPP_FSM *fsm); /* ä¸ä½å±¤ãçµäºããã */ 160 161 /* 162 * å¤æ° 163 */ 164 165 static T_IFNET ipv6cp_local_def_cfg = { /* èªæ§ææ 166 å ±ã®è¦å®å¤ */ 167 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 168 å ± */ 169 {}, /* IPv6 ã¢ãã¬ã¹æ 170 å ± */ 171 {}, /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹ */ 172 0, /* ãã©ã° */ 140 /* 相手の構成情報を確認する。 */ 141 static void ipv6cp_up (T_PPP_FSM *fsm); /* リンク接続を確立する。 */ 142 static void ipv6cp_down (T_PPP_FSM *fsm); /* リンク接続を解放する。 */ 143 static void ipv6cp_finished(T_PPP_FSM *fsm); /* 下位層を終了する。 */ 144 145 /* 146 * 変数 147 */ 148 149 static T_IFNET ipv6cp_local_def_cfg = { /* 自構成情報の規定値 */ 150 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 151 {}, /* IPv6 アドレス情報 */ 152 {}, /* マルチキャスト IPv6 アドレス */ 153 0, /* フラグ */ 173 154 }; 174 155 175 static T_IFNET ipv6cp_remote_def_cfg = { /* ç¸æã®æ§ææ 176 å ±ã®è¦å®å¤ */ 177 NULL, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 178 å ± */ 179 {}, /* IPv6 ã¢ãã¬ã¹æ 180 å ± */ 181 {}, /* ãã«ããã£ã¹ã IPv6 ã¢ãã¬ã¹ */ 182 0, /* ãã©ã° */ 156 static T_IFNET ipv6cp_remote_def_cfg = { /* 相手の構成情報の規定値 */ 157 NULL, /* ネットワークインタフェースのソフトウェア情報 */ 158 {}, /* IPv6 アドレス情報 */ 159 {}, /* マルチキャスト IPv6 アドレス */ 160 0, /* フラグ */ 183 161 }; 184 162 185 static T_IFNET ipv6cp_local_neg_cfg; /* ãã´ä¸ã®èªæ§ææ 186 å ± */ 187 188 static T_IFNET ipv6cp_remote_neg_cfg; /* ãã´ä¸ã®ç¸æã®æ§ææ 189 å ± */ 190 191 /* 192 * å 193 ¨åå¤æ° 163 static T_IFNET ipv6cp_local_neg_cfg; /* ネゴ中の自構成情報 */ 164 165 static T_IFNET ipv6cp_remote_neg_cfg; /* ネゴ中の相手の構成情報 */ 166 167 /* 168 * 全域変数 194 169 */ 195 170 196 171 T_PPP_FSM_CALLBACKS ipv6cp_callbacks = { 197 ipv6cp_resetci, /* èªæ§ææ 198 å ±ããªã»ããããã */ 199 ipv6cp_cilen, /* æ§ææ 200 å ±ã®é·ããè¿ãã */ 201 ipv6cp_addci, /* èªæ§ææ 202 å ±ã追å ããã */ 203 ipv6cp_ackci, /* ACK ãåä¿¡ããã¨ãã®å¦ç */ 204 ipv6cp_nakci, /* NAK ãåä¿¡ããã¨ãã®å¦ç */ 205 ipv6cp_rejci, /* REJ ãåä¿¡ããã¨ãã®å¦ç */ 206 ipv6cp_reqci, /* ç¸æã®æ§ææ 207 å ±ã確èªããã */ 208 ipv6cp_up, /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 209 ipv6cp_down, /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 210 NULL, /* ä¸ä½å±¤ãéå§ããã */ 211 ipv6cp_finished, /* ä¸ä½å±¤ãçµäºããã */ 212 NULL, /* åéããã */ 213 NULL, /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 172 ipv6cp_resetci, /* 自構成情報をリセットする。 */ 173 ipv6cp_cilen, /* 構成情報の長さを返す。 */ 174 ipv6cp_addci, /* 自構成情報を追加する。 */ 175 ipv6cp_ackci, /* ACK を受信したときの処理 */ 176 ipv6cp_nakci, /* NAK を受信したときの処理 */ 177 ipv6cp_rejci, /* REJ を受信したときの処理 */ 178 ipv6cp_reqci, /* 相手の構成情報を確認する。 */ 179 ipv6cp_up, /* リンク接続を確立する。 */ 180 ipv6cp_down, /* リンク接続を解放する。 */ 181 NULL, /* 下位層を開始する。 */ 182 ipv6cp_finished, /* 下位層を終了する。 */ 183 NULL, /* 再送する。 */ 184 NULL, /* 不明な CP を受信したときの処理 */ 214 185 }; 215 186 216 187 T_PPP_FSM ipv6cp_fsm = { 217 &ipv6cp_callbacks, /* ã³ã¼ã«ããã¯é¢æ°*/218 PPP_IPV6CP, /* ãããã³ã«*/188 &ipv6cp_callbacks, /* コールバック関数 */ 189 PPP_IPV6CP, /* プロトコル */ 219 190 }; 220 191 221 192 T_PPP_PROTENT ipv6cp_protent = { 222 193 PPP_IPV6CP, 223 ipv6cp_init, /* åæå */ 224 ipv6cp_input, /* å 225 ¥å */ 226 ipv6cp_protrej, /* Proto-REJ åä¿¡å¦ç */ 227 ipv6cp_lowerup, /* ä¸ä½å±¤ãèµ·åãã */ 228 ipv6cp_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 229 ipv6cp_open, /* ãªã¼ãã³ãã */ 230 ipv6cp_close, /* ã¯ãã¼ãºãã */ 231 ip6_input, /* ãã¼ã¿å 232 ¥åãIPv6 å 233 ¥å */ 194 ipv6cp_init, /* 初期化 */ 195 ipv6cp_input, /* 入力 */ 196 ipv6cp_protrej, /* Proto-REJ 受信処理 */ 197 ipv6cp_lowerup, /* 下位層を起動する */ 198 ipv6cp_lowerdown, /* 下位層を停止する */ 199 ipv6cp_open, /* オープンする */ 200 ipv6cp_close, /* クローズする */ 201 ip6_input, /* データ入力、IPv6 入力 */ 234 202 }; 235 203 236 T_IFNET ipv6cp_local_ack_cfg; /* ç¸æã«è¨±å¯ãããã®èªæ§ææ 237 å ± */ 238 T_IFNET ipv6cp_remote_ack_cfg; /* ç¸æã«è¨±å¯ããæ§ææ 239 å ± */ 240 241 /* 242 * ppp_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã 204 T_IFNET ipv6cp_local_ack_cfg; /* 相手に許可されたの自構成情報 */ 205 T_IFNET ipv6cp_remote_ack_cfg; /* 相手に許可した構成情報 */ 206 207 /* 208 * ppp_get_ifnet -- ネットワークインタフェース構造体を返す。 243 209 */ 244 210 … … 250 216 251 217 /* 252 * wait_ipv6cp -- IP æ¥ç¶å®äºã¾ã§å¾ 253 ã¤ã 254 * 255 * æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã 218 * wait_ipv6cp -- IP 接続完了まで待つ。 219 * 220 * 戻り値: 接続に失敗したら E_OBJ を返す。 256 221 */ 257 222 … … 267 232 #ifdef PPP_CFG_MODEM 268 233 269 /* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾ 270 ã¤ã*/ 234 /* モデムの接続完了まで待つ。*/ 271 235 if ((error = wait_modem()) != E_OK) 272 236 return error; … … 275 239 276 240 /* 277 * ååãªã¼ãã³ããç¸æããã®æ¥ç¶å¾ 278 ã¡ãªã LCP ãä¸åº¦ã¯ãã¼ãºãã 279 * è½åãªã¼ãã³ç¶æ 280 ã§ãåãªã¼ãã³ããã 241 * 受動オープンし、相手からの接続待ちなら LCP を一度クローズし、 242 * 能動オープン状態で、再オープンする。 281 243 */ 282 244 lcp_close(); … … 288 250 289 251 if (ipv6cp_fsm.state != PPP_FSM_OPENED) { 290 /* IP æ¥ç¶å®äºã¾ã§å¾ 291 ã¤ã*/ 252 /* IP 接続完了まで待つ。*/ 292 253 wai_sem(SEM_IPV6CP_READY); 293 254 if (ipv6cp_fsm.state != PPP_FSM_OPENED) … … 299 260 300 261 /* 301 * ipv6cp_init -- IPV6CP ã¢ã¸ã¥ã¼ã«ã®åæå262 * ipv6cp_init -- IPV6CP モジュールの初期化 302 263 */ 303 264 … … 309 270 310 271 /* 311 * ipv6cp_input -- IPV6CP å 312 ¥å 272 * ipv6cp_input -- IPV6CP 入力 313 273 */ 314 274 … … 322 282 323 283 /* 324 * ipv6cp_resetci -- IPV6CPã®æ§ææ 325 å ±ããªã»ããããã 284 * ipv6cp_resetci -- IPV6CPの構成情報をリセットする。 326 285 */ 327 286 … … 329 288 ipv6cp_resetci (T_PPP_FSM *fsm) 330 289 { 331 /* èªæ§ææ 332 å ±ã®åæè¨å® */ 290 /* 自構成情報の初期設定 */ 333 291 ipv6cp_local_neg_cfg = ipv6cp_local_def_cfg; 334 292 memset((void*)&ipv6cp_local_ack_cfg, 0, sizeof(T_IFNET)); 335 293 336 /* ç¸æã®æ§ææ 337 å ±ã®åæè¨å® */ 294 /* 相手の構成情報の初期設定 */ 338 295 ipv6cp_remote_neg_cfg = ipv6cp_remote_def_cfg; 339 296 memset((void*)&ipv6cp_remote_ack_cfg, 0, sizeof(T_IFNET)); … … 341 298 342 299 /* 343 * ipv6cp_cilen -- æ§ææ 344 å ±ã®é·ããè¿ãã 300 * ipv6cp_cilen -- 構成情報の長さを返す。 345 301 */ 346 302 … … 350 306 int_t cilen = 0; 351 307 352 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IPv6 ã¢ãã¬ã¹*/308 cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); /* IPv6 アドレス */ 353 309 354 310 return cilen; … … 356 312 357 313 /* 358 * ipv6cp_addci -- IPV6CPã®æ§ææ 359 å ±ã追å ããã 314 * ipv6cp_addci -- IPV6CPの構成情報を追加する。 360 315 */ 361 316 … … 367 322 buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 368 323 369 /* IPv6 ã¢ãã¬ã¹ãªãã·ã§ã³ã追å ããã*/324 /* IPv6 アドレスオプションを追加する。 */ 370 325 *buf ++ = IPV6CP_CIT_ADDR; 371 326 *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t); … … 375 330 376 331 /* 377 * ipv6cp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç378 * 379 * æ»ãå¤: true ACK ã¯æ£å¸¸380 * false ACK ã¯ç°å¸¸332 * ipv6cp_ackci -- ACK を受信したときの処理 333 * 334 * 戻り値: true ACK は正常 335 * false ACK は異常 381 336 */ 382 337 … … 391 346 392 347 /* 393 * æ§ææ 394 å ±ã¯éä¿¡ããé ã«å®å 395 ¨ã«ä¸è´ããªããã°ãªããªãã 396 * å¾ã£ã¦ãipv6cp_addci ã§ä½æããé ã«è§£æããã 348 * 構成情報は送信した順に完全に一致しなければならない。 349 * 従って、ipv6cp_addci で作成した順に解析する。 397 350 */ 398 351 399 /* ADDR ãªãã·ã§ã³ã解æããã*/352 /* ADDR オプションを解析する。 */ 400 353 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) || 401 354 *buf ++ != IPV6CP_CIT_ADDR || … … 410 363 411 364 /* 412 * ipv6cp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç413 * 414 * æ»ãå¤: 1 NAK ã¯æ£å¸¸415 * 0 NAK ã¯ç°å¸¸365 * ipv6cp_nakci -- NAK を受信したときの処理 366 * 367 * 戻り値: 1 NAK は正常 368 * 0 NAK は異常 416 369 */ 417 370 … … 429 382 new_cfg = ipv6cp_local_neg_cfg; 430 383 431 /* ADDR ãªãã·ã§ã³ã解æããã*/384 /* ADDR オプションを解析する。 */ 432 385 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(addr) && 433 386 * buf == IPV6CP_CIT_ADDR && … … 438 391 } 439 392 440 /* å¾ã¯ç¡è¦ããã*/393 /* 後は無視する。*/ 441 394 while (len > sizeof(T_PPP_CI_HDR)) { 442 395 cilen = *(buf + 1); … … 447 400 } 448 401 449 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/402 /* 長さが 0 でなければエラー */ 450 403 if (len != 0) 451 404 return 0; 452 405 453 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/406 /* 新しいオプションを設定する。*/ 454 407 if (fsm->state != PPP_FSM_OPENED) 455 408 ipv6cp_local_neg_cfg = new_cfg; … … 459 412 460 413 /* 461 * ipv6cp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç462 * 463 * æ»ãå¤: 1 REJ ã¯æ£å¸¸464 * 0 REJ ã¯ç°å¸¸414 * ipv6cp_rejci -- REJ を受信したときの処理 415 * 416 * 戻り値: 1 REJ は正常 417 * 0 REJ は異常 465 418 */ 466 419 … … 477 430 new_cfg = ipv6cp_local_neg_cfg; 478 431 479 /* ADDR ãªãã·ã§ã³ã解æããã*/432 /* ADDR オプションを解析する。 */ 480 433 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(new_cfg.in6_ifaddrs[0].addr) && 481 434 * buf == IPV6CP_CIT_ADDR && … … 487 440 } 488 441 489 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/442 /* 長さが 0 でなければエラー */ 490 443 if (len != 0) 491 444 return 0; 492 445 493 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/446 /* 新しいオプションを設定する。*/ 494 447 if (fsm->state != PPP_FSM_OPENED) 495 448 ipv6cp_local_neg_cfg = new_cfg; … … 499 452 500 453 /* 501 * ipv6cp_reqci -- ç¸æã®æ§ææ 502 å ±ã解æããã 454 * ipv6cp_reqci -- 相手の構成情報を解析する。 503 455 */ 504 456 … … 511 463 512 464 rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 513 /* rp: REJ ãap: ACK ãã CI ã®ãã¤ã³ã¿*/514 /* æå¦ããå ´åã¯ãå¼æ° buf ã«ä¸æ¸ãããã*/465 /* rp: REJ、ap: ACK する CI のポインタ */ 466 /* 拒否する場合は、引数 buf に上書きする。 */ 515 467 len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)); 516 468 np = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 517 final = PPP_CONFACK; /* æçµçã«éä¿¡ããã³ã¼ã*/469 final = PPP_CONFACK; /* 最終的に送信するコード */ 518 470 while (len > 0) { 519 471 code = PPP_CONFACK; 520 cp = ap; /* cp: ç¾å¨å¦çä¸ã®CI */472 cp = ap; /* cp: 現在処理中の CI */ 521 473 522 474 if (len < sizeof(T_PPP_CI_HDR)) { 523 475 524 /* æ®ãã CI ãããããçã*/476 /* 残りが CI ヘッダより短い */ 525 477 syslog(LOG_NOTICE, "[PPP/IPV6CP] bad CI len: %d.", len); 526 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/527 len = 0; /* ã«ã¼ãããæããã*/478 cilen = len; /* データ長が異常の場合の処置 */ 479 len = 0; /* ループから抜ける。 */ 528 480 code = PPP_CONFREJ; 529 481 goto endswitch; 530 482 } 531 483 532 type = *ap ++; /* CI ã®å*/533 cilen = *ap ++; /* CI ã®é·ã*/484 type = *ap ++; /* CI の型 */ 485 cilen = *ap ++; /* CI の長さ */ 534 486 if (len < cilen) { 535 487 536 /* æ®ãã CI é·ããçã*/488 /* 残りが CI 長より短い */ 537 489 syslog(LOG_NOTICE, "[PPP/IPV6CP] bad CI len: %d.", cilen); 538 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/539 len = 0; /* ã«ã¼ãããæããã*/490 cilen = len; /* データ長が異常の場合の処置 */ 491 len = 0; /* ループから抜ける。 */ 540 492 code = PPP_CONFREJ; 541 493 goto endswitch; … … 543 495 len -= sizeof(T_PPP_CI_HDR); 544 496 545 /* CI ã®åã«ããåå²ããã*/497 /* CI の型により分岐する。*/ 546 498 switch (type) { 547 499 548 case IPV6CP_CIT_ADDR: /* IPv6 ã¢ãã¬ã¹*/549 550 /* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°ã¨ã©ã¼*/500 case IPV6CP_CIT_ADDR: /* IPv6 アドレス */ 501 502 /* CI 長が、ヘッダ + 4 オクテットでなければエラー */ 551 503 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(addr)) 552 504 code = PPP_CONFREJ; … … 564 516 code = PPP_CONFNAK; 565 517 } 566 #if 1 /* è¦ç¢ºèª*/518 #if 1 /* 要確認 */ 567 519 else if (IN6_IS_ADDR_UNSPECIFIED(&addr) && 568 520 IN6_IS_ADDR_UNSPECIFIED(&ipv6cp_remote_neg_cfg.in6_ifaddrs[0])) … … 585 537 586 538 if (code == PPP_CONFNAK) { 587 /* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã */ 588 /* æå¤§å¤ MAX_PPP_FAILURES ãè¶ 589 ãããæå¦ããã */ 539 /* CI の型が Magic Number の場合を除いて、NAK の回数が */ 540 /* 最大値 MAX_PPP_FAILURES を超えたら拒否する。 */ 590 541 if (fsm->failures >= MAX_PPP_FAILURES) 591 542 code = PPP_CONFREJ; … … 594 545 } 595 546 596 /* ãã® CI ãæå¦ãã*/547 /* この CI を拒否する */ 597 548 if (code == PPP_CONFREJ) { 598 if (rp < cp) /* åã«è©°ããã*/549 if (rp < cp) /* 前に詰める。*/ 599 550 memcpy(rp, cp, cilen); 600 551 rp += cilen; … … 606 557 } 607 558 608 /* æçµçãªé·ãã調æ´ããã*/559 /* 最終的な長さを調整する。*/ 609 560 switch (final) { 610 561 case PPP_CONFNAK: … … 624 575 625 576 /* 626 * ipv6cp_up -- ãªã³ã¯æ¥ç¶ã確ç«ããã577 * ipv6cp_up -- リンク接続を確立する。 627 578 */ 628 579 … … 630 581 ipv6cp_up (T_PPP_FSM *fsm) 631 582 { 632 /* èªæ§ææ 633 å ±ã®åæè¨å® */ 583 /* 自構成情報の初期設定 */ 634 584 ipv6cp_local_ack_cfg = ipv6cp_local_neg_cfg; 635 585 … … 642 592 643 593 /* 644 * ipv6cp_down -- ãªã³ã¯æ¥ç¶ã解æ¾ããã594 * ipv6cp_down -- リンク接続を解放する。 645 595 */ 646 596 … … 653 603 654 604 /* 655 * ipv6cp_finished -- ä¸ä½å±¤ãçµäºããã605 * ipv6cp_finished -- 下位層を終了する。 656 606 */ 657 607 … … 662 612 663 613 /* 664 * ipv6cp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç614 * ipv6cp_protrej -- Proto-REJ を受信したときの処理 665 615 */ 666 616 … … 672 622 673 623 /* 674 * ipv6cp_lowerup -- IPV6CP ä¸ä½å±¤ãèµ·åããã624 * ipv6cp_lowerup -- IPV6CP 下位層を起動する。 675 625 */ 676 626 … … 682 632 683 633 /* 684 * ipv6cp_lowerdown -- IPV6CP ä¸ä½å±¤ãåæ¢ããã634 * ipv6cp_lowerdown -- IPV6CP 下位層を停止する。 685 635 */ 686 636 … … 692 642 693 643 /* 694 * ipv6cp_open -- IPV6CP ã®ãªã¼ãã³644 * ipv6cp_open -- IPV6CP のオープン 695 645 */ 696 646 … … 702 652 703 653 /* 704 * ipv6cp_close -- IPV6CP ã®ã¯ãã¼ãº654 * ipv6cp_close -- IPV6CP のクローズ 705 655 */ 706 656 -
azure_iot_hub/trunk/asp3_dcre/tinet/net/ppp_ipv6cp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * IPV6CP ã®æ§ææ 96 å ± (CI) 83 * IPV6CP の構成情報 (CI) 97 84 */ 98 85 99 86 /* 100 * CI ã®å87 * CI の型 101 88 */ 102 89 103 #define IPV6CP_CIT_ADDRS UINT_C(1) /* IP ã¢ãã¬ã¹ (å»æ£) */104 #define IPV6CP_CIT_COMP_TYPE UINT_C(2) /* å§ç¸®æ¹å¼*/105 #define IPV6CP_CIT_ADDR UINT_C(3) /* IP ã¢ãã¬ã¹*/90 #define IPV6CP_CIT_ADDRS UINT_C(1) /* IP アドレス (廃棄) */ 91 #define IPV6CP_CIT_COMP_TYPE UINT_C(2) /* 圧縮方式 */ 92 #define IPV6CP_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 -
azure_iot_hub/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
r388 r389 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$ … … 113 101 114 102 /* 115 * é¢æ°103 * 関数 116 104 */ 117 105 … … 131 119 132 120 /* 133 * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢æ° 134 */ 135 136 static void lcp_resetci(T_PPP_FSM *fsm); /* èªæ§ææ 137 å ±ããªã»ããããã */ 138 static int_t lcp_cilen (T_PPP_FSM *fsm); /* æ§ææ 139 å ±ã®é·ããè¿ãã */ 121 * FSM から呼出されるコールバック関数 122 */ 123 124 static void lcp_resetci(T_PPP_FSM *fsm); /* 自構成情報をリセットする。 */ 125 static int_t lcp_cilen (T_PPP_FSM *fsm); /* 構成情報の長さを返す。 */ 140 126 static void lcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output); 141 /* èªæ§ææ 142 å ±ã追å ããã */ 127 /* 自構成情報を追加する。 */ 143 128 static bool_t lcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input); 144 /* ACK ãåä¿¡ããã¨ãã®å¦ç*/129 /* ACK を受信したときの処理 */ 145 130 static bool_t lcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input); 146 /* NAK ãåä¿¡ããã¨ãã®å¦ç*/131 /* NAK を受信したときの処理 */ 147 132 static bool_t lcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input); 148 /* REJ ãåä¿¡ããã¨ãã®å¦ç*/133 /* REJ を受信したときの処理 */ 149 134 static int_t lcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output); 150 /* ç¸æã®æ§ææ 151 å ±ã確èªããã */ 152 static void lcp_up (T_PPP_FSM *fsm); /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 153 static void lcp_starting(T_PPP_FSM *fsm); /* ä¸ä½å±¤ãéå§ããã */ 135 /* 相手の構成情報を確認する。 */ 136 static void lcp_up (T_PPP_FSM *fsm); /* リンク接続を確立する。 */ 137 static void lcp_starting(T_PPP_FSM *fsm); /* 下位層を開始する。 */ 154 138 static bool_t lcp_extcode (T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input); 155 /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç*/139 /* 不明な CP を受信したときの処理 */ 156 140 static void lcp_rprotrej(T_PPP_FSM *fsm, T_NET_BUF *input); 157 /* Proto-REJ ãåä¿¡ããã¨ãã®å¦ç */ 158 /* 159 * å¤æ° 160 */ 161 162 static T_LCP_CONFIGS lcp_def_cfg = { /* æ§ææ 163 å ±ã®åæè¨å®å¤ */ 141 /* Proto-REJ を受信したときの処理 */ 142 /* 143 * 変数 144 */ 145 146 static T_LCP_CONFIGS lcp_def_cfg = { /* 構成情報の初期設定値 */ 164 147 DEF_REMOTE_ACCM, /* ACCM */ 165 148 166 149 #ifdef LCP_CFG_MAGIC 167 150 168 ULONG_C(0), /* ãã¸ãã¯çªå·*/151 ULONG_C(0), /* マジック番号 */ 169 152 170 153 #endif /* of #ifdef LCP_CFG_MAGIC */ 171 154 172 155 DEF_PPP_MTU, /* MRU */ 173 UINT_C(0), /* ãªãã·ã§ã³ãã©ã°*/156 UINT_C(0), /* オプションフラグ */ 174 157 }; 175 158 176 static T_LCP_CONFIGS lcp_local_def_cfg = { /* èªæ§ææ 177 å ±ã®è¦å®å¤ */ 159 static T_LCP_CONFIGS lcp_local_def_cfg = { /* 自構成情報の規定値 */ 178 160 DEF_LOCAL_ACCM, /* ACCM */ 179 161 180 162 #ifdef LCP_CFG_MAGIC 181 163 182 ULONG_C(0), /* ãã¸ãã¯çªå·*/164 ULONG_C(0), /* マジック番号 */ 183 165 184 166 #endif /* of #ifdef LCP_CFG_MAGIC */ 185 167 186 168 DEF_PPP_MTU, /* MRU */ 187 DEF_LCP_LOCAL_CFGS, /* ãªãã·ã§ã³ãã©ã°*/169 DEF_LCP_LOCAL_CFGS, /* オプションフラグ */ 188 170 }; 189 171 190 static T_LCP_CONFIGS lcp_local_neg_cfg; /* ãã´ä¸ã®èªæ§ææ 191 å ± */ 192 193 static T_LCP_CONFIGS lcp_remote_neg_cfg; /* ãã´ä¸ã®ç¸æã®æ§ææ 194 å ± */ 172 static T_LCP_CONFIGS lcp_local_neg_cfg; /* ネゴ中の自構成情報 */ 173 174 static T_LCP_CONFIGS lcp_remote_neg_cfg; /* ネゴ中の相手の構成情報 */ 195 175 196 176 #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC … … 203 183 204 184 /* 205 * å 206 ¨åå¤æ° 185 * 全域変数 207 186 */ 208 187 209 188 T_PPP_FSM_CALLBACKS lcp_callbacks = { 210 lcp_resetci, /* èªæ§ææ 211 å ±ããªã»ããããã */ 212 lcp_cilen, /* æ§ææ 213 å ±ã®é·ããè¿ãã */ 214 lcp_addci, /* èªæ§ææ 215 å ±ã追å ããã */ 216 lcp_ackci, /* ACK ãåä¿¡ããã¨ãã®å¦ç */ 217 lcp_nakci, /* NAK ãåä¿¡ããã¨ãã®å¦ç */ 218 lcp_rejci, /* REJ ãåä¿¡ããã¨ãã®å¦ç */ 219 lcp_reqci, /* ç¸æã®æ§ææ 220 å ±ã確èªããã */ 221 lcp_up, /* ãªã³ã¯æ¥ç¶ã確ç«ããã */ 222 lcp_down, /* ãªã³ã¯æ¥ç¶ã解æ¾ããã */ 223 lcp_starting, /* ä¸ä½å±¤ãéå§ããã */ 224 lcp_finished, /* ä¸ä½å±¤ãçµäºããã */ 225 NULL, /* åéããã */ 226 lcp_extcode, /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 189 lcp_resetci, /* 自構成情報をリセットする。 */ 190 lcp_cilen, /* 構成情報の長さを返す。 */ 191 lcp_addci, /* 自構成情報を追加する。 */ 192 lcp_ackci, /* ACK を受信したときの処理 */ 193 lcp_nakci, /* NAK を受信したときの処理 */ 194 lcp_rejci, /* REJ を受信したときの処理 */ 195 lcp_reqci, /* 相手の構成情報を確認する。 */ 196 lcp_up, /* リンク接続を確立する。 */ 197 lcp_down, /* リンク接続を解放する。 */ 198 lcp_starting, /* 下位層を開始する。 */ 199 lcp_finished, /* 下位層を終了する。 */ 200 NULL, /* 再送する。 */ 201 lcp_extcode, /* 不明な CP を受信したときの処理 */ 227 202 }; 228 203 229 204 T_PPP_FSM lcp_fsm = { 230 &lcp_callbacks, /* ã³ã¼ã«ããã¯é¢æ°*/231 PPP_LCP, /* ãããã³ã«*/205 &lcp_callbacks, /* コールバック関数 */ 206 PPP_LCP, /* プロトコル */ 232 207 }; 233 208 234 209 T_PPP_PROTENT lcp_protent = { 235 210 PPP_LCP, 236 lcp_init, /* åæå */ 237 lcp_input, /* å 238 ¥å */ 239 lcp_protrej, /* Proto-REJ åä¿¡å¦ç */ 240 NULL, /* ä¸ä½å±¤ãèµ·åãã */ 241 lcp_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 242 NULL, /* ãªã¼ãã³ãã */ 243 lcp_close, /* ã¯ãã¼ãºãã */ 244 NULL, /* ãã¼ã¿å 245 ¥å */ 211 lcp_init, /* 初期化 */ 212 lcp_input, /* 入力 */ 213 lcp_protrej, /* Proto-REJ 受信処理 */ 214 NULL, /* 下位層を起動する */ 215 lcp_lowerdown, /* 下位層を停止する */ 216 NULL, /* オープンする */ 217 lcp_close, /* クローズする */ 218 NULL, /* データ入力 */ 246 219 }; 247 220 248 T_LCP_CONFIGS lcp_local_ack_cfg; /* ç¸æã«è¨±å¯ãããã®èªæ§ææ 249 å ± */ 250 T_LCP_CONFIGS lcp_remote_ack_cfg; /* ç¸æã«è¨±å¯ããæ§ææ 251 å ± */ 252 253 /* 254 * lcp_init -- LCP ã¢ã¸ã¥ã¼ã«ã®åæå 221 T_LCP_CONFIGS lcp_local_ack_cfg; /* 相手に許可されたの自構成情報 */ 222 T_LCP_CONFIGS lcp_remote_ack_cfg; /* 相手に許可した構成情報 */ 223 224 /* 225 * lcp_init -- LCP モジュールの初期化 255 226 */ 256 227 … … 262 233 263 234 /* 264 * lcp_input -- LCP å 265 ¥å 235 * lcp_input -- LCP 入力 266 236 */ 267 237 … … 275 245 276 246 /* 277 * lcp_resetci -- LCPã®æ§ææ 278 å ±ããªã»ããããã 247 * lcp_resetci -- LCPの構成情報をリセットする。 279 248 */ 280 249 … … 288 257 #endif /* of #ifdef LCP_CFG_MAGIC */ 289 258 290 /* èªæ§ææ 291 å ±ã®åæè¨å® */ 259 /* 自構成情報の初期設定 */ 292 260 lcp_local_neg_cfg = lcp_local_def_cfg; 293 261 lcp_local_ack_cfg = lcp_def_cfg; 294 262 295 /* ç¸æã®æ§ææ 296 å ±ã®åæè¨å® */ 263 /* 相手の構成情報の初期設定 */ 297 264 lcp_remote_neg_cfg = lcp_def_cfg; 298 265 lcp_remote_ack_cfg = lcp_def_cfg; … … 310 277 311 278 /* 312 * lcp_cilen -- æ§ææ 313 å ±ã®é·ããè¿ãã 279 * lcp_cilen -- 構成情報の長さを返す。 314 280 */ 315 281 … … 342 308 343 309 if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) 344 cilen += sizeof(T_PPP_CI_HDR); /* ãããã³ã«å§ç¸®*/310 cilen += sizeof(T_PPP_CI_HDR); /* プロトコル圧縮 */ 345 311 346 312 #endif /* of #ifdef LCP_CFG_PCOMP */ … … 349 315 350 316 if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) 351 cilen += sizeof(T_PPP_CI_HDR); /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®*/317 cilen += sizeof(T_PPP_CI_HDR); /* アドレス・制御圧縮 */ 352 318 353 319 #endif /* of #ifdef LCP_CFG_ACCOMP */ … … 357 323 358 324 /* 359 * lcp_addci -- LCPã®æ§ææ 360 å ±ã追å ããã 325 * lcp_addci -- LCPの構成情報を追加する。 361 326 */ 362 327 … … 368 333 buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 369 334 370 /* MRU ãªãã·ã§ã³ã追å ããã*/335 /* MRU オプションを追加する。 */ 371 336 if (lcp_local_neg_cfg.options & LCP_CFG_MRU) { 372 337 *buf ++ = LCP_CIT_MRU; … … 376 341 } 377 342 378 /* ACCM ãªãã·ã§ã³ã追å ããã*/343 /* ACCM オプションを追加する。 */ 379 344 if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) { 380 345 *buf ++ = LCP_CIT_ACCM; … … 386 351 #ifdef LCP_CFG_MAGIC 387 352 388 /* Magic Number ãªãã·ã§ã³ã追å ããã*/353 /* Magic Number オプションを追加する。 */ 389 354 if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) { 390 355 *buf ++ = LCP_CIT_MAGIC; … … 398 363 #ifdef LCP_CFG_PAP 399 364 400 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã追å ããã*/365 /* 認証プロトコルオプションを追加する。 */ 401 366 if (lcp_local_neg_cfg.options & LCP_CFG_PAP) { 402 367 *buf ++ = LCP_CIT_AUTH; … … 410 375 #ifdef LCP_CFG_PCOMP 411 376 412 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã追å ããã*/377 /* プロトコル圧縮オプションを追加する。 */ 413 378 if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) { 414 379 *buf ++ = LCP_CIT_PCOMP; … … 420 385 #ifdef LCP_CFG_ACCOMP 421 386 422 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã追å ããã*/387 /* アドレス・制御圧縮オプションを追加する。 */ 423 388 if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) { 424 389 *buf ++ = LCP_CIT_ACCOMP; … … 430 395 431 396 /* 432 * lcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç397 * lcp_ackci -- ACK を受信したときの処理 433 398 * 434 * æ»ãå¤: TURE ACK ã¯æ£å¸¸435 * false ACK ã¯ç°å¸¸399 * 戻り値: TURE ACK は正常 400 * false ACK は異常 436 401 */ 437 402 … … 446 411 447 412 /* 448 * æ§ææ 449 å ±ã¯éä¿¡ããé ã«å®å 450 ¨ã«ä¸è´ããªããã°ãªããªãã 451 * å¾ã£ã¦ãlcp_addci ã§ä½æããé ã«è§£æããã 413 * 構成情報は送信した順に完全に一致しなければならない。 414 * 従って、lcp_addci で作成した順に解析する。 452 415 */ 453 416 454 /* MRU ãªãã·ã§ã³ã解æããã*/417 /* MRU オプションを解析する。 */ 455 418 if (lcp_local_neg_cfg.options & LCP_CFG_MRU) { 456 419 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) || … … 463 426 } 464 427 465 /* ACCM ãªãã·ã§ã³ã解æããã*/428 /* ACCM オプションを解析する。 */ 466 429 if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) { 467 430 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) || … … 476 439 #ifdef LCP_CFG_MAGIC 477 440 478 /* Magic Number ãªãã·ã§ã³ã解æããã*/441 /* Magic Number オプションを解析する。 */ 479 442 if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) { 480 443 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) || … … 491 454 #ifdef LCP_CFG_PAP 492 455 493 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã解æããã*/456 /* 認証プロトコルオプションを解析する。 */ 494 457 if (lcp_local_neg_cfg.options & LCP_CFG_PAP) { 495 458 if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) || … … 506 469 #ifdef LCP_CFG_PCOMP 507 470 508 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã解æããã*/471 /* プロトコル圧縮オプションを解析する。 */ 509 472 if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) { 510 473 if (len < sizeof(T_PPP_CI_HDR) || … … 519 482 #ifdef LCP_CFG_ACCOMP 520 483 521 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã解æããã*/484 /* アドレス・制御圧縮オプションを解析する。 */ 522 485 if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) { 523 486 if (len < sizeof(T_PPP_CI_HDR) || … … 533 496 534 497 /* 535 * lcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç498 * lcp_nakci -- NAK を受信したときの処理 536 499 * 537 * æ»ãå¤: 1 NAK ã¯æ£å¸¸538 * 0 NAK ã¯ç°å¸¸500 * 戻り値: 1 NAK は正常 501 * 0 NAK は異常 539 502 */ 540 503 … … 543 506 { 544 507 T_LCP_CONFIGS new_cfg; 545 bool_t loop = false; /* ã«ã¼ãããã¯ããã§ãã¯*/508 bool_t loop = false; /* ループバックをチェック */ 546 509 uint32_t cilong; 547 510 uint16_t cishort, len; … … 553 516 new_cfg = lcp_local_neg_cfg; 554 517 555 /* MRU ãªãã·ã§ã³ã解æããã*/518 /* MRU オプションを解析する。 */ 556 519 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 557 520 * buf == LCP_CIT_MRU && … … 565 528 } 566 529 567 /* ACCM ãªãã·ã§ã³ã解æããã*/530 /* ACCM オプションを解析する。 */ 568 531 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 569 532 * buf == LCP_CIT_ACCM && … … 578 541 #ifdef LCP_CFG_MAGIC 579 542 580 /* Magic Number ãªãã·ã§ã³ã解æããã*/543 /* Magic Number オプションを解析する。 */ 581 544 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 582 545 * buf == LCP_CIT_MAGIC && … … 594 557 #ifdef LCP_CFG_PAP 595 558 596 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã解æããã*/559 /* 認証プロトコルオプションを解析する。 */ 597 560 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 598 561 * buf == LCP_CIT_AUTH && … … 612 575 #ifdef LCP_CFG_PCOMP 613 576 614 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã解æããã*/577 /* プロトコル圧縮オプションを解析する。 */ 615 578 if (len >= sizeof(T_PPP_CI_HDR) && 616 579 * buf == LCP_CIT_PCOMP && … … 626 589 #ifdef LCP_CFG_ACCOMP 627 590 628 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã解æããã*/591 /* アドレス・制御圧縮オプションを解析する。 */ 629 592 if (len >= sizeof(T_PPP_CI_HDR) && 630 593 * buf == LCP_CIT_ACCOMP && … … 638 601 #endif /* of #ifdef LCP_CFG_ACCOMP */ 639 602 640 /* å¾ã¯ç¡è¦ããã*/603 /* 後は無視する。*/ 641 604 while (len > sizeof(T_PPP_CI_HDR)) { 642 605 cilen = *(buf + 1); … … 647 610 } 648 611 649 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/612 /* 長さが 0 でなければエラー */ 650 613 if (len != 0) 651 614 return 0; 652 615 653 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/616 /* 新しいオプションを設定する。*/ 654 617 if (fsm->state != PPP_FSM_OPENED) { 655 618 if (loop) { … … 663 626 664 627 /* 665 * lcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç628 * lcp_rejci -- REJ を受信したときの処理 666 629 * 667 * æ»ãå¤: 1 REJ ã¯æ£å¸¸668 * 0 REJ ã¯ç°å¸¸630 * 戻り値: 1 REJ は正常 631 * 0 REJ は異常 669 632 */ 670 633 … … 682 645 new_cfg = lcp_local_neg_cfg; 683 646 684 /* MRU ãªãã·ã§ã³ã解æããã*/647 /* MRU オプションを解析する。 */ 685 648 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 686 649 * buf == LCP_CIT_MRU && … … 696 659 } 697 660 698 /* ACCM ãªãã·ã§ã³ã解æããã*/661 /* ACCM オプションを解析する。 */ 699 662 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 700 663 * buf == LCP_CIT_ACCM && … … 712 675 #ifdef LCP_CFG_MAGIC 713 676 714 /* Magic Number ãªãã·ã§ã³ã解æããã*/677 /* Magic Number オプションを解析する。 */ 715 678 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t) && 716 679 * buf == LCP_CIT_MAGIC && … … 730 693 #ifdef LCP_CFG_PAP 731 694 732 /* èªè¨¼ãããã³ã«ãªãã·ã§ã³ã解æããã*/695 /* 認証プロトコルオプションを解析する。 */ 733 696 if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && 734 697 * buf == LCP_CIT_AUTH && … … 748 711 #ifdef LCP_CFG_PCOMP 749 712 750 /* ãããã³ã«å§ç¸®ãªãã·ã§ã³ã解æããã*/713 /* プロトコル圧縮オプションを解析する。 */ 751 714 if (len >= sizeof(T_PPP_CI_HDR) && 752 715 * buf == LCP_CIT_PCOMP && … … 762 725 #ifdef LCP_CFG_ACCOMP 763 726 764 /* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ã解æããã*/727 /* アドレス・制御圧縮オプションを解析する。 */ 765 728 if (len >= sizeof(T_PPP_CI_HDR) && 766 729 * buf == LCP_CIT_ACCOMP && … … 774 737 #endif /* of #ifdef LCP_CFG_ACCOMP */ 775 738 776 /* é·ãã 0 ã§ãªããã°ã¨ã©ã¼*/739 /* 長さが 0 でなければエラー */ 777 740 if (len != 0) 778 741 return 0; 779 742 780 /* æ°ãããªãã·ã§ã³ãè¨å®ããã*/743 /* 新しいオプションを設定する。*/ 781 744 if (fsm->state != PPP_FSM_OPENED) 782 745 lcp_local_neg_cfg = new_cfg; … … 786 749 787 750 /* 788 * lcp_reqci -- ç¸æã®æ§ææ 789 å ±ã解æããã 751 * lcp_reqci -- 相手の構成情報を解析する。 790 752 */ 791 753 … … 803 765 804 766 rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 805 /* rp: REJ ãap: ACK ãã CI ã®ãã¤ã³ã¿*/806 /* æå¦ããå ´åã¯ãå¼æ° input ã«ä¸æ¸ãããã*/767 /* rp: REJ、ap: ACK する CI のポインタ */ 768 /* 拒否する場合は、引数 input に上書きする。 */ 807 769 len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)); 808 770 np = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 809 final = PPP_CONFACK; /* æçµçã«éä¿¡ããã³ã¼ã*/771 final = PPP_CONFACK; /* 最終的に送信するコード */ 810 772 while (len > 0) { 811 773 code = PPP_CONFACK; 812 cp = ap; /* cp: ç¾å¨å¦çä¸ã®CI */774 cp = ap; /* cp: 現在処理中の CI */ 813 775 814 776 if (len < sizeof(T_PPP_CI_HDR)) { 815 777 816 /* æ®ãã CI ãããããçã*/778 /* 残りが CI ヘッダより短い */ 817 779 syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", len); 818 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/819 len = 0; /* ã«ã¼ãããæããã*/780 cilen = len; /* データ長が異常の場合の処置 */ 781 len = 0; /* ループから抜ける。 */ 820 782 code = PPP_CONFREJ; 821 783 goto endswitch; 822 784 } 823 785 824 type = *ap ++; /* CI ã®å*/825 cilen = *ap ++; /* CI ã®é·ã*/786 type = *ap ++; /* CI の型 */ 787 cilen = *ap ++; /* CI の長さ */ 826 788 if (len < cilen) { 827 789 828 /* æ®ãã CI é·ããçã*/790 /* 残りが CI 長より短い */ 829 791 syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", cilen); 830 cilen = len; /* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®*/831 len = 0; /* ã«ã¼ãããæããã*/792 cilen = len; /* データ長が異常の場合の処置 */ 793 len = 0; /* ループから抜ける。 */ 832 794 code = PPP_CONFREJ; 833 795 goto endswitch; … … 835 797 len -= sizeof(T_PPP_CI_HDR); 836 798 837 /* CI ã®åã«ããåå²ããã*/799 /* CI の型により分岐する。*/ 838 800 switch (type) { 839 801 840 case LCP_CIT_MRU: /* æ大åä¿¡é(Maximum Receive Unit) */802 case LCP_CIT_MRU: /* 最大受信量 (Maximum Receive Unit) */ 841 803 842 804 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 … … 846 808 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 */ 847 809 848 /* CI é·ããããã + 2 ãªã¯ãããã§ãªããã°REJ */810 /* CI 長が、ヘッダ + 2 オクテットでなければ REJ */ 849 811 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)) 850 812 code = PPP_CONFREJ; … … 852 814 cishort = ntohs(*(uint16_t*)ap); 853 815 854 /* æå°åä¿¡éããå°ãããã°NAK */816 /* 最小受信量より小さければ NAK */ 855 817 if (cishort < MIN_PPP_MTU) { 856 818 *np ++ = LCP_CIT_MRU; … … 878 840 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0 */ 879 841 880 /* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°REJ */842 /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */ 881 843 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) 882 844 code = PPP_CONFREJ; … … 890 852 break; 891 853 892 case LCP_CIT_MAGIC: /* ãã¸ãã¯çªå·*/854 case LCP_CIT_MAGIC: /* マジック番号 */ 893 855 894 856 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 … … 898 860 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 */ 899 861 900 /* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°REJ */862 /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */ 901 863 if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) 902 864 code = PPP_CONFREJ; … … 904 866 ntoahl(cilong, ap); 905 867 906 /* çªå·ãèªåã¨åããªãNAK */868 /* 番号が自分と同じなら NAK */ 907 869 if (cilong == lcp_local_neg_cfg.magic) { 908 870 cilong = net_rand(); … … 924 886 925 887 #ifdef LCP_CFG_PAP 926 /* CHAP ã¯å®è£ 927 äºå® */ 928 929 case LCP_CIT_AUTH: /* èªè¨¼ãããã³ã« */ 930 931 /* CI é·ããããã + 2 ãªã¯ãããããçãã¨ãã¯ã¨ã©ã¼ */ 888 /* CHAP は実装予定 */ 889 890 case LCP_CIT_AUTH: /* 認証プロトコル */ 891 892 /* CI 長が、ヘッダ + 2 オクテットより短いときはエラー */ 932 893 if (cilen < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)) 933 894 code = PPP_CONFREJ; … … 935 896 cishort = ntohs(*(uint16_t*)ap); 936 897 937 /* èªè¨¼ãããã³ã«ã«ããåå²ãã*/898 /* 認証プロトコルにより分岐する */ 938 899 if (cishort == PPP_PAP && 939 900 cilen == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) && … … 949 910 #ifdef LCP_CFG_PCOMP 950 911 951 case LCP_CIT_PCOMP: /* ãããã³ã«é¨å§ç¸®ã¯å®è£ 952 äºå® */ 912 case LCP_CIT_PCOMP: /* プロトコル部圧縮は実装予定 */ 953 913 954 914 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 … … 958 918 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 */ 959 919 960 /* CI é·ãããããé·ã ãã§ãªããã°REJ */920 /* CI 長が、ヘッダ長だけでなければ REJ */ 961 921 if (cilen != sizeof(T_PPP_CI_HDR)) 962 922 code = PPP_CONFREJ; … … 972 932 #ifdef LCP_CFG_ACCOMP 973 933 974 case LCP_CIT_ACCOMP: /* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®*/934 case LCP_CIT_ACCOMP: /* アドレス・制御部圧縮 */ 975 935 976 936 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 … … 980 940 #else /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 */ 981 941 982 /* CI é·ãããããé·ã ãã§ãªããã°REJ */942 /* CI 長が、ヘッダ長だけでなければ REJ */ 983 943 if (cilen != sizeof(T_PPP_CI_HDR)) 984 944 code = PPP_CONFREJ; … … 999 959 endswitch: 1000 960 if (code == PPP_CONFNAK) { 1001 /* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã */ 1002 /* æå¤§å¤ MAX_PPP_FAILURES ãè¶ 1003 ãããæå¦ããã */ 961 /* CI の型が Magic Number の場合を除いて、NAK の回数が */ 962 /* 最大値 MAX_PPP_FAILURES を超えたら拒否する。 */ 1004 963 if (fsm->failures >= MAX_PPP_FAILURES && type != LCP_CIT_MAGIC) 1005 964 code = PPP_CONFREJ; … … 1008 967 } 1009 968 1010 /* ãã® CI ãæå¦ãã*/969 /* この CI を拒否する */ 1011 970 if (code == PPP_CONFREJ) { 1012 if (rp < cp) /* åã«è©°ããã*/971 if (rp < cp) /* 前に詰める。*/ 1013 972 memcpy(rp, cp, cilen); 1014 973 rp += cilen; … … 1020 979 } 1021 980 1022 /* æçµçãªé·ãã調æ´ããã*/981 /* 最終的な長さを調整する。*/ 1023 982 switch (final) { 1024 983 case PPP_CONFNAK: … … 1037 996 1038 997 /* 1039 * lcp_up -- ãªã³ã¯æ¥ç¶ã確ç«ãã (Phase: Establish ã«ç§»è¡ãã)ã998 * lcp_up -- リンク接続を確立する (Phase: Establish に移行する)。 1040 999 */ 1041 1000 … … 1043 1002 lcp_up (T_PPP_FSM *fsm) 1044 1003 { 1045 /* èªæ§ææ 1046 å ±ã®è¨å® */ 1004 /* 自構成情報の設定 */ 1047 1005 lcp_local_ack_cfg = lcp_local_neg_cfg; 1048 1006 1049 /* ç¸æã®æ§ææ 1050 å ±ã®è¨å® */ 1007 /* 相手の構成情報の設定 */ 1051 1008 lcp_remote_ack_cfg = lcp_remote_neg_cfg; 1052 1009 … … 1061 1018 1062 1019 /* 1063 * lcp_starting -- ä¸ä½å±¤ãéå§ããã1020 * lcp_starting -- 下位層を開始する。 1064 1021 */ 1065 1022 … … 1071 1028 1072 1029 /* 1073 * lcp_extcode -- LCP ç¹æã® CP ãåä¿¡ããã¨ãã®å¦ç1030 * lcp_extcode -- LCP 特有の CP を受信したときの処理 1074 1031 */ 1075 1032 … … 1128 1085 1129 1086 /* 1130 * lcp_rprotrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç1087 * lcp_rprotrej -- Proto-REJ を受信したときの処理 1131 1088 */ 1132 1089 … … 1149 1106 } 1150 1107 1151 /* ä¸ä½ãããã³ã«ãåæåãã*/1108 /* 上位プロトコルを初期化する */ 1152 1109 for (ix = 0; (entry = protocols[ix]) != NULL; ix ++) 1153 1110 if (entry->proto == proto) { … … 1160 1117 1161 1118 /* 1162 * lcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç1119 * lcp_protrej -- Proto-REJ を受信したときの処理 1163 1120 */ 1164 1121 … … 1170 1127 1171 1128 /* 1172 * lcp_lowerup -- LCP ä¸ä½å±¤ãèµ·åããã1129 * lcp_lowerup -- LCP 下位層を起動する。 1173 1130 */ 1174 1131 … … 1180 1137 1181 1138 /* 1182 * lcp_lowerdown -- LCP ä¸ä½å±¤ãåæ¢ããã1139 * lcp_lowerdown -- LCP 下位層を停止する。 1183 1140 */ 1184 1141 … … 1190 1147 1191 1148 /* 1192 * lcp_open -- LCP ã®ãªã¼ã1149 * lcp_open -- LCP のオープ 1193 1150 */ 1194 1151 … … 1196 1153 lcp_open (uint8_t open_mode) 1197 1154 { 1198 ppp_open_mode = open_mode; /* ãªã¼ãã³æã®åä½ã¢ã¼ã*/1155 ppp_open_mode = open_mode; /* オープン時の動作モード */ 1199 1156 fsm_open(&lcp_fsm); 1200 1157 } 1201 1158 1202 1159 /* 1203 * lcp_close -- LCP ã®ã¯ãã¼ãº1160 * lcp_close -- LCP のクローズ 1204 1161 */ 1205 1162 … … 1219 1176 1220 1177 /* 1221 * lcp_sprotrej -- èªèã§ããªããããã³ã«ãéããã¦ããã¨ãã®å¦ç1178 * lcp_sprotrej -- 認識できないプロトコルが送られてきたときの処理 1222 1179 */ 1223 1180 … … 1227 1184 T_NET_BUF *output; 1228 1185 /* 1229 * Protocol-Reject ãéãè¿ãã1186 * Protocol-Reject を送り返す。 1230 1187 */ 1231 1188 … … 1240 1197 1241 1198 /* 1242 * lcp_down -- ãªã³ã¯æ¥ç¶ã解æ¾ãã (Phase: Dead ã«ç§»è¡ãã)ã1199 * lcp_down -- リンク接続を解放する (Phase: Dead に移行する)。 1243 1200 */ 1244 1201 … … 1257 1214 1258 1215 /* 1259 * lcp_finished -- ä¸ä½å±¤ãçµäºããã1216 * lcp_finished -- 下位層を終了する。 1260 1217 */ 1261 1218 … … 1269 1226 1270 1227 /* 1271 * recv_echo_rep -- ECHOREP ãåä¿¡ããã¨ãã®å¦ç1228 * recv_echo_rep -- ECHOREP を受信したときの処理 1272 1229 */ 1273 1230 … … 1280 1237 hdr = GET_PPP_CP_HDR(input); 1281 1238 1282 /* Magic Number ã®é·ã以ä¸ãªãã¨ã©ã¼*/1239 /* Magic Number の長さ以下ならエラー */ 1283 1240 if (hdr->len < sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)) { 1284 1241 syslog(LOG_WARNING, "[PPP/LCP] bad ECHOREP len: %d.", hdr->len); … … 1288 1245 ntoahl(magic, input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)); 1289 1246 1290 /* åä¿¡ãã Magic Number ãèªåã¨åããªãã«ã¼ããã¦ããã*/1247 /* 受信した Magic Number が自分と同じならループしている。*/ 1291 1248 if ((lcp_local_ack_cfg.options & LCP_CFG_MAGIC) && magic == lcp_local_ack_cfg.magic) { 1292 1249 syslog(LOG_WARNING, "[PPP/LCP] ECHOREP looped."); … … 1298 1255 1299 1256 /* 1300 * echo_timeout -- ECHO REQ/REP ã®ã¿ã¤ã ã¢ã¦ãå¦ç1257 * echo_timeout -- ECHO REQ/REP のタイムアウト処理 1301 1258 */ 1302 1259 … … 1311 1268 1312 1269 /* 1313 * send_echo_req -- ECHO REQ ãéä¿¡ããã1270 * send_echo_req -- ECHO REQ を送信する。 1314 1271 */ 1315 1272 … … 1331 1288 if (fsm->state == PPP_FSM_OPENED) { 1332 1289 1333 /* ECHOREQ ãéä¿¡ããã*/1290 /* ECHOREQ を送信する。*/ 1334 1291 syscall(get_net_buf(&input, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR) + sizeof(uint32_t))); 1335 1292 *(uint32_t*)(input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) = lcp_local_ack_cfg.magic; … … 1338 1295 echo_pending ++; 1339 1296 1340 /* ã¿ã¤ãã¼ãã¹ã¿ã¼ãããã*/1297 /* タイマーをスタートする。*/ 1341 1298 timeout((FP)echo_timeout, fsm, LCP_ECHO_INTERVAL); 1342 1299 timer_running = true; … … 1345 1302 1346 1303 /* 1347 * echo_lowerup -- ECHO REQ/REP ã®èµ·å1304 * echo_lowerup -- ECHO REQ/REP の起動 1348 1305 */ 1349 1306 … … 1359 1316 1360 1317 /* 1361 * echo_lowerdown -- ECHO REQ/REP ã®åæ¢1318 * echo_lowerdown -- ECHO REQ/REP の停止 1362 1319 */ 1363 1320 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 … … 72 60 73 61 /* 74 * å 75 ¨åå¤æ° 76 */ 77 78 uint8_t modem_state = PPP_MODEM_DOWN; /* ã¢ãã ã®ç¶æ 79 */ 80 81 /* 82 * ã¢ãã å 83 ¥åæåå 62 * 全域変数 63 */ 64 65 uint8_t modem_state = PPP_MODEM_DOWN; /* モデムの状態 */ 66 67 /* 68 * モデム入力文字列 84 69 */ 85 70 … … 94 79 95 80 /* 96 * å¤æ°81 * 変数 97 82 */ 98 83 … … 111 96 112 97 /* 113 * é¢æ°98 * 関数 114 99 */ 115 100 … … 120 105 121 106 /* 122 * modem_getline -- ã¢ãã è¡å 123 ¥å 107 * modem_getline -- モデム行入力 124 108 */ 125 109 … … 130 114 131 115 buf = nbuf->buf; 132 size --; /* '\0' ã®å*/116 size --; /* '\0' の分 */ 133 117 while (size > 0 && (*buf = HDLC_raw_getoctet()) != '\r') { 134 118 buf ++; … … 136 120 } 137 121 *buf = '\0'; 138 HDLC_raw_getoctet(); /* \n ãèªã¿é£ã°ãã*/122 HDLC_raw_getoctet(); /* \n を読み飛ばす。*/ 139 123 nbuf->len = buf - nbuf->buf; 140 124 return nbuf; … … 142 126 143 127 /* 144 * ã¢ãã å¶å¾¡128 * モデム制御 145 129 * 146 * æ»ãå¤: ã¢ãã ããã®ãªã¶ã«ãã³ã¼ã130 * 戻り値: モデムからのリザルトコード 147 131 */ 148 132 … … 211 195 212 196 /* 213 * init_modem -- ã¢ãã ãåæåããã197 * init_modem -- モデムを初期化する。 214 198 */ 215 199 … … 229 213 230 214 /* 231 * wait_modem -- æ¥ç¶å®äºã¾ã§å¾ 232 ã¤ã 215 * wait_modem -- 接続完了まで待つ。 233 216 * 234 * æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã217 * 戻り値: 接続に失敗したら E_OBJ を返す。 235 218 */ 236 219 … … 245 228 246 229 if (modem_state != PPP_MODEM_CONNECT) { 247 /* æ¥ç¶å®äºã¾ã§å¾ 248 ã¤ã*/ 230 /* 接続完了まで待つ。*/ 249 231 wai_sem(SEM_MODEM_READY); 250 232 if (modem_state != PPP_MODEM_CONNECT) … … 256 238 257 239 /* 258 * dial -- ãã¤ã¤ã«ããããªãã©ã¤åæ°ãã»ããããã240 * dial -- ダイヤルする。リトライ回数をセットする。 259 241 */ 260 242 … … 268 250 269 251 /* 270 * do_dial -- ãã¤ã¤ã«ãããdial() ã®ä¸è«ãé¢æ°252 * do_dial -- ダイヤルする。dial() の下請け関数 271 253 */ 272 254 … … 281 263 282 264 /* 283 * modem_putstr -- ã¢ãã æåååºå265 * modem_putstr -- モデム文字列出力 284 266 */ 285 267 … … 292 274 293 275 /* 294 * modem_wait -- ã¢ãã ããæååãå¾ 295 㤠276 * modem_wait -- モデムから文字列を待つ 296 277 */ 297 278 … … 312 293 313 294 /* 314 * modem_putline -- ã¢ãã è¡åºå295 * modem_putline -- モデム行出力 315 296 */ 316 297 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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$ … … 114 102 115 103 /* 116 * é¢æ°104 * 関数 117 105 */ 118 106 … … 152 140 153 141 /* 154 * å 155 ¨åå¤æ° 142 * 全域変数 156 143 */ 157 144 158 145 T_PPP_PROTENT pap_protent = { 159 146 PPP_PAP, 160 upap_init, /* åæå */ 161 upap_input, /* å 162 ¥å */ 163 upap_protrej, /* Proto-REJ åä¿¡å¦ç */ 164 upap_lowerup, /* ä¸ä½å±¤ãèµ·åãã */ 165 upap_lowerdown, /* ä¸ä½å±¤ãåæ¢ãã */ 166 NULL, /* ãªã¼ãã³ãã */ 167 NULL, /* ã¯ãã¼ãºãã */ 168 NULL, /* ãã¼ã¿å 169 ¥å */ 147 upap_init, /* 初期化 */ 148 upap_input, /* 入力 */ 149 upap_protrej, /* Proto-REJ 受信処理 */ 150 upap_lowerup, /* 下位層を起動する */ 151 upap_lowerdown, /* 下位層を停止する */ 152 NULL, /* オープンする */ 153 NULL, /* クローズする */ 154 NULL, /* データ入力 */ 170 155 }; 171 156 172 157 /* 173 * å¤æ°158 * 変数 174 159 */ 175 160 … … 194 179 195 180 /* 196 * upap_init -- UPAP ã¢ã¸ã¥ã¼ã«ã®åæå181 * upap_init -- UPAP モジュールの初期化 197 182 */ 198 183 … … 215 200 216 201 /* 217 * upap_input -- UPAP å 218 ¥å 202 * upap_input -- UPAP 入力 219 203 */ 220 204 … … 227 211 NET_COUNT_PPP_PAP(net_count_ppp_upap_in_packets, 1); 228 212 229 /* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããçããã°ã¨ã©ã¼*/213 /* PPP リンク制御 (CP) ヘッダより短ければエラー */ 230 214 if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) { 231 215 syslog(LOG_WARNING, "[PPP/PAP] short hdr: %d.", input->len); … … 235 219 hdr = GET_PPP_CP_HDR(input); 236 220 237 /* ãããã®é·ãã¨å 238 ¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */ 221 /* ヘッダの長さと入力データサイズが一致しなければエラー */ 239 222 if (hdr->len != input->len - sizeof(T_PPP_HDR)) { 240 223 syslog(LOG_WARNING, "[PPP/PAP] bad len: %d.", hdr->len); … … 243 226 244 227 /* 245 * å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã228 * 制御コードにより適当な関数を呼出す 246 229 */ 247 230 … … 272 255 273 256 /* 274 * upap_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç257 * upap_protrej -- Proto-REJ を受信したときの処理 275 258 */ 276 259 … … 298 281 299 282 /* 300 * upap_lowerup -- UPAP ä¸ä½å±¤ãèµ·åããã283 * upap_lowerup -- UPAP 下位層を起動する。 301 284 */ 302 285 … … 332 315 333 316 /* 334 * upap_lowerdown -- UPAP ä¸ä½å±¤ãåæ¢ããã317 * upap_lowerdown -- UPAP 下位層を停止する。 335 318 */ 336 319 … … 367 350 368 351 /* 369 * ã¯ã©ã¤ã¢ã³ãã¢ã¼ã㧠PAP èªè¨¼ãéå§ããã352 * クライアントモードで PAP 認証を開始する。 370 353 */ 371 354 … … 388 371 389 372 /* 390 * upap_rauthack -- èªè¨¼ ACK å¦ç373 * upap_rauthack -- 認証 ACK 処理 391 374 */ 392 375 … … 401 384 402 385 /* 403 * upap_rauthnak -- èªè¨¼ NAK å¦ç386 * upap_rauthnak -- 認証 NAK 処理 404 387 */ 405 388 … … 412 395 413 396 /* 414 * upap_sauthreq -- èªè¨¼è¦æ±å¦ç397 * upap_sauthreq -- 認証要求処理 415 398 */ 416 399 … … 426 409 data = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR); 427 410 428 /* ã¦ã¼ã¶åãè¨å®ããã*/411 /* ユーザ名を設定する。*/ 429 412 *data = sizeof(AUTH_REMOTE_USER) - 1; 430 413 strcpy(data + 1, AUTH_REMOTE_USER); 431 414 432 /* ãã¹ã¯ã¼ããè¨å®ããã*/415 /* パスワードを設定する。*/ 433 416 *(data + sizeof(AUTH_REMOTE_USER)) = sizeof(AUTH_REMOTE_PASSWD) - 1; 434 417 strcpy(data + sizeof(AUTH_REMOTE_USER) + 1, AUTH_REMOTE_PASSWD); 435 418 436 /* éä¿¡ãã*/419 /* 送信する */ 437 420 IF_SET_PROTO(output, PPP_PAP); 438 421 ppp_cp_output(PAP_AUTHREQ, ++ client_cp_id, output); … … 451 434 452 435 /* 453 * upap_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç436 * upap_timeout -- タイムアウト処理 454 437 */ 455 438 … … 476 459 477 460 /* 478 * ãµã¼ãã¢ã¼ã㧠PAP èªè¨¼ãéå§ããã461 * サーバモードで PAP 認証を開始する。 479 462 */ 480 463 … … 497 480 498 481 /* 499 * upap_rauthreq -- èªè¨¼è¦æ±å¿çå¦ç482 * upap_rauthreq -- 認証要求応答処理 500 483 */ 501 484 … … 510 493 511 494 /* 512 * åè¦æ±ããã£ãã¨ãã®å¦ç495 * 再要求があったときの処理 513 496 */ 514 497 id = GET_PPP_CP_HDR(input)->id; … … 527 510 528 511 /* 529 * ã¦ã¼ã¶åãç¹å®ããã512 * ユーザ名を特定する。 530 513 */ 531 514 ulen = *data; … … 538 521 539 522 /* 540 * ãã¹ã¯ã¼ããç¹å®ããã523 * パスワードを特定する。 541 524 */ 542 525 plen = *data; … … 547 530 548 531 /* 549 * ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãããã§ãã¯ããã532 * ユーザ名とパスワードをチェックする。 550 533 */ 551 534 if (compare(user, AUTH_LOCAL_USER, ulen) && … … 574 557 575 558 /* 576 * upap_sresp -- å¿çãè¿ãã559 * upap_sresp -- 応答を返す。 577 560 */ 578 561 … … 582 565 T_NET_BUF *output; 583 566 584 /* éä¿¡ãã*/567 /* 送信する */ 585 568 syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))); 586 569 IF_SET_PROTO(output, PPP_PAP); … … 589 572 590 573 /* 591 * compare -- ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãã®æ¯è¼574 * compare -- ユーザ名とパスワードの比較 592 575 */ 593 576 … … 607 590 608 591 /* 609 * upap_reqtimeout -- è¦æ±ã¿ã¤ã ã¢ã¦ãå¦ç592 * upap_reqtimeout -- 要求タイムアウト処理 610 593 */ 611 594 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/net/tinet.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * TINET ç¬èªé¢æ°40 * TINET 独自関数 53 41 */ 54 42 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/Makefile.netapp
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile;charset=UTF-8
r388 r389 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$ … … 45 33 46 34 # 47 # ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ããã°ã©ã ã«é¢ããå®ç¾©48 # 49 50 # 51 # ã«ã¼ãã«ã®èå¥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 … … 79 67 endif 80 68 81 # ãã©ã³ã¹ãã¼ã層ã®é¸æ69 # トランスポート層の選択 82 70 83 71 #SUPPORT_TCP = false … … 85 73 86 74 # 87 # å 88 ±éã¯ã©ã¤ã¢ã³ãã»ãµã¼ãããã°ã©ã ã®è¨å® 75 # 共通クライアント・サーバプログラムの設定 89 76 # 90 77 … … 109 96 endif 110 97 111 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1) # éåä¿¡ã¿ã¹ã¯åä¸å98 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1) # 送受信タスク同一型 112 99 113 100 SUPPORT_TCP = true … … 127 114 endif 128 115 129 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2) # éåä¿¡ã¿ã¹ã¯åé¢å116 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2) # 送受信タスク分離型 130 117 SUPPORT_TCP = true 131 118 USE_NETAPP_SUBR = true … … 372 359 373 360 # 374 # ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã«é¢ããå®ç¾©ã¸ã®è¿½å361 # アプリケーションプログラムに関する定義への追加 375 362 # 376 363 … … 408 395 409 396 # 410 # TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©ã¸ã®è¿½å397 # TINET コンフィギュレーションファイルの定義への追加 411 398 # 412 399 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(NETAPP_KERNEL_CFG) -
Property svn:mime-type
changed from
-
azure_iot_hub/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
r388 r389 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 … … 132 120 133 121 /* 134 * dbg_cons_task_status -- ã¿ã¹ã¯ã®ç¶æ 135 ã®åºå 122 * dbg_cons_task_status -- タスクの状態の出力 136 123 */ 137 124 138 125 static const char task_stat_str[][sizeof("SUSPENDED")] = { 139 "DORMANT", /* ä¼æ¢ç¶æ 140 */ 141 "RUNNABLE", /* å®è¡ã§ããç¶æ 142 */ 143 "WAINTING", /* å¾ 144 ã¡ç¶æ 145 */ 146 "SUSPENDED", /* å¼·å¶å¾ 147 ã¡ç¶æ 148 */ 149 "SLEEP", /* èµ·åºå¾ 150 ã¡ç¶æ 151 */ 152 "WOBJ", /* åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾ 153 ã¡ç¶æ 154 */ 155 "WOBJCB", /* å 156 ±éé¨åã®å¾ 157 ã¡ãã¥ã¼ã«ã¤ãªãã£ã¦ããã */ 126 "DORMANT", /* 休止状態 */ 127 "RUNNABLE", /* 実行できる状態 */ 128 "WAINTING", /* 待ち状態 */ 129 "SUSPENDED", /* 強制待ち状態 */ 130 "SLEEP", /* 起床待ち状態 */ 131 "WOBJ", /* 同期・通信オブジェクトに対する待ち状態 */ 132 "WOBJCB", /* 共通部分の待ちキューにつながっている。 */ 158 133 }; 159 134 … … 190 165 191 166 /* 192 * tcp_status -- TCP ã®ç¶æ 193 ã®åºå 167 * tcp_status -- TCP の状態の出力 194 168 */ 195 169 196 170 static const char tcp_fsm_str[][sizeof("ESTABLISHED")] = { 197 "CLOSED", /* ã¯ãã¼ãº */ 198 "LISTEN", /* ååãªã¼ãã³ */ 199 "SYN_SENT", /* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿ */ 200 "SYN_RECVD", /* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿ */ 201 "ESTABLISHED", /* ã³ãã¯ã·ã§ã³éè¨å®äº */ 202 "CLOSE_WAIT", /* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾ 203 ã¡ */ 204 "FIN_WAIT_1", /* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾ 205 ã¡ */ 206 "CLOSING", /* åæã¯ãã¼ãºãFIN 交ææ¸ã¿ãACK å¾ 207 ã¡ */ 208 "LAST_ACK", /* APP ãçµäºãACK å¾ 209 ã¡ */ 210 "FIN_WAIT_2", /* ç¸æããã® FIN å¾ 211 ã¡ */ 212 "TIME_WAIT", /* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾ 213 ã¡ */ 171 "CLOSED", /* クローズ */ 172 "LISTEN", /* 受動オープン */ 173 "SYN_SENT", /* 能動オープン、SYN 送信済み */ 174 "SYN_RECVD", /* 受動オープン、SYN 受信済み */ 175 "ESTABLISHED", /* コネクション開設完了 */ 176 "CLOSE_WAIT", /* 相手から FIN 受信、APP の終了待ち */ 177 "FIN_WAIT_1", /* APP が終了、FIN 送信済み、ACK 待ち */ 178 "CLOSING", /* 同時クローズ、FIN 交換済み、ACK 待ち */ 179 "LAST_ACK", /* APP が終了、ACK 待ち */ 180 "FIN_WAIT_2", /* 相手からの FIN 待ち */ 181 "TIME_WAIT", /* 相手からの FIN 受信済み、時間待ち */ 214 182 }; 215 183 … … 578 546 579 547 /* 580 * udp6_status -- UDP ã®ç¶æ 581 ã®åºå 548 * udp6_status -- UDP の状態の出力 582 549 */ 583 550 … … 616 583 617 584 /* 618 * udp4_status -- UDP ã®ç¶æ 619 ã®åºå 585 * udp4_status -- UDP の状態の出力 620 586 */ 621 587 … … 675 641 676 642 /* 677 * ifa6_status -- è¿é£ãã£ãã·ã¥ç¶æ 678 ã®åºå 643 * ifa6_status -- 近隣キャッシュ状態の出力 679 644 */ 680 645 681 646 static const char nd_state_str[][sizeof("INCOMPLETE")] = { 682 "FREE", /* æªä½¿ç¨ */ 683 "NO STATE", /* ç¶æ 684 æªå®ç¾© */ 685 "INCOMPLETE", /* æªè§£æ±º */ 686 "REACHABLE", /* å°éå¯è½ */ 687 "STALE", /* å°éå¯è½æ§ã¯æªç¢ºèª */ 688 "DELAY", /* å°éå¯è½æ§ã®ç¢ºèªå¾ 689 æ© */ 690 "PROBE", /* å°éå¯è½æ§ã確èªä¸ */ 647 "FREE", /* 未使用 */ 648 "NO STATE", /* 状態未定義 */ 649 "INCOMPLETE", /* 未解決 */ 650 "REACHABLE", /* 到達可能 */ 651 "STALE", /* 到達可能性は未確認 */ 652 "DELAY", /* 到達可能性の確認待機 */ 653 "PROBE", /* 到達可能性を確認中 */ 691 654 }; 692 655 … … 703 666 "IX Expire State MAC Address IP Address\n"); 704 667 705 /* expire ã®åä½ã¯ [us]ã*/668 /* expire の単位は [us]。*/ 706 669 get_tim(&now); 707 670 cache = nd6_get_cache(); … … 728 691 729 692 /* 730 * ifa4_status -- ARP ãã£ãã·ã¥åºå693 * ifa4_status -- ARP キャッシュ出力 731 694 */ 732 695 … … 742 705 "IX Expire MAC Address IP Address\n"); 743 706 744 /* expire ã®åä½ã¯ [us]ã*/707 /* expire の単位は [us]。*/ 745 708 cache = arp_get_cache(); 746 709 for (ix = 0; ix < NUM_ARP_ENTRY; ix ++) { … … 762 725 763 726 /* 764 * net_count_struct -- ãããã¯ã¼ã¯çµ±è¨æ 765 å ± 727 * net_count_struct -- ネットワーク統計情報 766 728 */ 767 729 … … 770 732 { 771 733 cons_printf(portid, "\n%s\n", name); 772 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", item->in_octets);773 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", item->out_octets);774 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", item->in_packets);775 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", item->out_packets);776 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", item->in_err_packets);777 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", item->out_err_packets);734 cons_printf(portid, "\t受信オクテット数\t%lu\n", item->in_octets); 735 cons_printf(portid, "\t送信オクテット数\t%lu\n", item->out_octets); 736 cons_printf(portid, "\t受信バケット数\t%lu\n", item->in_packets); 737 cons_printf(portid, "\t送信バケット数\t%lu\n", item->out_packets); 738 cons_printf(portid, "\t受信エラーバケット数\t%lu\n", item->in_err_packets); 739 cons_printf(portid, "\t送信エラーバケット数\t%lu\n", item->out_err_packets); 778 740 } 779 741 780 742 /* 781 * net_count -- ãããã¯ã¼ã¯çµ±è¨æ 782 å ± 743 * net_count -- ネットワーク統計情報 783 744 */ 784 745 … … 792 753 WAI_NET_CONS_PRINTF(); 793 754 get_tim(&now); 794 cons_printf(portid, "ãããã¯ã¼ã¯çµ±è¨æ 795 å ±\tçµéæé[us]\t%lu\t", now); 755 cons_printf(portid, "ネットワーク統計情報\t経過時間[us]\t%lu\t", now); 796 756 if (now > (1000 * 3600 * 24)) 797 cons_printf(portid, "%3lu æ¥ %2luæé %2luå %2luç§\n",757 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n", 798 758 now / (1000 * 3600 * 24), 799 759 (now / (1000 * 3600)) % 24, … … 801 761 (now / 1000 ) % 60); 802 762 else 803 cons_printf(portid, "%2lu æé %2luå %2luç§\n",763 cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n", 804 764 (now / (1000 * 3600)) % 24, 805 765 (now / (1000 * 60 )) % 60, … … 810 770 net_count_struct(portid, "HDLC", &net_count_hdlc); 811 771 cons_printf(portid, "\nPPP\n"); 812 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp.in_octets);813 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp.out_octets);814 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp.in_packets);815 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", net_count_ppp.out_packets);816 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ppp.in_err_packets);817 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ppp.out_err_packets);818 cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n", net_count_ppp_no_bufs);772 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp.in_octets); 773 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ppp.out_octets); 774 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp.in_packets); 775 cons_printf(portid, "\t送信バケット数\t%lu\n", net_count_ppp.out_packets); 776 cons_printf(portid, "\t受信エラーバケット数\t%lu\n", net_count_ppp.in_err_packets); 777 cons_printf(portid, "\t送信エラーバケット数\t%lu\n", net_count_ppp.out_err_packets); 778 cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n", net_count_ppp_no_bufs); 819 779 820 780 cons_printf(portid, "\nLCP\n"); 821 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp_lcp_in_octets);822 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp_lcp_in_packets);781 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp_lcp_in_octets); 782 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp_lcp_in_packets); 823 783 824 784 cons_printf(portid, "\nIPCP\n"); 825 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp_ipcp_in_octets);826 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp_ipcp_in_packets);785 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp_ipcp_in_octets); 786 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp_ipcp_in_packets); 827 787 828 788 cons_printf(portid, "\nPAP\n"); 829 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ppp_upap_in_octets);830 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ppp_upap_in_packets);789 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ppp_upap_in_octets); 790 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ppp_upap_in_packets); 831 791 832 792 #endif /* of #ifdef SUPPORT_PPP */ … … 834 794 #ifdef SUPPORT_ETHER 835 795 836 net_count_struct(portid, " ã¤ã¼ãµããã", &net_count_ether);837 838 cons_printf(portid, "\n ã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹\n");839 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]);840 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]);841 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]);842 cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]);843 cons_printf(portid, "\t åä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]);844 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]);845 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]);846 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]);847 cons_printf(portid, "\t ã³ãªã¸ã§ã³æ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_COLS]);848 cons_printf(portid, "\t éä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]);849 cons_printf(portid, "\t éä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]);850 cons_printf(portid, "\t ãªã»ããæ°\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RESETS]);796 net_count_struct(portid, "イーサネット", &net_count_ether); 797 798 cons_printf(portid, "\nイーサネット・ネットワークインタフェース\n"); 799 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]); 800 cons_printf(portid, "\t受信バケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]); 801 cons_printf(portid, "\t受信エラーバケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]); 802 cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]); 803 cons_printf(portid, "\t受信セマフォ資源返却上限オーバー数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]); 804 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]); 805 cons_printf(portid, "\t送信バケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]); 806 cons_printf(portid, "\t送信エラーバケット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]); 807 cons_printf(portid, "\tコリジョン数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_COLS]); 808 cons_printf(portid, "\t送信セマフォ資源返却上限オーバー数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]); 809 cons_printf(portid, "\t送信タイムアウト数 \t%lu\n", net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]); 810 cons_printf(portid, "\tリセット数\t%lu\n", net_count_ether_nic[NC_ETHER_NIC_RESETS]); 851 811 852 812 #endif /* of #ifdef SUPPORT_ETHER */ … … 855 815 856 816 cons_printf(portid, "\nIPv6\n"); 857 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip6[NC_IP6_IN_OCTETS]);858 cons_printf(portid, "\t åä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_IN_PACKETS]);859 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PACKETS]);860 cons_printf(portid, "\t é·ãã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_SHORT]);861 cons_printf(portid, "\t ãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_VER]);862 cons_printf(portid, "\t ã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_ADDR]);863 cons_printf(portid, "\t ãããã³ã«ã¨ã©ã¼æ°\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PROTO]);864 cons_printf(portid, "\t åå²åä¿¡æ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN]);865 cons_printf(portid, "\t åå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_FRAGS]);866 cons_printf(portid, "\t åå²åä¿¡åæ§ææåæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_OK]);867 cons_printf(portid, "\t åå²åä¿¡ç ´æ£æ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_DROP]);868 cons_printf(portid, "\t åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]);869 cons_printf(portid, "\t åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_TMOUT]);870 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip6[NC_IP6_OUT_OCTETS]);871 cons_printf(portid, "\t éä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_OUT_PACKETS]);872 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip6[NC_IP6_OUT_ERR_PACKETS]);873 cons_printf(portid, "\t åå²éä¿¡æ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT]);874 cons_printf(portid, "\t åå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]);817 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ip6[NC_IP6_IN_OCTETS]); 818 cons_printf(portid, "\t受信データグラム数\t%lu\n", net_count_ip6[NC_IP6_IN_PACKETS]); 819 cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PACKETS]); 820 cons_printf(portid, "\t長さエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_SHORT]); 821 cons_printf(portid, "\tバージョンエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_VER]); 822 cons_printf(portid, "\tアドレスエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_ADDR]); 823 cons_printf(portid, "\tプロトコルエラー数\t%lu\n", net_count_ip6[NC_IP6_IN_ERR_PROTO]); 824 cons_printf(portid, "\t分割受信数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN]); 825 cons_printf(portid, "\t分割受信フラグメント数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_FRAGS]); 826 cons_printf(portid, "\t分割受信再構成成功数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_OK]); 827 cons_printf(portid, "\t分割受信破棄数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_DROP]); 828 cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]); 829 cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n", net_count_ip6[NC_IP6_FRAG_IN_TMOUT]); 830 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ip6[NC_IP6_OUT_OCTETS]); 831 cons_printf(portid, "\t送信データグラム数\t%lu\n", net_count_ip6[NC_IP6_OUT_PACKETS]); 832 cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n", net_count_ip6[NC_IP6_OUT_ERR_PACKETS]); 833 cons_printf(portid, "\t分割送信数\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT]); 834 cons_printf(portid, "\t分割送信フラグメント数\t%lu\n", net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]); 875 835 876 836 cons_printf(portid, "\nICMPv6\n"); 877 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_OCTETS]);878 cons_printf(portid, "\t åä¿¡ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_PACKETS]);879 cons_printf(portid, "\t åä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]);880 cons_printf(portid, "\t åä¿¡ããã¯ãµã ã¨ã©ã¼æ°\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]);881 cons_printf(portid, "\t éä¿¡ãªã¯ãããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_OCTETS]);882 cons_printf(portid, "\t éä¿¡ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_PACKETS]);883 cons_printf(portid, "\t éä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]);884 885 cons_printf(portid, "\n è¿é£æ¢ç´¢\n");886 cons_printf(portid, "\t ã«ã¼ã¿éç¥åä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_RA_IN_PACKETS]);887 cons_printf(portid, "\t ã«ã¼ã¿è¦è«éä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_RS_OUT_PACKETS]);888 cons_printf(portid, "\t è¿é£éç¥åä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NA_IN_PACKETS]);889 cons_printf(portid, "\t è¿é£éç¥éä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NA_OUT_PACKETS]);890 cons_printf(portid, "\t è¿é£è¦è«åä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NS_IN_PACKETS]);891 cons_printf(portid, "\t è¿é£è¦è«éä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_NS_OUT_PACKETS]);892 cons_printf(portid, "\t éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°\t%lu\n", net_count_nd6[NC_ND6_DAD_OUT_PACKETS]);837 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_OCTETS]); 838 cons_printf(portid, "\t受信パケット数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_PACKETS]); 839 cons_printf(portid, "\t受信エラーパケット数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]); 840 cons_printf(portid, "\t受信チックサムエラー数\t%lu\n", net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]); 841 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_OCTETS]); 842 cons_printf(portid, "\t送信パケット数\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_PACKETS]); 843 cons_printf(portid, "\t送信エラーパケット数\t%lu\n", net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]); 844 845 cons_printf(portid, "\n近隣探索\n"); 846 cons_printf(portid, "\tルータ通知受信数\t%lu\n", net_count_nd6[NC_ND6_RA_IN_PACKETS]); 847 cons_printf(portid, "\tルータ要請送信数\t%lu\n", net_count_nd6[NC_ND6_RS_OUT_PACKETS]); 848 cons_printf(portid, "\t近隣通知受信数\t%lu\n", net_count_nd6[NC_ND6_NA_IN_PACKETS]); 849 cons_printf(portid, "\t近隣通知送信数\t%lu\n", net_count_nd6[NC_ND6_NA_OUT_PACKETS]); 850 cons_printf(portid, "\t近隣要請受信数\t%lu\n", net_count_nd6[NC_ND6_NS_IN_PACKETS]); 851 cons_printf(portid, "\t近隣要請送信数\t%lu\n", net_count_nd6[NC_ND6_NS_OUT_PACKETS]); 852 cons_printf(portid, "\t重複アドレス検出送信数\t%lu\n", net_count_nd6[NC_ND6_DAD_OUT_PACKETS]); 893 853 894 854 #else /* of #if defined(SUPPORT_INET6) */ … … 903 863 904 864 cons_printf(portid, "\nIPv4\n"); 905 cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip4[NC_IP4_IN_OCTETS]); 906 cons_printf(portid, "\tåä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_IN_PACKETS]); 907 cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PACKETS]); 908 cons_printf(portid, "\tãã§ãã¯ãµã ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_CKSUM]); 909 cons_printf(portid, "\té·ãã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_SHORT]); 910 cons_printf(portid, "\tãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_VER]); 911 cons_printf(portid, "\tã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_ADDR]); 912 cons_printf(portid, "\tãããã³ã«ã¨ã©ã¼æ°\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PROTO]); 913 cons_printf(portid, "\tãªãã·ã§ã³å 914 ¥åæ°\t%lu\n", net_count_ip4[NC_IP4_OPTS]); 915 cons_printf(portid, "\tåå²åä¿¡æ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN]); 916 cons_printf(portid, "\tåå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_FRAGS]); 917 cons_printf(portid, "\tåå²åä¿¡åæ§ææåæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_OK]); 918 cons_printf(portid, "\tåå²åä¿¡ç ´æ£æ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_DROP]); 919 cons_printf(portid, "\tåå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]); 920 cons_printf(portid, "\tåå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_TMOUT]); 921 cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n", net_count_ip4[NC_IP4_OUT_OCTETS]); 922 cons_printf(portid, "\téä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_OUT_PACKETS]); 923 cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n", net_count_ip4[NC_IP4_OUT_ERR_PACKETS]); 924 cons_printf(portid, "\tåå²éä¿¡æ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT]); 925 cons_printf(portid, "\tåå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]); 865 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_ip4[NC_IP4_IN_OCTETS]); 866 cons_printf(portid, "\t受信データグラム数\t%lu\n", net_count_ip4[NC_IP4_IN_PACKETS]); 867 cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PACKETS]); 868 cons_printf(portid, "\tチェックサムエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_CKSUM]); 869 cons_printf(portid, "\t長さエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_SHORT]); 870 cons_printf(portid, "\tバージョンエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_VER]); 871 cons_printf(portid, "\tアドレスエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_ADDR]); 872 cons_printf(portid, "\tプロトコルエラー数\t%lu\n", net_count_ip4[NC_IP4_IN_ERR_PROTO]); 873 cons_printf(portid, "\tオプション入力数\t%lu\n", net_count_ip4[NC_IP4_OPTS]); 874 cons_printf(portid, "\t分割受信数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN]); 875 cons_printf(portid, "\t分割受信フラグメント数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_FRAGS]); 876 cons_printf(portid, "\t分割受信再構成成功数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_OK]); 877 cons_printf(portid, "\t分割受信破棄数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_DROP]); 878 cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]); 879 cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n", net_count_ip4[NC_IP4_FRAG_IN_TMOUT]); 880 cons_printf(portid, "\t送信オクテット数\t%lu\n", net_count_ip4[NC_IP4_OUT_OCTETS]); 881 cons_printf(portid, "\t送信データグラム数\t%lu\n", net_count_ip4[NC_IP4_OUT_PACKETS]); 882 cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n", net_count_ip4[NC_IP4_OUT_ERR_PACKETS]); 883 cons_printf(portid, "\t分割送信数\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT]); 884 cons_printf(portid, "\t分割送信フラグメント数\t%lu\n", net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]); 926 885 927 886 net_count_struct(portid, "ICMP", &net_count_icmp4); … … 934 893 935 894 cons_printf(portid, "\nTCP\n"); 936 cons_printf(portid, "\t åä¿¡ãªã¯ãããæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_OCTETS]);937 cons_printf(portid, "\t åä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_OCTETS]);938 cons_printf(portid, "\t åä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_SEGS]);939 cons_printf(portid, "\t åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_SEGS]);940 cons_printf(portid, "\t åä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_URG_SEGS]);941 cons_printf(portid, "\t åä¿¡ããããä¸æ£æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_HEADERS]);942 cons_printf(portid, "\t åä¿¡ããã§ãã¯ãµã ä¸æ£æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]);943 cons_printf(portid, "\t åä¿¡ãACK æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_ACKS]);944 cons_printf(portid, "\t åä¿¡ãå¤é ACK æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_ACKS]);945 cons_printf(portid, "\t åä¿¡ãRST æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_RSTS]);946 cons_printf(portid, "\t åä¿¡ãå¤éæ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_SEGS]);947 cons_printf(portid, "\t åä¿¡ãç ´æ£æ°\t%lu\n", net_count_tcp[NC_TCP_RECV_DROP_SEGS]);948 cons_printf(portid, "\t åä¿¡ãã¥ã¼è§£æ¾æ°\t%lu\n", net_count_tcp[NC_TCP_FREE_RCV_QUEUE]);949 cons_printf(portid, "\t éä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_OCTETS]);950 cons_printf(portid, "\t éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_CNTL_SEGS]);951 cons_printf(portid, "\t éä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_SEGS]);952 cons_printf(portid, "\t åéä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]);953 cons_printf(portid, "\t éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_SEGS]);954 cons_printf(portid, "\t éä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n", net_count_tcp[NC_TCP_SEND_URG_SEGS]);955 cons_printf(portid, "\t éä¿¡ãACK æ°\t%lu\n", net_count_tcp[NC_TCP_SEND_ACKS]);956 cons_printf(portid, "\t éä¿¡ãRST æ°\t%lu\n", net_count_tcp[NC_TCP_SEND_RSTS]);957 cons_printf(portid, "\tRTT æ´æ°æ°\t%lu\n", net_count_tcp[NC_TCP_RTT_UPDATES]);958 cons_printf(portid, "\t ååãªã¼ãã³æ°\t%lu\n", net_count_tcp[NC_TCP_ACCEPTS]);959 cons_printf(portid, "\t è½åãªã¼ãã³æ°\t%lu\n", net_count_tcp[NC_TCP_CONNECTS]);895 cons_printf(portid, "\t受信オクテット数\t%lu\n", net_count_tcp[NC_TCP_RECV_OCTETS]); 896 cons_printf(portid, "\t受信データオクテット数\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_OCTETS]); 897 cons_printf(portid, "\t受信セグメント数\t%lu\n", net_count_tcp[NC_TCP_RECV_SEGS]); 898 cons_printf(portid, "\t受信データセグメント数\t%lu\n", net_count_tcp[NC_TCP_RECV_DATA_SEGS]); 899 cons_printf(portid, "\t受信、緊急セグメント数\t%lu\n", net_count_tcp[NC_TCP_RECV_URG_SEGS]); 900 cons_printf(portid, "\t受信、ヘッダ不正数\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_HEADERS]); 901 cons_printf(portid, "\t受信、チェックサム不正数\t%lu\n", net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]); 902 cons_printf(portid, "\t受信、ACK 数\t%lu\n", net_count_tcp[NC_TCP_RECV_ACKS]); 903 cons_printf(portid, "\t受信、多重 ACK 数\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_ACKS]); 904 cons_printf(portid, "\t受信、RST 数\t%lu\n", net_count_tcp[NC_TCP_RECV_RSTS]); 905 cons_printf(portid, "\t受信、多重数\t%lu\n", net_count_tcp[NC_TCP_RECV_DUP_SEGS]); 906 cons_printf(portid, "\t受信、破棄数\t%lu\n", net_count_tcp[NC_TCP_RECV_DROP_SEGS]); 907 cons_printf(portid, "\t受信キュー解放数\t%lu\n", net_count_tcp[NC_TCP_FREE_RCV_QUEUE]); 908 cons_printf(portid, "\t送信データオクテット数\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_OCTETS]); 909 cons_printf(portid, "\t送信制御セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_CNTL_SEGS]); 910 cons_printf(portid, "\t送信セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_SEGS]); 911 cons_printf(portid, "\t再送信セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]); 912 cons_printf(portid, "\t送信データセグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_DATA_SEGS]); 913 cons_printf(portid, "\t送信、緊急セグメント数\t%lu\n", net_count_tcp[NC_TCP_SEND_URG_SEGS]); 914 cons_printf(portid, "\t送信、ACK 数\t%lu\n", net_count_tcp[NC_TCP_SEND_ACKS]); 915 cons_printf(portid, "\t送信、RST 数\t%lu\n", net_count_tcp[NC_TCP_SEND_RSTS]); 916 cons_printf(portid, "\tRTT 更新数\t%lu\n", net_count_tcp[NC_TCP_RTT_UPDATES]); 917 cons_printf(portid, "\t受動オープン数\t%lu\n", net_count_tcp[NC_TCP_ACCEPTS]); 918 cons_printf(portid, "\t能動オープン数\t%lu\n", net_count_tcp[NC_TCP_CONNECTS]); 960 919 961 920 #endif /* of #ifdef SUPPORT_TCP */ … … 968 927 969 928 tbl = nbuf_get_tbl(); 970 cons_printf(portid, "\n ãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\t使ç¨ä¸æ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");929 cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t使用中数\t割当要求数\t割当数\t割当てエラー数\n"); 971 930 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) { 972 931 cons_printf(portid, "\t%lu\t%lu\t%lu\t%lu\t%lu\t%lu\n", … … 979 938 } 980 939 981 cons_printf(portid, "\nãããã¯ã¼ã¯çµ±è¨æ 982 å ±\tçµéæé[us]\t%lu\t", now); 940 cons_printf(portid, "\nネットワーク統計情報\t経過時間[us]\t%lu\t", now); 983 941 if (now > (1000 * 3600 * 24)) 984 cons_printf(portid, "%3lu æ¥ %2luæé %2luå %2luç§\n",942 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n", 985 943 now / (1000 * 3600 * 24), 986 944 (now / (1000 * 3600)) % 24, … … 988 946 (now / 1000 ) % 60); 989 947 else 990 cons_printf(portid, "%2lu æé %2luå %2luç§\n",948 cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n", 991 949 (now / (1000 * 3600)) % 24, 992 950 (now / (1000 * 60 )) % 60, … … 1002 960 1003 961 /* 1004 * nbuf_stat_ip4_frag_queue -- IPv4 åæ§æãã¥ã¼å 1005 ãããã¯ã¼ã¯ãããã¡æ 1006 å ± 962 * nbuf_stat_ip4_frag_queue -- IPv4 再構成キュー内ネットワークバッファ情報 1007 963 */ 1008 964 … … 1014 970 int_t ix, fix, count; 1015 971 1016 cons_printf(portid, "\nIPv4åæ§æãã¥ã¼å 1017 \nIndex\tTime"); 972 cons_printf(portid, "\nIPv4再構成キュー内\nIndex\tTime"); 1018 973 tbl = nbuf_get_tbl(); 1019 974 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) … … 1046 1001 1047 1002 /* 1048 * nbuf_stat_ip6_frag_queue -- IPv6 åæ§æãã¥ã¼å 1049 ãããã¯ã¼ã¯ãããã¡æ 1050 å ± 1003 * nbuf_stat_ip6_frag_queue -- IPv6 再構成キュー内ネットワークバッファ情報 1051 1004 */ 1052 1005 … … 1058 1011 int_t ix, fix, count; 1059 1012 1060 cons_printf(portid, "\nIPv6åæ§æãã¥ã¼å 1061 \nIndex\tTime"); 1013 cons_printf(portid, "\nIPv6再構成キュー内\nIndex\tTime"); 1062 1014 tbl = nbuf_get_tbl(); 1063 1015 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) … … 1088 1040 1089 1041 /* 1090 * nbuf_status -- ãããã¯ã¼ã¯ãããã¡æ 1091 å ± 1042 * nbuf_status -- ネットワークバッファ情報 1092 1043 */ 1093 1044 … … 1114 1065 WAI_NET_CONS_PRINTF(); 1115 1066 get_tim(&now); 1116 cons_printf(portid, "ãããã¯ã¼ã¯ãããã¡æ 1117 å ±\tçµéæé[us]\t%u\n", now); 1067 cons_printf(portid, "ネットワークバッファ情報\t経過時間[us]\t%u\n", now); 1118 1068 1119 1069 #if NET_COUNT_ENABLE 1120 1070 1121 cons_printf(portid, "\n ãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\t使ç¨ä¸æ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");1071 cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t使用中数\t割当要求数\t割当数\t割当てエラー数\n"); 1122 1072 tbl = nbuf_get_tbl(); 1123 1073 for (ix = nbuf_get_tbl_size(); ix -- > 0; ) { … … 1135 1085 #ifdef SUPPORT_TCP 1136 1086 1137 cons_printf(portid, "\nCEPå 1138 \nCEPID\n"); 1087 cons_printf(portid, "\nCEP内\nCEPID\n"); 1139 1088 1140 1089 for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) { … … 1210 1159 1211 1160 /* 1212 * show_dns_soa -- DNS ã® SOA RDATA ã表示ããã1161 * show_dns_soa -- DNS の SOA RDATA を表示する。 1213 1162 */ 1214 1163 … … 1240 1189 1241 1190 /* 1242 * show_dns_qdsection -- DNS ã® Question ã»ã¯ã·ã§ã³ã表示ããã1191 * show_dns_qdsection -- DNS の Question セクションを表示する。 1243 1192 */ 1244 1193 … … 1266 1215 1267 1216 /* 1268 * show_dns_section -- DNS ã®åã»ã¯ã·ã§ã³ã表示ããã1217 * show_dns_section -- DNS の各セクションを表示する。 1269 1218 */ 1270 1219 … … 1334 1283 } 1335 1284 /* 1336 * dns_info -- DNS æ 1337 å ±ã®è¡¨ç¤º 1285 * dns_info -- DNS 情報の表示 1338 1286 */ 1339 1287 … … 1378 1326 1379 1327 /* 1380 * name_lookup -- ãã¹ãåï¼IP ã¢ãã¬ã¹å¤æ1328 * name_lookup -- ホスト名-IP アドレス変換 1381 1329 */ 1382 1330 … … 1401 1349 uint8_t *msg; 1402 1350 1403 /* ã³ãã³ãã®ãªãã·ã§ã³ãè¨å®ããã*/1351 /* コマンドのオプションを設定する。*/ 1404 1352 line = skip_blanks(resolv_options(&flags, line, DEFAULT_API_PROTO)); 1405 1353 if ((flags & (DNS_LUP_FLAGS_PROTO_IPV6 | DNS_LUP_FLAGS_PROTO_IPV4)) == 0) { … … 1408 1356 } 1409 1357 1410 /* ç 1411 §ä¼ãããã¹ãåã»IP ã¢ãã¬ã¹ã解æããã*/ 1358 /* 照会するホスト名・IP アドレスを解析する。*/ 1412 1359 resolv_hoststr(&flags, hostname, sizeof(hostname), line); 1413 1360 1414 /* æ£å¼ãã§ãéå¼ãã§ããããã³ã«ä¸ã¯æ£å¼ããæå®ããã*/1361 /* 正引きでも逆引きでもプロトコル上は正引きを指定する。*/ 1415 1362 flags |= DNS_LUP_OPCODE_FORWARD; 1416 1363 1417 /* IPv6 ã¢ãã¬ã¹ãã¾ã㯠IPv4 ã¢ãã¬ã¹ãæå®ãããæã¯ãç 1418 §ä¼ã¿ã¤ã㯠PTR ã«è¨å®ããã*/ 1364 /* IPv6 アドレス、または IPv4 アドレスが指定された時は、照会タイプは PTR に設定する。*/ 1419 1365 if (((flags & DNS_LUP_FLAGS_NAME_MASK) == DNS_LUP_FLAGS_NAME_IPV6) || 1420 1366 ((flags & DNS_LUP_FLAGS_NAME_MASK) == DNS_LUP_FLAGS_NAME_IPV4)) … … 1473 1419 1474 1420 /* 1475 * dhcp6c_info -- DHCPv6 ã¯ã©ã¤ã¢ã³ãæ 1476 å ±ã®è¡¨ç¤º 1421 * dhcp6c_info -- DHCPv6 クライアント情報の表示 1477 1422 */ 1478 1423 … … 1516 1461 1517 1462 /* 1518 * dhcp4c_info -- DHCPv4 ã¯ã©ã¤ã¢ã³ãæ 1519 å ±ã®è¡¨ç¤º 1463 * dhcp4c_info -- DHCPv4 クライアント情報の表示 1520 1464 */ 1521 1465 … … 1545 1489 1546 1490 /* 1547 * dhcpc -- DHCP ã¯ã©ã¤ã¢ã³ãæ 1548 å ±ã®è¡¨ç¤ºã¨å¶å¾¡ 1491 * dhcpc -- DHCP クライアント情報の表示と制御 1549 1492 */ 1550 1493 … … 1557 1500 1558 1501 #if defined(DHCP6_CLI_CFG) 1559 case '6': /* DHCPv6 ã®å¶å¾¡*/1502 case '6': /* DHCPv6 の制御 */ 1560 1503 switch (*(line + 1)) { 1561 case 'r': /* ã¢ãã¬ã¹æ 1562 å ±ã解æ¾ããã*/ 1504 case 'r': /* アドレス情報を解放する。*/ 1563 1505 dhcp6c_rel_info(); 1564 1506 break; 1565 1507 1566 case 'n': /* ã¢ãã¬ã¹æ 1567 å ±ãååå¾ããã*/ 1508 case 'n': /* アドレス情報を再取得する。*/ 1568 1509 dhcp6c_renew_info(); 1569 1510 break; … … 1577 1518 1578 1519 #if defined(DHCP4_CLI_CFG) 1579 case '4': /* DHCPv4 ã®å¶å¾¡*/1520 case '4': /* DHCPv4 の制御 */ 1580 1521 switch (*(line + 1)) { 1581 case 'r': /* ã¢ãã¬ã¹æ 1582 å ±ã解æ¾ããã*/ 1522 case 'r': /* アドレス情報を解放する。*/ 1583 1523 dhcp4c_rel_info(); 1584 1524 break; 1585 1525 1586 case 'n': /* ã¢ãã¬ã¹æ 1587 å ±ãååå¾ããã*/ 1526 case 'n': /* アドレス情報を再取得する。*/ 1588 1527 dhcp4c_renew_info(); 1589 1528 break; … … 1619 1558 1620 1559 /* 1621 * defrtrlist_status -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãç¶æ 1622 ã®åºå 1560 * defrtrlist_status -- ディフォルトルータ・リスト状態の出力 1623 1561 */ 1624 1562 … … 1639 1577 cons_printf(portid, " IP Address\n"); 1640 1578 1641 /* expire ã®åä½ã¯ [us]ã*/1579 /* expire の単位は [us]。*/ 1642 1580 get_tim(&now); 1643 1581 dr = nd6_get_drl(&count); … … 1683 1621 1684 1622 /* 1685 * prefixlist_status -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãç¶æ 1686 ã®åºå 1623 * prefixlist_status -- プレフィックス・リスト状態の出力 1687 1624 */ 1688 1625 … … 1703 1640 cons_printf(portid, " Len Prefix\n"); 1704 1641 1705 /* expire ã®åä½ã¯ [s]ã*/1642 /* expire の単位は [s]。*/ 1706 1643 get_tim(&now); 1707 1644 now /= SYSTIM_HZ; … … 1752 1689 1753 1690 /* 1754 * routing6_table_status -- çµè·¯è¡¨ï¼IPv6ï¼ã®åºå1691 * routing6_table_status -- 経路表(IPv6)の出力 1755 1692 */ 1756 1693 … … 1775 1712 } 1776 1713 1777 /* expire ã®åä½ã¯ [s]ã*/1714 /* expire の単位は [s]。*/ 1778 1715 get_tim(&now); 1779 1716 now /= SYSTIM_HZ; … … 1803 1740 1804 1741 /* 1805 * routing4_table_status -- çµè·¯è¡¨ï¼IPv4ï¼ã®åºå1742 * routing4_table_status -- 経路表(IPv4)の出力 1806 1743 */ 1807 1744 … … 1856 1793 1857 1794 /* 1858 * routing_status -- çµè·¯æ 1859 å ± 1795 * routing_status -- 経路情報 1860 1796 */ 1861 1797 … … 1867 1803 #if defined(SUPPORT_INET6) && NUM_ND6_DEF_RTR_ENTRY > 0 1868 1804 1869 case 'l': /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãæ 1870 å ± */ 1805 case 'l': /* ディフォルトルータ・リスト情報 */ 1871 1806 defrtrlist_status(portid, line + 1); 1872 1807 break; 1873 1808 1874 case 'p': /* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãæ 1875 å ± */ 1809 case 'p': /* プレフィックス・リスト情報 */ 1876 1810 prefixlist_status(portid, line + 1); 1877 1811 break; … … 1881 1815 default: 1882 1816 1883 /* çµè·¯è¡¨æ 1884 å ± */ 1817 /* 経路表情報 */ 1885 1818 1886 1819 #if defined(SUPPORT_INET6) && NUM_IN6_ROUTE_ENTRY > 0 … … 1897 1830 1898 1831 /* 1899 * dbg_cons_network_status -- ãããã¯ã¼ã¯ã®ç¶æ 1900 ã®åºå 1832 * dbg_cons_network_status -- ネットワークの状態の出力 1901 1833 */ 1902 1834 … … 1908 1840 #ifdef SUPPORT_ETHER 1909 1841 1910 case 'a': /* IF ã¢ãã¬ã¹æ 1911 å ± */ 1842 case 'a': /* IF アドレス情報 */ 1912 1843 1913 1844 #if defined(SUPPORT_INET6) … … 1922 1853 #endif /* of #ifdef SUPPORT_ETHER */ 1923 1854 1924 case 'b': /* ãããã¯ã¼ã¯ãããã¡æ 1925 å ± */ 1855 case 'b': /* ネットワークバッファ情報 */ 1926 1856 nbuf_status(portid, line + 1); 1927 1857 break; … … 1929 1859 #if NET_COUNT_ENABLE 1930 1860 1931 case 'c': /* ãããã¯ã¼ã¯çµ±è¨æ 1932 å ± */ 1861 case 'c': /* ネットワーク統計情報 */ 1933 1862 net_count(portid, line + 1); 1934 1863 break; … … 1936 1865 #endif /* of #if NET_COUNT_ENABLE */ 1937 1866 1938 case 'r': /* çµè·¯æ 1939 å ± */ 1867 case 'r': /* 経路情報 */ 1940 1868 routing_status(portid, line + 1); 1941 1869 break; … … 1977 1905 1978 1906 /* 1979 * dbg_cons_ifconfig -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ§ææ 1980 å ± 1907 * dbg_cons_ifconfig -- ネットワークインタフェースの構成情報 1981 1908 */ 1982 1909 … … 2000 1927 2001 1928 /* 2002 * dbg_cons_ifconfig6 -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼IPv6ï¼ã®æ§ææ 2003 å ± 1929 * dbg_cons_ifconfig6 -- ネットワークインタフェース(IPv6)の構成情報 2004 1930 */ 2005 1931 … … 2015 1941 WAI_NET_CONS_PRINTF(); 2016 1942 2017 /* expire 㨠vltime ã®åä½ã¯ [s]ã*/1943 /* expire と vltime の単位は [s]。*/ 2018 1944 get_tim(&now); 2019 1945 now /= SYSTIM_HZ; … … 2060 1986 2061 1987 /* 2062 * dbg_cons_ifconfig4 -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼IPv4ï¼ã®æ§ææ 2063 å ± 1988 * dbg_cons_ifconfig4 -- ネットワークインタフェース(IPv4)の構成情報 2064 1989 */ 2065 1990 … … 2101 2026 2102 2027 /* 2103 * dbg_cons_show_config -- ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³è¨å®ã®è¡¨ç¤º2028 * dbg_cons_show_config -- コンフィギュレーション設定の表示 2104 2029 */ 2105 2030 … … 2557 2482 2558 2483 /* 2559 * ping ã³ãã³ã2484 * ping コマンド 2560 2485 */ 2561 2486 … … 2655 2580 2656 2581 /* 2657 * ãããã°ã³ãã³ã解æ2582 * デバッグコマンド解析 2658 2583 */ 2659 2584 … … 3272 3197 3273 3198 /* 3274 * ãããã°ã³ã³ã½ã¼ã«ã¿ã¹ã¯3199 * デバッグコンソールタスク 3275 3200 */ 3276 3201 -
azure_iot_hub/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
r388 r389 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, { -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp4.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 41 * 42 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 43 ã 44 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 45 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 46 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 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 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 31 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 32 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 47 33 * 48 34 * @(#) $Id$ … … 53 39 54 40 /* 55 * DHCP ã«é¢ããå®ç¾©41 * DHCP に関する定義 56 42 * 57 43 * RFC2131 … … 59 45 60 46 /* 61 * DHCP ã¡ãã»ã¼ã¸ã®å®æ°ã®å®ç¾©47 * DHCP メッセージの定数の定義 62 48 */ 63 49 … … 74 60 75 61 /* 76 * DHCP ã¡ãã»ã¼ã¸62 * DHCP メッセージ 77 63 */ 78 64 … … 95 81 } __attribute__((packed)) T_DHCP4_MSG; 96 82 97 /* packet type ã®å®ç¾©*/83 /* packet type の定義 */ 98 84 99 85 #define DHCP4_REQUEST UINT_C(1) 100 86 #define DHCP4_REPLY UINT_C(2) 101 87 102 /* hardware address type ã®å®ç¾©*/88 /* hardware address type の定義 */ 103 89 104 90 #define DHCP4_HWA_TYPE_ETHER UINT_C(1) … … 106 92 107 93 /* 108 * DHCP ãªãã·ã§ã³94 * DHCP オプション 109 95 * 110 96 * RFC1533 … … 112 98 113 99 /* 114 * ãªãã·ã§ã³ã®ç©´åã100 * オプションの穴埋め 115 101 */ 116 102 #define DHCP4_OPT_PAD UINT_C(0) 117 103 118 104 /* 119 * ãµãããããã¹ã¯105 * サブネットマスク 120 106 * 121 107 * code len subnet mask … … 127 113 128 114 /* 129 * ã«ã¼ã¿115 * ルータ 130 116 * 131 117 * code len addres #1 address #2 … … 137 123 138 124 /* 139 * DNS ãµã¼ã125 * DNS サーバ 140 126 * 141 127 * code len addres #1 address #2 … … 147 133 148 134 /* 149 * ãã¹ãå135 * ホスト名 150 136 * 151 137 * code len host name … … 157 143 158 144 /* 159 * ãã¡ã¤ã³å145 * ドメイン名 160 146 * 161 147 * code len domain name … … 167 153 168 154 /* 169 * ã«ã¼ã¿æ¢ç´¢155 * ルータ探索 170 156 * 171 157 * code len value … … 177 163 178 164 /* 179 * éççµè·¯165 * 静的経路 180 166 * 181 167 * code len destination #1 router #1 … … 187 173 188 174 /* 189 * ãã³ãã¼åºææ 190 å ± 175 * ベンダー固有情報 191 176 * 192 177 * code len vendor-specific informations … … 199 184 200 185 /* 201 * NetBIOS over TCP/IP ãã¼ã ãµã¼ã186 * NetBIOS over TCP/IP ネームサーバ 202 187 * 203 188 * code len addres #1 address #2 … … 209 194 210 195 /* 211 * NetBIOS over TCP/IP ãã¼ãã¿ã¤ã196 * NetBIOS over TCP/IP ノードタイプ 212 197 * 213 198 * code len type … … 219 204 220 205 /* 221 * NetBIOS over TCP/IP ã¹ã³ã¼ã206 * NetBIOS over TCP/IP スコープ 222 207 * 223 208 * code len NetBIOS scope … … 229 214 230 215 /* 231 * ç¹å®ã® IPv4 ã¢ãã¬ã¹è¦æ±216 * 特定の IPv4 アドレス要求 232 217 * 233 218 * code len IPv4 address … … 239 224 240 225 /* 241 * ãªã¼ã¹æé226 * リース時間 242 227 * 243 228 * code len lease time … … 249 234 250 235 /* 251 * ãªãã·ã§ã³ãªã¼ãã¼ãã¼ã236 * オプションオーバーロード 252 237 * 253 238 * code len value … … 258 243 #define DHCP4_OPT_OPT_OVERLOAD UINT_C(52) 259 244 260 /* value ã®å®ç¾©*/245 /* value の定義 */ 261 246 262 247 #define DHCP4_OPTOL_FILE UINT_C(0x01) … … 265 250 266 251 /* 267 * DHCP ã¡ãã»ã¼ã¸ã¿ã¤ã252 * DHCP メッセージタイプ 268 253 * 269 254 * code len type … … 274 259 #define DHCP4_OPT_MSG_TYPE UINT_C(53) 275 260 276 /* type ã®å®ç¾©*/261 /* type の定義 */ 277 262 278 263 #define DHCP4_MTYPE_BOOTP UINT_C(0) … … 287 272 288 273 /* 289 * ãµã¼ãID274 * サーバ ID 290 275 * 291 276 * code len IPv4 address … … 297 282 298 283 /* 299 * è¦æ±ãã©ã¡ã¼ã¿ãªã¹ã284 * 要求パラメータリスト 300 285 * 301 286 * code len option code … … 308 293 309 294 /* 310 * Renewal (T1) æé295 * Renewal (T1) 時間 311 296 * 312 297 * code len T1 interval … … 318 303 319 304 /* 320 * Rebinding (T2) æé305 * Rebinding (T2) 時間 321 306 * 322 307 * code len T2 interval … … 328 313 329 314 /* 330 * ãã³ãã¼ã¯ã©ã¹ IDï¼RFC2132ï¼315 * ベンダークラス ID(RFC2132) 331 316 * 332 317 * code len vendor class ID … … 339 324 340 325 /* 341 * ã¯ã©ã¤ã¢ã³ãID326 * クライアント ID 342 327 * 343 328 * code len type client ID … … 346 331 * +------+-----+-----+-----+-----+--- 347 332 * 348 * type : ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ã¿ã¤ã349 * i1, i2, ...: é常 MAC ã¢ãã¬ã¹333 * type : ハードウェアアドレスタイプ 334 * i1, i2, ...: 通常 MAC アドレス 350 335 */ 351 336 #define DHCP4_OPT_CLIENT_ID UINT_C(61) 352 337 353 338 /* 354 * ã¯ã©ã¹ãªãéççµè·¯ï¼RFC3442ï¼339 * クラスなし静的経路(RFC3442) 355 340 * 356 341 * code len destination #1 router #1 … … 362 347 363 348 /* 364 * ãªãã·ã§ã³ã®çµäº349 * オプションの終了 365 350 */ 366 351 #define DHCP4_OPT_END UINT_C(255) 367 352 368 353 /* 369 * magic çªå·ï¼RFC1048ï¼354 * magic 番号(RFC1048) 370 355 */ 371 356 … … 374 359 375 360 /* 376 * UDP ãã¼ãçªå·361 * UDP ポート番号 377 362 */ 378 363 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 95 95 * Tomakomai National College of Technology, JAPAN 96 96 * 97 * ä¸è¨èä½æ¨©è 98 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 99 * ã«ãã£ã¦å 100 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 101 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 102 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 103 å¸ï¼ä»¥ä¸ï¼ 104 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 105 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 106 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 107 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 108 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 109 * ç¨ã§ããå½¢ã§åé 110 å¸ããå ´åã«ã¯ï¼åé 111 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 112 * è 113 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 114 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 115 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 116 * ç¨ã§ããªãå½¢ã§åé 117 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 118 * ã¨ï¼ 119 * (a) åé 120 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 121 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 122 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 123 * (b) åé 124 å¸ã®å½¢æ 125 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 126 * å ±åãããã¨ï¼ 127 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 128 * 害ãããï¼ä¸è¨èä½æ¨©è 129 ããã³TOPPERSããã¸ã§ã¯ããå 130 責ãããã¨ï¼ 97 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 98 * によって公表されている GNU General Public License の Version 2 に記 99 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 100 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 101 * 利用と呼ぶ)することを無償で許諾する. 102 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 103 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 104 * スコード中に含まれていること. 105 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 106 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 107 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 108 * の無保証規定を掲載すること. 109 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 110 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 111 * と. 112 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 113 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 114 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 115 * 報告すること. 116 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 117 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 131 118 * 132 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 133 ã 134 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 135 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 136 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 119 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 120 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 121 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 122 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 137 123 * 138 124 * @(#) $Id$ … … 183 169 184 170 /* 185 * DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯171 * DHCP クライアントタスク 186 172 */ 187 173 … … 189 175 190 176 /* 191 * å¤æ° 192 */ 193 194 static T_DHCP4_CLI_CONTEXT context; /* ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ã */ 195 static uint8_t magicno[DHCP4_MAGIC_LEN] = DHCP4_RFC1048_MAGIC; /* magic çªå·ï¼RFC1048ï¼*/ 196 197 /* å¿ 198 é ãªãã·ã§ã³ãªã¹ã */ 177 * 変数 178 */ 179 180 static T_DHCP4_CLI_CONTEXT context; /* クライアントコンテキスト */ 181 static uint8_t magicno[DHCP4_MAGIC_LEN] = DHCP4_RFC1048_MAGIC; /* magic 番号(RFC1048)*/ 182 183 /* 必須オプションリスト */ 199 184 #ifdef DHCP4_CLI_CFG_REQUIRED_OLIST 200 185 static uint8_t required_plist[] = DHCP4_CLI_CFG_REQUIRED_OLIST; 201 186 #endif 202 187 203 /* è¦æ±ãªãã·ã§ã³ãªã¹ã*/188 /* 要求オプションリスト */ 204 189 #ifdef DHCP4_CLI_CFG_REQUEST_OLIST 205 190 static uint8_t request_plist[] = DHCP4_CLI_CFG_REQUEST_OLIST; … … 223 208 224 209 /* 225 * dhcp4_cksum -- ãã§ãã¯ãµã ã®è¨ç®é¢æ°210 * dhcp4_cksum -- チェックサムの計算関数 226 211 */ 227 212 228 213 static uint32_t 229 dhcp4_cksum (void *data, uint_t len /* ãªã¯ãããåä½*/)214 dhcp4_cksum (void *data, uint_t len /*オクテット単位*/) 230 215 { 231 216 uint32_t carry, sum = 0; … … 245 230 246 231 /* 247 * create_xid -- ãã©ã³ã¶ã¯ã·ã§ã³ ID ãçæããã232 * create_xid -- トランザクション ID を生成する。 248 233 */ 249 234 … … 261 246 262 247 /* 263 * find_option_sub -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã248 * find_option_sub -- 指定したオプションを探索する。 264 249 * 265 * 注æ: å¼æ° size ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã250 * 注意: 引数 size が 0 の時はオプションサイズを検証しない。 266 251 */ 267 252 … … 298 283 299 284 /* 300 * find_option -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã285 * find_option -- 指定したオプションを探索する。 301 286 * 302 * 注æ: å¼æ° size ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã287 * 注意: 引数 size が 0 の時はオプションサイズを検証しない。 303 288 */ 304 289 … … 312 297 313 298 /* 314 * is_equal_sid -- ã¡ãã»ã¼ã¸å 315 ã® SERVER ID ãæ¯è¼ããã 299 * is_equal_sid -- メッセージ内の SERVER ID を比較する。 316 300 */ 317 301 … … 330 314 331 315 /* 332 * timer_value -- ã¡ãã»ã¼ã¸ããæéæ 333 å ±ãåãåºãã 316 * timer_value -- メッセージから時間情報を取り出す。 334 317 */ 335 318 … … 344 327 else { 345 328 346 /* ãµã¼ãããã®ãªã¼ã¹æéã¯[s]ã*/329 /* サーバからのリース時間は[s]。*/ 347 330 seconds = msg2host32(opt + 2); 348 331 349 /* ã³ã³ããã¹ãå 350 ã®ãªã¼ã¹æé㯠SYSTIM_HZã*/ 332 /* コンテキスト内のリース時間は SYSTIM_HZ。*/ 351 333 if (seconds == DHCP4_TIME_INFINITY) 352 334 return DHCP4_TIME_INFINITY; … … 359 341 360 342 /* 361 * rel_addr -- IPv4 ã¢ãã¬ã¹ããµãããããã¹ã¯ãéççµè·¯è¡¨ã解æ¾ããã343 * rel_addr -- IPv4 アドレス、サブネットマスク、静的経路表を解放する。 362 344 */ 363 345 … … 402 384 403 385 /* 404 * rel_options -- ãªã¼ã¹ããããªãã·ã§ã³ã解æãã¦å¤ã解æ¾ããã386 * rel_options -- リースされたオプションを解析して値を解放する。 405 387 */ 406 388 … … 468 450 469 451 /* 470 * rel_lease -- ãªã¼ã¹ãããæ 471 å ±ã解æ¾ããã 452 * rel_lease -- リースされた情報を解放する。 472 453 */ 473 454 … … 475 456 rel_lease (T_DHCP4_CLI_CONTEXT *ct) 476 457 { 477 /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãç¡ããã°ä½ãããªãã*/458 /* 有効なリース・メッセージ構造体が無ければ何もしない。*/ 478 459 if (ct->act_msg == NULL) 479 460 return; 480 461 481 /* ãªã¼ã¹ããããªãã·ã§ã³ã解æãã¦å¤ã解æ¾ããã*/462 /* リースされたオプションを解析して値を解放する。*/ 482 463 rel_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN, 483 464 ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true); 484 465 rel_addr(); 485 466 486 /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã*/467 /* 有効なリース・メッセージ構造体を解放する。*/ 487 468 syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)ct->act_msg)); 488 469 ct->act_msg = NULL; … … 490 471 491 472 /* 492 * set_addr -- IPv4 ã¢ãã¬ã¹ããµãããããã¹ã¯ãéççµè·¯è¡¨ãè¨å®ããã473 * set_addr -- IPv4 アドレス、サブネットマスク、静的経路表を設定する。 493 474 */ 494 475 … … 529 510 530 511 /* 531 * set_options -- ãªã¼ã¹ããããªãã·ã§ã³ã解æãã¦å¤ãè¨å®ããã512 * set_options -- リースされたオプションを解析して値を設定する。 532 513 */ 533 514 … … 602 583 603 584 /* 604 * set_lease -- ãªã¼ã¹ãããæ 605 å ±ãè¨å®ããã 585 * set_lease -- リースされた情報を設定する。 606 586 */ 607 587 … … 609 589 set_lease (T_DHCP4_CLI_CONTEXT *ct) 610 590 { 611 /* ãªã¼ã¹ããããªãã·ã§ã³ã解æãã¦å¤ãè¨å®ããã*/591 /* リースされたオプションを解析して値を設定する。*/ 612 592 set_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN, 613 593 ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true); … … 615 595 616 596 /* 617 * validate_duplicate -- æå®ããã IPv4 ã¢ãã¬ã¹ã使ããã¦ããªããæ¤è¨¼ããã597 * validate_duplicate -- 指定された IPv4 アドレスが使われていないか検証する。 618 598 * 619 * 使ããã¦ããªãæ㯠true ãè¿ãã599 * 使われていない時は true を返す。 620 600 */ 621 601 … … 625 605 T_IN4_ADDR yiaddr; 626 606 627 /* æå®ããã IPv4 ã¢ãã¬ã¹ã ADDR ANY ãªã使ããã¦ããªãã¨å¤æããã*/607 /* 指定された IPv4 アドレスが ADDR ANY なら使われていないと判断する。*/ 628 608 yiaddr = ntohl(msg->msg.yiaddr); 629 609 if (yiaddr == IPV4_ADDRANY) 630 610 return true; 631 611 632 /* ARP ãã£ãã·ã¥ã«ããã°ä½¿ããã¦ããã¨å¤æããã*/612 /* ARP キャッシュにあれば使われていると判断する。*/ 633 613 if (arp_lookup(yiaddr, false) != NULL) 634 614 return false; 635 615 636 616 /* 637 * ARP è¦æ±ãåºåã㦠TMO_DHCP4C_ARP_WAIT å¾ 638 ã¡ã 639 * ARP ãã£ãã·ã¥ã«ãªããã°ä½¿ããã¦ããªãã¨å¤æããã 617 * ARP 要求を出力して TMO_DHCP4C_ARP_WAIT 待ち、 618 * ARP キャッシュになければ使われていないと判断する。 640 619 */ 641 620 arp_request(&IF_ETHER_NIC_GET_SOFTC()->ifaddr, yiaddr); … … 645 624 646 625 /* 647 * validate_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã626 * validate_rcv_msg -- 受信メッセージを検証する。 648 627 */ 649 628 … … 653 632 uint8_t *opt; 654 633 655 /* packet type ã DHCP4_REPLY ã§ãããã¨ã確èªããã*/634 /* packet type が DHCP4_REPLY であることを確認する。*/ 656 635 if (!(msg->msg.op == DHCP4_REPLY)) 657 636 return false; 658 637 659 /* ã¡ãã»ã¼ã¸ã¿ã¤ããªãã·ã§ã³ããããã¨ã確èªããã*/638 /* メッセージタイプオプションがあることを確認する。*/ 660 639 if ((opt = find_option(msg, DHCP4_OPT_MSG_TYPE, 1)) == NULL) 661 640 return E_PAR; 662 641 663 /* ã¡ãã»ã¼ã¸ã®ã¿ã¤ããä¸è´ãã¦ãããã¨ãæ¤è¨¼ããã*/642 /* メッセージのタイプが一致していることを検証する。*/ 664 643 msg->type = *(opt + 2); 665 644 switch (ct->fsm) { … … 691 670 } 692 671 693 /* ãã¸ãã¯çªå·ãæ¤è¨¼ããã*/672 /* マジック番号を検証する。*/ 694 673 if (memcmp((uint8_t*)&msg->msg.options, magicno, DHCP4_MAGIC_LEN)) 695 674 return E_PAR; 696 675 697 /* ãã©ã³ã¶ã¯ã·ã§ã³ ID ãç°ãªã£ã¦ããã°ã¨ã©ã¼*/676 /* トランザクション ID が異なっていればエラー */ 698 677 if (ntohl(msg->msg.xid) != ct->xid) 699 678 return E_PAR; 700 679 701 /* ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹é·ã 6ï¼MAC ã¢ãã¬ã¹é·ï¼ã§ãªããã°ã¨ã©ã¼*/680 /* ハードウェアアドレス長が 6(MAC アドレス長)でなければエラー */ 702 681 if (msg->msg.hlen != ETHER_ADDR_LEN) 703 682 return E_PAR; 704 683 705 /* ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ãç°ãªã£ã¦ããã°ã¨ã©ã¼*/684 /* ハードウェアアドレスが異なっていればエラー */ 706 685 if (memcmp(&msg->msg.chaddr, &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr))) 707 686 return E_PAR; 708 687 709 688 /* 710 * ã¡ãã»ã¼ã¸ã¿ã¤ãã OFFER ã®å ´åã¯ã 711 * ARP ã使ç¨ãã¦ãæå®ããã IPv4 ã¢ãã¬ã¹ã使ããã¦ããªããæ¤è¨¼ããã 712 * 使ããã¦ããæã¯ãä»ã® IPv4 ã¢ãã¬ã¹ã®æä¾ãå¾ 713 ã¤ã 689 * メッセージタイプが OFFER の場合は、 690 * ARP を使用して、指定された IPv4 アドレスが使われていないか検証する。 691 * 使われている時は、他の IPv4 アドレスの提供を待つ。 714 692 */ 715 693 if (msg->type == DHCP4_MTYPE_OFFER) { … … 722 700 723 701 /* 724 * eval_prefer -- åä¿¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã702 * eval_prefer -- 受信メッセージの推奨度を評価する。 725 703 */ 726 704 … … 730 708 int ix; 731 709 732 /* ç¡å¹ã®å ´åã¯çµäºããã*/710 /* 無効の場合は終了する。*/ 733 711 if (msg == NULL) 734 712 return; 735 713 736 /* æå®ããã IPv4 ã¢ãã¬ã¹ã ADDR ANY ãªãæ¨å¥¨åº¦ã 0ã«è¨å®ããã*/714 /* 指定された IPv4 アドレスが ADDR ANY なら推奨度を 0に設定する。*/ 737 715 if (ntohl(msg->msg.yiaddr) == IPV4_ADDRANY) 738 716 msg->prefer = 0; … … 742 720 #if defined(DHCP4_CLI_CFG_REQUEST_OLIST) 743 721 744 /* è¦æ±ãªãã·ã§ã³ãæ¤è¨¼ããã*/722 /* 要求オプションを検証する。*/ 745 723 for (ix = sizeof(request_plist); ix -- > 0; ) { 746 724 if (find_option(msg, request_plist[ix], 0) != NULL) … … 752 730 #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) 753 731 754 /* å¿ 755 é ãªãã·ã§ã³ãæ¤è¨¼ããã*/ 732 /* 必須オプションを検証する。*/ 756 733 for (ix = sizeof(required_plist); ix -- > 0; ) { 757 734 if (find_option(msg, required_plist[ix], 0) == NULL) … … 763 740 764 741 /* 765 * eval_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãè©ä¾¡ããã742 * eval_rcv_msg -- 受信メッセージを評価する。 766 743 */ 767 744 … … 771 748 T_DHCP4_CLI_MSG *evl, *msg; 772 749 773 /* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸æ¢ããã*/750 /* メッセージを受信していなければ中止する。*/ 774 751 syscall(wai_sem(SEM_DHCP4_CLI_LOCK)); 775 752 if (ct->val_lst == NULL) { … … 778 755 } 779 756 780 /* æ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãããè©ä¾¡ã¡ãã»ã¼ã¸ãåãåºãã*/757 /* 検証メッセージリストから評価メッセージを取り出す。*/ 781 758 evl = ct->val_lst; 782 759 ct->val_lst = ct->val_lst->next; … … 784 761 syscall(sig_sem(SEM_DHCP4_CLI_LOCK)); 785 762 786 /* è©ä¾¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã*/763 /* 評価メッセージを検証する。*/ 787 764 if (validate_rcv_msg(ct, evl) != E_OK) { 788 765 789 /* ã¨ã©ã¼ãçºçããè©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/766 /* エラーが発生した評価メッセージを受信メッセージ構造体リストに戻す。*/ 790 767 goto rcv_ret; 791 768 } 792 769 793 /* åä¿¡ããã¡ãã»ã¼ã¸ã NAK ã®æã®å¦ç*/770 /* 受信したメッセージが NAK の時の処理 */ 794 771 if (evl->type == DHCP4_MTYPE_NAK) { 795 772 796 /* ãªã¼ã¹ãããæ 797 å ±ã解æ¾ããã*/ 773 /* リースされた情報を解放する。*/ 798 774 rel_lease(ct); 799 775 800 /* å 801 é¨ã¨ã©ã¼ãè¨å®ãã¦çµäºããã*/ 776 /* 内部エラーを設定して終了する。*/ 802 777 return E_PAR; 803 778 } 804 779 805 /* REL_INFO ç¶æ 806 ã®æã®å¦ç */ 780 /* REL_INFO 状態の時の処理 */ 807 781 //cons_printf(CONSOLE_PORTID, "evl_rcv_msg3[s=%d]\n", ct->fsm); 808 782 if (ct->fsm == DHCP4_FSM_REL_INFO) { … … 814 788 } 815 789 816 /* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã*/790 /* 評価メッセージの推奨度を評価する。*/ 817 791 eval_prefer(evl); 818 792 819 /* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã空ãªãè©ä¾¡ã¡ãã»ã¼ã¸ã移ãã¦çµäºããã*/793 /* 推奨メッセージリストが空なら評価メッセージを移して終了する。*/ 820 794 if (ct->prf_lst == NULL) { 821 795 ct->max_prefer = evl->prefer; … … 824 798 } 825 799 826 /* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ã¨æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æ大æ¨å¥¨åº¦ãæ¯è¼ããã*/800 /* 評価メッセージの推奨度と推奨メッセージリストの最大推奨度を比較する。*/ 827 801 if (evl->prefer > ct->max_prefer) { 828 802 829 803 /* 830 * è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æ大æ¨å¥¨åº¦ããé«ããã°ã831 * æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã832 * è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã804 * 評価メッセージの推奨度が推奨メッセージリストの最大推奨度より高ければ、 805 * 推奨メッセージリストを受信メッセージ構造体リストに戻し、 806 * 評価メッセージを推奨メッセージリストに移す。 833 807 */ 834 808 ct->max_prefer = evl->prefer; … … 851 825 852 826 /* 853 * æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«åã DHCP4_OPT_SERVER_ID ã®ã¡ãã»ã¼ã¸ãããã°ã854 * è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã827 * 推奨メッセージリストに同じ DHCP4_OPT_SERVER_ID のメッセージがあれば、 828 * 評価メッセージを受信メッセージ構造体リストに戻す。 855 829 */ 856 830 goto rcv_ret; … … 859 833 860 834 /* 861 * è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã835 * 評価メッセージを推奨メッセージリストに移す。 862 836 */ 863 837 evl->next = ct->prf_lst; … … 868 842 /*else */ 869 843 /* 870 * è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æ大æ¨å¥¨åº¦ããä½ããã°ã871 * è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã844 * 評価メッセージの推奨度が推奨メッセージリストの最大推奨度より低ければ、 845 * 評価メッセージを受信メッセージ構造体リストに戻す。 872 846 */ 873 847 … … 881 855 882 856 /* 883 * select_msg -- æ¨å¥¨ã¡ãã»ã¼ã¸ãé¸æããã857 * select_msg -- 推奨メッセージを選択する。 884 858 */ 885 859 … … 891 865 syscall(wai_sem(SEM_DHCP4_CLI_LOCK)); 892 866 if (ct->prf_lst == NULL) { 893 /* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸æ¢ããã*/867 /* メッセージを受信していなければ中止する。*/ 894 868 syscall(sig_sem(SEM_DHCP4_CLI_LOCK)); 895 869 return NULL; 896 870 } 897 871 898 /* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®å 899 é ã®ã¡ãã»ã¼ã¸ãé¸æããã*/ 872 /* 推奨メッセージリストの先頭のメッセージを選択する。*/ 900 873 select = ct->prf_lst; 901 874 ct->prf_lst = ct->prf_lst->next; 902 875 select->next = NULL; 903 876 904 /* é¸æãããªãã£ãæ¤è¨¼ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/877 /* 選択されなかった検証メッセージを受信メッセージ構造体リストに戻す。*/ 905 878 if (ct->rcv_lst == NULL) 906 879 ct->rcv_lst = ct->prf_lst; … … 915 888 916 889 /* 917 * select_ack -- ACK ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã890 * select_ack -- ACK メッセージを検証する。 918 891 * 919 * åãå 920 ¥ãããã¨ãå¯è½ã®æ㯠true ãè¿ãã 892 * 受け入れることが可能の時は true を返す。 921 893 */ 922 894 … … 929 901 return false; 930 902 931 /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ããã°ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/903 /* 有効なリース・メッセージが残っていれば、受信メッセージ構造体リストに戻す。*/ 932 904 if (ct->act_msg != NULL) { 933 905 syscall(wai_sem(SEM_DHCP4_CLI_LOCK)); … … 937 909 } 938 910 939 /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ã«è¨å®ããã*/911 /* 有効なリース・メッセージに設定する。*/ 940 912 ct->act_msg = msg; 941 913 return true; … … 943 915 944 916 /* 945 * select_offer -- OFFER ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã917 * select_offer -- OFFER メッセージを検証する。 946 918 * 947 * åãå 948 ¥ãããã¨ãå¯è½ã®æ㯠true ãè¿ãã 919 * 受け入れることが可能の時は true を返す。 949 920 */ 950 921 … … 956 927 957 928 /* 958 * cancel_all_timers -- å 959 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã 929 * cancel_all_timers -- 全ての TIMER をキャンセルする。 960 930 */ 961 931 … … 973 943 974 944 /* 975 * start_select -- DISCOVER ã¡ãã»ã¼ã¸ãéä¿¡ã㦠SELECT ç¶æ 976 ã«é·ç§»ããã 945 * start_select -- DISCOVER メッセージを送信して SELECT 状態に遷移する。 977 946 */ 978 947 … … 980 949 start_select (T_DHCP4_CLI_CONTEXT *ct) 981 950 { 982 /* éä¿¡ãéå§ããæéãè¨é²ããã*/951 /* 送信を開始した時間を記録する。*/ 983 952 get_tim(&ct->snd_start); 984 953 985 /* OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/954 /* OFFER メッセージ受信タイムアウトを設定する。*/ 986 955 DHCP4_CLI_TIMER_LOCK(); 987 956 ct->timers[DHCP4C_TIMER_RCV_OFFER] = SYSTIM2TIMER(TMO_DHCP4C_OFFER); 988 957 DHCP4_CLI_TIMER_UNLOCK(); 989 958 990 /* éä¿¡å 991 ã¢ãã¬ã¹ã«ãã¼ã«ã«ãããã¯ã¼ã¯ã¸ã®ããã¼ããã£ã¹ããè¨å®ããã*/ 959 /* 送信先アドレスにローカルネットワークへのブロードキャストを設定する。*/ 992 960 ct->dst.ipaddr = IPV4_ADDRBROADCAST; 993 961 994 /* éä¿¡ééããªã»ããããã*/962 /* 送信間隔をリセットする。*/ 995 963 ct->interval = 0; 996 964 997 /* SELECT ç¶æ 998 ã«é·ç§»ããã*/ 965 /* SELECT 状態に遷移する。*/ 999 966 ct->fsm = DHCP4_FSM_SELECT; 1000 967 1001 /* DISCOVER ã¡ãã»ã¼ã¸ãéä¿¡ããã*/968 /* DISCOVER メッセージを送信する。*/ 1002 969 ct->flags |= DHCP4C_FLAG_TMOUT_SND_DISC; 1003 970 DHCP4_CLI_READY_SIGNAL(ct); … … 1005 972 1006 973 /* 1007 * start_bound -- BOUND ç¶æ 1008 ã«é·ç§»ããã 974 * start_bound -- BOUND 状態に遷移する。 1009 975 */ 1010 976 … … 1012 978 start_bound (T_DHCP4_CLI_CONTEXT *ct) 1013 979 { 1014 /* ãªã¼ã¹ãããæ 1015 å ±ãè¨å®ããã*/ 980 /* リースされた情報を設定する。*/ 1016 981 set_lease(ct); 1017 982 1018 /* ãªã¼ã¹ã®æå¹æéãè¨å®ããã*/983 /* リースの有効時間を設定する。*/ 1019 984 ct->expire = timer_value(ct->act_msg, DHCP4_OPT_LEASE_TIME, TMO_DHCP4C_DEF_LEASE); 1020 985 1021 /* ãªã¼ã¹æéã TMO_DHCP4C_MIN_LEASE 以ä¸ã®æã¯ãTMO_DHCP4C_MIN_LEASE ã«è¨å®ããã*/986 /* リース時間が TMO_DHCP4C_MIN_LEASE 以下の時は、TMO_DHCP4C_MIN_LEASE に設定する。*/ 1022 987 if (ct->expire < TMO_DHCP4C_MIN_LEASE) 1023 988 ct->expire = TMO_DHCP4C_MIN_LEASE; 1024 989 1025 /* RENEW ç¶æ 1026 ã¾ã§ã®æéãè¨å®ããã*/ 990 /* RENEW 状態までの時間を設定する。*/ 1027 991 ct->renew = timer_value(ct->act_msg, DHCP4_OPT_RENEWAL_T1, ct->expire / 2); 1028 992 1029 /* REBIND ç¶æ 1030 ã¾ã§ã®æéãè¨å®ããã*/ 993 /* REBIND 状態までの時間を設定する。*/ 1031 994 ct->rebind = timer_value(ct->act_msg, DHCP4_OPT_REBINDING_T2, ct->renew + ct->renew / 2 + ct->renew / 4); 1032 995 1033 /* EXPIRE ãRENEWãREBIND ã¿ã¤ãã¼ãè¨å®ããã*/996 /* EXPIRE、RENEW、REBIND タイマーを設定する。*/ 1034 997 DHCP4_CLI_TIMER_LOCK(); 1035 ct->timers[DHCP4C_TIMER_EXPIRE] = SYSTIM2TIMER(ct->expire); /* EXPIRE ã¾ã§ã®æé*/1036 ct->timers[DHCP4C_TIMER_REBIND] = SYSTIM2TIMER(ct->rebind); /* REBIND ï¼T2ï¼ã¾ã§ã®æé*/1037 ct->timers[DHCP4C_TIMER_RENEW] = SYSTIM2TIMER(ct->renew); /* RENEW ï¼T1ï¼ã¾ã§ã®æé*/998 ct->timers[DHCP4C_TIMER_EXPIRE] = SYSTIM2TIMER(ct->expire); /* EXPIRE までの時間 */ 999 ct->timers[DHCP4C_TIMER_REBIND] = SYSTIM2TIMER(ct->rebind); /* REBIND(T2)までの時間 */ 1000 ct->timers[DHCP4C_TIMER_RENEW] = SYSTIM2TIMER(ct->renew); /* RENEW (T1)までの時間 */ 1038 1001 DHCP4_CLI_TIMER_UNLOCK(); 1039 1002 1040 /* BOUND ç¶æ 1041 ã«é·ç§»ããã*/ 1003 /* BOUND 状態に遷移する。*/ 1042 1004 ct->fsm = DHCP4_FSM_BOUND; 1043 1005 1044 /* BIND ãéå§ããæéãè¨é²ããã*/1006 /* BIND を開始した時間を記録する。*/ 1045 1007 get_tim(&ct->bind_start); 1046 1008 } 1047 1009 1048 1010 /* 1049 * start_send_request -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ãæå®ãããç¶æ 1050 ã«é·ç§»ããã 1011 * start_send_request -- REQUEST メッセージを送信して、指定された状態に遷移する。 1051 1012 */ 1052 1013 … … 1056 1017 T_IFNET *ifp = IF_GET_IFNET(); 1057 1018 1058 /* éä¿¡ãéå§ããæéãè¨é²ããã*/1019 /* 送信を開始した時間を記録する。*/ 1059 1020 get_tim(&ct->snd_start); 1060 1021 1061 /* é·ç§»ããç¶æ 1062 ã RENEW 以å¤ã§ã¯ ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/ 1022 /* 遷移する状態が RENEW 以外では ACK/NAK メッセージ受信タイムアウトを設定する。*/ 1063 1023 if (fsm != DHCP4_FSM_RENEW) { 1064 1024 DHCP4_CLI_TIMER_LOCK(); … … 1068 1028 1069 1029 /* 1070 * é·ç§»ããç¶æ 1071 ã RENEW ã§ã 1072 * SERVER ID ãªãã·ã§ã³ãããã°ãã¼ã«ã«ãããã¯ã¼ã¯ã¸ã®ããã¼ããã£ã¹ããéä¿¡ããã 1030 * 遷移する状態が RENEW で、 1031 * SERVER ID オプションがあればローカルネットワークへのブロードキャストを送信する。 1073 1032 */ 1074 1033 if ((fsm == DHCP4_FSM_RENEW) && … … 1078 1037 ct->dst.ipaddr = IPV4_ADDRBROADCAST; 1079 1038 1080 /* éä¿¡ééããªã»ããããã*/1039 /* 送信間隔をリセットする。*/ 1081 1040 ct->interval = 0; 1082 1041 1083 /* æå®ãããç¶æ 1084 ã«é·ç§»ããã*/ 1042 /* 指定された状態に遷移する。*/ 1085 1043 ct->fsm = fsm; 1086 1044 1087 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1045 /* REQUEST メッセージを送信する。*/ 1088 1046 ct->flags |= DHCP4C_FLAG_TMOUT_SND_REQ; 1089 1047 DHCP4_CLI_READY_SIGNAL(ct); … … 1091 1049 1092 1050 /* 1093 * start_rel_info -- ã¢ãã¬ã¹æ 1094 å ±ã解æ¾ããã 1051 * start_rel_info -- アドレス情報を解放する。 1095 1052 * 1096 * 注æ: DHCPv4 ã® RFC2131 ã«ã¯ç¡ã1053 * 注意: DHCPv4 の RFC2131 には無い 1097 1054 */ 1098 1055 … … 1100 1057 start_rel_info (T_DHCP4_CLI_CONTEXT *ct) 1101 1058 { 1102 /* å 1103 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 1059 /* 全ての TIMER をキャンセルする。*/ 1104 1060 cancel_all_timers(ct); 1105 1061 1106 /* æå¹ãªãªã¼ã¹æ 1107 å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/ 1062 /* 有効なリース情報が無ければ SLEEP に遷移する。*/ 1108 1063 if (ct->act_msg == NULL) { 1109 1064 ct->fsm = DHCP4_FSM_SLEEP; … … 1111 1066 } 1112 1067 1113 /* éä¿¡å 1114 ã¢ãã¬ã¹ã«ãã¼ã«ã«ãããã¯ã¼ã¯ã¸ã®ããã¼ããã£ã¹ããè¨å®ããã*/ 1068 /* 送信先アドレスにローカルネットワークへのブロードキャストを設定する。*/ 1115 1069 ct->dst.ipaddr = IPV4_ADDRBROADCAST; 1116 1070 1117 /* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1071 /* RELEASE メッセージを送信する。*/ 1118 1072 ct->flags |= DHCP4C_FLAG_TMOUT_SND_REL; 1119 1073 DHCP4_CLI_READY_SIGNAL(ct); … … 1121 1075 1122 1076 /* 1123 * setup_dhcp_com_msg -- DHCP ã¡ãã»ã¼ã¸ã®å 1124 ±éé¨åãä½æããã 1077 * setup_dhcp_com_msg -- DHCP メッセージの共通部分を作成する。 1125 1078 */ 1126 1079 … … 1133 1086 ct->snd_msg->len = sizeof(ct->snd_msg->msg); 1134 1087 1135 /* ãããé¨ãè¨å®ããã*/1088 /* ヘッダ部を設定する。*/ 1136 1089 ct->snd_msg->msg.op = op; 1137 1090 ct->snd_msg->msg.htype = DHCP4_HWA_TYPE_ETHER; … … 1139 1092 HOST2MSG32(ct->snd_msg->msg.xid, ct->xid); 1140 1093 1141 /* MAC ã¢ãã¬ã¹ãè¨å®ããã*/1094 /* MAC アドレスを設定する。*/ 1142 1095 memcpy(&ct->snd_msg->msg.chaddr, &ct->sc->ifaddr.lladdr, ETHER_ADDR_LEN); 1143 1096 1144 1097 /* 1145 * ãªãã·ã§ã³é¨ãè¨å®ããã1098 * オプション部を設定する。 1146 1099 */ 1147 1100 1148 /* RFC1048 ã«å®ç¾©ããã¦ãããã¸ãã¯çªå·ãè¨å®ããã*/1101 /* RFC1048 に定義されているマジック番号を設定する。*/ 1149 1102 memcpy(&ct->snd_msg->msg.options, magicno, DHCP4_MAGIC_LEN); 1150 1103 option = ct->snd_msg->msg.options + DHCP4_MAGIC_LEN; 1151 1104 1152 /* DHCP ã¡ãã»ã¼ã¸ã¿ã¤ããè¨å®ããã*/1105 /* DHCP メッセージタイプを設定する。*/ 1153 1106 *(option ++) = DHCP4_OPT_MSG_TYPE; 1154 1107 *(option ++) = 1; … … 1159 1112 1160 1113 /* 1161 * setup_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãä½æããã1114 * setup_release_msg -- RELEASE メッセージを作成する。 1162 1115 */ 1163 1116 … … 1167 1120 uint8_t *opt, *ref_opt; 1168 1121 1169 /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ããªããã°ã¨ã©ã¼*/1122 /* 有効なリース・メッセージがなければエラー */ 1170 1123 if (ref == NULL) 1171 1124 return E_PAR; … … 1176 1129 1177 1130 /* 1178 * ãµã¼ã IDï¼server-ipï¼ãè¨å®ããã 1179 * RFC2131 4.4.1 Initialization and allocation of network address åç 1180 § 1131 * サーバ ID(server-ip)を設定する。 1132 * RFC2131 4.4.1 Initialization and allocation of network address 参照 1181 1133 */ 1182 1134 if ((ref_opt = find_option(ref, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR))) == NULL) … … 1188 1140 1189 1141 /* 1190 * ã¯ã©ã¤ã¢ã³ã IDï¼MAC ã¢ãã¬ã¹ï¼ãè¨å®ããã 1191 * RFC2131 4.4.1 Initialization and allocation of network address åç 1192 § 1142 * クライアント ID(MAC アドレス)を設定する。 1143 * RFC2131 4.4.1 Initialization and allocation of network address 参照 1193 1144 */ 1194 1145 *(opt ++) = DHCP4_OPT_CLIENT_ID; … … 1198 1149 opt += ETHER_ADDR_LEN; 1199 1150 1200 /* ãªãã·ã§ã³ã®çµäºãè¨å®ããã*/1151 /* オプションの終了を設定する。*/ 1201 1152 *(opt ++) = DHCP4_OPT_END; 1202 1153 1203 1154 /* 1204 * ã¯ã©ã¤ã¢ã³ã IP ã¢ãã¬ã¹ï¼ciaddrï¼ãè¨å®ããã 1205 * RFC2131 4.4.1 Initialization and allocation of network address åç 1206 § 1155 * クライアント IP アドレス(ciaddr)を設定する。 1156 * RFC2131 4.4.1 Initialization and allocation of network address 参照 1207 1157 */ 1208 1158 HOST2MSG32(ct->snd_msg->msg.ciaddr, IF_GET_IFNET()->in4_ifaddr.addr); 1209 1159 1210 /* ã¡ãã»ã¼ã¸é·ãè¨å®ããã*/1160 /* メッセージ長を設定する。*/ 1211 1161 ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN 1212 1162 + (opt - (uint8_t*)&ct->snd_msg->msg.options); … … 1216 1166 1217 1167 /* 1218 * setup_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãä½æããã1168 * setup_request_msg -- REQUEST メッセージを作成する。 1219 1169 */ 1220 1170 … … 1228 1178 #endif 1229 1179 1230 /* åç 1231 §ããã¡ãã»ã¼ã¸ããªããã°ã¨ã©ã¼ */ 1180 /* 参照するメッセージがなければエラー */ 1232 1181 if (ref == NULL) 1233 1182 return E_PAR; … … 1239 1188 #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST) 1240 1189 1241 /* 追å ã®ãªãã·ã§ã³ãè¨å®ããã*/1190 /* 追加のオプションを設定する。*/ 1242 1191 1243 1192 *opt = DHCP4_OPT_REQ_PARAM; … … 1246 1195 #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) 1247 1196 1248 /* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨å®ããã*/1197 /* 要求オプションリストを設定する。*/ 1249 1198 if (sizeof(required_plist) > 0) { 1250 1199 memcpy(opt, required_plist, sizeof(required_plist)); … … 1257 1206 #if defined(DHCP4_CLI_CFG_REQUEST_OLIST) 1258 1207 1259 /* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨å®ããã*/1208 /* 要求オプションリストを設定する。*/ 1260 1209 if (sizeof(request_plist) > 0) { 1261 1210 memcpy(opt, request_plist, sizeof(request_plist)); … … 1271 1220 1272 1221 /* 1273 * ãµã¼ã IDï¼server-ipï¼ãè¨å®ããã 1274 * RFC2131 4.4.1 Initialization and allocation of network address åç 1275 § 1222 * サーバ ID(server-ip)を設定する。 1223 * RFC2131 4.4.1 Initialization and allocation of network address 参照 1276 1224 */ 1277 1225 if (ct->fsm == DHCP4_FSM_REQUEST) { … … 1285 1233 1286 1234 /* 1287 * è¦æ± IP ã¢ãã¬ã¹ï¼requested-ipï¼ãè¨å®ããã 1288 * RFC2131 4.4.1 Initialization and allocation of network address åç 1289 § 1290 * RFC2131 ã§ã¯ãDHCP4_FSM_RENEW ã®æ MUST NOT ã«ãªã£ã¦ãããã 1291 * MUST ã®ããã§ããã 1235 * 要求 IP アドレス(requested-ip)を設定する。 1236 * RFC2131 4.4.1 Initialization and allocation of network address 参照 1237 * RFC2131 では、DHCP4_FSM_RENEW の時 MUST NOT になっているが、 1238 * MUST のようである。 1292 1239 */ 1293 1240 *(opt ++) = DHCP4_OPT_REQ_IPV4; … … 1295 1242 if (ct->fsm == DHCP4_FSM_REQUEST || ct->fsm == DHCP4_FSM_INIT_REBOOT || 1296 1243 ct->fsm == DHCP4_FSM_RENEW || ct->fsm == DHCP4_FSM_REBIND) 1297 /* åç 1298 §ã¡ãã»ã¼ã¸ã¨åã IP ã¢ãã¬ã¹ï¼requested-ipï¼ãè¦æ±ããã*/ 1244 /* 参照メッセージと同じ IP アドレス(requested-ip)を要求する。*/ 1299 1245 memcpy(opt, (uint8_t*)&ref->msg.yiaddr, sizeof(ref->msg.yiaddr)); 1300 1246 else … … 1303 1249 1304 1250 /* 1305 * ã¯ã©ã¤ã¢ã³ã IDï¼MAC ã¢ãã¬ã¹ï¼ãè¨å®ããã 1306 * RFC2131 4.4.1 Initialization and allocation of network address åç 1307 § 1251 * クライアント ID(MAC アドレス)を設定する。 1252 * RFC2131 4.4.1 Initialization and allocation of network address 参照 1308 1253 */ 1309 1254 *(opt ++) = DHCP4_OPT_CLIENT_ID; … … 1313 1258 opt += ETHER_ADDR_LEN; 1314 1259 1315 /* ãªãã·ã§ã³ã®çµäºãè¨å®ããã*/1260 /* オプションの終了を設定する。*/ 1316 1261 *(opt ++) = DHCP4_OPT_END; 1317 1262 1318 1263 /* 1319 * ã¯ã©ã¤ã¢ã³ã IP ã¢ãã¬ã¹ï¼ciaddrï¼ãè¨å®ããã 1320 * RFC2131 4.4.1 Initialization and allocation of network address åç 1321 § 1264 * クライアント IP アドレス(ciaddr)を設定する。 1265 * RFC2131 4.4.1 Initialization and allocation of network address 参照 1322 1266 */ 1323 1267 if (ct->fsm == DHCP4_FSM_RENEW || ct->fsm == DHCP4_FSM_REBIND) … … 1326 1270 HOST2MSG32(ct->snd_msg->msg.ciaddr, IPV4_ADDRANY); 1327 1271 1328 /* ã¡ãã»ã¼ã¸é·ãè¨å®ããã*/1272 /* メッセージ長を設定する。*/ 1329 1273 ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN 1330 1274 + (opt - (uint8_t*)&ct->snd_msg->msg.options); … … 1333 1277 1334 1278 /* 1335 * setup_discover_msg -- DISCOVER ã¡ãã»ã¼ã¸ãä½æããã1279 * setup_discover_msg -- DISCOVER メッセージを作成する。 1336 1280 */ 1337 1281 … … 1351 1295 #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST) 1352 1296 1353 /* 追å ã®ãªãã·ã§ã³ãè¨å®ããã*/1297 /* 追加のオプションを設定する。*/ 1354 1298 1355 1299 *opt = DHCP4_OPT_REQ_PARAM; … … 1358 1302 #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) 1359 1303 1360 /* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨å®ããã*/1304 /* 要求オプションリストを設定する。*/ 1361 1305 if (sizeof(required_plist) > 0) { 1362 1306 memcpy(opt, required_plist, sizeof(required_plist)); … … 1369 1313 #if defined(DHCP4_CLI_CFG_REQUEST_OLIST) 1370 1314 1371 /* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨å®ããã*/1315 /* 要求オプションリストを設定する。*/ 1372 1316 if (sizeof(request_plist) > 0) { 1373 1317 memcpy(opt, request_plist, sizeof(request_plist)); … … 1382 1326 #endif /* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST) */ 1383 1327 1384 /* æ¢ã«ã¢ãã¬ã¹æ 1385 å ±ããªã¼ã¹ããã¦ããã°ãåã IP ã¢ãã¬ã¹ãè¦æ±ããã*/ 1328 /* 既にアドレス情報がリースされていれば、同じ IP アドレスを要求する。*/ 1386 1329 if (ct->act_msg != NULL) { 1387 1330 *(opt ++) = DHCP4_OPT_REQ_IPV4; … … 1391 1334 } 1392 1335 1393 /* ã¯ã©ã¤ã¢ã³ã IDï¼MAC ã¢ãã¬ã¹ï¼ãè¨å®ããã*/1336 /* クライアント ID(MAC アドレス)を設定する。*/ 1394 1337 *(opt ++) = DHCP4_OPT_CLIENT_ID; 1395 1338 *(opt ++) = ETHER_ADDR_LEN + 1; … … 1398 1341 opt += ETHER_ADDR_LEN; 1399 1342 1400 /* ãªãã·ã§ã³ã®çµäºãè¨å®ããã*/1343 /* オプションの終了を設定する。*/ 1401 1344 *(opt ++) = DHCP4_OPT_END; 1402 1345 1403 /* éä¿¡å 1404 ã¢ãã¬ã¹ãè¨å®ããã*/ 1346 /* 送信先アドレスを設定する。*/ 1405 1347 ct->dst.ipaddr = IPV4_ADDRBROADCAST; 1406 1348 1407 /* ã¡ãã»ã¼ã¸é·ãè¨å®ããã*/1349 /* メッセージ長を設定する。*/ 1408 1350 ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN 1409 1351 + (opt - (uint8_t*)&ct->snd_msg->msg.options); … … 1412 1354 1413 1355 /* 1414 * ack_msg_timeout -- ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ãå¦ç1356 * ack_msg_timeout -- ACK/NAK メッセージ受信タイムアウト処理 1415 1357 */ 1416 1358 … … 1418 1360 ack_msg_timeout (T_DHCP4_CLI_CONTEXT *ct) 1419 1361 { 1420 /* ACK ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãBOUND ç¶æ 1421 ã«é·ç§»ããã*/ 1362 /* ACK メッセージを受信していれば。BOUND 状態に遷移する。*/ 1422 1363 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1423 1364 if (select_ack(ct)) { 1424 1365 1425 /* REQUEST ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/1366 /* REQUEST メッセージ送信タイマーを停止する。*/ 1426 1367 DHCP4_CLI_TIMER_LOCK(); 1427 1368 ct->timers[DHCP4C_TIMER_SND_REQ] = 0; … … 1429 1370 1430 1371 /* 1431 * ç¶æ 1432 ã REQUEST ã®æã¯ã 1433 * OFFER ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã 1372 * 状態が REQUEST の時は、 1373 * OFFER メッセージを受信メッセージ構造体リストに戻す。 1434 1374 */ 1435 1375 if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) { … … 1441 1381 } 1442 1382 1443 /* BOUND ç¶æ 1444 ã«é·ç§»ããã*/ 1383 /* BOUND 状態に遷移する。*/ 1445 1384 start_bound(ct); 1446 1385 return; … … 1448 1387 else { 1449 1388 1450 /* ãªã¼ã¹æ 1451 å ±ã解æ¾ããã*/ 1389 /* リース情報を解放する。*/ 1452 1390 rel_lease(ct); 1453 1391 … … 1457 1395 1458 1396 /* 1459 * send_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã1397 * send_request_msg -- REQUEST メッセージを送信する。 1460 1398 */ 1461 1399 … … 1469 1407 uint16_t secs; 1470 1408 1471 /* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/1409 /* タイムアウトフラグをクリアーする。*/ 1472 1410 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1473 1411 1474 /* ACK ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãBOUND ç¶æ 1475 ã«é·ç§»ããã*/ 1412 /* ACK メッセージを受信していれば。BOUND 状態に遷移する。*/ 1476 1413 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1477 1414 if (select_ack(ct)) { 1478 1415 1479 /* ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/1416 /* ACK/NAK メッセージ受信タイマーを停止する。*/ 1480 1417 DHCP4_CLI_TIMER_LOCK(); 1481 1418 ct->timers[DHCP4C_TIMER_RCV_ACK] = 0; … … 1483 1420 1484 1421 /* 1485 * ç¶æ 1486 ã REQUEST ã®æã¯ã 1487 * OFFER ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã 1422 * 状態が REQUEST の時は、 1423 * OFFER メッセージを受信メッセージ構造体リストに戻す。 1488 1424 */ 1489 1425 if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) { … … 1495 1431 } 1496 1432 1497 /* BOUND ç¶æ 1498 ã«é·ç§»ããã*/ 1433 /* BOUND 状態に遷移する。*/ 1499 1434 start_bound(ct); 1500 1435 return; 1501 1436 } 1502 1437 1503 /* REQUEST ã¡ãã»ã¼ã¸ãä½æããã*/1438 /* REQUEST メッセージを作成する。*/ 1504 1439 if (ct->fsm == DHCP4_FSM_REQUEST) 1505 1440 ref = ct->off_msg; … … 1512 1447 } 1513 1448 1514 /* éä¿¡ãéå§ãã¦ããã®æéãå¾ãã*/1449 /* 送信を開始してからの時間を得る。*/ 1515 1450 get_tim(&time); 1516 1451 interval = time - ct->snd_start; 1517 1452 1518 1453 /* 1519 * éä¿¡ãéå§ãã¦ããã®æéï¼ç§ï¼ãã¡ãã»ã¼ã¸ã«è¨å®ããã1520 * æ大å¤ã¯ 65535ã1454 * 送信を開始してからの時間(秒)をメッセージに設定する。 1455 * 最大値は 65535。 1521 1456 */ 1522 1457 if (ct->fsm == DHCP4_FSM_REQUEST) … … 1530 1465 HOST2MSG16(ct->snd_msg->msg.secs, secs); 1531 1466 1532 /* ãã³ããããã³ã°ã³ã¼ã«ã§ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1467 /* ノンブロッキングコールでメッセージを送信する。*/ 1533 1468 error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 1534 1469 if (error != E_WBLK) { … … 1538 1473 } 1539 1474 1540 /* éä¿¡ééãè¨å®ããã*/1475 /* 送信間隔を設定する。*/ 1541 1476 if (ct->interval == 0) 1542 /* æªè¨å®*/1477 /* 未設定 */ 1543 1478 ct->interval = TMO_DHCP4C_INIT_INTVL; 1544 1479 else 1545 /* ããã¯ãªãã¢ã«ã´ãªãºã 㧠2åã«ããï¼ä¹±æ°ä½¿ç¨ï¼éä¿¡ééãå ç®ããã*/1480 /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/ 1546 1481 ct->interval += (netapp_rand() >> 2) % (ct->interval << 1); 1547 1482 1548 /* éä¿¡å¨æã®å¶éå¤ãè¶ 1549 ããªãããã«ããã*/ 1483 /* 送信周期の制限値を超えないようにする。*/ 1550 1484 if (ct->interval > TMO_DHCP4C_MAX_BACKOFF) 1551 1485 ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF); 1552 1486 1553 /* ãªã¼ã¹æéã®ã¿ã¤ã ã¢ã¦ããå 1554 éãã */ 1487 /* リース時間のタイムアウト【先送り】 */ 1555 1488 if (ct->fsm != DHCP4_FSM_REQUEST && 1556 1489 TIMEC_GT(ct->interval + time, ct->expire + ct->bind_start)) 1557 1490 ct->interval = ct->expire + ct->bind_start - time + SYSTIM_HZ; 1558 1491 1559 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1492 /* 再送信タイムアウトを設定する。*/ 1560 1493 DHCP4_CLI_TIMER_LOCK(); 1561 1494 ct->timers[DHCP4C_TIMER_SND_REQ] = SYSTIM2TIMER(ct->interval); … … 1564 1497 1565 1498 /* 1566 * send_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã1499 * send_release_msg -- RELEASE メッセージを送信する。 1567 1500 */ 1568 1501 … … 1572 1505 ER error; 1573 1506 1574 /* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/1507 /* タイムアウトフラグをクリアーする。*/ 1575 1508 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1576 1509 1577 /* RELEASE ã¡ãã»ã¼ã¸ãä½æããã*/1510 /* RELEASE メッセージを作成する。*/ 1578 1511 if ((error = setup_release_msg(ct, ct->act_msg)) != E_OK) { 1579 1512 syslog(LOG_NOTICE, "[DHCP4C] error, setup release message: %s", itron_strerror(error)); … … 1582 1515 } 1583 1516 1584 /* ãªã¼ã¹æ 1585 å ±ã解æ¾ããã*/ 1517 /* リース情報を解放する。*/ 1586 1518 rel_lease(ct); 1587 1519 1588 /* ãã³ããããã³ã°ã³ã¼ã«ã§ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1520 /* ノンブロッキングコールでメッセージを送信する。*/ 1589 1521 error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 1590 1522 if (error != E_WBLK) { … … 1594 1526 } 1595 1527 1596 /* ã¡ãã»ã¼ã¸éä¿¡å¾ 1597 ã¡ãè¡ãã*/ 1528 /* メッセージ送信待ちを行う。*/ 1598 1529 DHCP4_CLI_READY_WAIT(ct); 1599 1530 1600 /* SLEEP ç¶æ 1601 ã«é·ç§»ããã*/ 1531 /* SLEEP 状態に遷移する。*/ 1602 1532 ct->fsm = DHCP4_FSM_SLEEP; 1603 1533 } 1604 1534 1605 1535 /* 1606 * offer_msg_timeout -- OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ãå¦ç1536 * offer_msg_timeout -- OFFER メッセージ受信タイムアウト処理 1607 1537 */ 1608 1538 … … 1610 1540 offer_msg_timeout (T_DHCP4_CLI_CONTEXT *ct) 1611 1541 { 1612 /* OFFER ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãREQUEST ç¶æ 1613 ã«é·ç§»ããã*/ 1542 /* OFFER メッセージを受信していれば。REQUEST 状態に遷移する。*/ 1614 1543 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1615 1544 if (select_offer(ct)) { 1616 1545 1617 /* DISCOVER ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/1546 /* DISCOVER メッセージ送信タイマーを停止する。*/ 1618 1547 DHCP4_CLI_TIMER_LOCK(); 1619 1548 ct->timers[DHCP4C_TIMER_SND_DISC] = 0; 1620 1549 DHCP4_CLI_TIMER_UNLOCK(); 1621 1550 1622 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ã㦠REQUEST ç¶æ 1623 ã«é·ç§»ããã*/ 1551 /* REQUEST メッセージを送信して REQUEST 状態に遷移する。*/ 1624 1552 start_send_request(ct, DHCP4_FSM_REQUEST); 1625 1553 } … … 1629 1557 1630 1558 /* 1631 * send_discover_msg -- DISCOVER ã¡ãã»ã¼ã¸ãéä¿¡ããã1559 * send_discover_msg -- DISCOVERメッセージを送信する。 1632 1560 */ 1633 1561 … … 1639 1567 RELTIM interval; 1640 1568 1641 /* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/1569 /* タイムアウトフラグをクリアーする。*/ 1642 1570 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1643 1571 1644 /* OFFER ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãREQUEST ç¶æ 1645 ã«é·ç§»ããã*/ 1572 /* OFFER メッセージを受信していれば。REQUEST 状態に遷移する。*/ 1646 1573 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1647 1574 if (select_offer(ct)) { 1648 1575 1649 /* OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/1576 /* OFFER メッセージ受信タイマーを停止する。*/ 1650 1577 DHCP4_CLI_TIMER_LOCK(); 1651 1578 ct->timers[DHCP4C_TIMER_RCV_OFFER] = 0; 1652 1579 DHCP4_CLI_TIMER_UNLOCK(); 1653 1580 1654 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ã㦠REQUEST ç¶æ 1655 ã«é·ç§»ããã*/ 1581 /* REQUEST メッセージを送信して REQUEST 状態に遷移する。*/ 1656 1582 start_send_request(ct, DHCP4_FSM_REQUEST); 1657 1583 return; 1658 1584 } 1659 1585 1660 /* DISCOVER ã¡ãã»ã¼ã¸ãä½æããã*/1586 /* DISCOVER メッセージを作成する。*/ 1661 1587 if ((error = setup_discover_msg(ct)) != E_OK) { 1662 1588 syslog(LOG_NOTICE, "[DHCP4C] error, setup discover message: %s", itron_strerror(error)); … … 1665 1591 } 1666 1592 1667 /* éä¿¡ãéå§ãã¦ããã®æéãå¾ãã*/1593 /* 送信を開始してからの時間を得る。*/ 1668 1594 get_tim(&time); 1669 1595 interval = time - ct->snd_start; 1670 1596 1671 1597 /* 1672 * éä¿¡ãéå§ãã¦ããã®æéï¼ç§ï¼ãã¡ãã»ã¼ã¸ã«è¨å®ããã1673 * æ大å¤ã¯ 65535ã1598 * 送信を開始してからの時間(秒)をメッセージに設定する。 1599 * 最大値は 65535。 1674 1600 */ 1675 1601 if (SYSTIM2SEC(interval) < 65536) … … 1679 1605 HOST2MSG16(ct->snd_msg->msg.secs, ct->secs); 1680 1606 1681 /* ãã³ããããã³ã°ã³ã¼ã«ã§ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1607 /* ノンブロッキングコールでメッセージを送信する。*/ 1682 1608 error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 1683 1609 if (error != E_WBLK) { … … 1687 1613 } 1688 1614 1689 /* éä¿¡ééãè¨å®ããã*/1615 /* 送信間隔を設定する。*/ 1690 1616 if (ct->interval == 0) 1691 /* æªè¨å®*/1617 /* 未設定 */ 1692 1618 ct->interval = TMO_DHCP4C_INIT_INTVL; 1693 1619 else 1694 /* ããã¯ãªãã¢ã«ã´ãªãºã 㧠2åã«ããï¼ä¹±æ°ä½¿ç¨ï¼éä¿¡ééãå ç®ããã*/1620 /* バックオフアルゴリズムで 2倍にした(乱数使用)送信間隔を加算する。*/ 1695 1621 ct->interval += (netapp_rand() >> 2) % (ct->interval << 1); 1696 1622 1697 /* éä¿¡å¨æã®å¶éå¤ãè¶ 1698 ããªãããã«ããã*/ 1623 /* 送信周期の制限値を超えないようにする。*/ 1699 1624 if (ct->interval > TMO_DHCP4C_MAX_BACKOFF) 1700 1625 ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF); 1701 1626 1702 /* OFFER ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¶ 1703 ããªãããã«èª¿æ´ããã*/ 1627 /* OFFER メッセージの受信タイムアウトを超えないように調整する。*/ 1704 1628 if (TIMEC_GT(time + ct->interval, ct->snd_start + TMO_DHCP4C_OFFER)) 1705 1629 ct->interval = (TMO_DHCP4C_INIT_INTVL + TMO_DHCP4C_OFFER) - time + 1; 1706 1630 1707 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1631 /* 再送信タイムアウトを設定する。*/ 1708 1632 DHCP4_CLI_TIMER_LOCK(); 1709 1633 ct->timers[DHCP4C_TIMER_SND_DISC] = SYSTIM2TIMER(ct->interval); … … 1714 1638 1715 1639 /* 1716 * dhcpc_timer -- TIMER 管ç1640 * dhcpc_timer -- TIMER 管理 1717 1641 */ 1718 1642 … … 1734 1658 DHCP4_CLI_TIMER_UNLOCK(); 1735 1659 1736 /* 1 ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããã*/1660 /* 1秒毎にタイムアウトする。*/ 1737 1661 timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ); 1738 1662 } … … 1741 1665 1742 1666 /* 1743 * expire_timeout -- EXPIRE ã¿ã¤ã ã¢ã¦ãå¦ç1667 * expire_timeout -- EXPIRE タイムアウト処理 1744 1668 */ 1745 1669 … … 1749 1673 //ER error; 1750 1674 1751 /* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/1675 /* タイムアウトフラグをクリアーする。*/ 1752 1676 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1753 1677 1754 /* ç¶æ 1755 ã REQUEST ã®æã¯ä½ãããªãã*/ 1678 /* 状態が REQUEST の時は何もしない。*/ 1756 1679 if (ct->fsm == DHCP4_FSM_REQUEST) 1757 1680 return; 1758 1681 1759 /* å 1760 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 1682 /* 全ての TIMER をキャンセルする。*/ 1761 1683 cancel_all_timers(ct); 1762 1684 1763 /* ãªã¼ã¹ãããæ 1764 å ±ã解æ¾ããã*/ 1685 /* リースされた情報を解放する。*/ 1765 1686 rel_lease(ct); 1766 1687 … … 1769 1690 1770 1691 /* 1771 * rebind_timeout -- REBIND ã¿ã¤ã ã¢ã¦ãå¦ç1692 * rebind_timeout -- REBIND タイムアウト処理 1772 1693 */ 1773 1694 … … 1775 1696 rebind_timeout (T_DHCP4_CLI_CONTEXT *ct) 1776 1697 { 1777 /* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/1698 /* タイムアウトフラグをクリアーする。*/ 1778 1699 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1779 1700 1780 /* å 1781 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 1701 /* 全ての TIMER をキャンセルする。*/ 1782 1702 cancel_all_timers(ct); 1783 1703 1784 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ã㦠REBIND ç¶æ 1785 ã«é·ç§»ããã*/ 1704 /* REQUEST メッセージを送信して REBIND 状態に遷移する。*/ 1786 1705 start_send_request(ct, DHCP4_FSM_REBIND); 1787 1706 } 1788 1707 1789 1708 /* 1790 * renew_timeout -- RENEW ã¿ã¤ã ã¢ã¦ãå¦ç1709 * renew_timeout -- RENEW タイムアウト処理 1791 1710 */ 1792 1711 … … 1794 1713 renew_timeout (T_DHCP4_CLI_CONTEXT *ct) 1795 1714 { 1796 /* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/1715 /* タイムアウトフラグをクリアーする。*/ 1797 1716 ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK; 1798 1717 1799 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ã㦠RENEW ç¶æ 1800 ã«é·ç§»ããã*/ 1718 /* REQUEST メッセージを送信して RENEW 状態に遷移する。*/ 1801 1719 start_send_request(ct, DHCP4_FSM_RENEW); 1802 1720 } 1803 1721 1804 1722 /* 1805 * dispatch_timeout -- ã¿ã¤ã ã¢ã¦ãããæã®å¦ç1723 * dispatch_timeout -- タイムアウトした時の処理 1806 1724 */ 1807 1725 … … 1853 1771 1854 1772 /* 1855 * dispatch_event -- ã¤ãã³ãæ¯ã®å¦ç1773 * dispatch_event -- イベント毎の処理 1856 1774 */ 1857 1775 … … 1863 1781 while (ct->fsm != DHCP4_FSM_SLEEP && error == E_OK) { 1864 1782 1865 /* ã¡ãã»ã¼ã¸ã®åä¿¡ã¨ã¿ã¤ã ã¢ã¦ããå¾ 1866 ã¤ã*/ 1783 /* メッセージの受信とタイムアウトを待つ。*/ 1867 1784 DHCP4_CLI_READY_WAIT(ct); 1868 1785 … … 1886 1803 1887 1804 /* 1888 * init_context -- DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ãæ§é ä½ãåæåããã1805 * init_context -- DHCP クライアントコンテキスト構造体を初期化する。 1889 1806 */ 1890 1807 … … 1901 1818 1902 1819 /* 1903 * rel_cli_msg -- ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã1820 * rel_cli_msg -- メッセージ構造体を解放する。 1904 1821 */ 1905 1822 … … 1933 1850 1934 1851 /* 1935 * init_cli_msg -- åã¡ãã»ã¼ã¸æ§é ä½ãåæåããã1852 * init_cli_msg -- 各メッセージ構造体を初期化する。 1936 1853 */ 1937 1854 … … 1943 1860 int count; 1944 1861 1945 /* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/1862 /* 送信メッセージ構造体を獲得する。*/ 1946 1863 if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&ct->snd_msg, TMO_DHCP4C_MPF_GET)) != E_OK) { 1947 1864 syslog(LOG_NOTICE, "[DHCP4C] error, tget_mpf() for send: %s.", itron_strerror(error)); … … 1950 1867 1951 1868 /* 1952 * æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãããå ´åã¯ã1953 * ç²å¾ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã®æ§é ä½ã 1æ¸ããã1869 * 有効なリース・メッセージ構造体がある場合は、 1870 * 獲得する受信メッセージ構造体リストの構造体を 1減らす。 1954 1871 */ 1955 1872 if (ct->act_msg == NULL) … … 1958 1875 count = NUM_DHCP4_MSG_LIST - 1; 1959 1876 1960 /* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/1877 /* 受信メッセージ構造体を獲得する。*/ 1961 1878 while (count --> 0) { 1962 1879 if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&cell, TMO_DHCP4C_MPF_GET)) != E_OK) { … … 1972 1889 1973 1890 /* 1974 * dhcp4c_renew_info -- ãããã¯ã¼ã¯æ 1975 å ±ãååå¾ããã 1891 * dhcp4c_renew_info -- ネットワーク情報を再取得する。 1976 1892 */ 1977 1893 … … 1981 1897 if (context.fsm == DHCP4_FSM_BOUND) { 1982 1898 1983 /* REL_INFO ç¶æ 1984 ã«é·ç§»ããå¾ã« SLEEP ã解é¤ããããã«è¨å®ããã*/ 1899 /* REL_INFO 状態に遷移した後に SLEEP を解除するように設定する。*/ 1985 1900 context.flags |= DHCP4C_FLAG_RENEW; 1986 1901 start_rel_info(&context); … … 1989 1904 else if (context.fsm == DHCP4_FSM_SLEEP) { 1990 1905 1991 /* SLEEP ã解é¤ããã*/1906 /* SLEEP を解除する。*/ 1992 1907 context.fsm = DHCP4_FSM_WAKE; 1993 1908 context.timer = 0; … … 2000 1915 2001 1916 /* 2002 * dhcp4c_rel_info -- DHCP ã§è¨å®ããããããã¯ã¼ã¯æ 2003 å ±ã解æ¾ããã 1917 * dhcp4c_rel_info -- DHCP で設定されたネットワーク情報を解放する。 2004 1918 */ 2005 1919 … … 2007 1921 dhcp4c_rel_info (void) 2008 1922 { 2009 /* REL_INFO ç¶æ 2010 ã«é·ç§»ããã*/ 1923 /* REL_INFO 状態に遷移する。*/ 2011 1924 start_rel_info(&context); 2012 1925 return E_OK; … … 2014 1927 2015 1928 /* 2016 * dhcp4c_get_info -- DHCP ã§è¨å®ããããããã¯ã¼ã¯æ 2017 å ±ãè¿ãã 1929 * dhcp4c_get_info -- DHCP で設定されたネットワーク情報を返す。 2018 1930 */ 2019 1931 … … 2038 1950 2039 1951 /* 2040 * ã³ã¼ã«ããã¯é¢æ°1952 * コールバック関数 2041 1953 */ 2042 1954 … … 2049 1961 len = *(ER_UINT*)p_parblk; 2050 1962 if (len < 0 && len != E_RLWAI) { 2051 /* E_RLWAI 以å¤ã§ã0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ãæå³ãã¦ããã*/1963 /* E_RLWAI 以外で、0 以下の場合は、エラーを意味している。*/ 2052 1964 syslog(LOG_NOTICE, "[DHCPC(CBR)] error: %s, fncd: %s", itron_strerror(len), in_strtfn(fncd)); 2053 1965 } … … 2055 1967 if (fncd == TEV_UDP_RCV_DAT) { 2056 1968 2057 /* åä¿¡ã¡ãã»ã¼ã¸ãªã¹ãã空ã®æã¯ãåä¿¡ããªãã§ãã¼ã¿ã°ã©ã ãæ¨ã¦ãã*/1969 /* 受信メッセージリストが空の時は、受信しないでデータグラムを捨てる。*/ 2058 1970 if (context.rcv_lst == NULL) 2059 1971 syslog(LOG_NOTICE, "[DHCP4C(CBR)] receive buffer all busy."); 2060 1972 else { 2061 /* ã¡ãã»ã¼ã¸ãåä¿¡ããã¡ãã»ã¼ã¸æ§é ä½ãæºåããã*/1973 /* メッセージを受信するメッセージ構造体を準備する。*/ 2062 1974 syscall(wai_sem(SEM_DHCP4_CLI_LOCK)); 2063 1975 msg = context.rcv_lst; … … 2065 1977 syscall(sig_sem(SEM_DHCP4_CLI_LOCK)); 2066 1978 2067 /* ã¡ãã»ã¼ã¸ãåä¿¡ããã*/1979 /* メッセージを受信する。*/ 2068 1980 len = udp_rcv_dat(context.cepid, &msg->srv, &msg->msg, sizeof(msg->msg), TMO_POL); 2069 1981 … … 2071 1983 msg->len = len; 2072 1984 if (len >= 0) { 2073 /* åä¿¡ããã¡ãã»ã¼ã¸ãæ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã*/1985 /* 受信したメッセージを検証メッセージリストに移す。*/ 2074 1986 msg->next = context.val_lst; 2075 1987 context.val_lst = msg; … … 2077 1989 } 2078 1990 else { 2079 /* ã¡ãã»ã¼ã¸æ§é ä½ãåä¿¡ã¡ãã»ã¼ã¸ãªã¹ãã«æ»ãã*/1991 /* メッセージ構造体を受信メッセージリストに戻す。*/ 2080 1992 context.error = len; 2081 1993 msg->next = context.rcv_lst; … … 2093 2005 2094 2006 /* 2095 * dhcp4_cli_task -- DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯2007 * dhcp4_cli_task -- DHCP クライアントタスク 2096 2008 */ 2097 2009 … … 2109 2021 ct = &context; 2110 2022 2111 /* DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ãæ§é ä½ãåæåããã*/2023 /* DHCP クライアントコンテキスト構造体を初期化する。*/ 2112 2024 init_context(ct, tskid, (ID)exinf); 2113 2025 ct->fsm = DHCP4_FSM_SLEEP; … … 2115 2027 while (true) { 2116 2028 2117 /* ãªã¼ã¹ã解æ¾å¾ãååå¾ãæå®ããã¦ããªããã°ä¼æ¢ããã*/2029 /* リースを解放後、再取得が指定されていなければ休止する。*/ 2118 2030 if (!(ct->flags & DHCP4C_FLAG_RENEW)) { 2119 2031 2120 /* ä¼æ¢ããã*/2032 /* 休止する。*/ 2121 2033 if (error == E_OK) { 2122 2034 if (ct->fsm != DHCP4_FSM_SLEEP) … … 2132 2044 ct->error = E_OK; 2133 2045 2134 /* 1 ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããããã«ã¿ã¤ãã¼ãè¨å®ããã*/2046 /* 1秒毎にタイムアウトするようにタイマーを設定する。*/ 2135 2047 timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP4C_TIMER_HZ); 2136 2048 2137 /* ã¡ãã»ã¼ã¸æ§é ä½ãåæåããã*/2049 /* メッセージ構造体を初期化する。*/ 2138 2050 if ((error = init_cli_msg(ct)) == E_OK) { 2139 2051 2140 /* SELECT ç¶æ 2141 ã«é·ç§»ããã*/ 2052 /* SELECT 状態に遷移する。*/ 2142 2053 start_select(ct); 2143 2054 2144 /* ã¡ã¤ã³ã«ã¼ã*/2055 /* メインループ */ 2145 2056 error = dispatch_event(ct); 2146 2057 } 2147 2058 2148 /* å 2149 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 2059 /* 全ての TIMER をキャンセルする。*/ 2150 2060 cancel_all_timers(ct); 2151 2061 2152 /* ã¿ã¤ãã¼ãåæ¢ããã*/2062 /* タイマーを停止する。*/ 2153 2063 untimeout((callout_func)dhcpc_timer, ct); 2154 2064 2155 /* ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã*/2065 /* メッセージ構造体を解放する。*/ 2156 2066 rel_cli_msg (ct); 2157 2067 } … … 2164 2074 { 2165 2075 T_DHCP4_CLI_CONTEXT *ct = &context; 2166 /* DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ãæ§é ä½ãåæåããã*/2076 /* DHCP クライアントコンテキスト構造体を初期化する。*/ 2167 2077 init_context(ct, tskid, cepid); 2168 2078 ct->fsm = DHCP4_FSM_SLEEP; … … 2192 2102 return; 2193 2103 2194 /* 1 ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããããã«ã¿ã¤ãã¼ãè¨å®ããã*/2104 /* 1秒毎にタイムアウトするようにタイマーを設定する。*/ 2195 2105 ct->timer = 1000 * 1000; 2196 2106 … … 2214 2124 ct->error = E_OK; 2215 2125 2216 /* ã¡ãã»ã¼ã¸æ§é ä½ãåæåããã*/2126 /* メッセージ構造体を初期化する。*/ 2217 2127 if ((ct->error = init_cli_msg(ct)) != E_OK) 2218 2128 return; … … 2220 2130 ct->timer = 1000 * 1000; 2221 2131 2222 /* SELECT ç¶æ 2223 ã«é·ç§»ããã*/ 2132 /* SELECT 状態に遷移する。*/ 2224 2133 start_select(ct); 2225 2134 } … … 2240 2149 2241 2150 if (ct->error != E_OK || ct->fsm == DHCP4_FSM_SLEEP) { 2242 /* å 2243 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 2151 /* 全ての TIMER をキャンセルする。*/ 2244 2152 cancel_all_timers(ct); 2245 2153 ct->timer = TMO_FEVR; 2246 2154 2247 /* ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã*/2155 /* メッセージ構造体を解放する。*/ 2248 2156 rel_cli_msg(ct); 2249 2157 2250 /* ãªã¼ã¹ã解æ¾å¾ãååå¾ãæå®ããã¦ããªããã°ä¼æ¢ããã*/2158 /* リースを解放後、再取得が指定されていなければ休止する。*/ 2251 2159 if (!(ct->flags & DHCP4C_FLAG_RENEW)) { 2252 2160 2253 /* ä¼æ¢ããã*/2161 /* 休止する。*/ 2254 2162 if (ct->error == E_OK) { 2255 2163 if (ct->fsm != DHCP4_FSM_SLEEP) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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$ … … 47 35 48 36 /* 49 * DHCP ã¯ã©ã¤ã¢ã³ã50 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«37 * DHCP クライアント 38 * コンフィギュレーションファイル 51 39 */ 52 40 53 /* ã¿ã¹ã¯*/41 /* タスク */ 54 42 55 43 CRE_TSK(DHCP4_CLI_TASK, { … … 64 52 #endif /* of #ifdef DHCP4_CLI_CFG */ 65 53 66 /* ã»ããã©*/54 /* セマフォ */ 67 55 68 56 #ifdef DHCP4_CLI_CFG -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 95 95 * Tomakomai National College of Technology, JAPAN 96 96 * 97 * ä¸è¨èä½æ¨©è 98 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 99 * ã«ãã£ã¦å 100 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 101 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 102 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 103 å¸ï¼ä»¥ä¸ï¼ 104 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 105 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 106 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 107 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 108 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 109 * ç¨ã§ããå½¢ã§åé 110 å¸ããå ´åã«ã¯ï¼åé 111 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 112 * è 113 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 114 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 115 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 116 * ç¨ã§ããªãå½¢ã§åé 117 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 118 * ã¨ï¼ 119 * (a) åé 120 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 121 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 122 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 123 * (b) åé 124 å¸ã®å½¢æ 125 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 126 * å ±åãããã¨ï¼ 127 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 128 * 害ãããï¼ä¸è¨èä½æ¨©è 129 ããã³TOPPERSããã¸ã§ã¯ããå 130 責ãããã¨ï¼ 131 * 132 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 133 ã 134 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 135 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 136 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 97 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 98 * によって公表されている GNU General Public License の Version 2 に記 99 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 100 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 101 * 利用と呼ぶ)することを無償で許諾する. 102 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 103 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 104 * スコード中に含まれていること. 105 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 106 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 107 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 108 * の無保証規定を掲載すること. 109 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 110 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 111 * と. 112 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 113 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 114 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 115 * 報告すること. 116 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 117 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 118 * 119 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 120 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 121 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 122 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 137 123 * 138 124 * @(#) $Id$ … … 145 131 146 132 /* 147 * DHCP ã¯ã©ã¤ã¢ã³ãã®ã¹ã¿ãã¯ãµã¤ãº148 */ 149 150 #define DHCP4_CLI_STACK_SIZE 1024 /* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/133 * DHCP クライアントのスタックサイズ 134 */ 135 136 #define DHCP4_CLI_STACK_SIZE 1024 /* DHCP クライアントタスクのスタックサイズ */ 151 137 152 138 /* 153 * DHCP ã¯ã©ã¤ã¢ã³ãã®åªå 154 度 155 */ 156 157 #define DHCP4_CLI_MAIN_PRIORITY 5 /* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå 158 度 */ 159 160 /* æ¨å¥¨åº¦ã®å®ç¾© */ 161 #define DHCP4_CLI_CFG_PREFER_ADDR 100 /* ã¢ãã¬ã¹ã®æ¨å¥¨åº¦ */ 162 163 /* DHCP ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸ã®åä¿¡ãªã¹ããµã¤ãºï¼2以ä¸æå®ãããã¨ï¼ */ 139 * DHCP クライアントの優先度 140 */ 141 142 #define DHCP4_CLI_MAIN_PRIORITY 5 /* DHCP クライアントタスクの優先度 */ 143 144 /* 推奨度の定義 */ 145 #define DHCP4_CLI_CFG_PREFER_ADDR 100 /* アドレスの推奨度 */ 146 147 /* DHCP クライアントメッセージの受信リストサイズ(2以上指定すること) */ 164 148 #define NUM_DHCP4_MSG_LIST 3 165 149 166 150 /* 167 * DHCP ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½æ°ãå¤æ´ç¦æ¢ã168 * +1 ã¯éä¿¡ç¨151 * DHCP クライアントメッセージ構造体数【変更禁止】 152 * +1 は送信用 169 153 */ 170 154 #define NUM_MPF_DHCP4_CLI_MSG (NUM_DHCP4_MSG_LIST+1) 171 155 172 156 /* 173 * ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ 174 */ 175 176 /* DHCP å¿ 177 é ãªãã·ã§ã³ãªã¹ã */ 157 * コンパイル時コンフィギュレーション 158 */ 159 160 /* DHCP 必須オプションリスト */ 178 161 179 162 #ifndef DHCP4_CLI_CFG_REQUIRED_OLIST … … 186 169 #endif /* of #ifndef DHCP4_CLI_CFG_REQUIRED_OLIST */ 187 170 188 /* DHCP è¦æ±ãªãã·ã§ã³ãªã¹ã*/171 /* DHCP 要求オプションリスト */ 189 172 190 173 #ifndef DHCP4_CLI_CFG_REQUEST_OLIST … … 202 185 203 186 /* 204 * ã¿ã¤ã ã¢ã¦ãå¤205 */ 206 207 /* åä¿¡ã¿ã¤ã ã¢ã¦ã*/208 #define TMO_DHCP4C_OFFER (ULONG_C(120)*SYSTIM_HZ) /* OFFER ã¡ãã»ã¼ã¸*/209 #define TMO_DHCP4C_ACK (ULONG_C(60)*SYSTIM_HZ) /* ACK/NAK ã¡ãã»ã¼ã¸*/210 211 /* ãªã¼ã¹æéã®æ¢å®å¤*/212 #define TMO_DHCP4C_DEF_LEASE (ULONG_C(12*60*60)*SYSTIM_HZ) /* æ¨æºæé*/213 #define TMO_DHCP4C_MIN_LEASE (ULONG_C(60)*SYSTIM_HZ) /* æå°æé*/214 215 /* ã¡ãã»ã¼ã¸ã®éä¿¡å¨æ*/216 #define TMO_DHCP4C_INIT_INTVL (ULONG_C(3)*SYSTIM_HZ) /* åæå¤*/217 #define TMO_DHCP4C_MAX_BACKOFF (ULONG_C(15)*SYSTIM_HZ) /* å¶éå¤*/218 219 /* DHCP ãµã¼ãã¸ã® UDP éä¿¡ã¿ã¤ã ã¢ã¦ã*/187 * タイムアウト値 188 */ 189 190 /* 受信タイムアウト */ 191 #define TMO_DHCP4C_OFFER (ULONG_C(120)*SYSTIM_HZ) /* OFFER メッセージ */ 192 #define TMO_DHCP4C_ACK (ULONG_C(60)*SYSTIM_HZ) /* ACK/NAK メッセージ */ 193 194 /* リース時間の既定値 */ 195 #define TMO_DHCP4C_DEF_LEASE (ULONG_C(12*60*60)*SYSTIM_HZ) /* 標準時間 */ 196 #define TMO_DHCP4C_MIN_LEASE (ULONG_C(60)*SYSTIM_HZ) /* 最小時間 */ 197 198 /* メッセージの送信周期 */ 199 #define TMO_DHCP4C_INIT_INTVL (ULONG_C(3)*SYSTIM_HZ) /* 初期値 */ 200 #define TMO_DHCP4C_MAX_BACKOFF (ULONG_C(15)*SYSTIM_HZ) /* 制限値 */ 201 202 /* DHCP サーバへの UDP 送信タイムアウト */ 220 203 #define TMO_DHCP4C_UDP_SND ULONG_C(1000000) /* [us] */ 221 204 222 /* ã¡ãã»ã¼ã¸æ§é ä½ç²å¾ã¿ã¤ã ã¢ã¦ã*/205 /* メッセージ構造体獲得タイムアウト */ 223 206 #define TMO_DHCP4C_MPF_GET ULONG_C(1000000) /* [us] */ 224 207 225 /* ARP è¦æ±ãéä¿¡ãã¦ããã®å¾ 226 ã¡æé */ 208 /* ARP 要求を送信してからの待ち時間 */ 227 209 #define TMO_DHCP4C_ARP_WAIT ULONG_C(1000000) /* [us] */ 228 210 229 /* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ããã®å¾ 230 ã¡æé */ 211 /* RELEASE メッセージを送信してからの待ち時間 */ 231 212 #define TMO_DHCP4C_SND_REL_WAIT ULONG_C(1000000) /* [us] */ 232 213 … … 236 217 237 218 /* 238 * DHCP ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½219 * DHCP クライアントメッセージ構造体 239 220 */ 240 221 241 222 typedef struct dhcp4_cli_msg { 242 /* 4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã*/243 T_DHCP4_MSG msg; /* DHCP ã¡ãã»ã¼ã¸æ§é ä½*/244 struct dhcp4_cli_msg *next; /* ãªã¹ãã®æ¬¡ã®ã¡ãã»ã¼ã¸æ§é ä½*/245 T_IPV4EP srv; /* ãµã¼ãã®IPv4ã¢ãã¬ã¹/ãã¼ãçªå·*/246 uint16_t len; /* msg ã®æå¹é·*/247 uint16_t prefer; /* msg ã®æ¨å¥¨åº¦*/248 uint8_t type; /* ã¡ãã»ã¼ã¸ã¿ã¤ã*/223 /* 4バイト境界にアラインする。*/ 224 T_DHCP4_MSG msg; /* DHCP メッセージ構造体 */ 225 struct dhcp4_cli_msg *next; /* リストの次のメッセージ構造体 */ 226 T_IPV4EP srv; /* サーバのIPv4アドレス/ポート番号 */ 227 uint16_t len; /* msg の有効長 */ 228 uint16_t prefer; /* msg の推奨度 */ 229 uint8_t type; /* メッセージタイプ */ 249 230 } T_DHCP4_CLI_MSG; 250 231 … … 252 233 253 234 /* 254 * ã³ã¼ã«ããã¯é¢æ°235 * コールバック関数 255 236 */ 256 237 … … 258 239 259 240 /* 260 * ã¿ã¹ã¯241 * タスク 261 242 */ 262 243 … … 264 245 265 246 /* 266 * é¢æ°247 * 関数 267 248 */ 268 249 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp4_cli_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * ASP 用 DHCP クライアントのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 /* 51 * å 52 ±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 39 * 共通 DHCP クライアントのシステムコンフィギュレーションファイルのインクルード 53 40 */ 54 41 … … 58 45 59 46 /* 60 * åºå®ã¡ã¢ãªãã¼ã«47 * 固定メモリプール 61 48 */ 62 49 63 /* éåä¿¡ãããã¡*/50 /* 送受信バッファ */ 64 51 65 52 CRE_MPF(MPF_DHCP4_CLI_MSG, { -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp4_cli_jsp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * JSP 用 DHCP クライアントのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 /* 51 * å 52 ±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 39 * 共通 DHCP クライアントのシステムコンフィギュレーションファイルのインクルード 53 40 */ 54 41 … … 58 45 59 46 /* 60 * åºå®ã¡ã¢ãªãã¼ã«47 * 固定メモリプール 61 48 */ 62 49 63 /* éåä¿¡ãããã¡*/50 /* 送受信バッファ */ 64 51 65 52 CRE_MPF(MPF_DHCP4_CLI_MSG, { -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp4_cli_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 95 95 * Tomakomai National College of Technology, JAPAN 96 96 * 97 * ä¸è¨èä½æ¨©è 98 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 99 * ã«ãã£ã¦å 100 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 101 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 102 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 103 å¸ï¼ä»¥ä¸ï¼ 104 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 105 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 106 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 107 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 108 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 109 * ç¨ã§ããå½¢ã§åé 110 å¸ããå ´åã«ã¯ï¼åé 111 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 112 * è 113 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 114 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 115 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 116 * ç¨ã§ããªãå½¢ã§åé 117 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 118 * ã¨ï¼ 119 * (a) åé 120 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 121 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 122 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 123 * (b) åé 124 å¸ã®å½¢æ 125 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 126 * å ±åãããã¨ï¼ 127 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 128 * 害ãããï¼ä¸è¨èä½æ¨©è 129 ããã³TOPPERSããã¸ã§ã¯ããå 130 責ãããã¨ï¼ 131 * 132 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 133 ã 134 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 135 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 136 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 97 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 98 * によって公表されている GNU General Public License の Version 2 に記 99 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 100 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 101 * 利用と呼ぶ)することを無償で許諾する. 102 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 103 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 104 * スコード中に含まれていること. 105 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 106 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 107 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 108 * の無保証規定を掲載すること. 109 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 110 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 111 * と. 112 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 113 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 114 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 115 * 報告すること. 116 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 117 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 118 * 119 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 120 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 121 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 122 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 137 123 * 138 124 * @(#) $Id$ … … 143 129 144 130 /* 145 * DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ãæ§é ä½146 */ 147 148 /* TIMER ã®å®ç¾©*/131 * DHCP クライアントコンテキスト構造体 132 */ 133 134 /* TIMER の定義 */ 149 135 150 136 #define DHCP4C_TIMER_SND_DISC 0 … … 161 147 162 148 typedef struct dhcp4_cli_context { 163 T_DHCP4_CLI_MSG *rcv_lst; /* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã */ 164 T_DHCP4_CLI_MSG *val_lst; /* æ¤è¨¼ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã */ 165 T_DHCP4_CLI_MSG *prf_lst; /* æ¨å¥¨ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã */ 166 T_DHCP4_CLI_MSG *snd_msg; /* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½ */ 167 T_DHCP4_CLI_MSG *off_msg; /* éç¥ããããªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ */ 168 T_DHCP4_CLI_MSG *act_msg; /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ */ 169 T_IF_SOFTC *sc; /* IF ã®ã½ããã¦ã§ã¢æ 170 å ± */ 171 T_IPV4EP dst; /* éä¿¡å 172 ã®IPã¢ãã¬ã¹/ãã¼ãçªå· */ 173 SYSTIM snd_start; /* éä¿¡ãéå§ããæé */ 174 SYSTIM bind_start; /* BINDãéå§ããæé */ 175 SYSTIM expire; /* ãªã¼ã¹ã®æå¹æéï¼msï¼ */ 176 SYSTIM renew; /* RENEWï¼T1ï¼ã¾ã§ã®æéï¼msï¼ */ 177 SYSTIM rebind; /* REBINDï¼T2ï¼ã¾ã§ã®æéï¼msï¼ */ 149 T_DHCP4_CLI_MSG *rcv_lst; /* 受信メッセージ構造体リスト */ 150 T_DHCP4_CLI_MSG *val_lst; /* 検証メッセージ構造体リスト */ 151 T_DHCP4_CLI_MSG *prf_lst; /* 推奨メッセージ構造体リスト */ 152 T_DHCP4_CLI_MSG *snd_msg; /* 送信メッセージ構造体 */ 153 T_DHCP4_CLI_MSG *off_msg; /* 通知されたリース・メッセージ構造体 */ 154 T_DHCP4_CLI_MSG *act_msg; /* 有効なリース・メッセージ構造体 */ 155 T_IF_SOFTC *sc; /* IF のソフトウェア情報 */ 156 T_IPV4EP dst; /* 送信先のIPアドレス/ポート番号 */ 157 SYSTIM snd_start; /* 送信を開始した時間 */ 158 SYSTIM bind_start; /* BINDを開始した時間 */ 159 SYSTIM expire; /* リースの有効時間(ms) */ 160 SYSTIM renew; /* RENEW(T1)までの時間(ms) */ 161 SYSTIM rebind; /* REBIND(T2)までの時間(ms) */ 178 162 SYSTIM timers[NUM_DHCP4C_TIMERS]; 179 /* ã¿ã¤ãã¼é 180 å */ 181 RELTIM interval; /* éä¿¡éé */ 182 ER_UINT error; /* ã¨ã©ã¼ã»ãã¼ã¿é· */ 183 ID tskid; /* ã¿ã¹ã¯ID */ 163 /* タイマー配列 */ 164 RELTIM interval; /* 送信間隔 */ 165 ER_UINT error; /* エラー・データ長 */ 166 ID tskid; /* タスクID */ 184 167 ID cepid; /* CEP ID */ 185 uint32_t xid; /* ãã©ã³ã¶ã¯ã·ã§ã³ID */186 uint16_t flags; /* å種ãã©ã°*/187 uint16_t max_prefer; /* åä¿¡ã¡ãã»ã¼ã¸ã®æ大æ¨å¥¨åº¦*/168 uint32_t xid; /* トランザクション ID */ 169 uint16_t flags; /* 各種フラグ */ 170 uint16_t max_prefer; /* 受信メッセージの最大推奨度 */ 188 171 uint16_t secs; /* seconds since boot began */ 189 uint8_t fsm; /* ç¾å¨ã®ç¶æ 190 */ 172 uint8_t fsm; /* 現在の状態 */ 191 173 int timer; 192 174 } T_DHCP4_CLI_CONTEXT; 193 175 194 /* fsmï¼ç¶æ 195 é·ç§»ï¼ã®å®ç¾© */ 176 /* fsm(状態遷移)の定義 */ 196 177 197 178 #define DHCP4_FSM_INIT 1 … … 203 184 #define DHCP4_FSM_INIT_REBOOT 7 204 185 #define DHCP4_FSM_REBOOT 8 205 #define DHCP4_FSM_REL_INFO 11 /* DHCPv4 ã® RFC2131 ã«ã¯ç¡ãã*/206 #define DHCP4_FSM_SLEEP 12 /* DHCPv4 ã® RFC2131 ã«ã¯ç¡ãã*/207 #define DHCP4_FSM_WAKE 13 /* DHCPv4 ã® RFC2131 ã«ã¯ç¡ãã*/208 209 /* flag ã®å®ç¾©*/186 #define DHCP4_FSM_REL_INFO 11 /* DHCPv4 の RFC2131 には無い。*/ 187 #define DHCP4_FSM_SLEEP 12 /* DHCPv4 の RFC2131 には無い。*/ 188 #define DHCP4_FSM_WAKE 13 /* DHCPv4 の RFC2131 には無い。*/ 189 190 /* flag の定義 */ 210 191 211 192 #define DHCP4C_FLAG_TMOUT_SND_DISC (DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_SND_DISC) … … 225 206 226 207 /* 227 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã228 */ 229 230 /* ã¿ã¤ã ã¢ã¦ãã®è¨ç®*/208 * 関数シミュレーションマクロ 209 */ 210 211 /* タイムアウトの計算 */ 231 212 232 213 #define DHCP4C_TMOC(t) (((t)-1000)+dhcp_rand()%2000) 233 214 234 /* æéæ¯è¼*/215 /* 時間比較 */ 235 216 236 217 #define TIMEC_GT(a,b) ((int32_t)((a)-(b))>0) 237 218 #define TIMEC_GE(a,b) ((int32_t)((a)-(b))>=0) 238 219 239 /* æéå®æ°ã®å¤æ*/220 /* 時間定数の変換 */ 240 221 241 222 #define SYSTIM2TIMER(t) (((t)<SYSTIM_HZ/DHCP4C_TIMER_HZ)?(DHCP4C_TIMER_HZ):((t)*DHCP4C_TIMER_HZ)/SYSTIM_HZ) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 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 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 41 28 * 42 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 43 ã 44 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 45 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 46 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 31 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 32 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 47 33 * 48 34 * @(#) $Id$ … … 53 39 54 40 /* 55 * DHCPv6 ã«é¢ããå®ç¾©41 * DHCPv6 に関する定義 56 42 * 57 43 * RFC3315 … … 59 45 60 46 /* 61 * DHCPv6 ã¡ãã»ã¼ã¸ã®å®æ°ã®å®ç¾©47 * DHCPv6 メッセージの定数の定義 62 48 */ 63 49 … … 66 52 67 53 /* 68 * DHCPv6 ã¡ãã»ã¼ã¸54 * DHCPv6 メッセージ 69 55 */ 70 56 … … 79 65 } T_DHCP6_MSG; 80 66 81 /* message type ã®å®ç¾©*/67 /* message type の定義 */ 82 68 83 69 #define DHCP6_SOLICIT UINT_C(1) … … 96 82 97 83 /* 98 * DHCPv6 ãªãã·ã§ã³84 * DHCPv6 オプション 99 85 */ 100 86 … … 113 99 #define DHCP6_OPT_IA_PD UINT_C(25) 114 100 115 /* hardware address type ã®å®ç¾©*/101 /* hardware address type の定義 */ 116 102 117 103 #define DHCP6_HWA_TYPE_ETHER UINT_C(1) 118 104 #define DHCP6_HWA_TYPE_IEEE802 UINT_C(6) 119 105 120 /* STATUS CODE ã®å®ç¾©*/106 /* STATUS CODE の定義 */ 121 107 122 108 #define DHCP6_STAT_SUCCESS UINT_C(0) … … 127 113 #define DHCP6_STAT_USE_MCAST UINT_C(5) 128 114 129 /* æéå®æ°[s]ã®å®ç¾©*/115 /* 時間定数[s]の定義 */ 130 116 131 117 #define DHCP6_MAX_TIME UINT_C(0xffffffff) 132 118 133 119 /* 134 * ãªãã·ã§ã³ã®ãããé¨ã®å®ç¾© 135 */ 136 137 /* ãªãã·ã§ã³ã®å 138 ±éé¨ */ 120 * オプションのヘッダ部の定義 121 */ 122 123 /* オプションの共通部 */ 139 124 140 125 typedef struct dhcp6_option { … … 143 128 } T_DHCP6_OPTION; 144 129 145 /* ãªãã·ã§ã³ã®å 146 ±éé¨ */ 147 148 /* CLIENTID ãªãã·ã§ã³ */ 130 /* オプションの共通部 */ 131 132 /* CLIENTID オプション */ 149 133 150 134 typedef struct dhcp6_opt_clientid { … … 153 137 } T_DHCP6_OPT_CLIENTID; 154 138 155 /* SERVERID ãªãã·ã§ã³*/139 /* SERVERID オプション */ 156 140 157 141 typedef struct dhcp6_opt_serverid { … … 160 144 } T_DHCP6_OPT_SERVERID; 161 145 162 /* IA_NA/IA_PD ãªãã·ã§ã³*/146 /* IA_NA/IA_PD オプション */ 163 147 164 148 typedef struct dhcp6_opt_ia_na_pd { … … 170 154 } T_DHCP6_OPT_IA_NA_PD; 171 155 172 /* IA_TA ãªãã·ã§ã³*/156 /* IA_TA オプション */ 173 157 174 158 typedef struct dhcp6_opt_ia_ta { … … 178 162 } T_DHCP6_OPT_IA_TA; 179 163 180 /* IAADDR ãªãã·ã§ã³*/164 /* IAADDR オプション */ 181 165 182 166 #ifdef T_IN6_ADDR_DEFINED … … 192 176 #endif /* of #ifdef T_IN6_ADDR_DEFINED */ 193 177 194 /* ORO ãªãã·ã§ã³*/178 /* ORO オプション */ 195 179 196 180 typedef struct dhcp6_opt_oro { … … 199 183 } T_DHCP6_OPT_ORO; 200 184 201 /* PREFERENCE ãªãã·ã§ã³*/185 /* PREFERENCE オプション */ 202 186 203 187 typedef struct dhcp6_opt_preference { … … 207 191 } T_DHCP6_OPT_PREFERENCE; 208 192 209 /* UNICAST ãªãã·ã§ã³*/193 /* UNICAST オプション */ 210 194 211 195 #ifdef T_IN6_ADDR_DEFINED … … 219 203 #endif /* of #ifdef T_IN6_ADDR_DEFINED */ 220 204 221 /* STATUS CODE ãªãã·ã§ã³*/205 /* STATUS CODE オプション */ 222 206 223 207 typedef struct dhcp6_opt_status_code { … … 227 211 } T_DHCP6_OPT_STATUS_CODE; 228 212 229 /* NAME SERVERS ãªãã·ã§ã³*/213 /* NAME SERVERS オプション */ 230 214 231 215 typedef struct dhcp6_opt_name_servers { … … 235 219 } T_DHCP6_OPT_NAME_SERVERS; 236 220 237 /* DOMAIN SEARCH ãªãã·ã§ã³*/221 /* DOMAIN SEARCH オプション */ 238 222 239 223 typedef struct dhcp6_opt_domain_search { … … 244 228 245 229 /* 246 * DHCPv6 ã¿ã¤ãã³ã°å®æ°ãRFC3315 5.5 åç 247 §ã 248 * ãã®ä»ã®ã¿ã¤ãã³ã°å®æ°ã¯ dhcp6_cli.h åç 249 § 230 * DHCPv6 タイミング定数【RFC3315 5.5 参照】 231 * その他のタイミング定数は dhcp6_cli.h 参照 250 232 */ 251 233 … … 257 239 #define TMO_REQ_TIMEOUT (1*SYSTIM_HZ) /* 1[s] */ 258 240 #define TMO_REQ_MAX_RT (30*SYSTIM_HZ) /* 30[s] */ 259 #define TMO_REQ_MAX_RC 10 /* åéä¿¡åæ°*/241 #define TMO_REQ_MAX_RC 10 /* 再送信回数 */ 260 242 #define TMO_CNF_MAX_DELAY (1*SYSTIM_HZ) /* 1[s] */ 261 243 #define TMO_CNF_TIMEOUT (1*SYSTIM_HZ) /* 1[s] */ … … 270 252 #define TMO_INF_MAX_RT (120*SYSTIM_HZ) /* 120[s] */ 271 253 #define TMO_REL_TIMEOUT (1*SYSTIM_HZ) /* 1[s] */ 272 #define TMO_REL_MAX_RC 5 /* åéä¿¡åæ°*/254 #define TMO_REL_MAX_RC 5 /* 再送信回数 */ 273 255 #define TMO_DEC_TIMEOUT (1*SYSTIM_HZ) /* 1[s] */ 274 #define TMO_DEC_MAX_RC 5 /* åéä¿¡åæ°*/256 #define TMO_DEC_MAX_RC 5 /* 再送信回数 */ 275 257 #define TMO_REC_TIMEOUT (2*SYSTIM_HZ) /* 2[s] */ 276 #define TMO_REC_MAX_RC 8 /* åéä¿¡åæ°*/258 #define TMO_REC_MAX_RC 8 /* 再送信回数 */ 277 259 278 260 #endif /* of #ifdef SYSTIM_HZ */ … … 282 264 */ 283 265 284 /* DUID_LLT æ§é ä½*/266 /* DUID_LLT 構造体 */ 285 267 286 268 typedef struct dhcp6_duid_llt_hdr { … … 290 272 } T_DHCP6_DUID_LLT_HDR; 291 273 292 /* DUID_LL æ§é ä½*/274 /* DUID_LL 構造体 */ 293 275 294 276 typedef struct dhcp6_duid_ll_hdr { … … 297 279 } T_DHCP6_DUID_LL_HDR; 298 280 299 /* DUID ã¿ã¤ããRFC3315 9åç 300 §ã*/ 281 /* DUID タイプ【RFC3315 9参照】*/ 301 282 302 283 #define DUID_LLT 1 … … 305 286 306 287 /* 307 * DUID æéã®èª¿æ´308 * DUID æéã®éå§ã¯2001/1/1288 * DUID 時間の調整 289 * DUID 時間の開始は 2001/1/1 309 290 */ 310 291 311 292 #define DUID_TIME_EPOCH 0 312 293 313 /* ãªã¬ã¼è»¢éã®æ大ãããæ°*/294 /* リレー転送の最大ホップ数 */ 314 295 315 296 #define HOP_COUNT_LIMIT 32 316 297 317 298 /* 318 * IPv6 ã¢ãã¬ã¹299 * IPv6 アドレス 319 300 */ 320 301 … … 332 313 333 314 /* 334 * UDP ãã¼ãçªå·315 * UDP ポート番号 335 316 */ 336 317 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp6_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 70 70 * Tomakomai National College of Technology, JAPAN 71 71 * 72 * ä¸è¨èä½æ¨©è 73 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 74 * ã«ãã£ã¦å 75 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 76 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 77 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 78 å¸ï¼ä»¥ä¸ï¼ 79 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 80 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 81 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 82 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 83 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 84 * ç¨ã§ããå½¢ã§åé 85 å¸ããå ´åã«ã¯ï¼åé 86 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 87 * è 88 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 89 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 90 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 91 * ç¨ã§ããªãå½¢ã§åé 92 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 93 * ã¨ï¼ 94 * (a) åé 95 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 96 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 97 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 98 * (b) åé 99 å¸ã®å½¢æ 100 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 101 * å ±åãããã¨ï¼ 102 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 103 * 害ãããï¼ä¸è¨èä½æ¨©è 104 ããã³TOPPERSããã¸ã§ã¯ããå 105 責ãããã¨ï¼ 72 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 73 * によって公表されている GNU General Public License の Version 2 に記 74 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 75 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 76 * 利用と呼ぶ)することを無償で許諾する. 77 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 78 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 79 * スコード中に含まれていること. 80 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 81 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 82 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 83 * の無保証規定を掲載すること. 84 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 85 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 86 * と. 87 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 88 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 89 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 90 * 報告すること. 91 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 92 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 106 93 * 107 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 108 ã 109 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 110 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 111 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 94 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 95 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 96 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 97 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 112 98 * 113 99 * @(#) $Id$ … … 156 142 157 143 /* 158 * DHCPv6 ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯144 * DHCPv6 クライアントタスク 159 145 */ 160 146 … … 162 148 163 149 /* 164 * DHCP åä½ã¢ã¼ã150 * DHCP 動作モード 165 151 * 166 * #define DHCP6_CLI_CFG_MODE ã§æå®ããã152 * #define DHCP6_CLI_CFG_MODE で指定する。 167 153 * 168 154 */ … … 173 159 174 160 /* 175 * å¤æ°161 * 変数 176 162 */ 177 163 178 164 static const T_IN6_ADDR in6_addr_all_DHCP_relay_servers = 179 IPV6_ADDR_ALL_DHCP_RELAY_SERVERS_INIT; /* ãªã¬ã¼ã»ãµã¼ãã® IPv6 ã¢ãã¬ã¹*/180 static T_DHCP6_CLI_CONTEXT context; /* ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ã*/165 IPV6_ADDR_ALL_DHCP_RELAY_SERVERS_INIT; /* リレー・サーバの IPv6 アドレス */ 166 static T_DHCP6_CLI_CONTEXT context; /* クライアントコンテキスト */ 181 167 182 168 #ifdef DHCP6_CLI_CFG_REQUIRED_OLIST 183 static uint8_t required_plist[] = DHCP6_CLI_CFG_REQUIRED_OLIST; /* å¿ 184 é ãªãã·ã§ã³ãªã¹ã */ 169 static uint8_t required_plist[] = DHCP6_CLI_CFG_REQUIRED_OLIST; /* 必須オプションリスト */ 185 170 #endif 186 171 187 172 #ifdef DHCP6_CLI_CFG_REQUEST_OLIST 188 static uint8_t request_plist[] = DHCP6_CLI_CFG_REQUEST_OLIST; /* è¦æ±ãªãã·ã§ã³ãªã¹ã*/173 static uint8_t request_plist[] = DHCP6_CLI_CFG_REQUEST_OLIST; /* 要求オプションリスト */ 189 174 #endif 190 175 191 176 /* 192 * dhcp6_rand -- RFC3315 ã«è¦å®ãããä¹±æ°ãçºçããã177 * dhcp6_rand -- RFC3315 に規定された乱数を発生する。 193 178 */ 194 179 … … 209 194 210 195 /* 211 * init_duid -- ã¯ã©ã¤ã¢ã³ãã® DUID ãè¨å®ããã196 * init_duid -- クライアントの DUID を設定する。 212 197 */ 213 198 … … 218 203 #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS 219 204 220 /* åä½ã¢ã¼ãã« STATELESS ãæå®ãããæ㯠LL å½¢å¼ã«ããã*/205 /* 動作モードに STATELESS が指定された時は LL 形式にする。*/ 221 206 222 207 T_DHCP6_DUID_LL_HDR *ll; … … 226 211 HOST2MSG16(ll->type, DHCP6_HWA_TYPE_ETHER); 227 212 memcpy(&ct->duid[sizeof(*ll)], &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr)); 228 ct->duid_len = sizeof(*ll) + sizeof(ct->sc->ifaddr.lladdr); /* DIUD é·ãè¨é²ããã*/213 ct->duid_len = sizeof(*ll) + sizeof(ct->sc->ifaddr.lladdr); /* DIUD 長を記録する。*/ 229 214 230 215 #elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL 231 216 232 217 /* 233 * åä½ã¢ã¼ãã« DHCP6_CLI_CFG_STATEFULL ãæå®ãããæ㯠LLT å½¢å¼ã«ããã234 * time ã¡ã³ãã¼ã«ã¯ç¾å¨ã®æé[s]ãè¨å®ããã235 * 注æ: æ«å®çã« get_tim() ã®å¤ã使ãããè¦æ¤è¨218 * 動作モードに DHCP6_CLI_CFG_STATEFULL が指定された時は LLT 形式にする。 219 * time メンバーには現在の時間[s]を設定する。 220 * 注意: 暫定的に get_tim() の値を使うが、要検討 236 221 */ 237 222 … … 246 231 HOST2MSG32(llt->time, time); 247 232 memcpy(&ct->duid[sizeof(*llt)], &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr)); 248 ct->duid_len = sizeof(*llt) + sizeof(ct->sc->ifaddr.lladdr); /* DIUD é·ãè¨é²ããã*/233 ct->duid_len = sizeof(*llt) + sizeof(ct->sc->ifaddr.lladdr); /* DIUD 長を記録する。*/ 249 234 250 235 #else /* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */ … … 255 240 256 241 /* 257 * cancel_all_timers -- å 258 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã 242 * cancel_all_timers -- 全ての TIMER をキャンセルする。 259 243 */ 260 244 … … 271 255 272 256 /* 273 * dhcpc_timer -- TIMER 管ç257 * dhcpc_timer -- TIMER 管理 274 258 */ 275 259 … … 291 275 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 292 276 293 /* 1 ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããã*/277 /* 1秒毎にタイムアウトする。*/ 294 278 timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP6C_TIMER_HZ); 295 279 } 296 280 297 281 /* 298 * find_option -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã282 * find_option -- 指定したオプションを探索する。 299 283 * 300 * 注æ: å¼æ° len ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã 301 * å¼æ° len ã«ã¯ãªãã·ã§ã³å 302 ¨ä½ã®ãµã¤ãºãæå®ãããã¨ã 284 * 注意: 引数 len が 0 の時はオプションサイズを検証しない。 285 * 引数 len にはオプション全体のサイズを指定すること。 303 286 */ 304 287 … … 321 304 322 305 /* 323 * find_msg_option -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã306 * find_msg_option -- 指定したオプションを探索する。 324 307 * 325 * 注æ: å¼æ° len ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã 326 * å¼æ° len ã«ã¯ãªãã·ã§ã³å 327 ¨ä½ã®ãµã¤ãºãæå®ãããã¨ã 308 * 注意: 引数 len が 0 の時はオプションサイズを検証しない。 309 * 引数 len にはオプション全体のサイズを指定すること。 328 310 */ 329 311 … … 335 317 336 318 /* 337 * is_equal_sid -- ã¡ãã»ã¼ã¸å 338 ã® SERVER ID ãæ¯è¼ããã 319 * is_equal_sid -- メッセージ内の SERVER ID を比較する。 339 320 */ 340 321 … … 357 338 358 339 /* 359 * validate_iaaddrs -- ã¢ãã¬ã¹æ 360 å ±ï¼IAADDRï¼ãæ¤è¨¼ããã 340 * validate_iaaddrs -- アドレス情報(IAADDR)を検証する。 361 341 */ 362 342 … … 366 346 T_DHCP6_OPT_IAADDR *iaa; 367 347 368 /* ãªãã·ã§ã³ã IAADDR ã§ãããã¨ãæ¤è¨¼ããã*/348 /* オプションが IAADDR であることを検証する。*/ 369 349 iaa = (T_DHCP6_OPT_IAADDR*)opt; 370 350 if (MSG2HOST16(iaa->code) != DHCP6_OPT_IAADDR) … … 372 352 373 353 while (len > 0) { 374 /* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/354 /* オプション長を検証する。*/ 375 355 if (len < sizeof(*iaa)) 376 356 return E_PAR; 377 357 378 /* ãªãã·ã§ã³é·ã T_DHCP6_OPT_IAADDR ã®ãµã¤ãºã¨ä¸è´ãã¦ããªããã°ã¨ã©ã¼*/358 /* オプション長が T_DHCP6_OPT_IAADDR のサイズと一致していなければエラー */ 379 359 iaa = (T_DHCP6_OPT_IAADDR*)opt; 380 360 if ((MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) < (sizeof(*iaa) - sizeof(T_DHCP6_OPTION))) … … 382 362 383 363 /* 384 * perferred-lifetime 㨠valid-lifetime ã®å¤ãçç¾ãã¦ããã¨ãã¯ã¨ã©ã¼ 385 * ãRFC3315 (22.6) åç 386 §ã 364 * perferred-lifetime と valid-lifetime の値が矛盾しているときはエラー 365 * 【RFC3315 (22.6) 参照】 387 366 */ 388 367 if (MSG2HOST32(iaa->prefer) > MSG2HOST32(iaa->valid)) … … 397 376 398 377 /* 399 * validate_ia_na_pd -- IA_NA/IA_PD ãªãã·ã§ã³ãæ¤è¨¼ããã378 * validate_ia_na_pd -- IA_NA/IA_PD オプションを検証する。 400 379 */ 401 380 … … 406 385 uint8_t *opt; 407 386 408 /* IA_NA/IA_PD ãç¡ããã°æ¤è¨¼ããªãã*/387 /* IA_NA/IA_PD が無ければ検証しない。*/ 409 388 if ((opt = find_msg_option(msg, code, 0)) == NULL) 410 389 return E_OK; 411 390 412 /* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/391 /* オプション長を検証する。*/ 413 392 na = (T_DHCP6_OPT_IA_NA_PD*)opt; 414 393 if (!(msg->len >= (opt - (uint8_t*)&msg->msg) + sizeof(*na) && … … 417 396 418 397 /* 419 * T1 㨠T2 ã®å¤ãçç¾ãã¦ããæãã¾ãã¯ã¢ãã¬ã¹æ 420 å ±ã誤ã£ã¦ããæã¯ã¨ã©ã¼ 421 * ãRFC3315 (22.4) åç 422 §ã 398 * T1 と T2 の値が矛盾している時、またはアドレス情報が誤っている時はエラー 399 * 【RFC3315 (22.4) 参照】 423 400 */ 424 401 if (MSG2HOST32(na->renew) > 0 && MSG2HOST32(na->rebind) > 0 && … … 433 410 434 411 /* 435 * validate_ia_ta -- IA_TA ãªãã·ã§ã³ãæ¤è¨¼ããã412 * validate_ia_ta -- IA_TA オプションを検証する。 436 413 */ 437 414 … … 442 419 uint8_t *opt; 443 420 444 /* IA_TA ãç¡ããã°æ¤è¨¼ããªãã*/421 /* IA_TA が無ければ検証しない。*/ 445 422 if ((opt = find_msg_option(msg, DHCP6_OPT_IA_TA, 0)) == NULL) 446 423 return E_OK; 447 424 448 /* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/425 /* オプション長を検証する。*/ 449 426 ta = (T_DHCP6_OPT_IA_TA *)opt; 450 427 if (!(msg->len >= (opt - (uint8_t*)&msg->msg) + sizeof(*ta) && … … 453 430 454 431 /* 455 * ã¢ãã¬ã¹æ 456 å ±ã誤ã£ã¦ããæã¯ã¨ã©ã¼ãRFC3315 (22.4) åç 457 §ã 432 * アドレス情報が誤っている時はエラー【RFC3315 (22.4) 参照】 458 433 */ 459 434 if (validate_iaaddrs(opt + sizeof(*ta), (MSG2HOST16(ta->len) & ~DHCP6C_IAA_FLAG_MASK) - (sizeof(*ta) - sizeof(T_DHCP6_OPTION))) != E_OK) … … 463 438 } 464 439 /* 465 * classify_reply -- å¿çã¡ãã»ã¼ã¸ãåé¡ããã440 * classify_reply -- 応答メッセージを分類する。 466 441 */ 467 442 … … 471 446 ER error; 472 447 473 /* IA_NA ãªãã·ã§ã³ãæ¤è¨¼ããã*/448 /* IA_NA オプションを検証する。*/ 474 449 if ((error = validate_ia_na_pd(msg, DHCP6_OPT_IA_NA)) != E_OK) 475 450 return error; 476 451 477 /* IA_TA ãªãã·ã§ã³ãæ¤è¨¼ããã*/452 /* IA_TA オプションを検証する。*/ 478 453 if ((error = validate_ia_ta(msg)) != E_OK) 479 454 return error; 480 455 481 /* IA_PD ãªãã·ã§ã³ãæ¤è¨¼ããã*/456 /* IA_PD オプションを検証する。*/ 482 457 if ((error = validate_ia_na_pd(msg, DHCP6_OPT_IA_PD)) != E_OK) 483 458 return error; 484 459 485 /* ãµã¼ã DUID ããããã¨ãæ¤è¨¼ããã*/460 /* サーバ DUID があることを検証する。*/ 486 461 if (find_msg_option(msg, DHCP6_OPT_SERVERID, 0) == NULL) 487 462 return E_PAR; … … 491 466 492 467 /* 493 * validate_reply -- å¿çã¡ãã»ã¼ã¸ãæ¤è¨¼ããã468 * validate_reply -- 応答メッセージを検証する。 494 469 */ 495 470 … … 500 475 uint8_t *opt; 501 476 502 /* ãµã¼ã DUID ããããã¨ãæ¤è¨¼ããã*/477 /* サーバ DUID があることを検証する。*/ 503 478 if (find_msg_option(msg, DHCP6_OPT_SERVERID, 0) == NULL) 504 479 return E_PAR; 505 480 506 /* ã¯ã©ã¤ã¢ã³ã DUID ããããèªåã®ã¯ã©ã¤ã¢ã³ã DUID ã¨åããã¨ãæ¤è¨¼ããã*/481 /* クライアント DUID があり、自分のクライアント DUID と同じことを検証する。*/ 507 482 if ((opt = find_msg_option(msg, DHCP6_OPT_CLIENTID, 0)) == NULL) 508 483 return E_PAR; … … 518 493 519 494 /* 520 * get_status_code -- STATUS ãªãã·ã§ã³ã®çµæã³ã¼ããç²å¾ããã495 * get_status_code -- STATUS オプションの結果コードを獲得する。 521 496 */ 522 497 … … 527 502 uint8_t *opt; 528 503 529 /* STATUS ãªãã·ã§ã³ãç¡ããã°æ¤è¨¼ããªãã*/504 /* STATUS オプションが無ければ検証しない。*/ 530 505 if ((opt = find_option(msg, msg_len, DHCP6_OPT_STATUS_CODE, 0)) == NULL) 531 506 return DHCP6_STAT_SUCCESS; 532 507 533 /* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/508 /* オプション長を検証する。*/ 534 509 status = (T_DHCP6_OPT_STATUS_CODE*)opt; 535 510 if (msg_len < sizeof(*status)) … … 542 517 543 518 /* 544 * get_msg_status_code -- STATUS ãªãã·ã§ã³ã®çµæã³ã¼ããç²å¾ããã519 * get_msg_status_code -- STATUS オプションの結果コードを獲得する。 545 520 */ 546 521 … … 598 573 599 574 /* 600 * validate_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã575 * validate_rcv_msg -- 受信メッセージを検証する。 601 576 */ 602 577 … … 607 582 uint_t code; 608 583 609 /* ã¡ãã»ã¼ã¸ã®ã¿ã¤ããä¸è´ãã¦ãããã¨ãæ¤è¨¼ããã*/584 /* メッセージのタイプが一致していることを検証する。*/ 610 585 switch (ct->fsm) { 611 586 … … 649 624 } 650 625 651 /* åä¿¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã*/626 /* 受信メッセージを検証する。*/ 652 627 if ((error = validate_reply(ct, msg)) != E_OK) 653 628 return error; 654 629 655 /* åä¿¡ã¡ãã»ã¼ã¸ãåé¡ããã*/630 /* 受信メッセージを分類する。*/ 656 631 if ((error = classify_reply(msg)) != E_OK) 657 632 return error; 658 633 659 /* åä¿¡ããã¡ãã»ã¼ã¸å 660 ã® STATUS CODE ãªãã·ã§ã³ãæ¤è¨¼ããã*/ 634 /* 受信したメッセージ内の STATUS CODE オプションを検証する。*/ 661 635 error = get_msg_status_code(msg, &code); 662 636 if (error != E_OK) … … 667 641 668 642 /* 669 * eval_ia_prefer -- IA_NA/IA_TA/IA_PD ã®æ¨å¥¨åº¦ãè©ä¾¡ããã643 * eval_ia_prefer -- IA_NA/IA_TA/IA_PD の推奨度を評価する。 670 644 */ 671 645 … … 680 654 uint_t aoff, asize; 681 655 682 /* ç¡å¹ã®å ´åã¯çµäºããã*/656 /* 無効の場合は終了する。*/ 683 657 if (cli_msg == NULL) 684 658 return; … … 721 695 722 696 /* 723 * eval_prefer -- åä¿¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã697 * eval_prefer -- 受信メッセージの推奨度を評価する。 724 698 */ 725 699 … … 730 704 int ix; 731 705 732 /* ç¡å¹ã®å ´åã¯çµäºããã*/706 /* 無効の場合は終了する。*/ 733 707 if (msg == NULL) 734 708 return; 735 709 736 /* PREFERENCE ãªãã·ã§ã³ãè©ä¾¡ããã*/710 /* PREFERENCE オプションを評価する。*/ 737 711 if ((opt = find_msg_option(msg, DHCP6_OPT_PREFERENCE, sizeof(T_DHCP6_OPT_PREFERENCE))) != NULL) 738 712 msg->prefer = MSG2HOST16(((T_DHCP6_OPT_PREFERENCE*)opt)->prefer) | DHCP6_ClI_MSG_PREFER_OPTION; … … 742 716 #if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) 743 717 744 /* å¿ 745 é ãªãã·ã§ã³ãæ¤è¨¼ããã*/ 718 /* 必須オプションを検証する。*/ 746 719 for (ix = sizeof(required_plist); ix -- > 0; ) { 747 720 if (find_msg_option(msg, required_plist[ix], 0) == NULL) … … 754 727 #if defined(DHCP6_CLI_CFG_REQUEST_OLIST) 755 728 756 /* è¦æ±ãªãã·ã§ã³ãæ¤è¨¼ããã*/729 /* 要求オプションを検証する。*/ 757 730 for (ix = sizeof(request_plist); ix -- > 0; ) { 758 731 if (find_msg_option(msg, request_plist[ix], 0) != NULL) … … 764 737 765 738 /* 766 * eval_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãè©ä¾¡ããã739 * eval_rcv_msg -- 受信メッセージを評価する。 767 740 */ 768 741 … … 773 746 SYSTIM time; 774 747 775 /* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸æ¢ããã*/748 /* メッセージを受信していなければ中止する。*/ 776 749 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); 777 750 if (ct->val_lst == NULL) { … … 780 753 } 781 754 782 /* æ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãããè©ä¾¡ã¡ãã»ã¼ã¸ãåãåºãã*/755 /* 検証メッセージリストから評価メッセージを取り出す。*/ 783 756 evl = ct->val_lst; 784 757 ct->val_lst = ct->val_lst->next; … … 786 759 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 787 760 788 /* åä¿¡æéãè¨å®ããã*/761 /* 受信時間を設定する。*/ 789 762 get_tim(&time); 790 763 evl->rcv_time = time; 791 764 792 /* è©ä¾¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã*/765 /* 評価メッセージを検証する。*/ 793 766 if (validate_rcv_msg(ct, evl) != E_OK) { 794 767 795 /* ã¨ã©ã¼ãçºçããè©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/768 /* エラーが発生した評価メッセージを受信メッセージ構造体リストに戻す。*/ 796 769 goto rcv_ret; 797 770 } 798 771 799 /* REL_INFO ç¶æ 800 ã®æã®å¦ç */ 772 /* REL_INFO 状態の時の処理 */ 801 773 if (ct->fsm == DHCP6_FSM_REL_INFO) { 802 774 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); 803 775 if (evl->status == DHCP6_STAT_SUCCESS) { 804 776 /* 805 * STATUS CODE ã DHCP6_STAT_SUCCESS ãªãã806 * è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«è¨å®ãã¦çµäºããã777 * STATUS CODE が DHCP6_STAT_SUCCESS なら、 778 * 評価メッセージを推奨メッセージリストに設定して終了する。 807 779 */ 808 780 evl->next = ct->prf_lst; … … 810 782 } 811 783 else { 812 /* è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã¦çµäºããã*/784 /* 評価メッセージを受信メッセージ構造体リストに戻して終了する。*/ 813 785 evl->next = ct->rcv_lst; 814 786 ct->rcv_lst = evl; … … 818 790 } 819 791 820 /* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã*/792 /* 評価メッセージの推奨度を評価する。*/ 821 793 eval_prefer(evl); 822 794 eval_ia_prefer(evl); 823 795 824 /* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã空ãªãè©ä¾¡ã¡ãã»ã¼ã¸ã移ãã¦çµäºããã*/796 /* 推奨メッセージリストが空なら評価メッセージを移して終了する。*/ 825 797 if (ct->prf_lst == NULL) { 826 798 ct->max_prefer = evl->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK; … … 829 801 } 830 802 831 /* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ã¨æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æ大æ¨å¥¨åº¦ãæ¯è¼ããã*/803 /* 評価メッセージの推奨度と推奨メッセージリストの最大推奨度を比較する。*/ 832 804 if ((evl->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK) > ct->max_prefer) { 833 805 834 806 /* 835 * è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æ大æ¨å¥¨åº¦ããé«ããã°ã836 * æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã837 * è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã807 * 評価メッセージの推奨度が推奨メッセージリストの最大推奨度より高ければ、 808 * 推奨メッセージリストを受信メッセージ構造体リストに戻し、 809 * 評価メッセージを推奨メッセージリストに移す。 838 810 */ 839 811 ct->max_prefer = evl->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK; … … 856 828 857 829 /* 858 * æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«åã DHCP6_OPT_SERVERID ã®ã¡ãã»ã¼ã¸ãããã°ã859 * è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã830 * 推奨メッセージリストに同じ DHCP6_OPT_SERVERID のメッセージがあれば、 831 * 評価メッセージを受信メッセージ構造体リストに戻す。 860 832 */ 861 833 goto rcv_ret; … … 864 836 865 837 /* 866 * è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã838 * 評価メッセージを推奨メッセージリストに移す。 867 839 */ 868 840 evl->next = ct->prf_lst; … … 873 845 /*else */ 874 846 /* 875 * è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æ大æ¨å¥¨åº¦ããä½ããã°ã876 * è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã847 * 評価メッセージの推奨度が推奨メッセージリストの最大推奨度より低ければ、 848 * 評価メッセージを受信メッセージ構造体リストに戻す。 877 849 */ 878 850 … … 886 858 887 859 /* 888 * select_msg -- æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®å 889 é ã®ã¡ãã»ã¼ã¸ãé¸æããã 860 * select_msg -- 推奨メッセージリストの先頭のメッセージを選択する。 890 861 */ 891 862 … … 897 868 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); 898 869 if (ct->prf_lst == NULL) { 899 /* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸æ¢ããã*/870 /* メッセージを受信していなければ中止する。*/ 900 871 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 901 872 return NULL; … … 907 878 908 879 if ((select->prefer & DHCP6_ClI_MSG_PREFER_REQUIRED) == 0) { 909 /* å¿ 910 é ãªãã·ã§ã³ãç¡ããã°é¸æããªãã*/ 880 /* 必須オプションが無ければ選択しない。*/ 911 881 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 912 882 return NULL; … … 917 887 if (((select->prefer & DHCP6_ClI_MSG_PREFER_REQUIRED) == 0) || 918 888 ((select->prefer & DHCP6_ClI_MSG_PREFER_ADDR) == 0)) { 919 /* å¿ 920 é ãªãã·ã§ã³ã¨ã¢ãã¬ã¹ãç¡ããã°é¸æããªãã*/ 889 /* 必須オプションとアドレスが無ければ選択しない。*/ 921 890 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 922 891 return NULL; … … 927 896 #endif /* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */ 928 897 929 /* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®å 930 é ã®ã¡ãã»ã¼ã¸ãé¸æããã*/ 898 /* 推奨メッセージリストの先頭のメッセージを選択する。*/ 931 899 ct->prf_lst = ct->prf_lst->next; 932 900 select->next = NULL; 933 901 934 /* é¸æãããªãã£ãæ¤è¨¼ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/902 /* 選択されなかった検証メッセージを受信メッセージ構造体リストに戻す。*/ 935 903 if (ct->rcv_lst == NULL) 936 904 ct->rcv_lst = ct->prf_lst; … … 945 913 946 914 /* 947 * advance_retrans -- åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã915 * advance_retrans -- 再送信タイムアウトを更新する。 948 916 */ 949 917 … … 952 920 { 953 921 /* 954 * åéä¿¡ééï¼RTï¼ãæ´æ°ããã 955 * åéä¿¡æ¯ã«ç´ 2åãããã 956 * æ大éä¿¡ééï¼MRTï¼ãè¶ 957 ããªãããã«ããã 922 * 再送信間隔(RT)を更新する。 923 * 再送信毎に約 2倍するが、 924 * 最大送信間隔(MRT)を超えないようにする。 958 925 */ 959 926 ct->RT += ct->RT + dhcp6_rand(ct->RT); … … 961 928 ct->RT = ct->MRT + dhcp6_rand(ct->MRT); 962 929 963 /* åéä¿¡åæ°ãæ´æ°ããã*/930 /* 再送信回数を更新する。*/ 964 931 ct->txcount ++; 965 932 } 966 933 967 934 /* 968 * init_retrans -- åéä¿¡åæ°ããã©ã³ã¶ã¯ã·ã§ã³ IDããã®ä»ãè¨å®ããã935 * init_retrans -- 再送信回数、トランザクション ID、その他を設定する。 969 936 */ 970 937 … … 972 939 init_retrans (T_DHCP6_CLI_CONTEXT *ct) 973 940 { 974 /* éä¿¡åæ°ããªã»ããããã*/941 /* 送信回数をリセットする。*/ 975 942 ct->txcount = 0; 976 943 977 /* åéä¿¡ééãè¨å®ããã*/944 /* 再送信間隔を設定する。*/ 978 945 ct->RT = ct->IRT + dhcp6_rand(ct->IRT); 979 946 980 /* ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨å®ããã*/947 /* トランザクション ID を設定する。*/ 981 948 ct->xid = netapp_rand() % 0x00ffffff; 982 949 983 /* åä¿¡ã¡ãã»ã¼ã¸ã®æ大æ¨å¥¨åº¦ããªã»ããããã*/950 /* 受信メッセージの最大推奨度をリセットする。*/ 984 951 ct->max_prefer = 0; 985 952 } 986 953 987 954 /* 988 * setup_msg_header -- ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã955 * setup_msg_header -- メッセージのヘッダ部分を作成する。 989 956 */ 990 957 … … 995 962 ct->snd_msg->len = sizeof(ct->snd_msg->msg); 996 963 997 /* ãããé¨ãè¨å®ããã*/964 /* ヘッダ部を設定する。*/ 998 965 ct->snd_msg->msg.hdr.type = type; 999 966 ct->snd_msg->msg.hdr.xid[0] = (ct->xid >> 16) & 0xff; … … 1005 972 1006 973 /* 1007 * common_options -- æ¨æºãªãã·ã§ã³ã追å ããã974 * common_options -- 標準オプションを追加する。 1008 975 */ 1009 976 … … 1024 991 #if defined(DHCP6_CLI_CFG_RAPID_COMMIT) 1025 992 1026 /* Rapid-commit ã®æå®*/993 /* Rapid-commit の指定 */ 1027 994 if (type == DHCP6_SOLICIT) 1028 995 ; … … 1030 997 #endif /* of #if defined(DHCP6_CLI_CFG_RAPID_COMMIT) */ 1031 998 1032 /* ã¯ã©ã¤ã¢ã³ã DUID ã追å ããã*/999 /* クライアント DUID を追加する。*/ 1033 1000 cid = (T_DHCP6_OPT_CLIENTID*)msg; 1034 1001 HOST2MSG16(cid->code, DHCP6_OPT_CLIENTID); … … 1037 1004 msg += ct->duid_len + sizeof(T_DHCP6_OPT_CLIENTID); 1038 1005 1039 /* ãµã¼ã DUID ã追å ããã*/1006 /* サーバ DUID を追加する。*/ 1040 1007 if (lease == NULL) { 1041 1008 if (!(type == DHCP6_SOLICIT || type == DHCP6_INFO_REQ)) … … 1053 1020 #if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) || defined(DHCP6_CLI_CFG_REQUEST_OLIST) 1054 1021 1055 /* å¿ 1056 é ã»è¦æ±ãªãã·ã§ã³ã追å ããã*/ 1022 /* 必須・要求オプションを追加する。*/ 1057 1023 oro = (T_DHCP6_OPT_ORO*)msg; 1058 1024 HOST2MSG16(oro->code, DHCP6_OPT_ORO); … … 1062 1028 #if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) 1063 1029 1064 /* å¿ 1065 é ãªãã·ã§ã³ã追å ããã*/ 1030 /* 必須オプションを追加する。*/ 1066 1031 HOST2MSG16(oro->len, MSG2HOST16(oro->len) + sizeof(required_plist) * 2); 1067 1032 for (ix = sizeof(required_plist); ix -- > 0; ) { … … 1074 1039 #if defined(DHCP6_CLI_CFG_REQUEST_OLIST) 1075 1040 1076 /* è¦æ±ãªãã·ã§ã³ã追å ããã*/1041 /* 要求オプションを追加する。*/ 1077 1042 HOST2MSG16(oro->len, MSG2HOST16(oro->len) + sizeof(request_plist) * 2); 1078 1043 for (ix = sizeof(request_plist); ix -- > 0; ) { … … 1089 1054 1090 1055 /* 1091 * rel_lease -- ãªã¼ã¹ããããªãã·ã§ã³ã解æãã¦å¤ã解æ¾ããã1056 * rel_lease -- リースされたオプションを解析して値を解放する。 1092 1057 */ 1093 1058 … … 1106 1071 uint8_t *opt, *last; 1107 1072 1108 /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãç¡ããã°ä½ãããªãã*/1073 /* 有効なリース・メッセージ構造体が無ければ何もしない。*/ 1109 1074 if (ct->act_msg == NULL) 1110 1075 return; … … 1154 1119 1155 1120 /* 1156 * set_lease -- ãªã¼ã¹ããããªãã·ã§ã³ã解æãã¦å¤ãè¨å®ããã1121 * set_lease -- リースされたオプションを解析して値を設定する。 1157 1122 */ 1158 1123 … … 1231 1196 1232 1197 /* 1233 * start_req_info -- INFO-REQUEST ãéå§ããã1198 * start_req_info -- INFO-REQUEST を開始する。 1234 1199 * 1235 * 注æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã1200 * 注意: DHCPv6 の RFC3315 には無い 1236 1201 */ 1237 1202 … … 1239 1204 start_req_info (T_DHCP6_CLI_CONTEXT *ct) 1240 1205 { 1241 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããããRFC3315 (18.1.5) åç 1242 §ã*/ 1206 /* タイムアウトを設定する。【RFC3315 (18.1.5) 参照】*/ 1243 1207 ct->IRT = TMO_INF_TIMEOUT; 1244 1208 ct->MRT = TMO_INF_MAX_RT; 1245 1209 ct->MRC = 0; 1246 1210 1247 /* DHCP6_CLI_CFG_ONE_TRY ãæå®ããã¦ããªããã°æ¨æºã¿ã¤ã ã¢ã¦ãã¾ã§åéããã*/1211 /* DHCP6_CLI_CFG_ONE_TRYが指定されていなければ標準タイムアウトまで再送する。*/ 1248 1212 #if defined(DHCP6_CLI_CFG_ONE_TRY) 1249 1213 ct->MRD = 0; … … 1252 1216 #endif 1253 1217 1254 /* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨å®ããã*/1218 /* 再送回数とトランザクション ID を設定する。*/ 1255 1219 init_retrans(ct); 1256 1220 1257 /* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1221 /* REPLY メッセージの受信タイムアウトを設定する。*/ 1258 1222 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1259 1223 ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD); … … 1261 1225 1262 1226 /* 1263 * INFO-REQUEST ã¡ãã»ã¼ã¸éä¿¡é 1264 延æéãè¨å®ããã 1265 * ãã ããTMO_INF_MAX_DELAY ã 1[s]ãªã®ã§ãdly_tsk()ã使ç¨ããã 1227 * INFO-REQUEST メッセージ送信遅延時間を設定する。 1228 * ただし、TMO_INF_MAX_DELAY が 1[s]なので、dly_tsk()を使用する。 1266 1229 */ 1267 1230 dly_tsk(netapp_rand() % TMO_INF_MAX_DELAY); 1268 1231 1269 /* SELECT ç¶æ 1270 ã«é·ç§»ããã*/ 1232 /* SELECT 状態に遷移する。*/ 1271 1233 ct->fsm = DHCP6_FSM_SELECT; 1272 1234 1273 /* INFO-REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1235 /* INFO-REQUEST メッセージを送信する。*/ 1274 1236 ct->flags |= DHCP6C_FLAG_TMOUT_SND_IREQ; 1275 1237 syscall(sig_sem(SEM_DHCP6_CLI_READY)); … … 1277 1239 1278 1240 /* 1279 * start_informed -- INFORMED ç¶æ 1280 ã«é·ç§»ããã 1241 * start_informed -- INFORMED 状態に遷移する。 1281 1242 * 1282 * 注æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã1243 * 注意: DHCPv6 の RFC3315 には無い 1283 1244 */ 1284 1245 … … 1286 1247 start_informed (T_DHCP6_CLI_CONTEXT *ct) 1287 1248 { 1288 /* æå¹ãªãªã¼ã¹æ 1289 å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/ 1249 /* 有効なリース情報が無ければ SLEEP に遷移する。*/ 1290 1250 if (ct->act_msg == NULL) { 1291 1251 ct->fsm = DHCP6_FSM_SLEEP; … … 1293 1253 } 1294 1254 1295 /* ãªã¼ã¹æ 1296 å ±ãè¨å®ããã*/ 1255 /* リース情報を設定する。*/ 1297 1256 set_lease(ct); 1298 1257 1299 /* INFORMED ç¶æ 1300 ã«é·ç§»ããã*/ 1258 /* INFORMED 状態に遷移する。*/ 1301 1259 ct->fsm = DHCP6_FSM_INFORMED; 1302 1260 … … 1305 1263 1306 1264 /* 1307 * start_rel_info -- ã¢ãã¬ã¹æ 1308 å ±ã解æ¾ããã 1265 * start_rel_info -- アドレス情報を解放する。 1309 1266 * 1310 * 注æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã1267 * 注意: DHCPv6 の RFC3315 には無い 1311 1268 */ 1312 1269 … … 1314 1271 start_rel_info (T_DHCP6_CLI_CONTEXT *ct) 1315 1272 { 1316 /* ãªã¼ã¹æ 1317 å ±ã解æ¾ããã*/ 1273 /* リース情報を解放する。*/ 1318 1274 rel_lease(ct); 1319 1275 1320 /* SLEEP ã«é·ç§»ããã*/1276 /* SLEEP に遷移する。*/ 1321 1277 ct->fsm = DHCP6_FSM_SLEEP; 1322 1278 syscall(sig_sem(SEM_DHCP6_CLI_READY)); … … 1324 1280 1325 1281 /* 1326 * select_info_reply -- æé©ãª REPLY (INFO-REQUEST ã¸ã®å¿ç) ã¡ãã»ã¼ã¸ãé¸æããã1282 * select_info_reply -- 最適な REPLY (INFO-REQUEST への応答) メッセージを選択する。 1327 1283 */ 1328 1284 … … 1332 1288 T_DHCP6_CLI_MSG *msg; 1333 1289 1334 /* æé©ãª REPLY ã¡ãã»ã¼ã¸ãé¸æããã*/1290 /* 最適な REPLY メッセージを選択する。*/ 1335 1291 if ((msg = select_msg(ct)) == NULL) 1336 1292 return false; … … 1341 1297 1342 1298 /* 1343 * setup_info_req_msg -- INFO-REQUEST ã¡ãã»ã¼ã¸ãä½æããã1299 * setup_info_req_msg -- INFO-REQUEST メッセージを作成する。 1344 1300 */ 1345 1301 … … 1349 1305 uint8_t *msg; 1350 1306 1351 /* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/1307 /* メッセージのヘッダ部分を作成する。*/ 1352 1308 if ((msg = setup_msg_header(ct, DHCP6_INFO_REQ)) == NULL) 1353 1309 return E_PAR; … … 1356 1312 return E_PAR; 1357 1313 1358 /* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨å®ããã*/1314 /* メッセージ構造体長を設定する。*/ 1359 1315 ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg; 1360 1316 1361 /* éä¿¡å 1362 ã¢ãã¬ã¹ãè¨å®ããã*/ 1317 /* 送信先アドレスを設定する。*/ 1363 1318 ct->dst.ipaddr = in6_addr_all_DHCP_relay_servers; 1364 1319 return E_OK; … … 1366 1321 1367 1322 /* 1368 * send_info_req_msg -- INFO-REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã1323 * send_info_req_msg -- INFO-REQUEST メッセージを送信する。 1369 1324 */ 1370 1325 … … 1375 1330 1376 1331 1377 /* REPLY ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ 1378 ã«é·ç§»ããã*/ 1332 /* REPLY メッセージの選択が終了していれば、BOUND 状態に遷移する。*/ 1379 1333 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 1380 1334 if (select_info_reply(ct)) { 1381 1335 1382 /* REPLY ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/1336 /* REPLY メッセージ受信タイマーを停止する。*/ 1383 1337 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1384 1338 ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0; 1385 1339 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 1386 1340 1387 /* INFORMED ç¶æ 1388 ã«é·ç§»ããã*/ 1341 /* INFORMED 状態に遷移する。*/ 1389 1342 start_informed(ct); 1390 1343 return; 1391 1344 } 1392 1345 1393 /* åéä¿¡åæ°ã確èªããã*/1346 /* 再送信回数を確認する。*/ 1394 1347 if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) { 1395 1348 ct->error = E_TMOUT; … … 1397 1350 } 1398 1351 1399 /* INFO-REQUEST ã¡ãã»ã¼ã¸ãä½æããã*/1352 /* INFO-REQUEST メッセージを作成する。*/ 1400 1353 if ((error = setup_info_req_msg(ct)) != E_OK) { 1401 1354 syslog(LOG_NOTICE, "[DHCP6C] error, setup request message: %s.", itron_strerror(error)); … … 1404 1357 } 1405 1358 1406 /* INFO-REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1359 /* INFO-REQUEST メッセージを送信する。*/ 1407 1360 error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 1408 1361 if (error != E_WBLK) { … … 1412 1365 } 1413 1366 1414 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1367 /* 再送信タイムアウトを設定する。*/ 1415 1368 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1416 1369 ct->timers[DHCP6C_TIMER_SND_IREQ] = SYSTIM2TIMER(ct->RT); 1417 1370 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 1418 1371 1419 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/1372 /* 再送信タイムアウトを更新する。*/ 1420 1373 advance_retrans(ct); 1421 1374 } … … 1426 1379 1427 1380 /* 1428 * select_reply -- æé©ãª REPLY ã¡ãã»ã¼ã¸ãé¸æããã1381 * select_reply -- 最適な REPLY メッセージを選択する。 1429 1382 */ 1430 1383 … … 1434 1387 T_DHCP6_CLI_MSG *msg; 1435 1388 1436 /* æé©ãª REPLY ã¡ãã»ã¼ã¸ãé¸æããã*/1389 /* 最適な REPLY メッセージを選択する。*/ 1437 1390 if ((msg = select_msg(ct)) == NULL) 1438 1391 return false; … … 1444 1397 1445 1398 /* 1446 * æé©ãª REPLY ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ã ADVERTISE ã¡ãã»ã¼ã¸æ¨å¥¨åº¦ã®1447 * 1/2 以ä¸ã®æã¯åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã1399 * 最適な REPLY メッセージの推奨度が ADVERTISE メッセージ推奨度の 1400 * 1/2 以下の時は受信メッセージ構造体リストに戻す。 1448 1401 */ 1449 1402 if ((ct->adv_msg != NULL) && (ct->max_prefer < (ct->adv_msg->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK) / 2)) { … … 1456 1409 1457 1410 /* 1458 * ct->act_msg ã«ããæå¹ãªå 1459 REPLY ã¡ãã»ã¼ã¸ã 1460 * åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã¦ã 1461 * æé©ãª REPLY ã¡ãã»ã¼ã¸ã act ã«ç§»ãã 1411 * ct->act_msg にある有効な元 REPLY メッセージを 1412 * 受信メッセージ構造体リストに戻して、 1413 * 最適な REPLY メッセージを act に移す。 1462 1414 */ 1463 1415 if (ct->act_msg != NULL) { … … 1474 1426 1475 1427 /* 1476 * select_adv -- æé©ãª ADVERTISE ã¡ãã»ã¼ã¸ãé¸æããã1428 * select_adv -- 最適な ADVERTISE メッセージを選択する。 1477 1429 */ 1478 1430 … … 1480 1432 select_adv (T_DHCP6_CLI_CONTEXT *ct) 1481 1433 { 1482 /* æé©ãª ADVERTISE ã¡ãã»ã¼ã¸ã adv ã«ç§»ãã*/1434 /* 最適な ADVERTISE メッセージを adv に移す。*/ 1483 1435 if ((ct->adv_msg = select_msg(ct)) != NULL) { 1484 1436 1485 1437 /* 1486 * æé©ãª ADVERTISE ã¡ãã»ã¼ã¸ã®ãµã¼ãã® IPv6 ã¢ãã¬ã¹ã1487 * 次ããéä¿¡ããã¢ãã¬ã¹ã«è¨å®ããã1438 * 最適な ADVERTISE メッセージのサーバの IPv6 アドレスを 1439 * 次から送信するアドレスに設定する。 1488 1440 */ 1489 1441 ct->dst = ct->adv_msg->srv; … … 1495 1447 1496 1448 /* 1497 * eval_expire -- æ¨å¥¨æå¹æéã¨æå¹æéã決å®ããã1449 * eval_expire -- 推奨有効時間と有効時間を決定する。 1498 1450 */ 1499 1451 … … 1511 1463 uint_t aoff, asize, addrs; 1512 1464 1513 /* ã¿ã¤ãã¼ãåæ¢ããã*/1465 /* タイマーを停止する。*/ 1514 1466 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1515 1467 ct->timers[DHCP6C_TIMER_RENEW] = 0; … … 1528 1480 opt = (T_DHCP6_OPTION*)msg; 1529 1481 1530 /* IA_NA/IA_PD ãªãã·ã§ã³ã§ããã°ãæå¹æéãæ´æ°ããã*/1482 /* IA_NA/IA_PD オプションであれば、有効時間を更新する。*/ 1531 1483 if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) { 1532 1484 … … 1540 1492 while (aoff < asize) { 1541 1493 1542 /* æçã®æ¨å¥¨æå¹æéãæ´æ°ããã*/1494 /* 最短の推奨有効時間を更新する。*/ 1543 1495 iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff); 1544 1496 //dump_msg_option("evl_depref1", (uint8_t*)iaa); … … 1552 1504 } 1553 1505 1554 /* IAADDR ã®æå¹æéãæ´æ°ããã*/1506 /* IAADDR の有効時間を更新する。*/ 1555 1507 iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff); 1556 1508 if (!(MSG2HOST16(iaa->len) & DHCP6C_IAA_FLAG_EXPIRED)) { … … 1570 1522 } 1571 1523 1572 /* iaa_low 㨠iaa_high/2 ã®æé·ã®æ¹ãæå¹æéã¨ãã¦é¸æããã*/1524 /* iaa_low と iaa_high/2 の最長の方を有効時間として選択する。*/ 1573 1525 if (iaa_low <= (iaa_high / 2)) 1574 1526 expire = iaa_high; … … 1576 1528 expire = iaa_low; 1577 1529 1578 /* expire ã æ大å¤ï¼ç¡å¶éï¼ã 1 以ä¸ãªãæ¢å®å¤ã«è¨å®ããã*/1530 /* expire が 最大値(無制限)か 1 以下なら既定値に設定する。*/ 1579 1531 if ((expire == DHCP6_MAX_TIME) || (expire <= 1)) 1580 1532 expire = SYSTIM2SEC(TMO_DHCP6C_REQ_LEASE) / 2; … … 1582 1534 expire /= 2; 1583 1535 1584 /* renew ã決å®ããã*/1536 /* renew を決定する。*/ 1585 1537 if (MSG2HOST32(ia->renew) == 0) 1586 1538 tval = expire + SYSTIM2SEC(ct->act_msg->rcv_time); … … 1592 1544 renew = tval; 1593 1545 1594 /* rebind ã決å®ããã*/1546 /* rebind を決定する。*/ 1595 1547 if (MSG2HOST32(ia->rebind) == 0) 1596 1548 tval = (expire + expire / 2) + SYSTIM2SEC(ct->act_msg->rcv_time); … … 1602 1554 rebind = tval; 1603 1555 1604 /* æçæå¹æéã¨æé·æå¹æéãæ´æ°ããã*/1556 /* 最短有効時間と最長有効時間を更新する。*/ 1605 1557 iaa_low += SYSTIM2SEC(ct->act_msg->rcv_time); 1606 1558 iaa_high += SYSTIM2SEC(ct->act_msg->rcv_time); … … 1614 1566 } 1615 1567 1616 /* ã¢ãã¬ã¹ãéããã¦ããªããã°ãSLEEP ç¶æ 1617 ã«é·ç§»ããã*/ 1568 /* アドレスが送られていなければ、SLEEP 状態に遷移する。*/ 1618 1569 if (addrs == 0) { 1619 1570 ct->fsm = DHCP6_FSM_SLEEP; 1620 1571 } 1621 1572 1622 /* ç¶æ 1623 ã«ä¾åããå¦ç */ 1573 /* 状態に依存する処理 */ 1624 1574 switch (ct->fsm) { 1625 1575 1626 1576 case DHCP6_FSM_BOUND: 1627 1577 1628 /* RENEW ã¿ã¤ã ã¢ã¦ãã®è¨å®*/1578 /* RENEW タイムアウトの設定 */ 1629 1579 if ((rebind > SYSTIM2SEC(time)) && (renew < rebind)) { 1630 1580 ct->next_MRD = SEC2SYSTIM(rebind) - time; … … 1634 1584 break; 1635 1585 } 1636 /* break; */ /* ä¸ã«æããã*/1586 /* break; */ /* 下に抜ける。*/ 1637 1587 1638 1588 case DHCP6_FSM_RENEW: 1639 1589 1640 /* REBIND ã¿ã¤ã ã¢ã¦ãã®è¨å®*/1590 /* REBIND タイムアウトの設定 */ 1641 1591 ct->MRD = SEC2SYSTIM(rebind); 1642 1592 if (rebind != DHCP6_MAX_TIME) { … … 1657 1607 } 1658 1608 1659 /* DEPREF ã¿ã¤ã ã¢ã¦ãã®è¨å®*/1609 /* DEPREF タイムアウトの設定 */ 1660 1610 if (depref != DHCP6_MAX_TIME) { 1661 1611 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); … … 1664 1614 } 1665 1615 1666 /* EXPIRE ã¿ã¤ã ã¢ã¦ãã®è¨å®*/1616 /* EXPIRE タイムアウトの設定 */ 1667 1617 if (low != DHCP6_MAX_TIME) { 1668 1618 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); … … 1673 1623 1674 1624 /* 1675 * start_init -- INIT ç¶æ 1676 ã«é·ç§»ããã 1625 * start_init -- INIT 状態に遷移する。 1677 1626 */ 1678 1627 … … 1680 1629 start_init (T_DHCP6_CLI_CONTEXT *ct) 1681 1630 { 1682 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããããRFC3315 (17.1.2) åç 1683 §ã*/ 1631 /* タイムアウトを設定する。【RFC3315 (17.1.2) 参照】*/ 1684 1632 ct->IRT = TMO_SOL_TIMEOUT; 1685 1633 ct->MRT = TMO_SOL_MAX_RT; 1686 1634 ct->MRC = 0; 1687 1635 1688 /* DHCP6_CLI_CFG_ONE_TRY ãæå®ããã¦ããªããã°æ¨æºã¿ã¤ã ã¢ã¦ãã¾ã§åéããã*/1636 /* DHCP6_CLI_CFG_ONE_TRYが指定されていなければ標準タイムアウトまで再送する。*/ 1689 1637 #if defined(DHCP6_CLI_CFG_ONE_TRY) 1690 1638 ct->MRD = 0; … … 1693 1641 #endif 1694 1642 1695 /* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨å®ããã*/1643 /* 再送回数とトランザクション ID を設定する。*/ 1696 1644 init_retrans(ct); 1697 1645 1698 /* RFC3315 (17.1.2) ã®è¦å®ã«å¾ã£ã¦ã¿ã¤ã ã¢ã¦ãã調æ´ããã*/1646 /* RFC3315 (17.1.2) の規定に従ってタイムアウトを調整する。*/ 1699 1647 if (ct->RT <= ct->IRT) 1700 1648 ct->RT = ct->IRT + (ct->IRT - ct->RT); … … 1702 1650 ct->RT = ct->IRT + SEC2SYSTIM(1); 1703 1651 1704 /* ADVERTISE ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1652 /* ADVERTISE メッセージの受信タイムアウトを設定する。*/ 1705 1653 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1706 1654 ct->timers[DHCP6C_TIMER_RCV_ADV] = SYSTIM2TIMER(ct->MRD); … … 1708 1656 1709 1657 /* 1710 * SOLICIT ã¡ãã»ã¼ã¸éä¿¡é 1711 延æéãè¨å®ããã 1712 * ãã ããTMO_SOL_MAX_DELAY ã 1[s]ãªã®ã§ãdly_tsk()ã使ç¨ããã 1658 * SOLICIT メッセージ送信遅延時間を設定する。 1659 * ただし、TMO_SOL_MAX_DELAY が 1[s]なので、dly_tsk()を使用する。 1713 1660 */ 1714 1661 dly_tsk(netapp_rand() % TMO_SOL_MAX_DELAY); 1715 1662 1716 /* INIT ç¶æ 1717 ã«é·ç§»ããã*/ 1663 /* INIT 状態に遷移する。*/ 1718 1664 ct->fsm = DHCP6_FSM_INIT; 1719 1665 1720 /* SOLICIT ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1666 /* SOLICIT メッセージを送信する。*/ 1721 1667 ct->flags |= DHCP6C_FLAG_TMOUT_SND_SOL; 1722 1668 syscall(sig_sem(SEM_DHCP6_CLI_READY)); … … 1724 1670 1725 1671 /* 1726 * start_select -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ã㦠SELECT ç¶æ 1727 ã«é·ç§»ããã 1672 * start_select -- REQUEST メッセージを送信して SELECT 状態に遷移する。 1728 1673 */ 1729 1674 … … 1731 1676 start_select (T_DHCP6_CLI_CONTEXT *ct) 1732 1677 { 1733 /* æå¹ãª ADVERTISE ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã° SLEEP ç¶æ 1734 ã«é·ç§»ããã*/ 1678 /* 有効な ADVERTISE メッセージを受信していなければ SLEEP 状態に遷移する。*/ 1735 1679 if (ct->adv_msg == NULL) { 1736 1680 ct->fsm = DHCP6_FSM_SLEEP; … … 1738 1682 } 1739 1683 1740 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããããRFC3315 (18.1.1) åç 1741 §ã*/ 1684 /* タイムアウトを設定する。【RFC3315 (18.1.1) 参照】*/ 1742 1685 ct->IRT = TMO_REQ_TIMEOUT; 1743 1686 ct->MRT = TMO_REQ_MAX_RT; … … 1745 1688 ct->MRD = 0; 1746 1689 1747 /* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨å®ããã*/1690 /* 再送回数とトランザクション ID を設定する。*/ 1748 1691 init_retrans(ct); 1749 1692 1750 /* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1693 /* REPLY メッセージの受信タイムアウトを設定する。*/ 1751 1694 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1752 1695 ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD); 1753 1696 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 1754 1697 1755 /* SELECT ç¶æ 1756 ã«é·ç§»ããã*/ 1698 /* SELECT 状態に遷移する。*/ 1757 1699 ct->fsm = DHCP6_FSM_SELECT; 1758 1700 1759 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1701 /* REQUEST メッセージを送信する。*/ 1760 1702 ct->flags |= DHCP6C_FLAG_TMOUT_SND_REQ; 1761 1703 syscall(sig_sem(SEM_DHCP6_CLI_READY)); … … 1763 1705 1764 1706 /* 1765 * start_bound -- BOUND ç¶æ 1766 ã«é·ç§»ããã 1707 * start_bound -- BOUND 状態に遷移する。 1767 1708 */ 1768 1709 … … 1770 1711 start_bound (T_DHCP6_CLI_CONTEXT *ct) 1771 1712 { 1772 /* æå¹ãªãªã¼ã¹æ 1773 å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/ 1713 /* 有効なリース情報が無ければ SLEEP に遷移する。*/ 1774 1714 if (ct->act_msg == NULL) 1775 1715 ct->fsm = DHCP6_FSM_SLEEP; 1776 1716 1777 /* BOUND ç¶æ 1778 ã«é·ç§»ããã*/ 1717 /* BOUND 状態に遷移する。*/ 1779 1718 ct->fsm = DHCP6_FSM_BOUND; 1780 1719 1781 /* ãªã¼ã¹æ 1782 å ±ãè¨å®ããã*/ 1720 /* リース情報を設定する。*/ 1783 1721 set_lease(ct); 1784 1722 1785 /* æå¹æéã決å®ããã*/1723 /* 有効時間を決定する。*/ 1786 1724 eval_expire(ct); 1787 1725 1788 1726 } 1789 1727 /* 1790 * start_renew -- RENEW ç¶æ 1791 ã«é·ç§»ããã 1728 * start_renew -- RENEW 状態に遷移する。 1792 1729 */ 1793 1730 … … 1795 1732 start_renew (T_DHCP6_CLI_CONTEXT *ct) 1796 1733 { 1797 /* æå¹ãªãªã¼ã¹æ 1798 å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/ 1734 /* 有効なリース情報が無ければ SLEEP に遷移する。*/ 1799 1735 if (ct->act_msg == NULL) { 1800 1736 ct->fsm = DHCP6_FSM_SLEEP; … … 1802 1738 } 1803 1739 1804 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããããRFC3315 (18.1.3) åç 1805 §ã*/ 1740 /* タイムアウトを設定する。【RFC3315 (18.1.3) 参照】*/ 1806 1741 ct->IRT = TMO_REN_TIMEOUT; 1807 1742 ct->MRT = TMO_REN_MAX_RT; … … 1809 1744 ct->MRD = ct->next_MRD; 1810 1745 1811 /* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨å®ããã*/1746 /* 再送回数とトランザクション ID を設定する。*/ 1812 1747 init_retrans(ct); 1813 1748 1814 /* REFRESH ã¡ãã»ã¼ã¸ã¿ã¤ããè¨å®ããã*/1749 /* REFRESH メッセージタイプを設定する。*/ 1815 1750 ct->refresh_type = DHCP6_RENEW; 1816 1751 1817 /* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1752 /* REPLY メッセージの受信タイムアウトを設定する。*/ 1818 1753 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1819 1754 ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD); 1820 1755 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 1821 1756 1822 /* RENEW ç¶æ 1823 ã«é·ç§»ããã*/ 1757 /* RENEW 状態に遷移する。*/ 1824 1758 ct->fsm = DHCP6_FSM_RENEW; 1825 1759 1826 /* REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1760 /* REFRESH メッセージを送信する。*/ 1827 1761 ct->flags |= DHCP6C_FLAG_TMOUT_SND_REF; 1828 1762 syscall(sig_sem(SEM_DHCP6_CLI_READY)); … … 1830 1764 1831 1765 /* 1832 * start_rebind -- REBIND ç¶æ 1833 ã«é·ç§»ããã 1766 * start_rebind -- REBIND 状態に遷移する。 1834 1767 */ 1835 1768 … … 1837 1770 start_rebind (T_DHCP6_CLI_CONTEXT *ct) 1838 1771 { 1839 /* æå¹ãªãªã¼ã¹æ 1840 å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/ 1772 /* 有効なリース情報が無ければ SLEEP に遷移する。*/ 1841 1773 if (ct->act_msg == NULL) { 1842 1774 ct->fsm = DHCP6_FSM_SLEEP; … … 1844 1776 } 1845 1777 1846 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããããRFC3315 (18.1.4) åç 1847 §ã*/ 1778 /* タイムアウトを設定する。【RFC3315 (18.1.4) 参照】*/ 1848 1779 ct->IRT = TMO_REB_TIMEOUT; 1849 1780 ct->MRT = TMO_REB_MAX_RT; … … 1851 1782 ct->MRD = ct->next_MRD; 1852 1783 1853 /* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨å®ããã*/1784 /* 再送回数とトランザクション ID を設定する。*/ 1854 1785 init_retrans(ct); 1855 1786 1856 /* REFRESH ã¡ãã»ã¼ã¸ã¿ã¤ããè¨å®ããã*/1787 /* REFRESH メッセージタイプを設定する。*/ 1857 1788 ct->refresh_type = DHCP6_REBIND; 1858 1789 1859 /* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/1790 /* REPLY メッセージの受信タイムアウトを設定する。*/ 1860 1791 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 1861 1792 ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD); 1862 1793 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 1863 1794 1864 /* éä¿¡å 1865 ã¢ãã¬ã¹ãè¨å®ããã*/ 1795 /* 送信先アドレスを設定する。*/ 1866 1796 ct->dst.ipaddr = in6_addr_all_DHCP_relay_servers; 1867 1797 1868 /* REBIND ç¶æ 1869 ã«é·ç§»ããã*/ 1798 /* REBIND 状態に遷移する。*/ 1870 1799 ct->fsm = DHCP6_FSM_REBIND; 1871 1800 1872 /* REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1801 /* REFRESH メッセージを送信する。*/ 1873 1802 ct->flags |= DHCP6C_FLAG_TMOUT_SND_REF; 1874 1803 syscall(sig_sem(SEM_DHCP6_CLI_READY)); … … 1876 1805 1877 1806 /* 1878 * start_rel_info -- ã¢ãã¬ã¹æ 1879 å ±ã解æ¾ããã 1807 * start_rel_info -- アドレス情報を解放する。 1880 1808 * 1881 * 注æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã1809 * 注意: DHCPv6 の RFC3315 には無い 1882 1810 */ 1883 1811 … … 1885 1813 start_rel_info (T_DHCP6_CLI_CONTEXT *ct) 1886 1814 { 1887 /* å 1888 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 1815 /* 全ての TIMER をキャンセルする。*/ 1889 1816 cancel_all_timers(ct); 1890 1817 1891 /* ãªã¼ã¹æ 1892 å ±ã解æ¾ããã*/ 1818 /* リース情報を解放する。*/ 1893 1819 rel_lease(ct); 1894 1820 1895 /* æå¹ãªãªã¼ã¹æ 1896 å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/ 1821 /* 有効なリース情報が無ければ SLEEP に遷移する。*/ 1897 1822 if (ct->act_msg == NULL) { 1898 1823 ct->fsm = DHCP6_FSM_SLEEP; … … 1900 1825 } 1901 1826 1902 /* ã¿ã¤ã ã¢ã¦ããè¨å®ããããRFC3315 (18.1.1) åç 1903 §ã*/ 1827 /* タイムアウトを設定する。【RFC3315 (18.1.1) 参照】*/ 1904 1828 ct->IRT = TMO_REL_TIMEOUT; 1905 1829 ct->MRT = 0; … … 1907 1831 ct->MRD = 0; 1908 1832 1909 /* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨å®ããã*/1833 /* 再送回数とトランザクション ID を設定する。*/ 1910 1834 init_retrans(ct); 1911 1835 1912 /* REL_INFO ç¶æ 1913 ã«é·ç§»ããã*/ 1836 /* REL_INFO 状態に遷移する。*/ 1914 1837 ct->fsm = DHCP6_FSM_REL_INFO; 1915 1838 1916 /* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã*/1839 /* RELEASE メッセージを送信する。*/ 1917 1840 ct->flags |= DHCP6C_FLAG_TMOUT_SND_REL; 1918 1841 syscall(sig_sem(SEM_DHCP6_CLI_READY)); … … 1922 1845 1923 1846 /* 1924 * solicit_ia_option -- SOLICIT ã¡ãã»ã¼ã¸ã® IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å 1925 ±éé¨åã追å ããã 1847 * solicit_ia_option -- SOLICIT メッセージの IA_NA/IA_TA/IA_PD オプションの共通部分を追加する。 1926 1848 */ 1927 1849 … … 1932 1854 uint_t off, len; 1933 1855 1934 /* ãªãã·ã§ã³ã³ã¼ããè¨å®ããã*/1856 /* オプションコードを設定する。*/ 1935 1857 ia = (T_DHCP6_OPT_IA_TA*)msg; 1936 1858 HOST2MSG16(ia->code, code); 1937 1859 1938 /* IAID ãè¨å®ããã*/1860 /* IAID を設定する。*/ 1939 1861 if (sizeof(ct->sc->ifaddr.lladdr) > sizeof(uint32_t)) { 1940 1862 off = sizeof(ct->sc->ifaddr.lladdr) - 4; … … 1949 1871 1950 1872 /* 1951 * solicit_iaaddr_option -- SOLICIT ã¡ãã»ã¼ã¸ã® IAADDR ãªãã·ã§ã³ã追å ããã1873 * solicit_iaaddr_option -- SOLICIT メッセージの IAADDR オプションを追加する。 1952 1874 */ 1953 1875 … … 1961 1883 1962 1884 /* 1963 * æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ãã¦ã1964 * æå®ããããªãã·ã§ã³ï¼IA_NA/IA_TA/IA_PDï¼ãããå ´åã¯1965 * åãã¢ãã¬ã¹ãè¦æ±ããã1885 * 有効なリース・メッセージが残っていて、 1886 * 指定されたオプション(IA_NA/IA_TA/IA_PD)がある場合は 1887 * 同じアドレスを要求する。 1966 1888 */ 1967 1889 if ((ct->act_msg == NULL) || (opt = find_msg_option(ct->act_msg, code, 0)) == NULL) 1968 1890 return 0; 1969 1891 1970 /* ãªãã·ã§ã³ã³ã¼ããè¨å®ããã*/1892 /* オプションコードを設定する。*/ 1971 1893 iaa = (T_DHCP6_OPT_IAADDR*)msg; 1972 1894 HOST2MSG16(iaa->code, DHCP6_OPT_IAADDR); 1973 1895 1974 /* IAADDR ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨å®ããã*/1896 /* IAADDR オプションを除いたオプション長を設定する。*/ 1975 1897 HOST2MSG16(iaa->len, sizeof(*iaa) - sizeof(T_DHCP6_OPTION)); 1976 1898 1977 /* ã¢ãã¬ã¹ãè¨å®ããã*/1899 /* アドレスを設定する。*/ 1978 1900 len = code == DHCP6_OPT_IA_TA ? sizeof(T_DHCP6_OPT_IA_TA) 1979 1901 : sizeof(T_DHCP6_OPT_IA_NA_PD); 1980 1902 memcpy(&iaa->addr, opt + sizeof(T_DHCP6_OPTION) + len, sizeof(iaa->addr)); 1981 1903 1982 /* T1 ãT2 ãè¨å®ããã*/1904 /* T1、T2 を設定する。*/ 1983 1905 t1 = TMO_DHCP6C_REQ_LEASE / 2; 1984 1906 t2 = t1 + (t1 / 2); … … 1992 1914 1993 1915 /* 1994 * solicit_ia_na_pd -- SOLICIT ã¡ãã»ã¼ã¸ã® IA_NA/IA_PD ãªãã·ã§ã³ã追å ããã1916 * solicit_ia_na_pd -- SOLICIT メッセージの IA_NA/IA_PD オプションを追加する。 1995 1917 */ 1996 1918 … … 2004 1926 uint_t len; 2005 1927 2006 /* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å 2007 ±éé¨åã追å ããã*/ 1928 /* IA_NA/IA_TA/IA_PD オプションの共通部分を追加する。*/ 2008 1929 solicit_ia_option(ct, msg, code); 2009 1930 ia = (T_DHCP6_OPT_IA_NA_PD*)msg; 2010 1931 2011 /* T1 ãT2 ãè¨å®ããã*/1932 /* T1、T2 を設定する。*/ 2012 1933 t1 = TMO_DHCP6C_REQ_LEASE / 2; 2013 1934 t2 = t1 + (t1 / 2); … … 2016 1937 2017 1938 /* 2018 * æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ãã¦ã2019 * æå®ããããªãã·ã§ã³ï¼IA_NA/IA_PDï¼ãããå ´åã¯2020 * åãã¢ãã¬ã¹ãè¦æ±ããã1939 * 有効なリース・メッセージが残っていて、 1940 * 指定されたオプション(IA_NA/IA_PD)がある場合は 1941 * 同じアドレスを要求する。 2021 1942 */ 2022 1943 msg += sizeof(*ia); 2023 1944 len = solicit_iaaddr_option(ct, msg, code); 2024 1945 2025 /* IA_NAIA_TA/IA_PD ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨å®ããã*/1946 /* IA_NAIA_TA/IA_PD オプションを除いたオプション長を設定する。*/ 2026 1947 HOST2MSG16(ia->len, (sizeof(*ia) + len) - sizeof(T_DHCP6_OPTION)); 2027 1948 … … 2032 1953 2033 1954 /* 2034 * solicit_ia_ta -- SOLICIT ã¡ãã»ã¼ã¸ã® IA_TA ãªãã·ã§ã³ã追å ããã1955 * solicit_ia_ta -- SOLICIT メッセージの IA_TA オプションを追加する。 2035 1956 */ 2036 1957 … … 2042 1963 T_DHCP6_OPT_IA_TA *ia; 2043 1964 2044 /* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å 2045 ±éé¨åã追å ããã*/ 1965 /* IA_NA/IA_TA/IA_PD オプションの共通部分を追加する。*/ 2046 1966 solicit_ia_option(ct, msg, DHCP6_OPT_IA_TA); 2047 1967 2048 /* IA_NAIA_TA/IA_PD ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨å®ããã*/1968 /* IA_NAIA_TA/IA_PD オプションを除いたオプション長を設定する。*/ 2049 1969 ia = (T_DHCP6_OPT_IA_TA*)msg; 2050 1970 HOST2MSG16(ia->len, sizeof(*ia) - sizeof(T_DHCP6_OPTION)); 2051 1971 2052 1972 /* 2053 * æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ãã¦ã2054 * æå®ããããªãã·ã§ã³ï¼IA_TAï¼ãããå ´åã¯2055 * åãã¢ãã¬ã¹ãè¦æ±ããã1973 * 有効なリース・メッセージが残っていて、 1974 * 指定されたオプション(IA_TA)がある場合は 1975 * 同じアドレスを要求する。 2056 1976 */ 2057 1977 msg += sizeof(*ia); … … 2062 1982 2063 1983 /* 2064 * setup_solicit_msg -- SOLICIT ã¡ãã»ã¼ã¸ãä½æããã1984 * setup_solicit_msg -- SOLICIT メッセージを作成する。 2065 1985 */ 2066 1986 … … 2070 1990 uint8_t *head, *msg; 2071 1991 2072 /* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/1992 /* メッセージのヘッダ部分を作成する。*/ 2073 1993 if ((head = setup_msg_header(ct, DHCP6_SOLICIT)) == NULL) 2074 1994 return E_PAR; … … 2079 1999 #if defined(DHCP6_CLI_CFG_IA_NA) 2080 2000 2081 /* IA_NA ã追å ããã*/2001 /* IA_NA を追加する。*/ 2082 2002 msg = solicit_ia_na_pd(ct, msg, DHCP6_OPT_IA_NA); 2083 2003 #endif … … 2085 2005 #if defined(DHCP6_CLI_CFG_IA_TA) 2086 2006 2087 /* IA_TA ã追å ããã*/2007 /* IA_TA を追加する。*/ 2088 2008 msg = solicit_ia_ta(ct, msg); 2089 2009 #endif … … 2091 2011 #if defined(DHCP6_CLI_CFG_IA_PD) 2092 2012 2093 /* IA_PD ã追å ããã*/2013 /* IA_PD を追加する。*/ 2094 2014 msg = solicit_ia_na_pd(ct, msg, DHCP6_OPT_IA_PD); 2095 2015 #endif 2096 2016 2097 /* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨å®ããã*/2017 /* メッセージ構造体長を設定する。*/ 2098 2018 ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg; 2099 2019 2100 /* éä¿¡å 2101 ã¢ãã¬ã¹ãè¨å®ããã*/ 2020 /* 送信先アドレスを設定する。*/ 2102 2021 ct->dst.ipaddr = in6_addr_all_DHCP_relay_servers; 2103 2022 return E_OK; … … 2105 2024 2106 2025 /* 2107 * send_solicit_msg -- SOLICIT ã¡ãã»ã¼ã¸ãéä¿¡ããã2026 * send_solicit_msg -- SOLICIT メッセージを送信する。 2108 2027 */ 2109 2028 … … 2116 2035 ct->error = E_OK; 2117 2036 2118 /* ADVERTISE ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãSELECT ç¶æ 2119 ã«é·ç§»ããã*/ 2037 /* ADVERTISE メッセージの選択が終了していれば、SELECT 状態に遷移する。*/ 2120 2038 if (select_adv(ct)) { 2121 2039 2122 /* ADVERTISE ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/2040 /* ADVERTISE メッセージ受信タイマーを停止する。*/ 2123 2041 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2124 2042 ct->timers[DHCP6C_TIMER_RCV_ADV] = 0; 2125 2043 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2126 2044 2127 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ã㦠SELECT ç¶æ 2128 ã«é·ç§»ããã*/ 2045 /* REQUEST メッセージを送信して SELECT 状態に遷移する。*/ 2129 2046 start_select(ct); 2130 2047 return; 2131 2048 } 2132 2049 2133 /* åéä¿¡åæ°ã確èªããã*/2050 /* 再送信回数を確認する。*/ 2134 2051 if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) { 2135 2052 ct->error = E_TMOUT; … … 2137 2054 } 2138 2055 2139 /* SOLICIT ã¡ãã»ã¼ã¸ãä½æããã*/2056 /* SOLICIT メッセージを作成する。*/ 2140 2057 if ((error = setup_solicit_msg(ct, NULL)) != E_OK) { 2141 2058 syslog(LOG_NOTICE, "[DHCP6C] error, setup solicit message: %s.", itron_strerror(error)); … … 2144 2061 } 2145 2062 2146 /* SOLICIT ã¡ãã»ã¼ã¸ãéä¿¡ããã*/2063 /* SOLICIT メッセージを送信する。*/ 2147 2064 error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 2148 2065 if (error != E_WBLK) { … … 2152 2069 } 2153 2070 2154 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/2071 /* 再送信タイムアウトを設定する。*/ 2155 2072 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2156 2073 ct->timers[DHCP6C_TIMER_SND_SOL] = SYSTIM2TIMER(ct->RT); 2157 2074 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2158 2075 2159 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/2076 /* 再送信タイムアウトを更新する。*/ 2160 2077 advance_retrans(ct); 2161 2078 } 2162 2079 2163 2080 /* 2164 * request_ia_option -- REQUEST ã¡ãã»ã¼ã¸ã® IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å 2165 ±éé¨åã追å ããã 2081 * request_ia_option -- REQUEST メッセージの IA_NA/IA_TA/IA_PD オプションの共通部分を追加する。 2166 2082 */ 2167 2083 … … 2176 2092 src = (T_DHCP6_OPT_IA_NA_PD*)lease; 2177 2093 2178 /* ãªãã·ã§ã³ã³ã¼ããè¨å®ããã*/2094 /* オプションコードを設定する。*/ 2179 2095 HOST2MSG16(dst->code, code); 2180 2096 2181 /* IA_NAIA_TA/IA_PD ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨å®ããã*/2097 /* IA_NAIA_TA/IA_PD オプションを除いたオプション長を設定する。*/ 2182 2098 HOST2MSG16(dst->len, sizeof(*dst) - (sizeof(dst->code) + sizeof(dst->len))); 2183 2099 2184 /* ADVERTISE ã¡ãã»ã¼ã¸ãã IA ID ãã³ãã¼ããã*/2100 /* ADVERTISE メッセージから IA ID をコピーする。*/ 2185 2101 memcpy(&dst->iaid, &src->iaid, sizeof(src->iaid)); 2186 2102 … … 2191 2107 2192 2108 /* 2193 * request_ia_na_pd -- REQUEST ã¡ãã»ã¼ã¸ã® IA_NA/IA_PD ãªãã·ã§ã³ã追å ããã2109 * request_ia_na_pd -- REQUEST メッセージの IA_NA/IA_PD オプションを追加する。 2194 2110 */ 2195 2111 … … 2205 2121 uint_t ix, nsiaa; 2206 2122 2207 /* ADVERTISE ã¡ãã»ã¼ã¸ã«æå®ããããªãã·ã§ã³ããããã¨ã確èªããã*/2123 /* ADVERTISE メッセージに指定されたオプションがあることを確認する。*/ 2208 2124 if ((opt = find_msg_option(lease, opt_code, 0)) == NULL) 2209 2125 return msg; 2210 2126 2211 /* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å 2212 ±éé¨åã追å ããã*/ 2127 /* IA_NA/IA_TA/IA_PD オプションの共通部分を追加する。*/ 2213 2128 dia = (T_DHCP6_OPT_IA_NA_PD*)msg; 2214 2129 sia = (T_DHCP6_OPT_IA_NA_PD*)opt; 2215 2130 msg = request_ia_option(ct, msg, opt_code, opt); 2216 2131 2217 /* T1 ãT2 ã決å®ããã*/2132 /* T1、T2 を決定する。*/ 2218 2133 switch (msg_type) { 2219 2134 case DHCP6_REQUEST: … … 2236 2151 } 2237 2152 2238 /* T1 ãT2 ãè¨å®ããã*/2153 /* T1、T2 を設定する。*/ 2239 2154 HOST2MSG32(dia->renew, t1); 2240 2155 HOST2MSG32(dia->rebind, t2); 2241 2156 msg += sizeof(dia->renew) + sizeof(dia->rebind); 2242 2157 2243 /* IAADDR ãªãã·ã§ã³ãè¨å®ããã*/2158 /* IAADDR オプションを設定する。*/ 2244 2159 nsiaa = ((MSG2HOST16(sia->len) & ~DHCP6C_IAA_FLAG_MASK) - (sizeof(*sia) - (sizeof(sia->code) + sizeof(sia->len)))) / sizeof(*siaa); 2245 2160 … … 2248 2163 siaa = (T_DHCP6_OPT_IAADDR*)((opt + sizeof(*sia)) + sizeof(*siaa) * ix); 2249 2164 2250 /* ã¢ãã¬ã¹ã®æå¹æéãåãã¦ããã°ã¹ãããããã*/2165 /* アドレスの有効期限が切れていればスキップする。*/ 2251 2166 if (MSG2HOST16(siaa->len) & DHCP6C_IAA_FLAG_EXPIRED) 2252 2167 continue; 2253 2168 2254 /* ã³ã¼ãã¨é·ããè¨å®ããã*/2169 /* コードと長さを設定する。*/ 2255 2170 memcpy(&diaa->code, &siaa->code, sizeof(siaa->code)); 2256 2171 HOST2MSG16(diaa->len, MSG2HOST16(siaa->len) & ~DHCP6C_IAA_FLAG_MASK); 2257 2172 msg += sizeof(dia->code) + sizeof(dia->len); 2258 2173 2259 /* IPv6 ã¢ãã¬ã¹ãã³ãã¼ããã*/2174 /* IPv6 アドレスをコピーする。*/ 2260 2175 memcpy(&diaa->addr, &siaa->addr, sizeof(siaa->addr)); 2261 2176 msg += sizeof(diaa->addr); 2262 2177 2263 /* T1 ãT2 ã決å®ããã*/2178 /* T1、T2 を決定する。*/ 2264 2179 switch (msg_type) { 2265 2180 case DHCP6_REQUEST: … … 2282 2197 } 2283 2198 2284 /* T1 ãT2 ãè¨å®ããã*/2199 /* T1、T2 を設定する。*/ 2285 2200 HOST2MSG32(diaa->prefer, t1); 2286 2201 HOST2MSG32(diaa->valid, t2); 2287 2202 msg += sizeof(diaa->prefer) + sizeof(diaa->valid); 2288 2203 2289 /* IAADDR ã«ä»å ãªãã·ã§ã³ã追å ãããå 2290 éããã*/ 2204 /* IAADDR に付加オプションを追加する【先送り】。*/ 2291 2205 } 2292 2206 … … 2299 2213 2300 2214 /* 2301 * request_ia_ta -- REQUEST ã¡ãã»ã¼ã¸ã® IA_TA ãªãã·ã§ã³ã追å ããã2215 * request_ia_ta -- REQUEST メッセージの IA_TA オプションを追加する。 2302 2216 */ 2303 2217 … … 2313 2227 uint_t ix, nsiaa; 2314 2228 2315 /* ADVERTISE ã¡ãã»ã¼ã¸ã« IA_TA ãªãã·ã§ã³ããããã¨ã確èªããã*/2229 /* ADVERTISE メッセージに IA_TA オプションがあることを確認する。*/ 2316 2230 if ((opt = find_msg_option(lease, DHCP6_OPT_IA_TA, 0)) == NULL) 2317 2231 return msg; 2318 2232 2319 /* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å 2320 ±éé¨åã追å ããã*/ 2233 /* IA_NA/IA_TA/IA_PD オプションの共通部分を追加する。*/ 2321 2234 dia = (T_DHCP6_OPT_IA_TA*)msg; 2322 2235 sia = (T_DHCP6_OPT_IA_TA*)opt; 2323 2236 msg = request_ia_option(ct, msg, DHCP6_OPT_IA_TA, opt); 2324 2237 2325 /* IAADDR ãªãã·ã§ã³ãè¨å®ããã*/2238 /* IAADDR オプションを設定する。*/ 2326 2239 nsiaa = ((MSG2HOST16(sia->len) & ~DHCP6C_IAA_FLAG_MASK) - (sizeof(*sia) - (sizeof(sia->code) + sizeof(sia->len)))) / sizeof(*siaa); 2327 2240 … … 2330 2243 siaa = (T_DHCP6_OPT_IAADDR*)((opt + sizeof(*sia)) + sizeof(*siaa) * ix); 2331 2244 2332 /* ã¢ãã¬ã¹ã®æå¹æéãåãã¦ããã°ã¹ãããããã*/2245 /* アドレスの有効期限が切れていればスキップする。*/ 2333 2246 if (MSG2HOST16(siaa->len) & DHCP6C_IAA_FLAG_EXPIRED) 2334 2247 continue; 2335 2248 2336 /* ã³ã¼ãã¨é·ããè¨å®ããã*/2249 /* コードと長さを設定する。*/ 2337 2250 memcpy(diaa->code, siaa->code, sizeof(siaa->code)); 2338 2251 diaa->len = HOST2MSG16(MSG2HOST16(siaa->len) & ~DHCP6C_IAA_FLAG_MASK); 2339 2252 msg += sizeof(dia->code) + sizeof(dia->len); 2340 2253 2341 /* IPv6 ã¢ãã¬ã¹ãã³ãã¼ããã*/2254 /* IPv6 アドレスをコピーする。*/ 2342 2255 memcpy(diaa->addr, siaa->addr, sizeof(siaa->addr)); 2343 2256 msg += sizeof(diaa->addr); 2344 2257 2345 /* T1 ãT2 ã決å®ããã*/2258 /* T1、T2 を決定する。*/ 2346 2259 switch (msg_type) { 2347 2260 case DHCP6_REQUEST: … … 2364 2277 } 2365 2278 2366 /* T1 ãT2 ãè¨å®ããã*/2279 /* T1、T2 を設定する。*/ 2367 2280 HOST2MSG32(diaa->prefer, t1); 2368 2281 HOST2MSG32(diaa->valid, t2); 2369 2282 msg += sizeof(diaa->prefer) + sizeof(diaa->valid); 2370 2283 2371 /* IAADDR ã«ä»å ãªãã·ã§ã³ã追å ãããå 2372 éããã*/ 2284 /* IAADDR に付加オプションを追加する【先送り】。*/ 2373 2285 } 2374 2286 … … 2379 2291 2380 2292 /* 2381 * setup_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãä½æããã2293 * setup_request_msg -- REQUEST メッセージを作成する。 2382 2294 */ 2383 2295 … … 2387 2299 uint8_t *msg; 2388 2300 2389 /* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/2301 /* メッセージのヘッダ部分を作成する。*/ 2390 2302 if ((msg = setup_msg_header(ct, type)) == NULL) 2391 2303 return E_PAR; … … 2396 2308 #if defined(DHCP6_CLI_CFG_IA_NA) 2397 2309 2398 /* IA_NA ã追å ããã*/2310 /* IA_NA を追加する。*/ 2399 2311 msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_NA, lease); 2400 2312 #endif … … 2402 2314 #if defined(DHCP6_CLI_CFG_IA_TA) 2403 2315 2404 /* IA_TA ã追å ããã*/2316 /* IA_TA を追加する。*/ 2405 2317 msg = request_ia_ta(ct, msg, type, lease); 2406 2318 #endif … … 2408 2320 #if defined(DHCP6_CLI_CFG_IA_PD) 2409 2321 2410 /* IA_PD ã追å ããã*/2322 /* IA_PD を追加する。*/ 2411 2323 msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_PD, lease); 2412 2324 #endif 2413 2325 2414 /* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨å®ããã*/2326 /* メッセージ構造体長を設定する。*/ 2415 2327 ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg; 2416 2328 return E_OK; … … 2418 2330 2419 2331 /* 2420 * send_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã2332 * send_request_msg -- REQUEST メッセージを送信する。 2421 2333 */ 2422 2334 … … 2429 2341 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2430 2342 2431 /* ADVERTISE ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ã¨ã©ã¼*/2343 /* ADVERTISE メッセージを受信していなければエラー */ 2432 2344 if (ct->adv_msg == NULL) { 2433 2345 ct->error = E_OBJ; … … 2435 2347 } 2436 2348 2437 /* REPLY ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ 2438 ã«é·ç§»ããã*/ 2349 /* REPLY メッセージの選択が終了していれば、BOUND 状態に遷移する。*/ 2439 2350 if (select_reply(ct)) { 2440 2351 2441 /* REPLY ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/2352 /* REPLY メッセージ受信タイマーを停止する。*/ 2442 2353 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2443 2354 ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0; 2444 2355 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2445 2356 2446 /* ADVERTISE ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/2357 /* ADVERTISE メッセージを受信メッセージ構造体リストに戻す。*/ 2447 2358 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); 2448 2359 ct->adv_msg->next = ct->rcv_lst; … … 2451 2362 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 2452 2363 2453 /* BOUND ç¶æ 2454 ã«é·ç§»ããã*/ 2364 /* BOUND 状態に遷移する。*/ 2455 2365 start_bound(ct); 2456 2366 return; 2457 2367 } 2458 2368 2459 /* åéä¿¡åæ°ã確èªããã*/2369 /* 再送信回数を確認する。*/ 2460 2370 if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) { 2461 2371 ct->error = E_TMOUT; … … 2463 2373 } 2464 2374 2465 /* REQUEST ã¡ãã»ã¼ã¸ãä½æããã*/2375 /* REQUEST メッセージを作成する。*/ 2466 2376 if ((error = setup_request_msg(ct, ct->adv_msg, DHCP6_REQUEST)) != E_OK) { 2467 2377 syslog(LOG_NOTICE, "[DHCP6C] error, setup request message: %s.", itron_strerror(error)); … … 2470 2380 } 2471 2381 2472 /* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/2382 /* REQUEST メッセージを送信する。*/ 2473 2383 error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 2474 2384 if (error != E_WBLK) { … … 2478 2388 } 2479 2389 2480 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/2390 /* 再送信タイムアウトを設定する。*/ 2481 2391 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2482 2392 ct->timers[DHCP6C_TIMER_SND_REQ] = SYSTIM2TIMER(ct->RT); 2483 2393 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2484 2394 2485 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/2395 /* 再送信タイムアウトを更新する。*/ 2486 2396 advance_retrans(ct); 2487 2397 } 2488 2398 2489 2399 /* 2490 * send_refresh_msg -- REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã2400 * send_refresh_msg -- REFRESH メッセージを送信する。 2491 2401 */ 2492 2402 … … 2498 2408 uint8_t *opt; 2499 2409 2500 /* æå¹ãªãªã¼ã¹æ 2501 å ±ããªããã°ã¨ã©ã¼ */ 2410 /* 有効なリース情報がなければエラー */ 2502 2411 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2503 2412 if (ct->act_msg == NULL) 2504 2413 ct->error = E_OBJ; 2505 2414 2506 /* REFRESH ã¿ã¤ãã RENEW ã¾ã㯠REBIND ã§ãªããã°ã¨ã©ã¼*/2415 /* REFRESH タイプが RENEW または REBIND でなければエラー */ 2507 2416 if (!((ct->refresh_type == DHCP6_RENEW) || (ct->refresh_type == DHCP6_REBIND))) 2508 2417 ct->error = E_PAR; 2509 2418 2510 /* REPLY ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ 2511 ã«é·ç§»ããã*/ 2419 /* REPLY メッセージの選択が終了していれば、BOUND 状態に遷移する。*/ 2512 2420 if (select_reply(ct)) { 2513 2421 2514 /* REPLY ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/2422 /* REPLY メッセージ受信タイマーを停止する。*/ 2515 2423 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2516 2424 ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0; 2517 2425 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2518 2426 2519 /* ãªã¼ã¹æ 2520 å ±ã解æ¾ããã*/ 2427 /* リース情報を解放する。*/ 2521 2428 rel_lease(ct); 2522 2429 2523 /* BOUND ç¶æ 2524 ã«é·ç§»ããã*/ 2430 /* BOUND 状態に遷移する。*/ 2525 2431 start_bound(ct); 2526 2432 return; 2527 2433 } 2528 2434 2529 /* åéä¿¡åæ°ã確èªããã*/2435 /* 再送信回数を確認する。*/ 2530 2436 if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) { 2531 2437 eval_expire(ct); … … 2534 2440 2535 2441 /* 2536 * ãµã¼ããã UNICAST ãªãã·ã§ã³ãåä¿¡ããã¨ã㯠2537 * æå®ããã¢ãã¬ã¹ãéä¿¡å 2538 ã¢ãã¬ã¹ã«è¨å®ããã 2442 * サーバから UNICAST オプションを受信したときは 2443 * 指定したアドレスを送信先アドレスに設定する。 2539 2444 */ 2540 2445 if ((opt = find_msg_option(ct->act_msg, DHCP6_OPT_UNICAST, sizeof(T_DHCP6_OPT_UNICAST))) != NULL) { … … 2543 2448 } 2544 2449 2545 /* REFRESH (REQUEST) ã¡ãã»ã¼ã¸ãä½æããã*/2450 /* REFRESH (REQUEST) メッセージを作成する。*/ 2546 2451 if ((error = setup_request_msg(ct, ct->act_msg, ct->refresh_type)) != E_OK) { 2547 2452 syslog(LOG_NOTICE, "[DHCP6C] error, setup refresh message: %s.", itron_strerror(error)); … … 2550 2455 } 2551 2456 2552 /* REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã*/2457 /* REFRESH メッセージを送信する。*/ 2553 2458 error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 2554 2459 if (error != E_WBLK) { … … 2558 2463 } 2559 2464 2560 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/2465 /* 再送信タイムアウトを設定する。*/ 2561 2466 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2562 2467 ct->timers[DHCP6C_TIMER_SND_REF] = SYSTIM2TIMER(ct->RT); 2563 2468 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2564 2469 2565 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/2470 /* 再送信タイムアウトを更新する。*/ 2566 2471 advance_retrans(ct); 2567 2472 } 2568 2473 2569 2474 /* 2570 * setup_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãä½æããã2475 * setup_release_msg -- RELEASE メッセージを作成する。 2571 2476 */ 2572 2477 … … 2576 2481 uint8_t *msg; 2577 2482 2578 /* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/2483 /* メッセージのヘッダ部分を作成する。*/ 2579 2484 if ((msg = setup_msg_header(ct, type)) == NULL) 2580 2485 return E_PAR; … … 2585 2490 #if defined(DHCP6_CLI_CFG_IA_NA) 2586 2491 2587 /* IA_NA ã追å ããã*/2492 /* IA_NA を追加する。*/ 2588 2493 msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_NA, lease); 2589 2494 #endif … … 2591 2496 #if defined(DHCP6_CLI_CFG_IA_PD) 2592 2497 2593 /* IA_PD ã追å ããã*/2498 /* IA_PD を追加する。*/ 2594 2499 msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_PD, lease); 2595 2500 #endif 2596 2501 2597 /* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨å®ããã*/2502 /* メッセージ構造体長を設定する。*/ 2598 2503 ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg; 2599 2504 return E_OK; … … 2601 2506 2602 2507 /* 2603 * send_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã2508 * send_release_msg -- RELEASE メッセージを送信する。 2604 2509 */ 2605 2510 … … 2609 2514 ER error; 2610 2515 2611 /* æå¹ãª REPLY ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ã¨ã©ã¼*/2516 /* 有効な REPLY メッセージを受信していなければエラー */ 2612 2517 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2613 2518 if (ct->act_msg == NULL) 2614 2519 ct->error = E_OBJ; 2615 2520 2616 /* æå¹ãª REPLY ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãSLEEP ç¶æ 2617 ã«é·ç§»ããã*/ 2521 /* 有効な REPLY メッセージを受信していれば、SLEEP 状態に遷移する。*/ 2618 2522 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); 2619 2523 if (ct->prf_lst != NULL) { 2620 2524 2621 /* åéä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/2525 /* 再送信タイマーを停止する。*/ 2622 2526 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2623 2527 ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0; 2624 2528 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2625 2529 2626 /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã*/2530 /* 有効なリース・メッセージ構造体を解放する。*/ 2627 2531 if (ct->act_msg != NULL) { 2628 2532 syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)ct->act_msg)); … … 2630 2534 } 2631 2535 2632 /* SLEEP ç¶æ 2633 ã«é·ç§»ããã*/ 2536 /* SLEEP 状態に遷移する。*/ 2634 2537 ct->fsm = DHCP6_FSM_SLEEP; 2635 2538 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); … … 2638 2541 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 2639 2542 2640 /* åéä¿¡åæ°ã確èªããã*/2543 /* 再送信回数を確認する。*/ 2641 2544 if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) { 2642 2545 ct->error = E_TMOUT; … … 2644 2547 } 2645 2548 2646 /* RELEASE ã¡ãã»ã¼ã¸ãä½æããã*/2549 /* RELEASE メッセージを作成する。*/ 2647 2550 if ((error = setup_release_msg(ct, ct->act_msg, DHCP6_RELEASE)) != E_OK) { 2648 2551 syslog(LOG_NOTICE, "[DHCP6C] error, setup release message: %s.", itron_strerror(error)); … … 2651 2554 } 2652 2555 2653 /* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã*/2556 /* RELEASE メッセージを送信する。*/ 2654 2557 error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK); 2655 2558 if (error != E_WBLK) { … … 2659 2562 } 2660 2563 2661 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨å®ããã*/2564 /* 再送信タイムアウトを設定する。*/ 2662 2565 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); 2663 2566 ct->timers[DHCP6C_TIMER_SND_REL] = SYSTIM2TIMER(ct->RT); 2664 2567 syscall(sig_sem(SEM_DHCP6_CLI_TIMER)); 2665 2568 2666 /* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/2569 /* 再送信タイムアウトを更新する。*/ 2667 2570 advance_retrans(ct); 2668 2571 } 2669 2572 2670 2573 /* 2671 * advertise_msg_timeout -- ADVERTISE ã¡ãã»ã¼ã¸ã®ã¿ã¤ã ã¢ã¦ãå¦ç2574 * advertise_msg_timeout -- ADVERTISE メッセージのタイムアウト処理 2672 2575 */ 2673 2576 … … 2675 2578 advertise_msg_timeout (T_DHCP6_CLI_CONTEXT *ct) 2676 2579 { 2677 /* SOLICIT ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/2580 /* SOLICIT メッセージ送信タイマーを停止する。*/ 2678 2581 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2679 2582 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); … … 2683 2586 if (select_adv(ct)) { 2684 2587 /* 2685 * ADVERTISE ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ã 2686 * REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ã㦠SELECT ç¶æ 2687 ã«é·ç§»ããã 2588 * ADVERTISE メッセージの選択が終了していれば、 2589 * REQUEST メッセージを送信して SELECT 状態に遷移する。 2688 2590 */ 2689 2591 start_select(ct); … … 2694 2596 2695 2597 /* 2696 * renew_timeout -- RENEW ã¿ã¤ã ã¢ã¦ãå¦ç2598 * renew_timeout -- RENEW タイムアウト処理 2697 2599 */ 2698 2600 … … 2700 2602 renew_timeout (T_DHCP6_CLI_CONTEXT *ct) 2701 2603 { 2702 /* RENEW ç¶æ 2703 ã«é·ç§»ããã*/ 2604 /* RENEW 状態に遷移する。*/ 2704 2605 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2705 2606 start_renew(ct); … … 2707 2608 2708 2609 /* 2709 * rebind_timeout -- REBIND ã¿ã¤ã ã¢ã¦ãå¦ç2610 * rebind_timeout -- REBIND タイムアウト処理 2710 2611 */ 2711 2612 … … 2713 2614 rebind_timeout (T_DHCP6_CLI_CONTEXT *ct) 2714 2615 { 2715 /* REBIND ç¶æ 2716 ã«é·ç§»ããã*/ 2616 /* REBIND 状態に遷移する。*/ 2717 2617 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2718 2618 start_rebind(ct); … … 2720 2620 2721 2621 /* 2722 * depref_timeout -- DEPREF ã¿ã¤ã ã¢ã¦ãå¦ç2622 * depref_timeout -- DEPREF タイムアウト処理 2723 2623 */ 2724 2624 … … 2733 2633 uint_t aoff, asize; 2734 2634 2735 /* æå¹ãªãªã¼ã¹ãç¡ããã°å¦ççµäº*/2635 /* 有効なリースが無ければ処理終了 */ 2736 2636 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2737 2637 if (ct->act_msg == NULL) { … … 2744 2644 while (msg < last) { 2745 2645 2746 /* IA_NA/IA_PD ãªãã·ã§ã³ã§ããã°ãæ¨å¥¨æå¹æéã確èªããã*/2646 /* IA_NA/IA_PD オプションであれば、推奨有効時間を確認する。*/ 2747 2647 opt = (T_DHCP6_OPTION*)msg; 2748 2648 if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) { … … 2753 2653 aoff += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(*iaa)) { 2754 2654 2755 /* ãã§ã«æ¨å¥¨æå¹æéãçµéãã¦ããã°å¦çããªãã*/2655 /* すでに推奨有効時間を経過していれば処理しない。*/ 2756 2656 iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff); 2757 2657 if ((MSG2HOST16(iaa->len) & DHCP6C_IAA_FLAG_DEPREFERD)) 2758 2658 continue; 2759 2659 2760 /* æ¨å¥¨æå¹æéçµéãã¦ããã° FLAG ãè¨å®ããã*/2660 /* 推奨有効時間経過していれば FLAG を設定する。*/ 2761 2661 if (TIMEC_GE(time, ct->act_msg->rcv_time + MSG2HOST32(iaa->prefer))) { 2762 2662 HOST2MSG16(iaa->len, MSG2HOST16(iaa->len) | DHCP6C_IAA_FLAG_DEPREFERD); … … 2766 2666 syslog(LOG_NOTICE, "[DHCP6C] prefix depreferd: %s.", ipv62str(NULL, &iaa->addr)); 2767 2667 2768 /*ãDNS ã®å¦çãå¿ 2769 è¦ã*/ 2668 /*【DNS の処理が必要】*/ 2770 2669 } 2771 2670 } … … 2778 2677 2779 2678 /* 2780 * expire_timeout -- EXPIRE ã¿ã¤ã ã¢ã¦ãå¦ç2679 * expire_timeout -- EXPIRE タイムアウト処理 2781 2680 */ 2782 2681 … … 2791 2690 uint_t aoff, asize, addrs = 0; 2792 2691 2793 /* æå¹ãªãªã¼ã¹ãç¡ããã°å¦ççµäº*/2692 /* 有効なリースが無ければ処理終了 */ 2794 2693 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2795 2694 if (ct->act_msg == NULL) { … … 2802 2701 while (msg < last) { 2803 2702 2804 /* IA_NA/IA_PD ãªãã·ã§ã³ã§ããã°ãæå¹æéã確èªããã*/2703 /* IA_NA/IA_PD オプションであれば、有効時間を確認する。*/ 2805 2704 opt = (T_DHCP6_OPTION*)msg; 2806 2705 if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) { … … 2811 2710 aoff += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(*iaa)) { 2812 2711 2813 /* ãã§ã«æå¹æéãçµéãã¦ããã°å¦çããªãã*/2712 /* すでに有効時間を経過していれば処理しない。*/ 2814 2713 iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff); 2815 2714 if ((MSG2HOST16(iaa->len) & DHCP6C_IAA_FLAG_EXPIRED)) 2816 2715 continue; 2817 2716 2818 /* æå¹æéçµéãã¦ããã° FLAG ãè¨å®ããã*/2717 /* 有効時間経過していれば FLAG を設定する。*/ 2819 2718 if (TIMEC_GE(time, ct->act_msg->rcv_time + MSG2HOST32(iaa->valid))) { 2820 2719 HOST2MSG16(iaa->len, MSG2HOST16(iaa->len) | DHCP6C_IAA_FLAG_EXPIRED); … … 2824 2723 syslog(LOG_NOTICE, "[DHCP6C] prefix expired: %s.", ipv62str(NULL, &iaa->addr)); 2825 2724 2826 /*ãDNS ã®å¦çãå¿ 2827 è¦ã*/ 2725 /*【DNS の処理が必要】*/ 2828 2726 continue; 2829 2727 } … … 2834 2732 } 2835 2733 2836 /* æå¹ãªã¢ãã¬ã¹ãå 2837 ¨ã¦ç¡ããªã£ãæ㯠INIT ç¶æ 2838 ã«é·ç§»ããã*/ 2734 /* 有効なアドレスが全て無くなった時は INIT 状態に遷移する。*/ 2839 2735 if (addrs == 0) { 2840 2736 2841 /* ACTIVE ãªã¼ã¹ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/2737 /* ACTIVE リースを受信メッセージ構造体リストに戻す。*/ 2842 2738 syslog(LOG_NOTICE, "[DHCP6C] all address expired."); 2843 2739 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); … … 2847 2743 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 2848 2744 2849 /* å 2850 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 2745 /* 全ての TIMER をキャンセルする。*/ 2851 2746 cancel_all_timers(ct); 2852 2747 2853 /* INIT ç¶æ 2854 ã«é·ç§»ããã*/ 2748 /* INIT 状態に遷移する。*/ 2855 2749 start_init(ct); 2856 2750 return; … … 2863 2757 2864 2758 /* 2865 * reply_msg_timeout -- REPLY ã¡ãã»ã¼ã¸ã®ã¿ã¤ã ã¢ã¦ãå¦ç2759 * reply_msg_timeout -- REPLY メッセージのタイムアウト処理 2866 2760 */ 2867 2761 … … 2869 2763 reply_msg_timeout (T_DHCP6_CLI_CONTEXT *ct) 2870 2764 { 2871 /* SOLICIT ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ¢ããã*/2765 /* SOLICIT メッセージ送信タイマーを停止する。*/ 2872 2766 ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK; 2873 2767 syscall(wai_sem(SEM_DHCP6_CLI_TIMER)); … … 2878 2772 #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA 2879 2773 2880 /* STATELES ã¢ã¼ãã§ã¯SLEEP ã«é·ç§»ããã*/2774 /* STATELES モードではSLEEP に遷移する。*/ 2881 2775 ct->error = E_TMOUT; 2882 2776 ct->fsm = DHCP6_FSM_SLEEP; … … 2886 2780 #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA 2887 2781 2888 /* RENEW ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ 2889 ã«é·ç§»ããã*/ 2782 /* RENEW メッセージの選択が終了していれば、BOUND 状態に遷移する。*/ 2890 2783 if (select_reply(ct)) { 2891 2784 2892 /* ãªã¼ã¹æ 2893 å ±ã解æ¾ããã*/ 2785 /* リース情報を解放する。*/ 2894 2786 rel_lease(ct); 2895 2787 2896 /* BOUND ç¶æ 2897 ã«é·ç§»ããã*/ 2788 /* BOUND 状態に遷移する。*/ 2898 2789 start_bound(ct); 2899 2790 } … … 2901 2792 eval_expire(ct); 2902 2793 else { 2903 /* SLEEP ã«é·ç§»ããã*/2794 /* SLEEP に遷移する。*/ 2904 2795 ct->error = E_TMOUT; 2905 2796 ct->fsm = DHCP6_FSM_SLEEP; … … 2910 2801 2911 2802 /* 2912 * dispatch_timeout -- ã¿ã¤ã ã¢ã¦ãããæã®å¦ç2803 * dispatch_timeout -- タイムアウトした時の処理 2913 2804 */ 2914 2805 … … 2980 2871 2981 2872 /* 2982 * dispatch_event -- ã¤ãã³ãæ¯ã®å¦ç2873 * dispatch_event -- イベント毎の処理 2983 2874 */ 2984 2875 … … 2990 2881 while (ct->fsm != DHCP6_FSM_SLEEP && error == E_OK) { 2991 2882 2992 /* ã¡ãã»ã¼ã¸ã®éåä¿¡ã¨ã¿ã¤ã ã¢ã¦ããå¾ 2993 ã¤ã*/ 2883 /* メッセージの送受信とタイムアウトを待つ。*/ 2994 2884 syscall(wai_sem(SEM_DHCP6_CLI_READY)); 2995 2885 … … 3012 2902 3013 2903 /* 3014 * init_context -- DHCPv6 ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ãæ§é ä½ãåæåããã2904 * init_context -- DHCPv6 クライアントコンテキスト構造体を初期化する。 3015 2905 */ 3016 2906 … … 3025 2915 3026 2916 /* 3027 * rel_cli_msg -- ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã2917 * rel_cli_msg -- メッセージ構造体を解放する。 3028 2918 */ 3029 2919 … … 3060 2950 #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS 3061 2951 3062 /* ã¹ãã¼ãã¬ã¹ã®æã¯æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã*/2952 /* ステートレスの時は有効なリース・メッセージ構造体も解放する。*/ 3063 2953 if (ct->act_msg != NULL) { 3064 2954 syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)ct->act_msg)); … … 3072 2962 3073 2963 /* 3074 * init_cli_msg -- åã¡ãã»ã¼ã¸æ§é ä½ãåæåããã2964 * init_cli_msg -- 各メッセージ構造体を初期化する。 3075 2965 */ 3076 2966 … … 3082 2972 int count; 3083 2973 3084 /* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/2974 /* 送信メッセージ構造体を獲得する。*/ 3085 2975 if ((error = tget_mpf(MPF_DHCP6_CLI_MSG, (void*)&ct->snd_msg, TMO_DHCP6C_MPF_GET)) != E_OK) { 3086 2976 syslog(LOG_NOTICE, "[DHCP6C] error, tget_mpf() for send: %s.", itron_strerror(error)); … … 3089 2979 3090 2980 /* 3091 * æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãããå ´åã¯ã3092 * ç²å¾ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã®æ§é ä½ã 1æ¸ããã2981 * 有効なリース・メッセージ構造体がある場合は、 2982 * 獲得する受信メッセージ構造体リストの構造体を 1減らす。 3093 2983 */ 3094 2984 if (ct->act_msg == NULL) … … 3097 2987 count = NUM_DHCP6_CLI_MSG_LIST - 1; 3098 2988 3099 /* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/2989 /* 受信メッセージ構造体を獲得する。*/ 3100 2990 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); 3101 2991 while (count --> 0) { … … 3113 3003 3114 3004 /* 3115 * dhcp6c_renew_info -- ãããã¯ã¼ã¯æ 3116 å ±ãååå¾ããã 3005 * dhcp6c_renew_info -- ネットワーク情報を再取得する。 3117 3006 */ 3118 3007 … … 3125 3014 if (context.fsm == DHCP6_FSM_INFORMED) { 3126 3015 3127 /* REL_INFO ç¶æ 3128 ã«é·ç§»ããå¾ã« SLEEP ã解é¤ããããã«è¨å®ããã*/ 3016 /* REL_INFO 状態に遷移した後に SLEEP を解除するように設定する。*/ 3129 3017 context.flags |= DHCP6C_FLAG_RENEW; 3130 3018 start_rel_info(&context); … … 3133 3021 else if (context.fsm == DHCP6_FSM_SLEEP) { 3134 3022 3135 /* SLEEP ã解é¤ããã*/3023 /* SLEEP を解除する。*/ 3136 3024 wup_tsk(DHCP6_CLI_TASK); 3137 3025 return E_OK; … … 3144 3032 if (context.fsm == DHCP6_FSM_BOUND) { 3145 3033 3146 /* RENEW ç¶æ 3147 ã«é·ç§»ããã*/ 3034 /* RENEW 状態に遷移する。*/ 3148 3035 start_renew(&context); 3149 3036 return E_OK; … … 3151 3038 else if (context.fsm == DHCP6_FSM_SLEEP) { 3152 3039 3153 /* SLEEP ã解é¤ããã*/3040 /* SLEEP を解除する。*/ 3154 3041 wup_tsk(DHCP6_CLI_TASK); 3155 3042 return E_OK; … … 3165 3052 3166 3053 /* 3167 * dhcp6c_rel_info -- DHCP ã§è¨å®ããããããã¯ã¼ã¯æ 3168 å ±ã解æ¾ããã 3054 * dhcp6c_rel_info -- DHCP で設定されたネットワーク情報を解放する。 3169 3055 */ 3170 3056 … … 3172 3058 dhcp6c_rel_info (void) 3173 3059 { 3174 /* REL_INFO ç¶æ 3175 ã«é·ç§»ããã*/ 3060 /* REL_INFO 状態に遷移する。*/ 3176 3061 start_rel_info(&context); 3177 3062 return E_OK; … … 3179 3064 3180 3065 /* 3181 * dhcp6c_get_info -- DHCP ã§è¨å®ããããããã¯ã¼ã¯æ 3182 å ±ãè¿ãã 3066 * dhcp6c_get_info -- DHCP で設定されたネットワーク情報を返す。 3183 3067 */ 3184 3068 … … 3209 3093 3210 3094 /* 3211 * ã³ã¼ã«ããã¯é¢æ°3095 * コールバック関数 3212 3096 */ 3213 3097 … … 3220 3104 len = *(ER_UINT*)p_parblk; 3221 3105 if (len < 0 && len != E_RLWAI) { 3222 /* E_RLWAI 以å¤ã§ã0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/3106 /* E_RLWAI 以外で、0 以下の場合は、エラーコード */ 3223 3107 syslog(LOG_NOTICE, "[DHCP6C(CBR)] error: %s, fncd: %s.", itron_strerror(len), in_strtfn(fncd)); 3224 3108 } … … 3226 3110 if (fncd == TEV_UDP_RCV_DAT) { 3227 3111 3228 /* åä¿¡ã¡ãã»ã¼ã¸ãªã¹ãã空ã®æã¯ãåä¿¡ããªãã§ãã¼ã¿ã°ã©ã ãæ¨ã¦ãã*/3112 /* 受信メッセージリストが空の時は、受信しないでデータグラムを捨てる。*/ 3229 3113 if (context.rcv_lst == NULL) 3230 3114 syslog(LOG_NOTICE, "[DHCP6C(CBR)] receive buffer all busy."); 3231 3115 else { 3232 /* ã¡ãã»ã¼ã¸ãåä¿¡ããã¡ãã»ã¼ã¸æ§é ä½ãæºåããã*/3116 /* メッセージを受信するメッセージ構造体を準備する。*/ 3233 3117 syscall(wai_sem(SEM_DHCP6_CLI_LOCK)); 3234 3118 msg = context.rcv_lst; … … 3236 3120 syscall(sig_sem(SEM_DHCP6_CLI_LOCK)); 3237 3121 3238 /* ã¡ãã»ã¼ã¸ãåä¿¡ããã*/3122 /* メッセージを受信する。*/ 3239 3123 len = UDP_RCV_DAT(context.cepid, &msg->srv, &msg->msg, sizeof(msg->msg), TMO_POL); 3240 3124 … … 3242 3126 msg->len = len; 3243 3127 if (len >= 0) { 3244 /* åä¿¡ããã¡ãã»ã¼ã¸ãæ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã*/3128 /* 受信したメッセージを検証メッセージリストに移す。*/ 3245 3129 msg->next = context.val_lst; 3246 3130 context.val_lst = msg; … … 3248 3132 } 3249 3133 else { 3250 /* ã¡ãã»ã¼ã¸æ§é ä½ãåä¿¡ã¡ãã»ã¼ã¸ãªã¹ãã«æ»ãã*/3134 /* メッセージ構造体を受信メッセージリストに戻す。*/ 3251 3135 context.error = len; 3252 3136 msg->next = context.rcv_lst; … … 3261 3145 } 3262 3146 /* 3263 * dhcp6_cli_task -- DHCPv6 ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯3147 * dhcp6_cli_task -- DHCPv6 クライアントタスク 3264 3148 */ 3265 3149 … … 3284 3168 ct = &context; 3285 3169 3286 /* DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ãæ§é ä½ãåæåããã*/3170 /* DHCP クライアントコンテキスト構造体を初期化する。*/ 3287 3171 init_context(ct, (ID)exinf); 3288 3172 3289 3173 while (true) { 3290 3174 3291 /* 1 ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããããã«ã¿ã¤ãã¼ãè¨å®ããã*/3175 /* 1秒毎にタイムアウトするようにタイマーを設定する。*/ 3292 3176 timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP6C_TIMER_HZ); 3293 3177 3294 /* ã¯ã©ã¤ã¢ã³ã DUID ãè¨å®ããã*/3178 /* クライアント DUID を設定する。*/ 3295 3179 init_duid(ct); 3296 3180 3297 /* ã¡ãã»ã¼ã¸æ§é ä½ãåæåããã*/3181 /* メッセージ構造体を初期化する。*/ 3298 3182 if ((error = init_cli_msg(ct)) == E_OK) { 3299 3183 … … 3305 3189 #endif 3306 3190 3307 /* ã¡ã¤ã³ã«ã¼ã*/3191 /* メインループ */ 3308 3192 error = dispatch_event(ct); 3309 3193 } 3310 3194 3311 /* å 3312 ¨ã¦ã® TIMER ããã£ã³ã»ã«ããã*/ 3195 /* 全ての TIMER をキャンセルする。*/ 3313 3196 cancel_all_timers(ct); 3314 3197 3315 /* ã¿ã¤ãã¼ãåæ¢ããã*/3198 /* タイマーを停止する。*/ 3316 3199 untimeout((callout_func)dhcpc_timer, ct); 3317 3200 3318 /* ã¡ãã»ã¼ã¸æ§é ä½ã解æ¾ããã*/3201 /* メッセージ構造体を解放する。*/ 3319 3202 rel_cli_msg(ct); 3320 3203 3321 /* ãªã¼ã¹ã解æ¾å¾ãååå¾ãæå®ããã¦ããªããã°ä¼æ¢ããã*/3204 /* リースを解放後、再取得が指定されていなければ休止する。*/ 3322 3205 if (!(ct->flags & DHCP6C_FLAG_RENEW)) { 3323 3206 3324 /* ä¼æ¢ããã*/3207 /* 休止する。*/ 3325 3208 if (error == E_OK) 3326 3209 syslog(LOG_NOTICE, "[DHCP6C] lease released, go to sleep."); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp6_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * DHCPv6 ã¯ã©ã¤ã¢ã³ã48 * ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * DHCPv6 クライアント 36 * コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef DHCP6_CLI_CFG 52 40 53 /* ã¿ã¹ã¯*/41 /* タスク */ 54 42 55 43 CRE_TSK(DHCP6_CLI_TASK, { … … 62 50 }); 63 51 64 /* ã»ããã©*/52 /* セマフォ */ 65 53 66 54 CRE_SEM(SEM_DHCP6_CLI_READY, { TA_TPRI, 0, 1 }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp6_cli.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 70 70 * Tomakomai National College of Technology, JAPAN 71 71 * 72 * ä¸è¨èä½æ¨©è 73 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 74 * ã«ãã£ã¦å 75 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 76 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 77 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 78 å¸ï¼ä»¥ä¸ï¼ 79 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 80 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 81 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 82 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 83 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 84 * ç¨ã§ããå½¢ã§åé 85 å¸ããå ´åã«ã¯ï¼åé 86 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 87 * è 88 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 89 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 90 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 91 * ç¨ã§ããªãå½¢ã§åé 92 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 93 * ã¨ï¼ 94 * (a) åé 95 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 96 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 97 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 98 * (b) åé 99 å¸ã®å½¢æ 100 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 101 * å ±åãããã¨ï¼ 102 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 103 * 害ãããï¼ä¸è¨èä½æ¨©è 104 ããã³TOPPERSããã¸ã§ã¯ããå 105 責ãããã¨ï¼ 106 * 107 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 108 ã 109 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 110 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 111 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 72 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 73 * によって公表されている GNU General Public License の Version 2 に記 74 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 75 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 76 * 利用と呼ぶ)することを無償で許諾する. 77 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 78 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 79 * スコード中に含まれていること. 80 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 81 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 82 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 83 * の無保証規定を掲載すること. 84 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 85 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 86 * と. 87 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 88 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 89 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 90 * 報告すること. 91 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 92 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 93 * 94 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 95 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 96 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 97 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 112 98 * 113 99 * @(#) $Id$ … … 123 109 124 110 /* 125 * DHCP ã¯ã©ã¤ã¢ã³ãã®ã¹ã¿ãã¯ãµã¤ãº126 */ 127 128 #define DHCP6_CLI_STACK_SIZE 1024 /* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/111 * DHCP クライアントのスタックサイズ 112 */ 113 114 #define DHCP6_CLI_STACK_SIZE 1024 /* DHCP クライアントタスクのスタックサイズ */ 129 115 130 116 /* 131 * DHCP ã¯ã©ã¤ã¢ã³ãã®åªå 132 度 133 */ 134 135 #define DHCP6_CLI_MAIN_PRIORITY 5 /* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå 136 度 */ 117 * DHCP クライアントの優先度 118 */ 119 120 #define DHCP6_CLI_MAIN_PRIORITY 5 /* DHCP クライアントタスクの優先度 */ 137 121 138 122 /* 139 * ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³140 */ 141 142 /* 143 * DHCPv6 åä½ã¢ã¼ã144 * 145 * #define DHCP6_CLI_CFG_MODE ã§æå®ããã146 * æå®ããã¦ããªããã°ãã¹ãã¼ãã¬ã¹ã«è¨å®ããã147 * 148 */ 149 150 #define DHCP6_CLI_CFG_STATELESS 0 /* ã¹ãã¼ãã¬ã¹ã«è¨å®ããã*/151 #define DHCP6_CLI_CFG_STATEFULL 1 /* ã¹ãã¼ããã«ã«è¨å®ããã*/152 #define DHCP6_CLI_CFG_RA 2 /* RA ã® M/O ãããã«ããè¨å®ããã*/123 * コンパイル時コンフィギュレーション 124 */ 125 126 /* 127 * DHCPv6 動作モード 128 * 129 * #define DHCP6_CLI_CFG_MODE で指定する。 130 * 指定されていなければ、ステートレスに設定する。 131 * 132 */ 133 134 #define DHCP6_CLI_CFG_STATELESS 0 /* ステートレスに設定する。 */ 135 #define DHCP6_CLI_CFG_STATEFULL 1 /* ステートフルに設定する。 */ 136 #define DHCP6_CLI_CFG_RA 2 /* RA の M/O ビットにより設定する。 */ 153 137 #define DHCP6_CLI_CFG_MODE_DEFAULT DHCP6_CLI_CFG_STATELESS 154 138 155 /* IA ã®è¨å®*/139 /* IA の設定 */ 156 140 #define DHCP6_CLI_CFG_IA_NA 1 157 141 //#define DHCP6_CLI_CFG_IA_TA 1 158 142 //#define DHCP6_CLI_CFG_IA_PD 1 159 143 160 /* Rapid-commit ã®æå®*/144 /* Rapid-commit の指定 */ 161 145 //#define DHCP6_CLI_CFG_RAPID_COMMIT 1 162 146 163 /* æ¨å¥¨åº¦ã®å®ç¾©*/164 #define DHCP6_CLI_CFG_PREFER_IA 50 /* IA_NA/TA/PD å½ããã®æ¨å¥¨åº¦*/165 #define DHCP6_CLI_CFG_PREFER_IAADDR 100 /* ã¢ãã¬ã¹å½ããã®æ¨å¥¨åº¦*/166 167 /* DHCPv6 ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸ã®åä¿¡ãªã¹ããµã¤ãºï¼2以ä¸æå®ãããã¨ï¼*/147 /* 推奨度の定義 */ 148 #define DHCP6_CLI_CFG_PREFER_IA 50 /* IA_NA/TA/PD 当たりの推奨度 */ 149 #define DHCP6_CLI_CFG_PREFER_IAADDR 100 /* アドレス当たりの推奨度 */ 150 151 /* DHCPv6 クライアントメッセージの受信リストサイズ(2以上指定すること) */ 168 152 #define NUM_DHCP6_CLI_MSG_LIST 3 169 153 170 154 /* 171 * DHCPv6 ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½æ°ãå¤æ´ç¦æ¢ã172 * +1 ã¯éä¿¡ç¨155 * DHCPv6 クライアントメッセージ構造体数【変更禁止】 156 * +1 は送信用 173 157 */ 174 158 #define NUM_MPF_DHCP6_CLI_MSG (NUM_DHCP6_CLI_MSG_LIST+1) 175 159 176 /* DHCP å¿ 177 é ãªãã·ã§ã³ãªã¹ã */ 160 /* DHCP 必須オプションリスト */ 178 161 179 162 #ifndef DHCP6_CLI_CFG_REQUIRED_OLIST … … 191 174 #endif /* of #ifndef DHCP6_CLI_CFG_REQUIRED_OLIST */ 192 175 193 /* DHCP è¦æ±ãªãã·ã§ã³ãªã¹ã*/176 /* DHCP 要求オプションリスト */ 194 177 195 178 #ifndef DHCP6_CLI_CFG_REQUEST_OLIST … … 208 191 209 192 /* 210 * ã¿ã¤ã ã¢ã¦ãå®æ° 211 * RFC3315 ã«è¦å®ãããã¿ã¤ãã³ã°å®æ°ã¯ dhcp6.h åç 212 § 213 */ 214 215 /* æ¨æºã¡ãã»ã¼ã¸ã®åéä¿¡ã¿ã¤ã ã¢ã¦ã */ 193 * タイムアウト定数 194 * RFC3315 に規定されたタイミング定数は dhcp6.h 参照 195 */ 196 197 /* 標準メッセージの再送信タイムアウト */ 216 198 #define TMO_DHCP6C_NORMAL ULONG_C(60*1000) 217 199 218 /* æ¨æºè¦æ±ãªã¼ã¹æé*/200 /* 標準要求リース時間 */ 219 201 #define TMO_DHCP6C_REQ_LEASE ULONG_C(7200*1000) 220 202 221 /* ã¡ãã»ã¼ã¸æ§é ä½ç²å¾ã¿ã¤ã ã¢ã¦ã*/203 /* メッセージ構造体獲得タイムアウト */ 222 204 #define TMO_DHCP6C_MPF_GET ULONG_C(1000) 223 205 224 /* ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ã*/206 /* メッセージ受信タイムアウト */ 225 207 #define TMO_DHCP6C_RCV_DAT ULONG_C(1000) 226 208 227 209 /* 228 * DHCPv6 ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½210 * DHCPv6 クライアントメッセージ構造体 229 211 */ 230 212 231 213 typedef struct dhcp6_cli_msg { 232 /* 4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã*/233 T_DHCP6_MSG msg; /* DHCPv6 ã¡ãã»ã¼ã¸æ§é ä½*/234 struct dhcp6_cli_msg *next; /* ãªã¹ãã®æ¬¡ã®ã¡ãã»ã¼ã¸æ§é ä½*/235 SYSTIM rcv_time; /* åä¿¡ããæé*/236 T_IPV6EP srv; /* ãµã¼ãã®IPv6ã¢ãã¬ã¹/ãã¼ãçªå·*/237 uint16_t len; /* msg ã®æå¹é·*/238 uint16_t prefer; /* msg ã®æ¨å¥¨åº¦*/239 uint16_t status; /* STATUS CODE ãªãã·ã§ã³ã®status */214 /* 4バイト境界にアラインする。*/ 215 T_DHCP6_MSG msg; /* DHCPv6 メッセージ構造体 */ 216 struct dhcp6_cli_msg *next; /* リストの次のメッセージ構造体 */ 217 SYSTIM rcv_time; /* 受信した時間 */ 218 T_IPV6EP srv; /* サーバのIPv6アドレス/ポート番号 */ 219 uint16_t len; /* msg の有効長 */ 220 uint16_t prefer; /* msg の推奨度 */ 221 uint16_t status; /* STATUS CODE オプションの status */ 240 222 } T_DHCP6_CLI_MSG; 241 223 242 /* prefer ã®ãã©ã° */ 243 244 #define DHCP6_ClI_MSG_PREFER_ADDR UINT_C(0x8000) /* ã¢ãã¬ã¹æ 245 å ±ãã */ 246 #define DHCP6_ClI_MSG_PREFER_REQUIRED UINT_C(0x4000) /* å¿ 247 é ãªãã·ã§ã³ãã */ 248 #define DHCP6_ClI_MSG_PREFER_REQUEST UINT_C(0x2000) /* è¦æ±ãªãã·ã§ã³ãã */ 249 #define DHCP6_ClI_MSG_PREFER_OPTION UINT_C(0x1000) /* PREFER ãªãã·ã§ã³ãã */ 224 /* prefer のフラグ */ 225 226 #define DHCP6_ClI_MSG_PREFER_ADDR UINT_C(0x8000) /* アドレス情報あり */ 227 #define DHCP6_ClI_MSG_PREFER_REQUIRED UINT_C(0x4000) /* 必須オプションあり */ 228 #define DHCP6_ClI_MSG_PREFER_REQUEST UINT_C(0x2000) /* 要求オプションあり */ 229 #define DHCP6_ClI_MSG_PREFER_OPTION UINT_C(0x1000) /* PREFER オプションあり */ 250 230 #define DHCP6_ClI_MSG_PREFER_FLAG_MASK UINT_C(0xf000) 251 231 #define DHCP6_ClI_MSG_PREFER_VALUE_MASK (~(DHCP6_ClI_MSG_PREFER_FLAG_MASK)) 252 232 253 233 /* 254 * STATUS CODE ãªãã·ã§ã³ãç¡ãæã®å¤234 * STATUS CODE オプションが無い時の値 255 235 */ 256 236 … … 258 238 259 239 /* 260 * ã³ã¼ã«ããã¯é¢æ°240 * コールバック関数 261 241 */ 262 242 … … 264 244 265 245 /* 266 * ã¿ã¹ã¯246 * タスク 267 247 */ 268 248 … … 270 250 271 251 /* 272 * é¢æ°252 * 関数 273 253 */ 274 254 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp6_cli_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * ASP 用 DHCP クライアントのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 /* 51 * å 52 ±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 39 * 共通 DHCP クライアントのシステムコンフィギュレーションファイルのインクルード 53 40 */ 54 41 … … 58 45 59 46 /* 60 * åºå®ã¡ã¢ãªãã¼ã«47 * 固定メモリプール 61 48 */ 62 49 63 /* éåä¿¡ãããã¡*/50 /* 送受信バッファ */ 64 51 65 52 CRE_MPF(MPF_DHCP6_CLI_MSG, { -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp6_cli_jsp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * JSP 用 DHCP クライアントのシステムコンフィギュレーションファイル 48 36 */ 49 37 50 38 /* 51 * å 52 ±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã 39 * 共通 DHCP クライアントのシステムコンフィギュレーションファイルのインクルード 53 40 */ 54 41 … … 58 45 59 46 /* 60 * åºå®ã¡ã¢ãªãã¼ã«47 * 固定メモリプール 61 48 */ 62 49 63 /* éåä¿¡ãããã¡*/50 /* 送受信バッファ */ 64 51 65 52 CRE_MPF(MPF_DHCP6_CLI_MSG, { -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dhcp6_cli_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 70 70 * Tomakomai National College of Technology, JAPAN 71 71 * 72 * ä¸è¨èä½æ¨©è 73 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 74 * ã«ãã£ã¦å 75 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 76 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 77 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 78 å¸ï¼ä»¥ä¸ï¼ 79 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 80 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 81 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 82 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 83 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 84 * ç¨ã§ããå½¢ã§åé 85 å¸ããå ´åã«ã¯ï¼åé 86 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 87 * è 88 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 89 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 90 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 91 * ç¨ã§ããªãå½¢ã§åé 92 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 93 * ã¨ï¼ 94 * (a) åé 95 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 96 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 97 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 98 * (b) åé 99 å¸ã®å½¢æ 100 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 101 * å ±åãããã¨ï¼ 102 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 103 * 害ãããï¼ä¸è¨èä½æ¨©è 104 ããã³TOPPERSããã¸ã§ã¯ããå 105 責ãããã¨ï¼ 106 * 107 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 108 ã 109 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 110 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 111 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 72 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 73 * によって公表されている GNU General Public License の Version 2 に記 74 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 75 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 76 * 利用と呼ぶ)することを無償で許諾する. 77 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 78 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 79 * スコード中に含まれていること. 80 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 81 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 82 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 83 * の無保証規定を掲載すること. 84 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 85 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 86 * と. 87 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 88 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 89 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 90 * 報告すること. 91 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 92 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 93 * 94 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 95 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 96 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 97 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 112 98 * 113 99 * @(#) $Id$ … … 120 106 121 107 /* 122 * DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ããã¹ãæ§é ä½123 */ 124 125 /* TIMER ã®å®ç¾©*/108 * DHCP クライアントコンテキスト構造体 109 */ 110 111 /* TIMER の定義 */ 126 112 127 113 #define DHCP6C_TIMER_SND_SOL 0 … … 140 126 #define DHCP6C_TIMER_HZ 1 141 127 142 /* å®æ°ã®å®ç¾©*/128 /* 定数の定義 */ 143 129 144 130 #define MAX_DUID_LEN (ETHER_ADDR_LEN+8) 145 131 146 132 typedef struct dhcp6_cli_context { 147 T_DHCP6_CLI_MSG *rcv_lst; /* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã */ 148 T_DHCP6_CLI_MSG *val_lst; /* æ¤è¨¼ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã */ 149 T_DHCP6_CLI_MSG *prf_lst; /* æ¨å¥¨ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã */ 150 T_DHCP6_CLI_MSG *snd_msg; /* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½ */ 151 T_DHCP6_CLI_MSG *adv_msg; /* éç¥ããããªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ */ 152 T_DHCP6_CLI_MSG *act_msg; /* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ */ 153 T_IF_SOFTC *sc; /* IF ã®ã½ããã¦ã§ã¢æ 154 å ± */ 155 T_IPV6EP dst; /* éä¿¡å 156 ã®IPã¢ãã¬ã¹/ãã¼ãçªå· */ 157 SYSTIM RT; /* åéä¿¡éé */ 158 SYSTIM IRT; /* åæåéä¿¡éé */ 159 SYSTIM MRT; /* æ大åéä¿¡éé */ 160 SYSTIM MRD; /* æ大åéä¿¡ç¶ç¶æé */ 161 SYSTIM next_MRD; /* 次ã®æ大åéä¿¡ç¶ç¶æé */ 133 T_DHCP6_CLI_MSG *rcv_lst; /* 受信メッセージ構造体リスト */ 134 T_DHCP6_CLI_MSG *val_lst; /* 検証メッセージ構造体リスト */ 135 T_DHCP6_CLI_MSG *prf_lst; /* 推奨メッセージ構造体リスト */ 136 T_DHCP6_CLI_MSG *snd_msg; /* 送信メッセージ構造体 */ 137 T_DHCP6_CLI_MSG *adv_msg; /* 通知されたリース・メッセージ構造体 */ 138 T_DHCP6_CLI_MSG *act_msg; /* 有効なリース・メッセージ構造体 */ 139 T_IF_SOFTC *sc; /* IF のソフトウェア情報 */ 140 T_IPV6EP dst; /* 送信先のIPアドレス/ポート番号 */ 141 SYSTIM RT; /* 再送信間隔 */ 142 SYSTIM IRT; /* 初期再送信間隔 */ 143 SYSTIM MRT; /* 最大再送信間隔 */ 144 SYSTIM MRD; /* 最大再送信継続時間 */ 145 SYSTIM next_MRD; /* 次の最大再送信継続時間 */ 162 146 SYSTIM timers[NUM_DHCP6C_TIMERS]; 163 /* ã¿ã¤ãã¼é 164 å */ 165 ER_UINT error; /* ã¨ã©ã¼ã»ãã¼ã¿é· */ 147 /* タイマー配列 */ 148 ER_UINT error; /* エラー・データ長 */ 166 149 ID cepid; /* CEP ID */ 167 uint32_t xid; /* ãã©ã³ã¶ã¯ã·ã§ã³ID */168 uint16_t flags; /* å種ãã©ã°*/169 uint16_t max_prefer; /* åä¿¡ã¡ãã»ã¼ã¸ã®æ大æ¨å¥¨åº¦*/150 uint32_t xid; /* トランザクション ID */ 151 uint16_t flags; /* 各種フラグ */ 152 uint16_t max_prefer; /* 受信メッセージの最大推奨度 */ 170 153 uint8_t duid[MAX_DUID_LEN]; 171 154 /* client DHCP Unique ID */ 172 uint8_t duid_len; /* client DUID é· */ 173 uint8_t fsm; /* ç¾å¨ã®ç¶æ 174 */ 175 uint8_t MRC; /* æ大åéä¿¡åæ° */ 176 uint8_t txcount; /* åéä¿¡åæ° */ 177 uint8_t refresh_type; /* REFRESH ã®ã¡ãã»ã¼ã¸ã¿ã¤ã */ 155 uint8_t duid_len; /* client DUID 長 */ 156 uint8_t fsm; /* 現在の状態 */ 157 uint8_t MRC; /* 最大再送信回数 */ 158 uint8_t txcount; /* 再送信回数 */ 159 uint8_t refresh_type; /* REFRESH のメッセージタイプ */ 178 160 } T_DHCP6_CLI_CONTEXT; 179 161 180 /* fsmï¼ç¶æ 181 é·ç§»ï¼ã®å®ç¾© */ 162 /* fsm(状態遷移)の定義 */ 182 163 183 164 #define DHCP6_FSM_INIT 1 … … 186 167 #define DHCP6_FSM_RENEW 5 187 168 #define DHCP6_FSM_REBIND 6 188 #define DHCP6_FSM_REQ_INFO 9 /* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/189 #define DHCP6_FSM_INFORMED 10 /* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/190 #define DHCP6_FSM_REL_INFO 11 /* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/191 #define DHCP6_FSM_SLEEP 12 /* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/192 193 /* flag ã®å®ç¾©*/169 #define DHCP6_FSM_REQ_INFO 9 /* DHCPv6 の RFC3315 には無い。*/ 170 #define DHCP6_FSM_INFORMED 10 /* DHCPv6 の RFC3315 には無い。*/ 171 #define DHCP6_FSM_REL_INFO 11 /* DHCPv6 の RFC3315 には無い。*/ 172 #define DHCP6_FSM_SLEEP 12 /* DHCPv6 の RFC3315 には無い。*/ 173 174 /* flag の定義 */ 194 175 195 176 #define DHCP6C_FLAG_TMOUT_SND_SOL (DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_SND_SOL) … … 211 192 #define DHCP6C_FLAG_RENEW UINT_C(0x0400) 212 193 213 /* IAADDR æ§é ä½ã® FLAG ã®å®ç¾©ï¼len ã«å¤éåããï¼*/194 /* IAADDR 構造体の FLAG の定義(len に多重化する)*/ 214 195 215 196 #define DHCP6C_IAA_FLAG_EXPIRED UINT_C(0x8000) … … 218 199 219 200 /* 220 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã221 */ 222 223 /* æéæ¯è¼*/201 * 関数シミュレーションマクロ 202 */ 203 204 /* 時間比較 */ 224 205 225 206 #define TIMEC_GT(a,b) ((int32_t)((a)-(b))>0) 226 207 #define TIMEC_GE(a,b) ((int32_t)((a)-(b))>=0) 227 208 228 /* æéå®æ°ã®å¤æ*/209 /* 時間定数の変換 */ 229 210 230 211 #define SYSTIM2TIMER(t) (((t)<SYSTIM_HZ/DHCP6C_TIMER_HZ)?(DHCP6C_TIMER_HZ):((t)*DHCP6C_TIMER_HZ)/SYSTIM_HZ) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/dns.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 41 * 42 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 43 ã 44 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 45 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 46 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 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 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 31 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 32 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 47 33 * 48 34 * @(#) $Id$ … … 53 39 54 40 /* 55 * DNS ã¡ãã»ã¼ã¸ã«é¢ããå®ç¾©56 * 57 * RFC1034 ãRFC1035ãRFC1886ãRFC2136ã58 * RFC2671 ãRFC2845ãRFC2930ãRFC359659 * 60 * DNS ã¡ãã»ã¼ã¸41 * DNS メッセージに関する定義 42 * 43 * RFC1034、RFC1035、RFC1886、RFC2136、 44 * RFC2671、RFC2845、RFC2930、RFC3596 45 * 46 * DNS メッセージ 61 47 * 62 48 * +---------------------+ 63 49 * | Header | 64 50 * +---------------------+ 65 * | Question | Question section å½¢å¼66 * +---------------------+ 67 * | Answer | RR (Resouce Record) å½¢å¼68 * +---------------------+ 69 * | Authority | RR (Resouce Record) å½¢å¼70 * +---------------------+ 71 * | Additional | RR (Resouce Record) å½¢å¼72 * +---------------------+ 73 * 74 * DNS ããã51 * | Question | Question section 形式 52 * +---------------------+ 53 * | Answer | RR (Resouce Record) 形式 54 * +---------------------+ 55 * | Authority | RR (Resouce Record) 形式 56 * +---------------------+ 57 * | Additional | RR (Resouce Record) 形式 58 * +---------------------+ 59 * 60 * DNS ヘッダ 75 61 * 76 62 * 0 7 8 15 … … 108 94 109 95 /* 110 * code ã®å®ç¾©111 */ 112 113 /* QR ã®å®ç¾©*/96 * code の定義 97 */ 98 99 /* QR の定義 */ 114 100 115 101 #define DNS_QR_QUERY 0x0000U 116 102 #define DNS_QR_RESPONSE 0x8000U 117 103 118 /* Opcode ã®å®ç¾©*/104 /* Opcode の定義 */ 119 105 120 106 #define DNS_OPCODE_MASK 0x7800U … … 123 109 #define DNS_OPCODE_STATUS 0x1000U 124 110 125 /* AA ã®å®ç¾©*/111 /* AA の定義 */ 126 112 127 113 #define DNS_AUTHORITATIVE 0x0400U 128 114 129 /* TC ã®å®ç¾©*/115 /* TC の定義 */ 130 116 131 117 #define DNS_TRUN_CATION 0x0200U 132 118 133 /* RD ã®å®ç¾©*/119 /* RD の定義 */ 134 120 135 121 #define DNS_RECURSION_DESIRED 0x0100U 136 122 137 /* RA ã®å®ç¾©*/123 /* RA の定義 */ 138 124 139 125 #define DNS_RECURSION_AVAILABLE 0x0080U 140 126 141 /* RCODE ã®å®ç¾©*/127 /* RCODE の定義 */ 142 128 143 129 #define DNS_RCODE_MASK 0x000fU … … 150 136 151 137 /* 152 * DNS TYPE ã®å®ç¾©138 * DNS TYPE の定義 153 139 */ 154 140 … … 161 147 162 148 /* 163 * DNS CLASS ã®å®ç¾©149 * DNS CLASS の定義 164 150 */ 165 151 … … 167 153 168 154 /* 169 * RR (Resouce Record) å½¢å¼155 * RR (Resouce Record) 形式 170 156 * 171 157 * 0 7 8 15 … … 193 179 * +-----------------------------------------------+ 194 180 * 195 * 注æ: offset ã®åç¹ã¯ DNS message ã®å 196 é 181 * 注意: offset の原点は DNS message の先頭 197 182 */ 198 183 … … 209 194 210 195 /* 211 * Question section å½¢å¼196 * Question section 形式 212 197 * 213 198 * 0 7 8 15 … … 234 219 235 220 /* 236 * SOA RDATA å½¢å¼221 * SOA RDATA 形式 237 222 * 238 223 * 0 7 8 15 … … 266 251 * +-----------------------------------------------+ 267 252 * 268 * 注æ: offset ã®åç¹ã¯ DNS message ã®å 269 é 253 * 注意: offset の原点は DNS message の先頭 270 254 */ 271 255 … … 283 267 284 268 /* 285 * DNS ã®å®æ°ã®å®ç¾©269 * DNS の定数の定義 286 270 */ 287 271 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/lcd.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 … … 80 68 81 69 /* 82 * lcd_cls -- LCD 表示ã¯ãªã¢70 * lcd_cls -- LCD 表示クリア 83 71 */ 84 72 … … 92 80 93 81 /* 94 * lcd_newline -- LCD ã®è¡¨ç¤ºãæ¹è¡ããã82 * lcd_newline -- LCD の表示を改行する。 95 83 */ 96 84 … … 104 92 105 93 /* 106 * lcd_initialize -- LCD åæå94 * lcd_initialize -- LCD 初期化 107 95 */ 108 96 … … 115 103 116 104 /* 117 * lcd_putc -- LCD åºå105 * lcd_putc -- LCD 出力 118 106 */ 119 107 … … 134 122 135 123 /* 136 * lcd_puts -- LCD ã¸ã®æååã®åºå124 * lcd_puts -- LCD への文字列の出力 137 125 */ 138 126 … … 145 133 146 134 /* 147 * LCD ã¸ã®æ¸å¼ä»æåååºåã©ã¤ãã©ãª148 */ 149 150 /* 151 * æ°å¤å¤æã®ããã®å¤æ表135 * LCD への書式付文字列出力ライブラリ 136 */ 137 138 /* 139 * 数値変換のための変換表 152 140 */ 153 141 … … 156 144 157 145 /* 158 * ãã£ã¨ãé·ãæ´æ°å (LONGEST) ã¨ç¬¦å·ãªãæ´æ°å(ULONGEST)146 * もっとも長い整数型 (LONGEST) と符号なし整数型 (ULONGEST) 159 147 */ 160 148 … … 181 169 182 170 /* 183 * convert -- lcd_printf ã®æ°å¤å¤æ171 * convert -- lcd_printf の数値変換 184 172 */ 185 173 … … 214 202 215 203 pad = ix; 216 if (!left) /* å³è©°ã*/204 if (!left) /* 右詰め */ 217 205 for ( ; pad < width; pad ++) 218 206 lcd_putc(portid, padchar); … … 221 209 lcd_putc(portid, digits[ix]); 222 210 223 if (left) /* 左詰ã*/211 if (left) /* 左詰め */ 224 212 for ( ; pad < width; pad ++) 225 213 lcd_putc(portid, padchar); … … 231 219 232 220 /* 233 * ipv4addr -- IPv4 ã¢ãã¬ã¹åºå221 * ipv4addr -- IPv4 アドレス出力 234 222 */ 235 223 … … 237 225 put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width) 238 226 { 239 int_t len = 3; /* 3 㯠'.' ã®æåæ°*/227 int_t len = 3; /* 3 は '.' の文字数 */ 240 228 241 229 len += convert(portid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); … … 256 244 257 245 /* 258 * ipv6addr -- IPv6 ã¢ãã¬ã¹åºå246 * ipv6addr -- IPv6 アドレス出力 259 247 */ 260 248 … … 300 288 301 289 /* 302 * macaddr -- MAC ã¢ãã¬ã¹åºå290 * macaddr -- MAC アドレス出力 303 291 */ 304 292 … … 319 307 320 308 /* 321 * å¼æ°ãåãåºãããã®ãã¯ã309 * 引数を取り出すためのマクロ 322 310 */ 323 311 … … 333 321 334 322 /* 335 * lcd_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºå323 * lcd_printf -- シリアルポートへの書式付文字列出力 336 324 */ 337 325 … … 350 338 va_start(ap, fmt); 351 339 while ((ch = *fmt ++) != '\0') { 352 if (ch != '%') { /* æ¸å¼æå®ä»¥å¤*/340 if (ch != '%') { /* 書式指定以外 */ 353 341 lcd_putc(portid, (char)ch); 354 342 continue; … … 358 346 padchar = ' '; 359 347 360 if (ch == '-') { /* 左詰ã*/348 if (ch == '-') { /* 左詰め */ 361 349 fmt ++; 362 350 left = -1; … … 365 353 left = 1; 366 354 367 if ((ch = *fmt ++) == '0') { /* ä¸ä½æ¡ã®0 */355 if ((ch = *fmt ++) == '0') { /* 上位桁の 0 */ 368 356 padchar = '0'; 369 357 ch = *fmt ++; 370 358 } 371 359 372 while ('0' <= ch && ch <= '9') { /* åºåå¹ 373 */ 360 while ('0' <= ch && ch <= '9') { /* 出力幅 */ 374 361 width = width * 10 + ch - '0'; 375 362 ch = *fmt ++; 376 363 } 377 364 378 while (ch == 'l') { /* long (long) ã®æå®*/365 while (ch == 'l') { /* long (long) の指定 */ 379 366 longflag ++; 380 367 ch = *fmt ++; 381 368 } 382 369 383 while (ch == 'h') { /* short ã®æå®*/370 while (ch == 'h') { /* short の指定 */ 384 371 shortflag ++; 385 372 ch = *fmt ++; -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/lcd.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * æ±ç¨ LCD ãã©ã¤ã35 * 汎用 LCD ドライバ 48 36 */ 49 37 … … 52 40 53 41 /* 54 * lcd_cls -- LCD 表示ã¯ãªã¢42 * lcd_cls -- LCD 表示クリア 55 43 */ 56 44 extern void lcd_cls (void); 57 45 58 46 /* 59 * lcd_initialize -- LCD åæå47 * lcd_initialize -- LCD 初期化 60 48 */ 61 49 extern void lcd_initialize (intptr_t exinf); 62 50 63 51 /* 64 * lcd_putc -- LCD åºå52 * lcd_putc -- LCD 出力 65 53 */ 66 54 extern void lcd_putc (ID portid, int8_t data); 67 55 68 56 /* 69 * lcd_puts -- LCD ã¸ã®æååã®åºå57 * lcd_puts -- LCD への文字列の出力 70 58 */ 71 59 extern void lcd_puts (ID portid, const char *str); 72 60 73 61 /* 74 * LCD ã¸ã®æ¸å¼ä»æåååºåã©ã¤ãã©ãª62 * LCD への書式付文字列出力ライブラリ 75 63 */ 76 64 extern void lcd_printf (ID portid, const char *fmt, ...); -
azure_iot_hub/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
r388 r389 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 … … 83 70 84 71 /* 85 * ãã¯ãå®ç¾©86 */ 87 88 /* ãªãã¼ã ã®è§£é¤*/72 * マクロ定義 73 */ 74 75 /* リネームの解除 */ 89 76 90 77 #undef syslog … … 94 81 #define EOF (-1) 95 82 96 /* TELNET ãªãã·ã§ã³*/83 /* TELNET オプション */ 97 84 98 85 #define TELNET_OPT_SE (240) … … 120 107 121 108 /* 122 * å¤æ°123 */ 124 125 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/109 * 変数 110 */ 111 112 /* TCP 送受信ウィンドバッファ */ 126 113 127 114 uint8_t net_cons_swbuf[NET_CONS_SWBUF_SIZE]; 128 115 uint8_t net_cons_rwbuf[NET_CONS_RWBUF_SIZE]; 129 116 130 bool_t connected = false; /* ã³ãã¯ã·ã§ã³ã®ç¶æ 131 */ 132 bool_t wait_accept = false; /* æ¥ç¶è¦æ±å¾ 133 ã¡ä¸ */ 117 bool_t connected = false; /* コネクションの状態 */ 118 bool_t wait_accept = false; /* 接続要求待ち中 */ 134 119 135 120 #if defined(SUPPORT_INET6) … … 156 141 157 142 /* 158 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°143 * ノンブロッキングコールのコールバック関数 159 144 */ 160 145 … … 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 … … 357 342 358 343 /* 359 * ã³ãã¯ã·ã§ã³ãåæ344 * コネクションを切断 360 345 */ 361 346 … … 389 374 390 375 /* 391 * ã·ãªã¢ã«ãã¼ãã®å¶å¾¡376 * シリアルポートの制御 392 377 */ 393 378 … … 400 385 401 386 /* 402 * ãã°åºå387 * ログ出力 403 388 */ 404 389 … … 421 406 va_start(ap, format); 422 407 while ((ch = *format ++) != '\0') { 423 if (ch != '%') { /* æ¸å¼æå®ä»¥å¤*/408 if (ch != '%') { /* 書式指定以外 */ 424 409 cons_putchar(CONSOLE_PORTID, (char)ch); 425 410 continue; … … 430 415 padchar = ' '; 431 416 432 if (ch == '-') { /* 左詰ã*/417 if (ch == '-') { /* 左詰め */ 433 418 format ++; 434 419 left = -1; … … 437 422 left = 1; 438 423 439 if ((ch = *format ++) == '0') { /* ä¸ä½æ¡ã®0 */424 if ((ch = *format ++) == '0') { /* 上位桁の 0 */ 440 425 padchar = '0'; 441 426 ch = *format ++; 442 427 } 443 428 444 while ('0' <= ch && ch <= '9') { /* åºåå¹ 445 */ 429 while ('0' <= ch && ch <= '9') { /* 出力幅 */ 446 430 width = width * 10 + ch - '0'; 447 431 ch = *format ++; 448 432 } 449 433 450 while (ch == 'l') { /* long (long) ã®æå®*/434 while (ch == 'l') { /* long (long) の指定 */ 451 435 longflag = true; 452 436 ch = *format ++; … … 556 540 } 557 541 558 while (ch == 'l') { /* long (long) ã®æå®*/542 while (ch == 'l') { /* long (long) の指定 */ 559 543 longflag = true; 560 544 ch = *format ++; -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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); -
azure_iot_hub/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
r388 r389 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 … … 66 54 67 55 /* 68 * ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·56 * コンソールに用いるシリアルポート番号 69 57 */ 70 58 … … 74 62 75 63 /* 76 * ã³ã³ã½ã¼ã«ã«ç¨ãã LCD ãã¼ãçªå·64 * コンソールに用いる LCD ポート番号 77 65 */ 78 66 … … 80 68 81 69 /* 82 * æ°å¤å¤æã®ããã®å¤æ表70 * 数値変換のための変換表 83 71 */ 84 72 … … 87 75 88 76 /* 89 * é¢æ°77 * 関数 90 78 */ 91 79 -
azure_iot_hub/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
r388 r389 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 … … 89 77 90 78 /* 91 * IPv6 㨠IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«79 * IPv6 と IPv4 で引数が異なる関数のコンパイル 92 80 */ 93 81 … … 313 301 314 302 /* 315 * å¤æ°303 * 変数 316 304 */ 317 305 … … 326 314 327 315 /* 328 * ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºåã©ã¤ãã©ãª316 * シリアルポートへの書式付文字列出力ライブラリ 329 317 */ 330 318 … … 332 320 333 321 /* 334 * æ°å¤å¤æã®ããã®å¤æ表322 * 数値変換のための変換表 335 323 */ 336 324 … … 339 327 340 328 /* 341 * netapp_rand -- ä¹±æ°ãè¿ãã329 * netapp_rand -- 乱数を返す。 342 330 */ 343 331 … … 350 338 351 339 /* 352 * srand -- ä¹±æ°ãåæåããã340 * srand -- 乱数を初期化する。 353 341 */ 354 342 … … 365 353 366 354 /* 367 * cons_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æååºå355 * cons_putchar -- シリアルポートへの文字出力 368 356 */ 369 357 … … 375 363 376 364 /* 377 * cons_getchar -- ã·ãªã¢ã«ãã¼ãããã®æåå 378 ¥å 365 * cons_getchar -- シリアルポートからの文字入力 379 366 */ 380 367 … … 393 380 394 381 /* 395 * cons_putnumber -- cons_printf ã®æ°å¤å¤æ382 * cons_putnumber -- cons_printf の数値変換 396 383 */ 397 384 … … 426 413 427 414 pad = ix; 428 if (!left) /* å³è©°ã*/415 if (!left) /* 右詰め */ 429 416 for ( ; pad < width; pad ++) 430 417 cons_putchar(portid, padchar); … … 433 420 cons_putchar(portid, digits[ix]); 434 421 435 if (left) /* 左詰ã*/422 if (left) /* 左詰め */ 436 423 for ( ; pad < width; pad ++) 437 424 cons_putchar(portid, padchar); … … 441 428 442 429 /* 443 * put_ipv4addr -- IPv4 ã¢ãã¬ã¹åºå430 * put_ipv4addr -- IPv4 アドレス出力 444 431 */ 445 432 … … 447 434 put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width) 448 435 { 449 int_t len = 3; /* 3 㯠'.' ã®æåæ°*/436 int_t len = 3; /* 3 は '.' の文字数 */ 450 437 451 438 len += cons_putnumber(portid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); … … 464 451 465 452 /* 466 * ipv6addr -- IPv6 ã¢ãã¬ã¹åºå453 * ipv6addr -- IPv6 アドレス出力 467 454 */ 468 455 … … 523 510 524 511 /* 525 * put_macaddr -- MAC ã¢ãã¬ã¹åºå512 * put_macaddr -- MAC アドレス出力 526 513 */ 527 514 … … 544 531 545 532 /* 546 * cons_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºå533 * cons_printf -- シリアルポートへの書式付文字列出力 547 534 */ 548 535 … … 558 545 va_start(ap, fmt); 559 546 while ((ch = *fmt ++) != '\0') { 560 if (ch != '%') { /* æ¸å¼æå®ä»¥å¤*/547 if (ch != '%') { /* 書式指定以外 */ 561 548 cons_putchar(portid, (char)ch); 562 549 continue; … … 566 553 padchar = ' '; 567 554 568 if (*fmt == '-') { /* 左詰ã*/555 if (*fmt == '-') { /* 左詰め */ 569 556 fmt ++; 570 557 left = -1; … … 573 560 left = 1; 574 561 575 if ((ch = *fmt ++) == '0') { /* ä¸ä½æ¡ã®0 */562 if ((ch = *fmt ++) == '0') { /* 上位桁の 0 */ 576 563 padchar = '0'; 577 564 ch = *fmt ++; 578 565 } 579 566 580 while ('0' <= ch && ch <= '9') { /* åºåå¹ 581 */ 567 while ('0' <= ch && ch <= '9') { /* 出力幅 */ 582 568 width = width * 10 + ch - '0'; 583 569 ch = *fmt ++; 584 570 } 585 571 586 while (ch == 'l') { /* long (long) ã®æå®*/572 while (ch == 'l') { /* long (long) の指定 */ 587 573 longflag ++; 588 574 ch = *fmt ++; 589 575 } 590 576 591 while (ch == 'h') { /* short ã®æå®*/577 while (ch == 'h') { /* short の指定 */ 592 578 shortflag ++; 593 579 ch = *fmt ++; … … 690 676 691 677 /* 692 * host2msg16 -- 16 ãããã®å¤ãããã¤ããªã¼ãã¼ã調æ´ãã¦ã¡ãã»ã¼ã¸ã«æ¸ãè¾¼ãã678 * host2msg16 -- 16ビットの値を、バイトオーダーを調整してメッセージに書き込む。 693 679 */ 694 680 … … 703 689 704 690 /* 705 * host2msg32 -- 32 ãããã®å¤ãããã¤ããªã¼ãã¼ã調æ´ãã¦ã¡ãã»ã¼ã¸ã«æ¸ãè¾¼ãã691 * host2msg32 -- 32ビットの値を、バイトオーダーを調整してメッセージに書き込む。 706 692 */ 707 693 … … 716 702 717 703 /* 718 * msg2host16 -- 16 ãããã®å¤ãããã¤ããªã¼ãã¼ã調æ´ãã¦ã¡ãã»ã¼ã¸ããèªã¿åºãã704 * msg2host16 -- 16ビットの値を、バイトオーダーを調整してメッセージから読み出す。 719 705 */ 720 706 … … 729 715 730 716 /* 731 * msg2host32 -- 32 ãããã®å¤ãããã¤ããªã¼ãã¼ã調æ´ãã¦ã¡ãã»ã¼ã¸ããèªã¿åºãã717 * msg2host32 -- 32ビットの値を、バイトオーダーを調整してメッセージから読み出す。 732 718 */ 733 719 … … 742 728 743 729 /* 744 * skip_blanks -- 空ç½ã¨ TAB ãã¹ãããããã730 * skip_blanks -- 空白と TAB をスキップする。 745 731 */ 746 732 … … 754 740 755 741 /* 756 * get_ipv4addr -- æååã® IPv4 ã¢ãã¬ã¹ã T_IN4_ADDR å¤ã«å¤æããã742 * get_ipv4addr -- 文字列の IPv4 アドレスを T_IN4_ADDR 値に変換する。 757 743 */ 758 744 … … 781 767 782 768 /* 783 * get_ipv6addr -- æååã® IPv6 ã¢ãã¬ã¹ã T_IN6_ADDR å¤ã«å¤æããã769 * get_ipv6addr -- 文字列の IPv6 アドレスを T_IN6_ADDR 値に変換する。 784 770 */ 785 771 … … 793 779 794 780 /* 795 * IPv4 ã¢ãã¬ã¹ï¼æ°å.ï¼ãæ¤åºããã IPv4 ã¢ãã¬ã¹ã¨ãã¦å 796 ¥åãã 797 * IPv4 å°å½±ã¢ãã¬ã¹ã«å¤æããã 781 * IPv4 アドレス(数字.)を検出したら IPv4 アドレスとして入力し、 782 * IPv4 射影アドレスに変換する。 798 783 */ 799 784 for (ipv4line = line; '0' <= *ipv4line && *ipv4line <= '9'; ipv4line ++) … … 844 829 845 830 /* 846 * ãããã°è¡å 847 ¥å 831 * デバッグ行入力 848 832 */ 849 833 … … 877 861 878 862 /* 879 * get_int -- æ´æ°å¤æ863 * get_int -- 整数変換 880 864 */ 881 865 … … 905 889 906 890 /* 907 * get_xuint -- 符å·ãªãæ´æ° (16é²) å¤æ891 * get_xuint -- 符号なし整数 (16進) 変換 908 892 */ 909 893 … … 930 914 931 915 /* 932 * dns_strtype -- DNS ã® type ã®æååãè¿ãã916 * dns_strtype -- DNS の type の文字列を返す。 933 917 */ 934 918 … … 962 946 963 947 /* 964 * dns_strclass -- DNS ã® class ã表示ããã948 * dns_strclass -- DNS の class を表示する。 965 949 */ 966 950 … … 979 963 980 964 /* 981 * resolv_hoststr -- æååã®FQDNã»ãã¹ãåã»IPv6/IPv4 ã¢ãã¬ã¹ã解æããã965 * resolv_hoststr -- 文字列のFQDN・ホスト名・IPv6/IPv4 アドレスを解析する。 982 966 */ 983 967 … … 1053 1037 1054 1038 /* 1055 * show_dns_domain_name -- DNS ã®ãã¡ã¤ã³åã表示ããã1039 * show_dns_domain_name -- DNS のドメイン名を表示する。 1056 1040 */ 1057 1041 … … 1081 1065 1082 1066 /* 1083 * resolv_options -- ã¢ãã¬ã¹è§£æ±ºã®ãªãã·ã§ã³è§£æ1067 * resolv_options -- アドレス解決のオプション解析 1084 1068 */ 1085 1069 … … 1159 1143 if (*flags | DNS_LUP_FLAGS_PROTO_IPV6) { 1160 1144 /* 1161 * IPv6 㧠DNS ãµã¼ãã«ç 1162 §ä¼ãããã¨ãæå®ããã¦ãã 1163 * ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãæå®ãå¤ãã 1145 * IPv6 で DNS サーバに照会することが指定されても、 1146 * サーバの IPv6 アドレスが未定義の時は、指定を外す。 1164 1147 */ 1165 1148 dns_in6_get_addr(&in6_addr); … … 1174 1157 if (*flags | DNS_LUP_FLAGS_PROTO_IPV4) { 1175 1158 /* 1176 * IPv4 㧠DNS ãµã¼ãã«ç 1177 §ä¼ãããã¨ãæå®ããã¦ãã 1178 * ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãæå®ãå¤ãã 1159 * IPv4 で DNS サーバに照会することが指定されても、 1160 * サーバの IPv4 アドレスが未定義の時は、指定を外す。 1179 1161 */ 1180 1162 dns_in4_get_addr(&in4_addr); … … 1191 1173 1192 1174 /* 1193 * lookup_ipaddr -- ãã¹ãåã»ãªãã©ã«ã®IPã¢ãã¬ã¹ãIP ã¢ãã¬ã¹ã«å¤æããã1175 * lookup_ipaddr -- ホスト名・リテラルのIPアドレスをIP アドレスに変換する。 1194 1176 */ 1195 1177 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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$ … … 48 36 49 37 /* 50 * TOPPERS/JSP ã«ã¼ãã«ãã·ã¹ãã æå» (SYSTIM) ã®å¨æ³¢æ°38 * TOPPERS/JSP カーネル、システム時刻 (SYSTIM) の周波数 51 39 */ 52 40 … … 54 42 55 43 /* 56 * IPv6/IPv4 ã«é¢ããå®ç¾© 57 */ 58 59 /* 60 * æå®ããããã¯ãã«å¯¾ãããµã³ãã«ã¢ããªã±ã¼ã·ã§ã³å 61 é¨ã®ãã¯ãã®å®ç¾© 44 * IPv6/IPv4 に関する定義 45 */ 46 47 /* 48 * 指定されたマクロに対するサンプルアプリケーション内部のマクロの定義 62 49 * 63 50 * SUPPORT_INET6 . . ON ON ON ON … … 81 68 82 69 /* 83 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã70 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 84 71 */ 85 72 … … 103 90 104 91 /* 105 * API IP ãããã³ã«ã®æå®92 * API IPプロトコルの指定 106 93 */ 107 94 … … 113 100 114 101 /* 115 * resolv_hoststr ãè¿ã flags ã®å¤ã®å®ç¾©116 * 117 * 注æ:118 * 119 * dns.h ã§å®ç¾©ããã¦ãã DNS_OPCODEã120 * resolver.h ã§å®ç¾©ããã¦ãã DNS_LUP_FLAGS ã¨éãªããªãäºã102 * resolv_hoststr が返す flags の値の定義 103 * 104 * 注意: 105 * 106 * dns.h で定義されている DNS_OPCODE、 107 * resolver.h で定義されている DNS_LUP_FLAGS と重ならない事。 121 108 */ 122 109 … … 128 115 129 116 /* 130 * å®æ°ã®å®ç¾©117 * 定数の定義 131 118 */ 132 119 … … 144 131 145 132 /* 146 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã147 */ 148 149 /* ã¡ãã»ã¼ã¸ããã®èªåºã*/133 * 関数シミュレーションマクロ 134 */ 135 136 /* メッセージからの読出し */ 150 137 151 138 #define MSG2HOST16(p) (msg2host16((void*)&(p))) 152 139 #define MSG2HOST32(p) (msg2host32((void*)&(p))) 153 140 154 /* ã¡ãã»ã¼ã¸ã¸ã®æ¸è¾¼ã¿*/141 /* メッセージへの書込み */ 155 142 156 143 #define HOST2MSG16(p,v) (host2msg16((void*)&(p),(v))) … … 158 145 159 146 /* 160 * ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å 161 ¥åºå 147 * ネットワーク経由コンソール入出力 162 148 */ 163 149 164 150 #ifdef USE_NET_CONS 165 151 166 /* ãªãã¼ã*/152 /* リネーム */ 167 153 168 154 #define syslog net_syslog 169 155 #define serial_ctl_por net_serial_ctl_por 170 156 171 /* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã*/157 /* 関数シミュレーションマクロ */ 172 158 173 159 #define FLUSH_SND_BUFF() flush_snd_buff() … … 177 163 #else /* of #ifdef USE_NET_CONS */ 178 164 179 /* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã*/165 /* 関数シミュレーションマクロ */ 180 166 181 167 #define FLUSH_SND_BUFF() … … 186 172 187 173 /* 188 * é¢æ°174 * 関数 189 175 */ 190 176 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/netappn_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 … … 51 39 52 40 /* 53 * alloc_tcp_rep -- TCP åä»å£ãç²å¾ããã41 * alloc_tcp_rep -- TCP 受付口を獲得する。 54 42 */ 55 43 … … 77 65 78 66 /* 79 * free_tcp_rep -- TCP åä»å£ã解æ¾ããã67 * free_tcp_rep -- TCP 受付口を解放する。 80 68 */ 81 69 … … 101 89 102 90 /* 103 * tcpn_is_cepid -- TCP é信端ç¹ãæå®ããããããã¯ã¼ã¯å±¤ãªã true ãè¿ãã91 * tcpn_is_cepid -- TCP 通信端点が指定されたネットワーク層なら true を返す。 104 92 */ 105 93 … … 117 105 118 106 /* 119 * alloc_tcp_cep -- TCP é信端ç¹ãç²å¾ããã107 * alloc_tcp_cep -- TCP 通信端点を獲得する。 120 108 */ 121 109 … … 143 131 144 132 /* 145 * free_tcp_cep -- TCP é信端ç¹ã解æ¾ããã133 * free_tcp_cep -- TCP 通信端点を解放する。 146 134 */ 147 135 … … 168 156 169 157 /* 170 * alloc_udp_cep -- UDP é信端ç¹ãç²å¾ããã158 * alloc_udp_cep -- UDP 通信端点を獲得する。 171 159 */ 172 160 … … 194 182 195 183 /* 196 * free_udp_cep -- UDP é信端ç¹ã解æ¾ããã184 * free_udp_cep -- UDP 通信端点を解放する。 197 185 */ 198 186 -
azure_iot_hub/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
r388 r389 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 … … 90 78 91 79 /* 92 * å¤æ°80 * 変数 93 81 */ 94 82 … … 102 90 103 91 /* 104 * icmp_reply_timeout -- ICMP REPLY ã¿ã¤ã ã¢ã¦ãå¦ç92 * icmp_reply_timeout -- ICMP REPLY タイムアウト処理 105 93 */ 106 94 … … 112 100 113 101 /* 114 * icmp_echo_reply -- ICMP ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã102 * icmp_echo_reply -- ICMP ECHO REPLY メッセージを処理する。 115 103 */ 116 104 … … 130 118 131 119 /* 132 * ping4 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã120 * ping4 -- ICMP ECHO メッセージを送信する。 133 121 */ 134 122 … … 141 129 int_t ix; 142 130 143 /* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/131 /* 送信用の IP データグラムを獲得する。*/ 144 132 if (in4_get_datagram(&output, ICMP4_HDR_SIZE + len, 0, 145 133 addr, NULL, IPPROTO_ICMP, … … 147 135 return; 148 136 149 /* ICMP ããããè¨å®ããã*/137 /* ICMP ヘッダを設定する。*/ 150 138 icmp4h = GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET); 151 139 icmp4h->type = ICMP4_ECHO_REQUEST; … … 154 142 icmp4h->data.id_seq.seq = 0; 155 143 156 /* ãã¼ã¿ãè¨å®ããã*/144 /* データを設定する。*/ 157 145 sdu = GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + len; 158 146 for (ix = len; ix -- > 0; ) 159 147 *-- sdu = ('0' + icmp_id + ix) & 0xff; 160 148 161 /* ãã§ãã¯ãµã ãè¨ç®ããã*/149 /* チェックサムを計算する。*/ 162 150 icmp4h->sum = 0; 163 151 icmp4h->sum = in_cksum(icmp4h, ICMP4_HDR_SIZE + len); 164 152 165 /* å¿çãã§ãã¯ç¨ã®å¤æ°ãè¨å®ããã*/153 /* 応答チェック用の変数を設定する。*/ 166 154 #if 0 167 155 curr_icmp_id = icmp_id ++; … … 172 160 NET_COUNT_MIB(icmp_stats.icmpOutEchos, 1); 173 161 174 /* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨å®ããã*/162 /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/ 175 163 ip_output(output, TMO_FEVR); 176 164 -
azure_iot_hub/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
r388 r389 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 … … 106 94 107 95 /* 108 * icmp6_reply_timeout -- ICMP6 REPLY ã¿ã¤ã ã¢ã¦ãå¦ç96 * icmp6_reply_timeout -- ICMP6 REPLY タイムアウト処理 109 97 */ 110 98 … … 117 105 118 106 /* 119 * icmp6_echo_reply -- ICMP6 ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã107 * icmp6_echo_reply -- ICMP6 ECHO REPLY メッセージを処理する。 120 108 */ 121 109 … … 134 122 135 123 /* 136 * ping6 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã124 * ping6 -- ICMP ECHO メッセージを送信する。 137 125 */ 138 126 … … 149 137 150 138 /* 151 * å®å 152 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 153 ã¢ãã¬ã¹ãã 154 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 139 * 宛先アドレスにふさわしい送信元アドレスを、 140 * ネットワークインタフェースから探索して利用する。 155 141 */ 156 142 if ((ia = in6_ifawithifp(ifp, addr)) == NULL) … … 160 146 ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_DEFHLIM); 161 147 162 /* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/148 /* 送信用の IP データグラムを獲得する。*/ 163 149 if (in6_get_datagram(&output, ICMP6_HDR_SIZE + size, 0, 164 150 addr, &ia->addr, IPPROTO_ICMPV6, … … 166 152 return; 167 153 168 /* ICMP ããããè¨å®ããã*/154 /* ICMP ヘッダを設定する。*/ 169 155 icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET); 170 156 icmp6h->type = ICMP6_ECHO_REQUEST; … … 173 159 icmp6h->icmp6_seq= 0; 174 160 175 /* ãã¼ã¿ãè¨å®ããã*/161 /* データを設定する。*/ 176 162 sdu = GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET) + size; 177 163 for (ix = size; ix -- > 0; ) 178 164 *-- sdu = ('0' + send_icmp6_id + ix) & 0xff; 179 165 180 /* ãã§ãã¯ãµã ãè¨ç®ããã*/166 /* チェックサムを計算する。*/ 181 167 icmp6h->sum = 0; 182 168 icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, 183 169 (uint8_t*)icmp6h - output->buf, ICMP6_HDR_SIZE + size); 184 170 185 /* å¿çãã§ãã¯ç¨ã®å¤æ°ãè¨å®ããã*/171 /* 応答チェック用の変数を設定する。*/ 186 172 reply_count = 0; 187 173 … … 197 183 #endif 198 184 199 /* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨å®ããã*/185 /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/ 200 186 ip6_output(output, ipflags, TMO_FEVR); 201 187 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/resolver.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 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 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 41 28 * 42 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 43 ã 44 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 45 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 46 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 31 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 32 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 47 33 * 48 34 * @(#) $Id$ … … 50 36 51 37 /* 52 * ãã¹ãåââIP ã¢ãã¬ã¹å¤æ38 * ホスト名←→IP アドレス変換 53 39 */ 54 40 … … 87 73 88 74 /* 89 * å±æå¤æ°75 * 局所変数 90 76 */ 91 77 … … 104 90 105 91 /* 106 * get_dns_header -- DNS ã¡ãã»ã¼ã¸ãã DNS ããããåãåºãã92 * get_dns_header -- DNS メッセージから DNS ヘッダを取り出す。 107 93 */ 108 94 … … 112 98 T_DNS_HDR *dns_hdr; 113 99 114 /* DNS ããããåãåºãã*/100 /* DNS ヘッダを取り出す。*/ 115 101 if (length < sizeof(rslv->dns_hdr)) 116 102 return EV_RSLV_ESIZE; … … 126 112 127 113 /* 128 * dns_strtype -- DNS ã® type ã®æååãè¿ãã114 * dns_strtype -- DNS の type の文字列を返す。 129 115 */ 130 116 … … 145 131 146 132 /* 147 * udp6_dns -- UDP/IPv6 ã«ãã DNS ãµã¼ãããã¡ãã»ã¼ã¸ãåä¿¡ããã133 * udp6_dns -- UDP/IPv6 により DNS サーバからメッセージを受信する。 148 134 */ 149 135 … … 155 141 int retry; 156 142 157 /* DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãã©ã¡ã¼ã¿ã¨ã©ã¼*/143 /* DNS サーバの IPv6 アドレスが未定義の時はパラメータエラー */ 158 144 if (IN6_IS_ADDR_UNSPECIFIED(addr) || (in6_is_addr_ipv4mapped(addr) && addr->s6_addr32[3] == IPV4_ADDRANY)) { 159 145 syslog(LOG_NOTICE, "[RSLV] undefined IPv6 DNS server address."); … … 191 177 192 178 /* 193 * udp4_dns -- UDP/IPv4 ã«ãã DNS ãµã¼ãããã¡ãã»ã¼ã¸ãåä¿¡ããã179 * udp4_dns -- UDP/IPv4 により DNS サーバからメッセージを受信する。 194 180 */ 195 181 … … 201 187 int retry; 202 188 203 /* DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãã©ã¡ã¼ã¿ã¨ã©ã¼*/189 /* DNS サーバの IPv4 アドレスが未定義の時はパラメータエラー */ 204 190 if (*addr == IPV4_ADDRANY) { 205 191 syslog(LOG_NOTICE, "[RSLV] undefined IPv4 DNS server address."); … … 235 221 236 222 /* 237 * skip_label -- ã©ãã«ãèªã¿é£ã°ãã223 * skip_label -- ラベルを読み飛ばす。 238 224 */ 239 225 … … 247 233 248 234 /* 249 * add_name -- ã¡ãã»ã¼ã¸ã«ååã追å ããã235 * add_name -- メッセージに名前を追加する。 250 236 */ 251 237 … … 258 244 while (*name != '\0') { 259 245 260 /* ã¡ãã»ã¼ã¸ãµã¤ãºã«éãã¦ãããã¨ã©ã¼*/246 /* メッセージサイズに達していたらエラー */ 261 247 if (offset + 1 > size) 262 248 return E_BOVR; 263 249 264 /* ã©ãã«ã®çµãããè¦ã¤ããã*/250 /* ラベルの終わりを見つける。*/ 265 251 tail = skip_label(name); 266 252 267 /* ã©ãã«é·ãè¨å®ããã*/253 /* ラベル長を設定する。*/ 268 254 label_len = tail - (uint8_t*)name; 269 if (label_len > DNS_LABEL_LENGTH) { /* 63 ãªã¯ããããè¶ 270 ããã¨ã¨ã©ã¼ */ 255 if (label_len > DNS_LABEL_LENGTH) { /* 63 オクテットを超えるとエラー */ 271 256 syslog(LOG_NOTICE, "[RSLV] label length(%d) too long > %d.", 272 257 label_len, DNS_LABEL_LENGTH); … … 277 262 offset ++; 278 263 279 /* ã©ãã«åãè¨å®ããã*/ 280 if (offset + label_len > size) { /* ã¡ãã»ã¼ã¸ãµã¤ãºãè¶ 281 ããã¨ã¨ã©ã¼ */ 264 /* ラベル名を設定する。*/ 265 if (offset + label_len > size) { /* メッセージサイズを超えるとエラー */ 282 266 syslog(LOG_NOTICE, "[RSLV] message length(%d) too long > %d.", 283 267 offset + label_len, size); … … 288 272 offset += label_len; 289 273 290 /* 次ã®ã©ãã«ã«ç§»åããã*/274 /* 次のラベルに移動する。*/ 291 275 if (*tail == '\0') 292 276 name = tail; 293 277 else 294 name = tail + 1; /* '.' ãã¹ãããããã*/278 name = tail + 1; /* '.' をスキップする。*/ 295 279 } 296 280 … … 299 283 300 284 /* 301 * add_ipv6addr -- ã¡ãã»ã¼ã¸ã« IPv6 ã¢ãã¬ã¹ã追å ããã285 * add_ipv6addr -- メッセージに IPv6 アドレスを追加する。 302 286 */ 303 287 … … 319 303 for (col = sizeof(T_IN6_ADDR) * 2; -- col >= 0; ) { 320 304 321 /* 16 é²æ° 1æ¡ã®å¤ããååã¨ãã¦è¿½å ããã*/305 /* 16進数 1桁の値を、名前として追加する。*/ 322 306 digit[0] = (addr.s6_addr8[col / 2] >> ((1 - (col % 2)) << 2)) & 0x0f; 323 307 if (digit[0] >= 10) … … 330 314 } 331 315 332 /* "ip6" ã追å ããã*/316 /* "ip6" を追加する。*/ 333 317 if ((error = add_name(msg, size, offset, "ip6")) < 0) 334 318 return error; 335 319 336 /* "arpa" ã追å ããã*/320 /* "arpa" を追加する。*/ 337 321 return add_name(msg, size, error, "arpa"); 338 322 } 339 323 340 324 /* 341 * add_ipv4addr -- ã¡ãã»ã¼ã¸ã« IPv4 ã¢ãã¬ã¹ã追å ããã325 * add_ipv4addr -- メッセージに IPv4 アドレスを追加する。 342 326 */ 343 327 … … 359 343 for (col = 0; col < sizeof(T_IN4_ADDR); col ++) { 360 344 361 /* 1 ãªã¯ãããã®å¤ããæ´æ°å¤ãããªãã©ã«ã«å¤æããã*/345 /* 1オクテットの値を、整数値からリテラルに変換する。*/ 362 346 octet = (addr >> (col << 3)) & 0xff; 363 347 op = &ostr[3]; … … 367 351 } 368 352 369 /* 1 ãªã¯ãããã®å¤ããååã¨ãã¦è¿½å ããã*/353 /* 1オクテットの値を、名前として追加する。*/ 370 354 if ((error = add_name(msg, size, offset, op)) < 0) 371 355 return error; … … 373 357 } 374 358 375 /* "in-addr" ã追å ããã*/359 /* "in-addr" を追加する。*/ 376 360 if ((error = add_name(msg, size, offset, "in-addr")) < 0) 377 361 return error; 378 362 379 /* "arpa" ã追å ããã*/363 /* "arpa" を追加する。*/ 380 364 return add_name(msg, size, error, "arpa"); 381 365 } 382 366 383 367 /* 384 * setup_dns_msg -- DNS ã¡ãã»ã¼ã¸ãä½æããã368 * setup_dns_msg -- DNS メッセージを作成する。 385 369 */ 386 370 … … 406 390 case DNS_LUP_FLAGS_NAME_FQDN: 407 391 408 /* ãã¹ãåãã¾ã㯠FQDN ã®æã®å¦çã*/409 /* ãã¹ãåã追å ããã*/392 /* ホスト名、または FQDN の時の処理。*/ 393 /* ホスト名を追加する。*/ 410 394 if ((offset = add_name(msg, msg_size, offset, name)) < 0) 411 395 return offset; 412 396 413 if (offset - sizeof(dns_hdr) > DNS_NAME_LENGTH) { /* ååã 255 ãªã¯ããããè¶ 414 ããã¨ã¨ã©ã¼ */ 397 if (offset - sizeof(dns_hdr) > DNS_NAME_LENGTH) { /* 名前が 255 オクテットを超えるとエラー */ 415 398 syslog(LOG_NOTICE, "[RSLV] name length(%d) too long > %d.", 416 399 offset - sizeof(dns_hdr), DNS_NAME_LENGTH); … … 418 401 } 419 402 420 /* ãã¹ãåã ãã®æã¯ããã¡ã¤ã³åã追å ããã*/403 /* ホスト名だけの時は、ドメイン名を追加する。*/ 421 404 if ((flags & DNS_LUP_FLAGS_NAME_MASK) == DNS_LUP_FLAGS_NAME_HOST) { 422 405 423 /* ãã¡ã¤ã³åã追å ããã*/406 /* ドメイン名を追加する。*/ 424 407 if ((offset = add_name(msg, msg_size, offset, dns_domain_name)) < 0) 425 408 return offset; 426 409 427 if (offset - sizeof(dns_hdr) > DNS_NAME_LENGTH) { /* ååã 255 ãªã¯ããããè¶ 428 ããã¨ã¨ã©ã¼ */ 410 if (offset - sizeof(dns_hdr) > DNS_NAME_LENGTH) { /* 名前が 255 オクテットを超えるとエラー */ 429 411 syslog(LOG_NOTICE, "[RSLV] name length(%d) too long > %d.", 430 412 offset - sizeof(dns_hdr), DNS_NAME_LENGTH); … … 451 433 } 452 434 453 /* ååã®çµäºã³ã¼ããTYPEãCLASS ã追å ãã¦ãã¡ãã»ã¼ã¸é·ãè¶ 454 ããªããã¨ã確èªããã*/ 435 /* 名前の終了コード、TYPE、CLASS を追加してもメッセージ長を超えないことを確認する。*/ 455 436 if (offset + sizeof(uint16_t) * 2 + 1 > msg_size) { 456 437 syslog(LOG_NOTICE, "[RSLV] message length(%d) too long > %d.", … … 459 440 } 460 441 461 /* ååã®çµäºã³ã¼ããè¨å®ããã*/442 /* 名前の終了コードを設定する。*/ 462 443 *(msg + offset) = '\0'; 463 444 offset ++; 464 445 465 /* DNS ã® TYPE ãè¨å®ããã*/446 /* DNS の TYPE を設定する。*/ 466 447 if (flags & DNS_LUP_FLAGS_QTYPE_PTR) 467 448 host2msg16(msg + offset, DNS_TYPE_PTR); … … 476 457 offset += sizeof(uint16_t); 477 458 478 /* DNS ã® CLASS ãè¨å®ããã*/459 /* DNS の CLASS を設定する。*/ 479 460 host2msg16(msg + offset, DNS_CLASS_IN); 480 461 … … 483 464 484 465 /* 485 * skip_dns_name -- DNS ã¡ãã»ã¼ã¸ã®ååãèªã¿é£ã°ãã466 * skip_dns_name -- DNS メッセージの名前を読み飛ばす。 486 467 * 487 * 注æ: å§ç¸®å½¢å¼ãèæ 488 ®ãããä¸ä½ 2ãããã 11ãªãå§ç¸®å½¢å¼ã 468 * 注意: 圧縮形式を考慮する。上位 2ビットが 11なら圧縮形式。 489 469 */ 490 470 … … 508 488 509 489 /* 510 * skip_dns_qd -- DNS Question section ãèªã¿é£ã°ãã490 * skip_dns_qd -- DNS Question section を読み飛ばす。 511 491 */ 512 492 … … 517 497 518 498 while (count != 0) { 519 /* name ãèªã¿é£ã°ãã*/499 /* name を読み飛ばす。*/ 520 500 if ((next = skip_dns_name(msg, offset, length)) < 0) 521 501 return next; 522 502 offset = next; 523 503 524 /* type ãclass ãèªã¿é£ã°ãã*/504 /* type、class を読み飛ばす。*/ 525 505 if ((offset + sizeof(uint16_t) + sizeof(uint16_t)) > length) 526 506 return EV_RSLV_ESIZE; … … 534 514 535 515 /* 536 * skip_dns_rr -- DNS RR ãèªã¿é£ã°ãã516 * skip_dns_rr -- DNS RR を読み飛ばす。 537 517 */ 538 518 … … 544 524 545 525 while (count != 0) { 546 /* name ãèªã¿é£ã°ãã*/526 /* name を読み飛ばす。*/ 547 527 if ((next = skip_dns_name(msg, offset, length)) < 0) 548 528 return next; 549 529 offset = next; 550 530 551 /* type ãclassãTTL ãèªã¿é£ã°ãã*/531 /* type、class、TTL を読み飛ばす。*/ 552 532 if (offset + sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t) > length) 553 533 return EV_RSLV_ESIZE; 554 534 offset += sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t); 555 535 556 /* RD length 㨠RDATA ãèªã¿é£ã°ãã*/536 /* RD length と RDATA を読み飛ばす。*/ 557 537 if (offset + sizeof(uint16_t) > length) 558 538 return EV_RSLV_ESIZE; … … 570 550 571 551 /* 572 * dns_analyze_qd -- DNS ã¡ãã»ã¼ã¸ã® question section ã解æããã552 * dns_analyze_qd -- DNS メッセージの question section を解析する。 573 553 */ 574 554 … … 583 563 offset = error; 584 564 585 /* DNS ã¡ãã»ã¼ã¸å 586 ã®å½¢å¼ã®ãµã¤ãºã§ãã§ãã¯ããã*/ 565 /* DNS メッセージ内の形式のサイズでチェックする。*/ 587 566 if (offset + T_DNS_QD_SIZE > length) 588 567 return EV_RSLV_ESIZE; 589 568 590 569 /* 591 * DNS ã¡ãã»ã¼ã¸å 592 ã® SOA RDATA ããã¤ããªã¼ãã¼ã調æ´ã㦠593 * å 594 é¨æ§é ä½ã«ã³ãã¼ããã 570 * DNS メッセージ内の SOA RDATA をバイトオーダーを調整して 571 * 内部構造体にコピーする。 595 572 */ 596 573 dns_qd = (T_DNS_QD*)(msg + offset); … … 602 579 603 580 /* 604 * dns_analyze_soa -- DNS ã¡ãã»ã¼ã¸ã® SOA RDATA ã解æããã581 * dns_analyze_soa -- DNS メッセージの SOA RDATA を解析する。 605 582 */ 606 583 … … 611 588 T_DNS_SOA *dns_soa; 612 589 613 /* MNAME ãã¹ãããããã*/590 /* MNAME をスキップする。*/ 614 591 if ((error = skip_dns_name(msg, offset, length)) < 0) 615 592 return error; 616 593 offset = error; 617 594 618 /* RNAME ãã¹ãããããã*/595 /* RNAME をスキップする。*/ 619 596 if ((error = skip_dns_name(msg, offset, length)) < 0) 620 597 return error; 621 598 offset = error; 622 599 623 /* DNS ã¡ãã»ã¼ã¸å 624 ã®å½¢å¼ã®ãµã¤ãºã§ãã§ãã¯ããã*/ 600 /* DNS メッセージ内の形式のサイズでチェックする。*/ 625 601 if (offset + T_DNS_SOA_SIZE > length) 626 602 return EV_RSLV_ESIZE; 627 603 628 604 /* 629 * DNS ã¡ãã»ã¼ã¸å 630 ã® SOA RDATA ããã¤ããªã¼ãã¼ã調æ´ã㦠631 * å 632 é¨æ§é ä½ã«ã³ãã¼ããã 605 * DNS メッセージ内の SOA RDATA をバイトオーダーを調整して 606 * 内部構造体にコピーする。 633 607 */ 634 608 dns_soa = (T_DNS_SOA*)(msg + offset); … … 643 617 644 618 /* 645 * dns_analyze_rr -- DNS ã¡ãã»ã¼ã¸ã® AN/NS/AR section ã解æããã619 * dns_analyze_rr -- DNS メッセージの AN/NS/AR section を解析する。 646 620 */ 647 621 … … 656 630 offset = error; 657 631 658 /* DNS ã¡ãã»ã¼ã¸å 659 ã®å½¢å¼ã®ãµã¤ãºã§ãã§ãã¯ããã*/ 632 /* DNS メッセージ内の形式のサイズでチェックする。*/ 660 633 if (offset + T_DNS_RR_SIZE > length) 661 634 return EV_RSLV_ESIZE; 662 635 663 636 /* 664 * DNS ã¡ãã»ã¼ã¸å 665 ã® SOA RDATA ããã¤ããªã¼ãã¼ã調æ´ã㦠666 * å 667 é¨æ§é ä½ã«ã³ãã¼ããã 637 * DNS メッセージ内の SOA RDATA をバイトオーダーを調整して 638 * 内部構造体にコピーする。 668 639 */ 669 640 dns_rr = (T_DNS_RR*)(msg + offset); … … 679 650 680 651 /* 681 * analyze_dns_msg -- DNS ã¡ãã»ã¼ã¸ã解æããã652 * analyze_dns_msg -- DNS メッセージを解析する。 682 653 */ 683 654 … … 687 658 ER_UINT offset; 688 659 689 /* DNS ããããåãåºãã*/660 /* DNS ヘッダを取り出す。*/ 690 661 if ((offset = get_dns_header(msg, length, rslv)) < 0) 691 662 return offset; 692 663 693 /* question section ãèªã¿é£ã°ãã*/664 /* question section を読み飛ばす。*/ 694 665 rslv->qd_offset = offset; 695 666 if ((offset = skip_dns_qd(msg, offset, length, rslv->dns_hdr.qdcount)) < 0) 696 667 return offset; 697 668 698 /* answer section ãèªã¿é£ã°ãã*/669 /* answer section を読み飛ばす。*/ 699 670 rslv->an_offset = offset; 700 671 if ((offset = skip_dns_rr(msg, offset, length, rslv->dns_hdr.ancount)) < 0) 701 672 return offset; 702 673 703 /* authority records section ãèªã¿é£ã°ãã*/674 /* authority records section を読み飛ばす。*/ 704 675 rslv->ns_offset = offset; 705 676 if ((offset = skip_dns_rr(msg, offset, length, rslv->dns_hdr.nscount)) < 0) 706 677 return offset; 707 678 708 /* additional records section ãèªã¿é£ã°ãã*/679 /* additional records section を読み飛ばす。*/ 709 680 rslv->ar_offset = offset; 710 681 if ((offset = skip_dns_rr(msg, offset, length, rslv->dns_hdr.arcount)) < 0) … … 715 686 716 687 /* 717 * dns_lookup_host_sub -- DNS ã«ãããã¹ãã®æ 718 å ±ãåå¾ããï¼è£å©é¢æ°ï¼ã 688 * dns_lookup_host_sub -- DNS によりホストの情報を取得する(補助関数)。 719 689 */ 720 690 … … 833 803 834 804 /* 835 * udp64_dns -- DNS/IPv6 ãDNS/IPv4 ã«ãã DNS ãµã¼ãããã¡ãã»ã¼ã¸ãåä¿¡ããã805 * udp64_dns -- DNS/IPv6、DNS/IPv4 により DNS サーバからメッセージを受信する。 836 806 */ 837 807 … … 844 814 uint16_t proto; 845 815 846 /* DNS ã¡ãã»ã¼ã¸ãä½æããã*/816 /* DNS メッセージを作成する。*/ 847 817 if ((length = setup_dns_msg(flags, hostname, msg, msg_size)) < 0) 848 818 return length; 849 819 850 /* UDP/IPv6 ã® DNS ãµã¼ãã«ç 851 §ä¼ããã*/ 820 /* UDP/IPv6 の DNS サーバに照会する。*/ 852 821 proto = DNS_LUP_FLAGS_PROTO_IPV6; 853 822 if ((length = udp6_dns(flags, &in6_addr_dns, msg, msg_size, length)) < 0) { 854 /* UDP/IPv6 ã® DNS ãµã¼ãã¸ã®ç 855 §ä¼ãã¨ã©ã¼ã«ãªã£ãæã¯ãUDP/IPv4 ã® DNS ãµã¼ãã«ç 856 §ä¼ããã*/ 823 /* UDP/IPv6 の DNS サーバへの照会がエラーになった時は、UDP/IPv4 の DNS サーバに照会する。*/ 857 824 if ((length = setup_dns_msg(flags, hostname, msg, msg_size)) < 0) 858 825 return length; 859 826 860 /* UDP/IPv4 ã® DNS ãµã¼ãã«ç 861 §ä¼ããã*/ 827 /* UDP/IPv4 の DNS サーバに照会する。*/ 862 828 proto = DNS_LUP_FLAGS_PROTO_IPV4; 863 829 if ((length = udp4_dns(flags, &in4_addr_dns, msg, msg_size, length)) < 0) … … 865 831 } 866 832 867 /* DNS ã¡ãã»ã¼ã¸ã解æããã*/833 /* DNS メッセージを解析する。*/ 868 834 if ((error = analyze_dns_msg(msg, length, rslv)) != E_OK) 869 835 return error; … … 890 856 891 857 /* 892 * dns_lookup_host -- DNS ã«ãããã¹ãã®æ 893 å ±ãåå¾ããã 858 * dns_lookup_host -- DNS によりホストの情報を取得する。 894 859 */ 895 860 … … 905 870 906 871 /* 907 * IPv6/IPv4 ã®ä¸¡æ¹ãæå®ãããæã®å¦ç 908 * ã¾ã type == AAAA 㧠DNS ãµã¼ãã«ç 909 §ä¼ããã 872 * IPv6/IPv4 の両方が指定された時の処理 873 * まず type == AAAA で DNS サーバに照会する。 910 874 */ 911 875 if (flags & DNS_LUP_FLAGS_QTYPE_PTR) { … … 925 889 926 890 /* 927 * type == AAAA ã§ã¢ãã¬ã¹è§£æ±ºãã§ããªãã£ãæã®å¦ç 928 * type == A 㧠DNS ãµã¼ãã«ç 929 §ä¼ããã 891 * type == AAAA でアドレス解決ができなかった時の処理 892 * type == A で DNS サーバに照会する。 930 893 */ 931 894 if (flags & DNS_LUP_FLAGS_QTYPE_A) … … 943 906 944 907 /* 945 * type == AAAA 㨠A ã®ä¸¡æ¹ãæå®ãããæã®å¦ç 946 * ã¾ã type == AAAA 㧠DNS ãµã¼ãã«ç 947 §ä¼ããã 908 * type == AAAA と A の両方が指定された時の処理 909 * まず type == AAAA で DNS サーバに照会する。 948 910 */ 949 911 if ((error = dns_lookup_host_sub(flags & ~DNS_LUP_FLAGS_QTYPE_A, hostname, msg, msg_size, rslv)) < 0) … … 953 915 954 916 /* 955 * type == AAAA ã§ã¢ãã¬ã¹è§£æ±ºãã§ããªãã£ãæã®å¦ç 956 * type == A 㧠DNS ãµã¼ãã«ç 957 §ä¼ããã 917 * type == AAAA でアドレス解決ができなかった時の処理 918 * type == A で DNS サーバに照会する。 958 919 */ 959 920 return dns_lookup_host_sub(flags & ~DNS_LUP_FLAGS_QTYPE_AAAA, hostname, msg, msg_size, rslv); … … 968 929 969 930 else { 970 /* IPv6/IPv4 ã®ã©ã¡ããä¸æ¹ãæå®ãããæã®å¦ç*/931 /* IPv6/IPv4 のどちらか一方が指定された時の処理 */ 971 932 error = dns_lookup_host_sub(flags, hostname, msg, msg_size, rslv); 972 933 } … … 984 945 985 946 /* 986 * dns_in6_set_dname -- DNS ã® ãã¡ã¤ã³åãè¨å®ããï¼DHCPv6ç¨ï¼ã947 * dns_in6_set_dname -- DNS の ドメイン名を設定する(DHCPv6用)。 987 948 * 988 * 注æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã949 * 注意: new に NULL を指定すると、初期値に戻す。 989 950 */ 990 951 … … 1019 980 1020 981 /* 1021 * dns_in6_get_dname -- DNS ã® ãã¡ã¤ã³åãå¾ãã982 * dns_in6_get_dname -- DNS の ドメイン名を得る。 1022 983 */ 1023 984 … … 1029 990 1030 991 /* 1031 * dns_in6_set_addr -- DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãè¨å®ããï¼DHCPv6ç¨ï¼ã992 * dns_in6_set_addr -- DNS サーバの IPv6 アドレスを設定する(DHCPv6用)。 1032 993 * 1033 * 注æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã994 * 注意: new に NULL を指定すると、初期値に戻す。 1034 995 */ 1035 996 … … 1045 1006 1046 1007 /* 1047 * dns_in6_get_addr -- DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãå¾ãã1008 * dns_in6_get_addr -- DNS サーバの IPv6 アドレスを得る。 1048 1009 */ 1049 1010 … … 1064 1025 1065 1026 /* 1066 * dns_in4_set_dname -- DNS ã® ãã¡ã¤ã³åãè¨å®ããï¼DHCPv4ç¨ï¼ã1027 * dns_in4_set_dname -- DNS の ドメイン名を設定する(DHCPv4用)。 1067 1028 * 1068 * 注æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã1029 * 注意: new に NULL を指定すると、初期値に戻す。 1069 1030 */ 1070 1031 … … 1087 1048 1088 1049 /* 1089 * dns_in4_get_dname -- DNS ã® ãã¡ã¤ã³åãå¾ãã1050 * dns_in4_get_dname -- DNS の ドメイン名を得る。 1090 1051 */ 1091 1052 … … 1097 1058 1098 1059 /* 1099 * dns_in4_set_addr -- DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãè¨å®ããï¼DHCPv4ç¨ï¼ã1060 * dns_in4_set_addr -- DNS サーバの IPv4 アドレスを設定する(DHCPv4用)。 1100 1061 * 1101 * 注æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã1062 * 注意: new に NULL を指定すると、初期値に戻す。 1102 1063 */ 1103 1064 … … 1113 1074 1114 1075 /* 1115 * dns_in4_get_addr -- DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãå¾ãã1076 * dns_in4_get_addr -- DNS サーバの IPv4 アドレスを得る。 1116 1077 */ 1117 1078 … … 1130 1091 1131 1092 /* 1132 * dns_host_addr -- ãã¹ãåã IP ã¢ãã¬ã¹ã«å¤æããã1093 * dns_host_addr -- ホスト名を IP アドレスに変換する。 1133 1094 */ 1134 1095 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/resolver.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 41 * 42 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 43 ã 44 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 45 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 46 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 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 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 31 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 32 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 47 33 * 48 34 * @(#) $Id$ … … 50 36 51 37 /* 52 * ãã¹ãåââIP ã¢ãã¬ã¹å¤æ38 * ホスト名←→IP アドレス変換 53 39 */ 54 40 … … 59 45 60 46 /* 61 * ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã®æå®62 */ 63 64 /* ãã¼ãçªå·*/47 * コンパイル時コンフィギュレーションの指定 48 */ 49 50 /* ポート番号 */ 65 51 66 52 #define RSLV_CFG_DNS_PORTNO 53 67 53 68 54 /* 69 * ã¿ã¤ã ã¢ã¦ãå¤70 */ 71 72 #define TMO_DNS_UDP_SND ULONG_C(1*1000*1000) /* [us] ãDNS ãµã¼ãã¸ã® UDP éä¿¡ã¿ã¤ã ã¢ã¦ã*/73 #define TMO_DNS_UDP_RCV ULONG_C(5*1000*1000) /* [us] ãDNS ãµã¼ãããã® UDP åä¿¡ã¿ã¤ã ã¢ã¦ã*/74 #define NUM_DNS_UDP_RETRY 1 /* ãªãã©ã¤åæ°*/75 76 /* 77 * ãã¡ã¤ã³å55 * タイムアウト値 56 */ 57 58 #define TMO_DNS_UDP_SND ULONG_C(1*1000*1000) /* [us]、DNS サーバへの UDP 送信タイムアウト */ 59 #define TMO_DNS_UDP_RCV ULONG_C(5*1000*1000) /* [us]、DNS サーバからの UDP 受信タイムアウト */ 60 #define NUM_DNS_UDP_RETRY 1 /* リトライ回数 */ 61 62 /* 63 * ドメイン名 78 64 */ 79 65 … … 84 70 85 71 /* 86 * DNS ãµã¼ãã¼ã® IPã¢ãã¬ã¹72 * DNS サーバーの IPアドレス 87 73 */ 88 74 … … 96 82 97 83 /* 98 * éåä¿¡ãããã¡æ°84 * 送受信バッファ数 99 85 */ 100 86 … … 102 88 103 89 /* 104 * ããã°ã©ã ã§ä½¿ç¨ããæ 105 å ±ã®å®ç¾© 106 */ 107 108 /* 109 * ããã°ã©ã ã§ä½¿ç¨ãã DNS ããã 110 * 111 * 注æ: ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼ 90 * プログラムで使用する情報の定義 91 */ 92 93 /* 94 * プログラムで使用する DNS ヘッダ 95 * 96 * 注意: メンバはホストバイトオーダー 112 97 * 113 98 * 0 7 8 15 … … 147 132 * DNS message data 148 133 * 149 * 注æ: ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼134 * 注意: メンバはホストバイトオーダー 150 135 */ 151 136 … … 159 144 160 145 /* 161 * RR (Resouce Record) å½¢å¼146 * RR (Resouce Record) 形式 162 147 * 163 148 * 0 7 8 15 … … 185 170 * +-----------------------------------------------+ 186 171 * 187 * 注æ: offset ã®åç¹ã¯ DNS message ã®å 188 é 189 * ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼ 172 * 注意: offset の原点は DNS message の先頭 173 * メンバはホストバイトオーダー 190 174 */ 191 175 … … 199 183 200 184 /* 201 * Question section å½¢å¼185 * Question section 形式 202 186 * 203 187 * 0 7 8 15 … … 214 198 * +-----------------------------------------------+ 215 199 * 216 * 注æ: ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼200 * 注意: メンバはホストバイトオーダー 217 201 */ 218 202 … … 223 207 224 208 /* 225 * SOA RDATA å½¢å¼209 * SOA RDATA 形式 226 210 * 227 211 * 0 7 8 15 … … 255 239 * +-----------------------------------------------+ 256 240 * 257 * 注æ: offset ã®åç¹ã¯ DNS message ã®å 258 é 259 * ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼ 241 * 注意: offset の原点は DNS message の先頭 242 * メンバはホストバイトオーダー 260 243 */ 261 244 … … 269 252 270 253 /* 271 * dns_lookup_host ã® flags ã®å®ç¾©272 * 273 * 注æ:274 * dns.h ã§å®ç¾©ããã¦ãã DNS_OPCODE ã¨éãªããªããã¨ã254 * dns_lookup_host の flags の定義 255 * 256 * 注意: 257 * dns.h で定義されている DNS_OPCODE と重ならないこと。 275 258 * #define DNS_OPCODE_MASK 0x7800U 276 259 */ … … 299 282 300 283 /* 301 * ãããã¯ã¼ã¯ã¨ã©ã¼ã³ã¼ã302 */ 303 304 #define EV_RSLV_ESIZE (-100) /* DNS ã¡ãã»ã¼ã¸ã®ååé·ç°å¸¸*/305 #define EV_RSLV_UNEXPCT (-101) /* äºæããªãDNSã¡ãã»ã¼ã¸*/306 307 /* 308 * é¢æ°284 * ネットワークエラーコード 285 */ 286 287 #define EV_RSLV_ESIZE (-100) /* DNSメッセージの名前長異常 */ 288 #define EV_RSLV_UNEXPCT (-101) /* 予期しないDNSメッセージ */ 289 290 /* 291 * 関数 309 292 */ 310 293 … … 316 299 317 300 /* 318 * 注æ: dns_in6_set_dnameãdns_in4_set_dnameã319 * dns_in6_set_addr ã dns_in4_set_addr ã§ã320 * new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã301 * 注意: dns_in6_set_dname、dns_in4_set_dname、 302 * dns_in6_set_addr、 dns_in4_set_addr で、 303 * new に NULL を指定すると、初期値に戻す。 321 304 */ 322 305 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/resolver_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 ç¨ Resolver ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * ASP 用 Resolver のシステムコンフィギュレーションファイル 48 36 */ 49 37 … … 51 39 52 40 /* 53 * åºå®ã¡ã¢ãªãã¼ã«41 * 固定メモリプール 54 42 */ 55 43 56 /* éåä¿¡ãããã¡*/44 /* 送受信バッファ */ 57 45 58 46 CRE_MPF(MPF_RSLV_SRBUF, { -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/resolver_jsp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 ç¨ Resolver ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * JSP 用 Resolver のシステムコンフィギュレーションファイル 48 36 */ 49 37 … … 51 39 52 40 /* 53 * åºå®ã¡ã¢ãªãã¼ã«41 * 固定メモリプール 54 42 */ 55 43 56 /* éåä¿¡ãããã¡*/44 /* 送受信バッファ */ 57 45 58 46 CRE_MPF(MPF_RSLV_SRBUF, { -
azure_iot_hub/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
r388 r389 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 … … 79 67 #ifdef USE_TCP_DISCARD_CLI 80 68 81 /* discard ãµã¼ãã®ãã¼ãçªå·*/69 /* discard サーバのポート番号 */ 82 70 83 71 #define DISCARD_SRV_PORTNO UINT_C(9) 84 72 85 /* 表示*/73 /* 表示 */ 86 74 87 75 /*#define SHOW_RCV_RANGE*/ 88 76 89 /* éä¿¡éé*/77 /* 送信間隔 */ 90 78 91 79 #ifdef TOPPERS_S810_CLG3_85 … … 103 91 #endif /* of #ifdef TOPPERS_S810_CLG3_85 */ 104 92 105 /* èªåå®è¡*/93 /* 自動実行 */ 106 94 107 95 #if defined(TCP_DISCARD_CLI_AUTO_RUN_STR) … … 117 105 118 106 /* 119 * ãããã¡ãµã¤ãºã®å®ç¾©107 * バッファサイズの定義 120 108 */ 121 109 … … 127 115 128 116 /* 129 * å 130 ¨åå¤æ° 117 * 全域変数 131 118 */ 132 119 133 120 bool_t tcp_discard_cli_valid; 134 121 135 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/122 /* TCP 送受信ウィンドバッファ */ 136 123 137 124 #ifndef TCP_CFG_SWBUF_CSAVE_ONLY … … 142 129 143 130 /* 144 * å¤æ°131 * 変数 145 132 */ 146 133 … … 153 140 154 141 /* 155 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°142 * ノンブロッキングコールのコールバック関数 156 143 */ 157 144 … … 187 174 188 175 /* 189 * send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã176 * send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。 190 177 */ 191 178 … … 215 202 } 216 203 217 /* æ¥ç¶ãå®äºããã¾ã§å¾ 218 ã¤ã*/ 204 /* 接続が完了するまで待つ。*/ 219 205 syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY)); 220 206 … … 259 245 syslog(LOG_NOTICE, "[TDCn:%02u SND] close error: %s", cepid, itron_strerror(error)); 260 246 261 /* éæ¾ãå®äºããã¾ã§å¾ 262 ã¤ã*/ 247 /* 開放が完了するまで待つ。*/ 263 248 syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY)); 264 249 } … … 270 255 271 256 /* 272 * send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã257 * send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。 273 258 */ 274 259 … … 344 329 345 330 /* 346 * getcomd -- ã³ãã³ããå¾ãã331 * getcomd -- コマンドを得る。 347 332 */ 348 333 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _TCP_DISCARD_CLI_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 #define TCP_DISCARD_CLI_STACK_SIZE 1024 /* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/39 #define TCP_DISCARD_CLI_STACK_SIZE 1024 /* TCP DISCARD クライアントタスクのスタックサイズ */ 52 40 53 /* åªå 54 度 */ 41 /* 優先度 */ 55 42 56 #define TCP_DISCARD_CLI_MAIN_PRIORITY 5 /* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå 57 度 */ 43 #define TCP_DISCARD_CLI_MAIN_PRIORITY 5 /* TCP DISCARD クライアントタスクの優先度 */ 58 44 59 45 /* 60 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº46 * TCP 送受信ウインドバッファサイズ 61 47 */ 62 48 … … 80 66 81 67 /* 82 * å¤æ°68 * 変数 83 69 */ 84 70 85 71 extern bool_t tcp_discard_cli_valid; 86 72 87 /* TCP éåä¿¡ãããã¡*/73 /* TCP 送受信バッファ */ 88 74 89 75 extern uint8_t tcp_discard_cli_swbuf[]; 90 76 extern uint8_t tcp_discard_cli_rwbuf[]; 91 77 92 /* ã¿ã¹ã¯*/78 /* タスク */ 93 79 94 80 extern void tcp_discard_cli_task(intptr_t exinf); 95 81 96 /* é¢æ°*/82 /* 関数 */ 97 83 98 84 extern ER callback_nblk_tcp_discard_cli (ID cepid, FN fncd, void *p_parblk); -
azure_iot_hub/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
r388 r389 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 … … 80 68 81 69 /* 82 * 表示70 * 表示 83 71 */ 84 72 … … 87 75 88 76 /* 89 * å 90 ¨åå¤æ° 91 */ 92 93 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 77 * 全域変数 78 */ 79 80 /* TCP 送受信ウィンドバッファ */ 94 81 95 82 #ifndef TCP_CFG_RWBUF_CSAVE_ONLY … … 98 85 99 86 /* 100 * TCP DISCARD ãµã¼ãã¿ã¹ã¯87 * TCP DISCARD サーバタスク 101 88 */ 102 89 … … 236 223 237 224 /* 238 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã225 * get_tcp_rep -- TCP 受付口を獲得する。 239 226 */ 240 227 … … 266 253 267 254 /* 268 * get_tcp_cep -- TCP é信端ç¹ã¨ãç²å¾ããã255 * get_tcp_cep -- TCP 通信端点とを獲得する。 269 256 */ 270 257 … … 293 280 294 281 /* 295 * tcp_discard_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯282 * tcp_discard_srv_task -- TCP エコーサーバタスク 296 283 */ 297 284 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _TCP_DISCARD_SRV_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 #define TCP_DISCARD_SRV_STACK_SIZE 1024 /* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/39 #define TCP_DISCARD_SRV_STACK_SIZE 1024 /* TCP DISCARD サーバタスクのスタックサイズ */ 52 40 53 /* åªå 54 度 */ 41 /* 優先度 */ 55 42 56 #define TCP_DISCARD_SRV_MAIN_PRIORITY 5 /* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®åªå 57 度 */ 43 #define TCP_DISCARD_SRV_MAIN_PRIORITY 5 /* TCP DISCARD サーバタスクの優先度 */ 58 44 59 45 /* 60 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº46 * TCP 送受信ウインドバッファサイズ 61 47 */ 62 48 … … 79 65 #endif /* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */ 80 66 81 /* TCP éåä¿¡ãããã¡*/67 /* TCP 送受信バッファ */ 82 68 83 69 extern uint8_t tcp_discard_srv_swbuf[]; 84 70 extern uint8_t tcp_discard_srv_rwbuf[]; 85 71 86 /* ã¿ã¹ã¯*/72 /* タスク */ 87 73 88 74 extern void tcp_discard_srv_task(intptr_t exinf); -
azure_iot_hub/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
r388 r389 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 … … 83 71 #ifdef USE_TCP_ECHO_CLI 84 72 85 /* echo ãµã¼ãã®ãã¼ãçªå·*/73 /* echo サーバのポート番号 */ 86 74 87 75 #define ECHO_SRV_PORTNO UINT_C(7) 88 76 89 /* ç·æ¥ãã¼ã¿ã®éä¿¡*/77 /* 緊急データの送信 */ 90 78 91 79 #ifdef USE_TCP_EXTENTIONS … … 96 84 #endif /* of #ifdef USE_TCP_EXTENTIONS */ 97 85 98 /* éä¿¡éé*/86 /* 送信間隔 */ 99 87 100 88 #ifdef TOPPERS_S810_CLG3_85 … … 114 102 #endif /* of #ifdef TOPPERS_S810_CLG3_85 */ 115 103 116 /* èªåå®è¡*/104 /* 自動実行 */ 117 105 118 106 #if defined(TCP_ECHO_CLI_AUTO_RUN_STR) … … 138 126 139 127 /* 140 * å 141 ¨åå¤æ° 128 * 全域変数 142 129 */ 143 130 … … 145 132 uint_t tcp_echo_cli_scount; 146 133 147 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/134 /* TCP 送受信ウィンドバッファ */ 148 135 149 136 #ifndef TCP_CFG_SWBUF_CSAVE … … 158 145 159 146 /* 160 * å 161 ¨åå¤æ° 147 * 全域変数 162 148 */ 163 149 … … 165 151 166 152 /* 167 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°153 * ノンブロッキングコールのコールバック関数 168 154 */ 169 155 … … 224 210 225 211 /* 226 * getcomd -- ã³ãã³ããå¾ãã212 * getcomd -- コマンドを得る。 227 213 */ 228 214 … … 295 281 296 282 /* 297 * TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯298 */ 299 300 /* 301 * IP ã¢ãã¬ã¹ã®æå®283 * TCP ECHO クライアント送信タスク 284 */ 285 286 /* 287 * IP アドレスの指定 302 288 */ 303 289 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _TCP_ECHO_CLI_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 39 #ifdef TOPPERS_S810_CLG3_85 52 40 53 #define TCP_ECHO_CLI_RCV_STACK_SIZE 512 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/54 #define TCP_ECHO_CLI_SND_STACK_SIZE 512 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/41 #define TCP_ECHO_CLI_RCV_STACK_SIZE 512 /* TCP ECHO クライアント受信タスクのスタックサイズ */ 42 #define TCP_ECHO_CLI_SND_STACK_SIZE 512 /* TCP ECHO クライアント送信タスクのスタックサイズ */ 55 43 56 44 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 57 45 58 #define TCP_ECHO_CLI_RCV_STACK_SIZE 1024 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/59 #define TCP_ECHO_CLI_SND_STACK_SIZE 1024 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/46 #define TCP_ECHO_CLI_RCV_STACK_SIZE 1024 /* TCP ECHO クライアント受信タスクのスタックサイズ */ 47 #define TCP_ECHO_CLI_SND_STACK_SIZE 1024 /* TCP ECHO クライアント送信タスクのスタックサイズ */ 60 48 61 49 #endif /* of #ifdef TOPPERS_S810_CLG3_85 */ 62 50 63 /* åªå 64 度 */ 51 /* 優先度 */ 65 52 66 #define TCP_ECHO_CLI_RCV_MAIN_PRIORITY 5 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®åªå 67 度 */ 68 #define TCP_ECHO_CLI_SND_MAIN_PRIORITY 5 /* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®åªå 69 度 */ 53 #define TCP_ECHO_CLI_RCV_MAIN_PRIORITY 5 /* TCP ECHO クライアント受信タスクの優先度 */ 54 #define TCP_ECHO_CLI_SND_MAIN_PRIORITY 5 /* TCP ECHO クライアント送信タスクの優先度 */ 70 55 71 56 /* 72 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº57 * TCP 送受信ウインドバッファサイズ 73 58 */ 74 59 … … 95 80 96 81 /* 97 * ãããã¡ãµã¤ãºã®å®ç¾©82 * バッファサイズの定義 98 83 */ 99 84 … … 106 91 107 92 /* 108 * å¤æ°93 * 変数 109 94 */ 110 95 … … 113 98 extern ER_UINT tcp_echo_cli_nblk_error; 114 99 115 /* TCP éåä¿¡ãããã¡*/100 /* TCP 送受信バッファ */ 116 101 117 102 extern uint8_t tcp_echo_cli_swbuf[]; 118 103 extern uint8_t tcp_echo_cli_rwbuf[]; 119 104 120 /* ã¿ã¹ã¯*/105 /* タスク*/ 121 106 122 107 extern void tcp_echo_cli_rcv_task(intptr_t exinf); 123 108 extern void tcp_echo_cli_snd_task(intptr_t exinf); 124 109 125 /* é¢æ°*/110 /* 関数 */ 126 111 127 112 extern ER callback_nblk_tcp_echo_cli (ID cepid, FN fncd, void *p_parblk); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli_rcv.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 37 … … 77 65 #ifdef USE_TCP_ECHO_CLI 78 66 79 /* 表示*/67 /* 表示 */ 80 68 81 69 //#define SHOW_TIME_OUT 82 70 //#define SHOW_RCV_RANGE 83 71 84 /* ã¿ã¤ã ã¢ã¦ã*/72 /* タイムアウト */ 85 73 86 74 #ifdef TOPPERS_S810_CLG3_85 87 75 88 #define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/76 #define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 89 77 //#define RCV_TMO TMO_FEVR 90 78 #define RCV_TMO (30*SYSTIM_HZ) … … 92 80 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 93 81 94 //#define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/82 //#define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 95 83 #define CLS_TMO (70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10) 96 84 //#define RCV_TMO TMO_FEVR … … 100 88 101 89 /* 102 * API IP ãããã³ã«ã®æå®90 * API IPプロトコルの指定 103 91 */ 104 92 … … 116 104 117 105 /* 118 * TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯106 * TCP ECHO クライアント受信タスク 119 107 */ 120 108 … … 166 154 } 167 155 168 /* åä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾ 169 ã¤ã*/ 156 /* 受信バッファの獲得が完了するまで待つ。*/ 170 157 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 171 158 if (tcp_echo_cli_nblk_error < 0) … … 196 183 syslog(LOG_NOTICE, "[TEC%c:%02u CLS] error: %s", apip, cepid, itron_strerror(error)); 197 184 198 /* åæãå®äºããã¾ã§å¾ 199 ã¤ã*/ 185 /* 切断が完了するまで待つ。*/ 200 186 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 201 187 … … 248 234 } 249 235 250 /* åä¿¡ãå®äºããã¾ã§å¾ 251 ã¤ã*/ 236 /* 受信が完了するまで待つ。*/ 252 237 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 253 238 if (tcp_echo_cli_nblk_error < 0) … … 274 259 syslog(LOG_NOTICE, "[TEC%c:%02u CLS] error: %s", apip, cepid, itron_strerror(error)); 275 260 276 /* åæãå®äºããã¾ã§å¾ 277 ã¤ã*/ 261 /* 切断が完了するまで待つ。*/ 278 262 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 279 263 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli_snd.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 45 33 46 34 /* 47 * TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡é¢æ°35 * TCP ECHO クライアント送信関数 48 36 */ 49 37 … … 75 63 #ifdef USE_TCP_ECHO_CLI 76 64 77 /* 表示*/65 /* 表示 */ 78 66 79 67 //#define SHOW_TIME_OUT 80 68 //#define SHOW_SND_COUNT 81 69 82 /* ã¿ã¤ã ã¢ã¦ã*/70 /* タイムアウト */ 83 71 84 72 #ifdef TOPPERS_S810_CLG3_85 … … 101 89 102 90 /* 103 * å¤æ°91 * 変数 104 92 */ 105 93 … … 123 111 124 112 /* 125 * tcp4_active_open -- è½åãªã¼ãã³ãå®è¡ããã113 * tcp4_active_open -- 能動オープンを実行する。 126 114 * 127 115 * USE_TCP_NON_BLOCKING ON … … 142 130 } 143 131 144 /* æ¥ç¶ãå®äºããã¾ã§å¾ 145 ã¤ã*/ 132 /* 接続が完了するまで待つ。*/ 146 133 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 147 134 … … 160 147 161 148 /* 162 * tcp_active_open -- è½åãªã¼ãã³ãå®è¡ããã149 * tcp_active_open -- 能動オープンを実行する。 163 150 * 164 151 * USE_TCP_NON_BLOCKING ON … … 184 171 } 185 172 186 /* æ¥ç¶ãå®äºããã¾ã§å¾ 187 ã¤ã*/ 173 /* 接続が完了するまで待つ。*/ 188 174 syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY)); 189 175 … … 202 188 203 189 /* 204 * tcp_echo_cli_snd -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã190 * tcp_echo_cli_snd -- ECHO/TCP サーバにメッセージを送信する。 205 191 * 206 192 * USE_TCP_NON_BLOCKING ON … … 298 284 syslog(LOG_NOTICE, "[TEC%c:%02u SHT] error: %s", apip, cepid, itron_strerror(error)); 299 285 300 /* åä¿¡ãå®äºããã¾ã§å¾ 301 ã¤ã*/ 286 /* 受信が完了するまで待つ。*/ 302 287 syscall(slp_tsk()); 303 288 … … 310 295 311 296 /* 312 * tcp4_active_open -- è½åãªã¼ãã³ãå®è¡ããã297 * tcp4_active_open -- 能動オープンを実行する。 313 298 * 314 299 * USE_TCP_NON_BLOCKING OFF … … 348 333 349 334 /* 350 * tcp_active_open -- è½åãªã¼ãã³ãå®è¡ããã335 * tcp_active_open -- 能動オープンを実行する。 351 336 * 352 337 * USE_TCP_NON_BLOCKING OFF … … 387 372 388 373 /* 389 * tcp_echo_cli_snd -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã374 * tcp_echo_cli_snd -- ECHO/TCP サーバにメッセージを送信する。 390 375 * 391 376 * USE_TCP_NON_BLOCKING OFF … … 488 473 syslog(LOG_NOTICE, "[TEC%c:%02u SHT] error: %s", apip, cepid, itron_strerror(error)); 489 474 490 /* åä¿¡ãå®äºããã¾ã§å¾ 491 ã¤ã*/ 475 /* 受信が完了するまで待つ。*/ 492 476 syscall(slp_tsk()); 493 477 -
azure_iot_hub/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
r388 r389 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$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ã#148 * 49 * ã»éåä¿¡ã¿ã¹ã¯åä¸å50 * ã»ãã³ããããã³ã°ã³ã¼ã«51 * ã»çã³ãã¼API52 * ã»IPv4/IPv653 * ã»ç·æ¥ãã¼ã¿ã®åä¿¡35 * TCP ECHO サーバ #1 36 * 37 * ・送受信タスク同一型 38 * ・ノンブロッキングコール 39 * ・省コピー API 40 * ・IPv4/IPv6 41 * ・緊急データの受信 54 42 */ 55 43 … … 89 77 90 78 /* 91 * 表示79 * 表示 92 80 */ 93 81 … … 95 83 96 84 /* 97 * ã³ãã¯ã·ã§ã³åææ¹æ³ã®æå®85 * コネクション切断方法の指定 98 86 */ 99 87 … … 101 89 102 90 /* 103 * ã¿ã¤ã ã¢ã¦ã91 * タイムアウト 104 92 */ 105 93 106 94 #ifdef TOPPERS_S810_CLG3_85 107 95 108 #define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/96 #define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 109 97 //#define RCV_TMO TMO_FEVR 110 98 #define RCV_TMO (30*SYSTIM_HZ) … … 114 102 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 115 103 116 //#define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/104 //#define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 117 105 #define CLS_TMO (70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10) 118 106 //#define RCV_TMO TMO_FEVR … … 124 112 125 113 /* 126 * å 127 ¨åå¤æ° 128 */ 129 130 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 114 * 全域変数 115 */ 116 117 /* TCP 送受信ウィンドバッファ */ 131 118 132 119 #ifndef TCP_CFG_SWBUF_CSAVE … … 141 128 142 129 /* 143 * å¤æ°130 * 変数 144 131 */ 145 132 … … 189 176 190 177 /* 191 * tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã178 * tcp_passive_open -- 受動オープンを実行する。 192 179 * 193 180 * USE_TCP_NON_BLOCKING OFF … … 209 196 #if TNUM_TCP6_REPID > 0 210 197 211 /* åä»å£ã¯IPv6 */198 /* 受付口は IPv6 */ 212 199 if ((error = tcp6_acp_cep(info->cepid, info->repid, &info->dst, TMO_FEVR)) != E_OK) 213 200 return error; … … 225 212 #if TNUM_TCP4_REPID > 0 226 213 227 /* åä»å£ã¯IPv4 */214 /* 受付口は IPv4 */ 228 215 if ((error = tcp_acp_cep(info->cepid, info->repid, &dst4, TMO_FEVR)) != E_OK) 229 216 return error; … … 246 233 247 234 /* 248 * tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã235 * tcp_passive_open -- 受動オープンを実行する。 249 236 * 250 237 * USE_TCP_NON_BLOCKING OFF … … 272 259 273 260 /* 274 * tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã261 * tcp_echo_srv -- TCP エコーサーバ 275 262 * 276 263 * USE_TCP_NON_BLOCKING OFF … … 409 396 410 397 /* 411 * tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã398 * tcp_echo_srv -- TCP エコーサーバ 412 399 * 413 400 * USE_TCP_NON_BLOCKING OFF … … 520 507 521 508 /* 522 * tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯509 * tcp_echo_srv_task -- TCP エコーサーバタスク 523 510 */ 524 511 -
azure_iot_hub/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
r388 r389 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 CRE_TSK(TCP_ECHO_SRV_TASK1, { … … 153 141 #endif /* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */ 154 142 155 /* ã»ããã©*/143 /* セマフォ */ 156 144 157 145 #ifdef USE_TCP_NON_BLOCKING -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * TCP ECHO ãµã¼ã#140 * TCP ECHO サーバ #1 53 41 * 54 * ã»éåä¿¡ã¿ã¹ã¯åä¸å55 * ã»ãã³ããããã³ã°ã³ã¼ã«56 * ã»çã³ãã¼API57 * ã»IPv4/IPv658 * ã»ç·æ¥ãã¼ã¿ã®åä¿¡42 * ・送受信タスク同一型 43 * ・ノンブロッキングコール 44 * ・省コピー API 45 * ・IPv4/IPv6 46 * ・緊急データの受信 59 47 */ 60 48 61 /* ã¹ã¿ãã¯ãµã¤ãº*/49 /* スタックサイズ */ 62 50 63 #define TCP_ECHO_SRV_STACK_SIZE 1024 /* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/51 #define TCP_ECHO_SRV_STACK_SIZE 1024 /* TCP ECHO サーバタスクのスタックサイズ */ 64 52 65 /* åªå 66 度 */ 53 /* 優先度 */ 67 54 68 #define TCP_ECHO_SRV_MAIN_PRIORITY 5 /* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå 69 度 */ 55 #define TCP_ECHO_SRV_MAIN_PRIORITY 5 /* TCP ECHO サーバタスクの優先度 */ 70 56 71 57 /* 72 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº58 * TCP 送受信ウインドバッファサイズ 73 59 */ 74 60 … … 95 81 96 82 /* 97 * ã¿ã¹ã¯æ°83 * タスク数 98 84 */ 99 85 … … 102 88 #endif 103 89 104 /* IPv4 ç¨ã® TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯ã¯ 1åã«å¶éããã*/90 /* IPv4 用の TCP エコーサーバタスクは 1個に制限する。*/ 105 91 106 92 #ifdef NUM_TCP4_ECHO_SRV_TASKS … … 110 96 111 97 /* 112 * å¤æ°98 * 変数 113 99 */ 114 100 115 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/101 /* TCP 送受信ウィンドバッファ */ 116 102 117 103 extern uint8_t tcp_echo_srv_swbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_SWBUF_SIZE]; … … 119 105 120 106 /* 121 * ã¿ã¹ã¯107 * タスク 122 108 */ 123 109 … … 125 111 126 112 /* 127 * é¢æ°113 * 関数 128 114 */ 129 115 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1_ext.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 … … 85 73 86 74 /* 87 * 表示75 * 表示 88 76 */ 89 77 … … 91 79 92 80 /* 93 * ã³ãã¯ã·ã§ã³åææ¹æ³ã®æå®81 * コネクション切断方法の指定 94 82 */ 95 83 … … 97 85 98 86 /* 99 * ã¿ã¤ã ã¢ã¦ã87 * タイムアウト 100 88 */ 101 89 102 90 #ifdef TOPPERS_S810_CLG3_85 103 91 104 #define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/92 #define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 105 93 //#define RCV_TMO TMO_FEVR 106 94 #define RCV_TMO (30*SYSTIM_HZ) … … 110 98 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 111 99 112 //#define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/100 //#define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 113 101 #define CLS_TMO (70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10) 114 102 //#define RCV_TMO TMO_FEVR … … 122 110 123 111 /* 124 * å¤æ°112 * 変数 125 113 */ 126 114 127 115 typedef struct t_tcp_echo_srv_task_info { 128 ID taskid; /* ã¿ã¹ã¯ ID */ 129 bool_t active; /* åä½ç¶æ 130 */ 131 char apip; /* API IPãããã³ã« */ 116 ID taskid; /* タスク ID */ 117 bool_t active; /* 動作状態 */ 118 char apip; /* API IPプロトコル */ 132 119 } T_TCP_ECHO_SRV_TASK_INFO; 133 120 … … 161 148 162 149 /* 163 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã150 * get_tcp_rep -- TCP 受付口を獲得する。 164 151 */ 165 152 … … 219 206 220 207 /* 221 * get_tcp_cep -- TCP é信端ç¹ãç²å¾ããã208 * get_tcp_cep -- TCP 通信端点を獲得する。 222 209 */ 223 210 … … 266 253 267 254 /* 268 * wakeup_tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯ã®ä¼æ¢è§£é¤255 * wakeup_tcp_echo_srv -- TCP エコーサーバタスクの休止解除 269 256 */ 270 257 … … 288 275 289 276 /* 290 * tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯277 * tcp_echo_srv_task -- TCP エコーサーバタスク 291 278 */ 292 279 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1_nblk.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 … … 85 73 86 74 /* 87 * 表示75 * 表示 88 76 */ 89 77 … … 91 79 92 80 /* 93 * ã³ãã¯ã·ã§ã³åææ¹æ³ã®æå®81 * コネクション切断方法の指定 94 82 */ 95 83 … … 97 85 98 86 /* 99 * ã¿ã¤ã ã¢ã¦ã87 * タイムアウト 100 88 */ 101 89 102 90 #ifdef TOPPERS_S810_CLG3_85 103 91 104 #define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/92 #define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 105 93 //#define RCV_TMO TMO_FEVR 106 94 #define RCV_TMO (30*SYSTIM_HZ) … … 110 98 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 111 99 112 //#define CLS_TMO TMO_FEVR /* Close Wait ã¯æ¨æºã§ 60ç§*/100 //#define CLS_TMO TMO_FEVR /* Close Wait は標準で 60秒 */ 113 101 #define CLS_TMO (70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10) 114 102 //#define RCV_TMO TMO_FEVR … … 122 110 123 111 /* 124 * å¤æ°112 * 変数 125 113 */ 126 114 … … 196 184 197 185 /* 198 * find_srv_info -- æ¥ç¶ç¸æã®æ 199 å ±æ§é ä½ãæ¢ç´¢ããã 186 * find_srv_info -- 接続相手の情報構造体を探索する。 200 187 */ 201 188 … … 212 199 213 200 /* 214 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°201 * ノンブロッキングコールのコールバック関数 215 202 */ 216 203 … … 290 277 291 278 /* 292 * tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã279 * tcp_passive_open -- 受動オープンを実行する。 293 280 * 294 281 * USE_TCP_NON_BLOCKING ON … … 304 291 305 292 if (apip == API_PROTO_IPV6) { 306 /* åä»å£ã¯IPv6 */293 /* 受付口は IPv6 */ 307 294 if ((error = tcp6_acp_cep(info->cepid, info->repid, &info->dst, TMO_NBLK)) != E_WBLK) 308 295 return error; 309 296 310 /* ç¸æããæ¥ç¶ãããã¾ã§å¾ 311 ã¤ã*/ 297 /* 相手から接続されるまで待つ。*/ 312 298 syscall(wai_sem(info->semid)); 313 299 … … 322 308 } 323 309 else { 324 /* åä»å£ã¯IPv4 */310 /* 受付口は IPv4 */ 325 311 if ((error = tcp_acp_cep(info->cepid, info->repid, &dst4, TMO_NBLK)) != E_WBLK) 326 312 return error; 327 313 328 /* ç¸æããæ¥ç¶ãããã¾ã§å¾ 329 ã¤ã*/ 314 /* 相手から接続されるまで待つ。*/ 330 315 syscall(wai_sem(info->semid)); 331 316 … … 356 341 return error; 357 342 358 /* ç¸æããæ¥ç¶ãããã¾ã§å¾ 359 ã¤ã*/ 343 /* 相手から接続されるまで待つ。*/ 360 344 syscall(wai_sem(info->semid)); 361 345 … … 376 360 377 361 /* 378 * tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã362 * tcp_echo_srv -- TCP エコーサーバ 379 363 * 380 364 * USE_TCP_NON_BLOCKING ON … … 431 415 } 432 416 433 /* åä¿¡ããã¾ã§å¾ 434 ã¤ã*/ 417 /* 受信するまで待つ。*/ 435 418 syscall(wai_sem(tcp_echo_srv_info[six].semid)); 436 419 437 if (tcp_echo_srv_info[six].rlen < 0) { /* ã¨ã©ã¼*/420 if (tcp_echo_srv_info[six].rlen < 0) { /* エラー */ 438 421 syslog(LOG_NOTICE, "[TES%c:%02u RCV] error: %s", 439 422 apip, tcp_echo_srv_info[six].cepid, itron_strerror(tcp_echo_srv_info[six].rlen)); 440 423 break; 441 424 } 442 else if (tcp_echo_srv_info[six].rlen == 0) /* åä¿¡çµäº*/425 else if (tcp_echo_srv_info[six].rlen == 0) /* 受信終了 */ 443 426 break; 444 427 445 428 rblen = tcp_echo_srv_info[six].rlen; 446 429 447 /* ãããã¡ã®æ®ãã«ãããåä¿¡é·ã調æ´ããã*/430 /* バッファの残りにより、受信長を調整する。*/ 448 431 if (rblen > BUF_SIZE - rlen) 449 432 rblen = BUF_SIZE - rlen; … … 478 461 } 479 462 480 /* éä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾ 481 ã¤ã*/ 463 /* 送信バッファの獲得が完了するまで待つ。*/ 482 464 syscall(wai_sem(tcp_echo_srv_info[six].semid)); 483 465 … … 519 501 apip, tcp_echo_srv_info[six].cepid, itron_strerror(error)); 520 502 521 /* éæ¾ãå®äºããã¾ã§å¾ 522 ã¤ã*/ 503 /* 開放が完了するまで待つ。*/ 523 504 syscall(wai_sem(tcp_echo_srv_info[six].semid)); 524 505 … … 533 514 534 515 /* 535 * tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã516 * tcp_echo_srv -- TCP エコーサーバ 536 517 * 537 518 * USE_TCP_NON_BLOCKING ON … … 574 555 } 575 556 576 /* åä¿¡å®äºã¾ã§å¾ 577 ã¤ã*/ 557 /* 受信完了まで待つ。*/ 578 558 syscall(wai_sem(tcp_echo_srv_info[six].semid)); 579 559 … … 606 586 } 607 587 608 /* éä¿¡å®äºã¾ã§å¾ 609 ã¤ã*/ 588 /* 送信完了まで待つ。*/ 610 589 syscall(wai_sem(tcp_echo_srv_info[six].semid)); 611 590 … … 639 618 apip, tcp_echo_srv_info[six].cepid, itron_strerror(error)); 640 619 641 /* éæ¾ãå®äºããã¾ã§å¾ 642 ã¤ã*/ 620 /* 開放が完了するまで待つ。*/ 643 621 syscall(wai_sem(tcp_echo_srv_info[six].semid)); 644 622 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * 注æ:40 * 注意: 53 41 * 54 * BUF_SIZE 㯠TCP ã®55 * éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã®56 * 3/2 å以ä¸ã®å¤§ããããªããã°ããããããã¯ããå¯è½æ§ãããã42 * BUF_SIZE は TCP の 43 * 送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの 44 * 3/2 倍以上の大きさがなければ、デッドロックする可能性がある。 57 45 */ 58 46 … … 61 49 62 50 /* 63 * ãµã¼ãæ 64 å ±æ§é ä½ 51 * サーバ情報構造体 65 52 */ 66 53 67 54 typedef struct t_tcp_echo_srv_info { 68 ID cepid; /* é信端ç¹ID */69 ID repid; /* åä»å£ID */55 ID cepid; /* 通信端点 ID */ 56 ID repid; /* 受付口 ID */ 70 57 71 58 #ifdef USE_TCP_NON_BLOCKING 72 ID semid; /* NBLK ç¨ ã»ããã©ID */73 ER error; /* NBLK ç¨error */74 ER_UINT slen; /* NBLK ç¨ éä¿¡ãã¼ã¿æ°*/75 ER_UINT rlen; /* NBLK ç¨ åä¿¡ãã¼ã¿æ°*/59 ID semid; /* NBLK 用 セマフォID */ 60 ER error; /* NBLK 用 error */ 61 ER_UINT slen; /* NBLK 用 送信データ数 */ 62 ER_UINT rlen; /* NBLK 用 受信データ数 */ 76 63 #endif 77 64 78 T_IPEP dst; /* æ¥ç¶ç¸æã¢ãã¬ã¹æ 79 å ± */ 65 T_IPEP dst; /* 接続相手アドレス情報 */ 80 66 81 67 #ifdef USE_TCP_NON_BLOCKING … … 96 82 97 83 /* 98 * å¤æ°84 * 変数 99 85 */ 100 86 … … 102 88 103 89 /* 104 * é¢æ°90 * 関数 105 91 */ 106 92 -
azure_iot_hub/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
r388 r389 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 … … 91 79 92 80 /* 93 * 表示81 * 表示 94 82 */ 95 83 … … 97 85 98 86 /* 99 * ã³ãã¯ã·ã§ã³åææ¹æ³ã®æå®87 * コネクション切断方法の指定 100 88 */ 101 89 … … 103 91 104 92 /* 105 * å 106 ¨åå¤æ° 107 */ 108 109 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 93 * 全域変数 94 */ 95 96 /* TCP 送受信ウィンドバッファ */ 110 97 111 98 #ifndef TCP_CFG_SWBUF_CSAVE … … 118 105 119 106 /* 120 * å¤æ°121 */ 122 123 /* 124 * 注æ:107 * 変数 108 */ 109 110 /* 111 * 注意: 125 112 * 126 * BUF_SIZE 㯠TCP ã®127 * éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã®128 * 3/2 å以ä¸ã®å¤§ããããªããã°ããããããã¯ããå¯è½æ§ãããã113 * BUF_SIZE は TCP の 114 * 送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの 115 * 3/2 倍以上の大きさがなければ、デッドロックする可能性がある。 129 116 */ 130 117 … … 132 119 TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2) 133 120 134 static char buffer[BUF_SIZE]; /* ãããã¡ */ 135 136 static T_IPEP dst; /* æ¥ç¶ç¸æ */ 137 static bool_t ena_rcv; /* åä¿¡å¯è½ãã©ã° */ 138 static char *rptr = buffer; /* åä¿¡ãã¤ã³ã¿ */ 139 static char *sptr = buffer; /* éä¿¡ãã¤ã³ã¿ */ 140 static uint32_t rcv_total; /* åä¿¡æåæ° */ 141 static uint32_t snd_total; /* éä¿¡æåæ° */ 142 static uint16_t chars; /* ãããã¡å 143 ã®æåæ° */ 144 static uint16_t rcv_count; /* åä¿¡åæ° */ 145 static uint16_t snd_count; /* éä¿¡åæ° */ 121 static char buffer[BUF_SIZE]; /* バッファ */ 122 123 static T_IPEP dst; /* 接続相手 */ 124 static bool_t ena_rcv; /* 受信可能フラグ */ 125 static char *rptr = buffer; /* 受信ポインタ */ 126 static char *sptr = buffer; /* 送信ポインタ */ 127 static uint32_t rcv_total; /* 受信文字数 */ 128 static uint32_t snd_total; /* 送信文字数 */ 129 static uint16_t chars; /* バッファ内の文字数 */ 130 static uint16_t rcv_count; /* 受信回数 */ 131 static uint16_t snd_count; /* 送信回数 */ 146 132 147 133 #ifdef USE_TCP_NON_BLOCKING 148 134 149 static ER rcv_error = E_OK; /* åä¿¡ããã³ããããã³ã°ã³ã¼ã«ã¨ã©ã¼*/150 static ER snd_error = 1; /* éä¿¡ããã³ããããã³ã°ã³ã¼ã«ã¨ã©ã¼*/151 152 /* 153 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°135 static ER rcv_error = E_OK; /* 受信、ノンブロッキングコールエラー */ 136 static ER snd_error = 1; /* 送信、ノンブロッキングコールエラー */ 137 138 /* 139 * ノンブロッキングコールのコールバック関数 154 140 */ 155 141 … … 197 183 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 198 184 199 /* éä¿¡ãã¤ã³ã¿ãé²ããã*/185 /* 送信ポインタを進める。*/ 200 186 if (sptr - buffer + slen >= sizeof(buffer)) 201 187 sptr -= sizeof(buffer) - slen; … … 203 189 sptr += slen; 204 190 205 /* ãããã¡å 206 ã®æåæ°ãæ¸ããã*/ 191 /* バッファ内の文字数を減らす。*/ 207 192 last = chars; 208 193 chars -= slen; 209 194 210 /* ãããã¡å 211 ã«æåãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 195 /* バッファ内に文字があれば、送信タスクを起床する。*/ 212 196 if (chars > 0 || (!ena_rcv && chars == 0)) 213 197 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 214 198 215 /* åä¿¡å¯è½ã§ããããã¡å 216 ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 199 /* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/ 217 200 if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0) 218 201 syscall(sig_sem(SEM_TCP_ECHO_SRV_RCV_READY)); … … 240 223 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 241 224 242 /* åä¿¡ãã¤ã³ã¿ãé²ããã*/225 /* 受信ポインタを進める。*/ 243 226 if (rptr - buffer + rlen >= sizeof(buffer)) 244 227 rptr -= sizeof(buffer) - rlen; … … 246 229 rptr += rlen; 247 230 248 /* ãããã¡å 249 ã®æåæ°ãå¢ããã*/ 231 /* バッファ内の文字数を増やす。*/ 250 232 last = chars; 251 233 chars += rlen; 252 234 253 /* ãããã¡å 254 ã«æåãå 255 ¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 235 /* バッファ内に文字が入れば、送信タスクを起床する。*/ 256 236 if (last == 0 && chars > 0) 257 237 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 258 238 259 /* ãããã¡å 260 ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 239 /* バッファ内に空きがあれば、受信タスクを起床する。*/ 261 240 if (sizeof(buffer) - chars > 0) 262 241 sig_sem(SEM_TCP_ECHO_SRV_RCV_READY); … … 293 272 294 273 /* 295 * TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³ (ãã³ããããã³ã°ã³ã¼ã«ä½¿ç¨)274 * TCP ECHO サーバ受信ルーチン (ノンブロッキングコール使用) 296 275 */ 297 276 … … 312 291 } 313 292 314 /* ã³ãã¯ã·ã§ã³éè¨å®äºã¾ã§å¾ 315 ã¤ã*/ 293 /* コネクション開設完了まで待つ。*/ 316 294 syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY)); 317 295 318 /* å¾ 319 ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ãããã³ãã¯ã·ã§ã³ã®éè¨å¾ 320 ã¡ã«æ»ãã*/ 296 /* 待っている間にエラーになったら、コネクションの開設待ちに戻る。*/ 321 297 if (rcv_error != E_OK) 322 298 return rcv_error; … … 331 307 while (true) { 332 308 333 /* åä¿¡ãµã¤ãºãè¨ç®ããã*/309 /* 受信サイズを計算する。*/ 334 310 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 335 311 if (sptr > rptr) … … 339 315 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 340 316 341 /* åä¿¡ããã*/317 /* 受信する。*/ 342 318 if ((error = tcp_rcv_dat(cepid, rptr, blen, TMO_NBLK)) != E_WBLK) { 343 319 syslog(LOG_NOTICE, "[TES:%02u RCV] recv error = %s", cepid, itron_strerror(error)); … … 345 321 } 346 322 347 /* åä¿¡ãããã¡ã«ç©ºãã§ããã¾ã§å¾ 348 ã¤ã*/ 323 /* 受信バッファに空ができるまで待つ。*/ 349 324 syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY)); 350 325 351 /* å¾ 352 ã£ã¦ããéã«ãåä¿¡æåæ°ã 0 ã«ãªãããã¨ã©ã¼ã«ãªã£ããçµäºããã*/ 326 /* 待っている間に、受信文字数が 0 になるか、エラーになったら終了する。*/ 353 327 if (rcv_error <= 0) 354 328 break; … … 356 330 } 357 331 358 /* åä¿¡å®äº*/332 /* 受信完了 */ 359 333 ena_rcv = false; 360 334 361 /* åä¿¡ãããã¡ã«æåãå 362 ¥ãã®ãå¾ 363 ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 335 /* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/ 364 336 if (chars == 0) 365 337 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 366 338 367 /* ã³ãã¯ã·ã§ã³åæå®äºã¾ã§å¾ 368 ã¤ã*/ 339 /* コネクション切断完了まで待つ。*/ 369 340 syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY)); 370 341 … … 373 344 374 345 /* 375 * TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯ (ãã³ããããã³ã°ã³ã¼ã«ä½¿ç¨)346 * TCP ECHO サーバ送信タスク (ノンブロッキングコール使用) 376 347 */ 377 348 … … 394 365 while (true) { 395 366 396 /* ãããã¡ã«æåãå 397 ¥ãã¾ã§å¾ 398 ã¤ã*/ 367 /* バッファに文字が入るまで待つ。*/ 399 368 syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY)); 400 369 401 /* å¾ 402 ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ããçµäºããã*/ 370 /* 待っている間にエラーになったら終了する。*/ 403 371 if (snd_error <= 0) 404 372 break; 405 373 406 /* åä¿¡å®äºã§ããããã¡ã«æåããªããã°çµäºããã*/374 /* 受信完了で、バッファに文字がなければ終了する。*/ 407 375 if (!ena_rcv && chars == 0) 408 376 break; 409 377 410 /* éä¿¡ãµã¤ãºãè¨ç®ããã*/378 /* 送信サイズを計算する。*/ 411 379 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 412 380 if (rptr > sptr) … … 416 384 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 417 385 418 /* éä¿¡ããã*/386 /* 送信する。*/ 419 387 if ((error = tcp_snd_dat(cepid, sptr, blen, TMO_NBLK)) != E_WBLK) { 420 388 syslog(LOG_NOTICE, "[TES:%02u SND] send error = %s", cepid, itron_strerror(error)); … … 423 391 } 424 392 425 /* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾ 426 ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 393 /* 受信バッファに空ができるを待っている受信タスクを起床する。*/ 427 394 if (chars == sizeof(buffer)) 428 395 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); … … 445 412 446 413 /* 447 * TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³414 * TCP ECHO サーバ受信ルーチン 448 415 */ 449 416 … … 482 449 while (true) { 483 450 484 /* åä¿¡ãµã¤ãºãè¨ç®ããã*/451 /* 受信サイズを計算する。*/ 485 452 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 486 453 if (sptr > rptr) … … 490 457 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 491 458 492 /* åä¿¡ããã*/459 /* 受信する。*/ 493 460 if ((rlen = tcp_rcv_dat(cepid, rptr, blen, TMO_FEVR)) <= 0) { 494 461 if (rlen < 0) … … 508 475 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 509 476 510 /* åä¿¡ãã¤ã³ã¿ãé²ããã*/477 /* 受信ポインタを進める。*/ 511 478 if (rptr - buffer + rlen >= sizeof(buffer)) 512 479 rptr -= sizeof(buffer) - rlen; … … 514 481 rptr += rlen; 515 482 516 /* ãããã¡å 517 ã®æåæ°ãå¢ããã*/ 483 /* バッファ内の文字数を増やす。*/ 518 484 last = chars; 519 485 chars += (uint16_t)rlen; 520 486 521 /* ãããã¡å 522 ã«æåãå 523 ¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 487 /* バッファ内に文字が入れば、送信タスクを起床する。*/ 524 488 if (last == 0 && chars > 0) 525 489 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 526 490 527 /* ãããã¡å 528 ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 491 /* バッファ内に空きがあれば、受信タスクを起床する。*/ 529 492 if (sizeof(buffer) - chars > 0) 530 493 sig_sem(SEM_TCP_ECHO_SRV_RCV_READY); … … 532 495 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); 533 496 534 /* ãããã¡ã«ç©ºããã§ããã¾ã§å¾ 535 ã¤ã*/ 497 /* バッファに空きができるまで待つ。*/ 536 498 syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY)); 537 499 } 538 500 539 /* åä¿¡å®äº*/501 /* 受信完了 */ 540 502 ena_rcv = false; 541 503 542 /* åä¿¡ãããã¡ã«æåãå 543 ¥ãã®ãå¾ 544 ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 504 /* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/ 545 505 if (chars == 0) 546 506 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 547 507 548 /* ã³ãã¯ã·ã§ã³ã®åæãå®äºããã¾ã§å¾ 549 ã¤ã*/ 508 /* コネクションの切断が完了するまで待つ。*/ 550 509 syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY)); 551 510 … … 554 513 555 514 /* 556 * TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯515 * TCP ECHO サーバ送信タスク 557 516 */ 558 517 … … 578 537 while (true) { 579 538 580 /* ãããã¡ã«æåãå 581 ¥ãã¾ã§å¾ 582 ã¤ã*/ 539 /* バッファに文字が入るまで待つ。*/ 583 540 syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY)); 584 541 585 /* åä¿¡å®äºã§ããããã¡ã«æåããªããã°çµäºããã*/542 /* 受信完了で、バッファに文字がなければ終了する。*/ 586 543 if (!ena_rcv && chars == 0) 587 544 break; 588 545 589 /* éä¿¡ãµã¤ãºãè¨ç®ããã*/546 /* 送信サイズを計算する。*/ 590 547 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 591 548 if (rptr > sptr) … … 611 568 syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK)); 612 569 613 /* éä¿¡ãã¤ã³ã¿ãé²ããã*/570 /* 送信ポインタを進める。*/ 614 571 if (sptr - buffer + slen >= sizeof(buffer)) 615 572 sptr -= sizeof(buffer) - slen; … … 617 574 sptr += slen; 618 575 619 /* ãããã¡å 620 ã®æåæ°ãæ¸ããã*/ 576 /* バッファ内の文字数を減らす。*/ 621 577 last = chars; 622 578 chars -= (uint16_t)slen; 623 579 624 /* åä¿¡å®äºã§ããããã¡ã«æåããªããã°çµäºããã*/580 /* 受信完了で、バッファに文字がなければ終了する。*/ 625 581 if (!ena_rcv && chars == 0) { 626 582 syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK)); … … 628 584 } 629 585 630 /* ãããã¡å 631 ã«æåãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 586 /* バッファ内に文字があれば、送信タスクを起床する。*/ 632 587 if (chars > 0) 633 588 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); 634 589 635 /* åä¿¡å¯è½ã§ããããã¡å 636 ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 590 /* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/ 637 591 if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0) 638 592 sig_sem(SEM_TCP_ECHO_SRV_RCV_READY); … … 641 595 } 642 596 643 /* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾ 644 ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/ 597 /* 受信バッファに空ができるを待っている受信タスクを起床する。*/ 645 598 if (chars == sizeof(buffer)) 646 599 sig_sem(SEM_TCP_ECHO_SRV_SND_READY); … … 670 623 671 624 /* 672 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã625 * get_tcp_rep -- TCP 受付口を獲得する。 673 626 */ 674 627 … … 696 649 697 650 /* 698 * get_tcp_cep -- TCP é信端ç¹ãç²å¾ããã651 * get_tcp_cep -- TCP 通信端点を獲得する。 699 652 */ 700 653 … … 731 684 732 685 /* 733 * TCP ECHO ãµã¼ãåä¿¡ã¿ã¹ã¯686 * TCP ECHO サーバ受信タスク 734 687 */ 735 688 -
azure_iot_hub/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
r388 r389 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 }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * TCP ECHO ãµã¼ã#240 * TCP ECHO サーバ #2 53 41 * 54 * ã»éåä¿¡ã¿ã¹ã¯åé¢å55 * ã»ãã³ããããã³ã°ã³ã¼ã«56 * ã»IPv4/IPv642 * ・送受信タスク分離型 43 * ・ノンブロッキングコール 44 * ・IPv4/IPv6 57 45 */ 58 46 59 /* ã¹ã¿ãã¯ãµã¤ãº*/47 /* スタックサイズ */ 60 48 61 #define TCP_ECHO_SRV_STACK_SIZE 1024 /* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/49 #define TCP_ECHO_SRV_STACK_SIZE 1024 /* TCP ECHO サーバタスクのスタックサイズ */ 62 50 63 /* åªå 64 度 */ 51 /* 優先度 */ 65 52 66 #define TCP_ECHO_SRV_MAIN_PRIORITY 5 /* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå 67 度 */ 53 #define TCP_ECHO_SRV_MAIN_PRIORITY 5 /* TCP ECHO サーバタスクの優先度 */ 68 54 69 55 /* 70 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº56 * TCP 送受信ウインドバッファサイズ 71 57 */ 72 58 … … 92 78 #endif /* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */ 93 79 94 /* ã¿ã¹ã¯æ°*/80 /* タスク数 */ 95 81 96 82 #if defined(USE_TCP_ECHO_SRV2) … … 102 88 103 89 /* 104 * å¤æ°90 * 変数 105 91 */ 106 92 107 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/93 /* TCP 送受信ウィンドバッファ */ 108 94 109 95 extern uint8_t tcp_echo_srv_swbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_SWBUF_SIZE]; … … 111 97 112 98 /* 113 * ã¿ã¹ã¯99 * タスク 114 100 */ 115 101 … … 118 104 119 105 /* 120 * é¢æ°106 * 関数 121 107 */ 122 108 -
azure_iot_hub/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
r388 r389 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_INET6 … … 79 67 #endif /* of #ifdef SUPPORT_INET4 */ 80 68 81 /* TCP é信端ç¹*/69 /* TCP 通信端点 */ 82 70 83 71 #ifdef SUPPORT_INET6 … … 125 113 #ifdef USE_UDP_EXTENTIONS 126 114 127 /* UDP é信端ç¹*/115 /* UDP 通信端点 */ 128 116 129 117 #ifdef SUPPORT_INET6 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_dhcp4_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * DHCP ã¯ã©ã¤ã¢ã³ã48 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * DHCP クライアント 36 * TCP/IP コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef DHCP4_CLI_CFG 52 40 53 /* UDP é信端ç¹*/41 /* UDP 通信端点 */ 54 42 55 43 UDP_CRE_CEP (UDP4_DHCP_CLI_CEPID, { -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_dhcp6_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * DHCP/DHCPv6 ã¯ã©ã¤ã¢ã³ã48 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * DHCP/DHCPv6 クライアント 36 * TCP/IP コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef DHCP6_CLI_CFG 52 40 53 /* UDP é信端ç¹*/41 /* UDP 通信端点 */ 54 42 55 43 UDP6_CRE_CEP (UDP6_DHCP_CLI_CEPID, { -
azure_iot_hub/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
r388 r389 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_INET6 … … 74 61 #endif /* of #ifdef SUPPORT_INET6 */ 75 62 76 /* TCP é信端ç¹*/63 /* TCP 通信端点 */ 77 64 78 65 #ifdef SUPPORT_INET6 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_resolver.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * RESOLVER ã¯ã©ã¤ã¢ã³ã48 * TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * RESOLVER クライアント 36 * TCP/IP コンフィギュレーションファイル 49 37 */ 50 38 51 39 #ifdef USE_RESOLVER 52 40 53 /* UDP é信端ç¹*/41 /* UDP 通信端点 */ 54 42 55 43 #ifdef SUPPORT_INET6 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_tcp4_echo_srv1.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * SUPPORT_INET4 50 38 * USE_TCP_NON_BLOCKING: OFF 51 39 * USE_TCP_EXTENTIONS: OFF 52 * TCP é信端ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 以é40 * TCP 通信端点、NUM_TCP_ECHO_SRV_TASKS >= 2 以降 53 41 * 54 42 */ 55 43 56 /* TCP é信端ç¹*/44 /* TCP 通信端点 */ 57 45 58 46 #if defined(USE_TCP_ECHO_SRV1) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_tcp4_echo_srv1_nblk.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * SUPPORT_INET4 50 38 * USE_TCP_NON_BLOCKING: ON 51 39 * USE_TCP_EXTENTIONS: OFF 52 * TCP é信端ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 以é40 * TCP 通信端点、NUM_TCP_ECHO_SRV_TASKS >= 2 以降 53 41 * 54 42 */ 55 43 56 /* TCP é信端ç¹*/44 /* TCP 通信端点 */ 57 45 58 46 #if defined(USE_TCP_ECHO_SRV1) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_tcp64_echo_srv1.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP ECHO サーバの TCP/IP コンフィギュレーションファイル 48 36 * 49 37 * SUPPORT_INET6 … … 51 39 * USE_TCP_NON_BLOCKING: OFF 52 40 * USE_TCP_EXTENTIONS: OFF 53 * TCP åä»å£54 * TCP é信端ç¹ãNUM_TCP_ECHO_SRV_TASKS == 141 * TCP 受付口 42 * TCP 通信端点、NUM_TCP_ECHO_SRV_TASKS == 1 55 43 * 56 44 */ … … 59 47 60 48 /* 61 * TCP åä»å£49 * TCP 受付口 62 50 */ 63 51 … … 98 86 99 87 /* 100 * TCP é信端ç¹101 * 102 * å®ç¾©ãã TCP é信端ç¹ï¼TCP?_ECHO_SRV_CEPID1ï¼ã®é¸æ88 * TCP 通信端点 89 * 90 * 定義する TCP 通信端点(TCP?_ECHO_SRV_CEPID1)の選択 103 91 * 104 92 * INET6 INET4 USE_TCP4 TCP6_CRE_CEP TCP_CRE_CEP 105 * â â â ÃTCP4106 * â â à TCP Ã107 * â à â TCP Ã108 * â à à TCP Ã109 * à â â ÃTCP110 * à â à ÃTCP111 * à à â à Ã112 * à à à à Ã93 * ○ ○ ○ × TCP4 94 * ○ ○ × TCP × 95 * ○ × ○ TCP × 96 * ○ × × TCP × 97 * × ○ ○ × TCP 98 * × ○ × × TCP 99 * × × ○ × × 100 * × × × × × 113 101 * 114 102 */ -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_tcp64_echo_srv1_nblk.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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$ … … 45 33 46 34 /* 47 * TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * TCP ECHO サーバの TCP/IP コンフィギュレーションファイル 48 36 * 49 37 * SUPPORT_INET6 … … 51 39 * USE_TCP_NON_BLOCKING: ON 52 40 * USE_TCP_EXTENTIONS: OFF 53 * TCP é信端ç¹ãNUM_TCP_ECHO_SRV_TASKS == 141 * TCP 通信端点、NUM_TCP_ECHO_SRV_TASKS == 1 54 42 * 55 43 */ … … 58 46 59 47 /* 60 * TCP é信端ç¹61 * 62 * å®ç¾©ãã TCP é信端ç¹ï¼TCP?_ECHO_SRV_CEPID1ï¼ã®é¸æ48 * TCP 通信端点 49 * 50 * 定義する TCP 通信端点(TCP?_ECHO_SRV_CEPID1)の選択 63 51 * 64 52 * INET6 INET4 USE_TCP4 TCP6_CRE_CEP TCP_CRE_CEP 65 * â â â ÃTCP466 * â â à TCP Ã67 * â à â TCP Ã68 * â à à TCP Ã69 * à â â ÃTCP70 * à â à ÃTCP71 * à à â à Ã72 * à à à à Ã53 * ○ ○ ○ × TCP4 54 * ○ ○ × TCP × 55 * ○ × ○ TCP × 56 * ○ × × TCP × 57 * × ○ ○ × TCP 58 * × ○ × × TCP 59 * × × ○ × × 60 * × × × × × 73 61 * 74 62 */ -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_tcp6_echo_srv1.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * SUPPORT_INET6 50 38 * USE_TCP_NON_BLOCKING: OFF 51 39 * USE_TCP_EXTENTIONS: OFF 52 * TCP é信端ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 以é40 * TCP 通信端点、NUM_TCP_ECHO_SRV_TASKS >= 2 以降 53 41 * 54 42 */ 55 43 56 /* TCP é信端ç¹*/44 /* TCP 通信端点 */ 57 45 58 46 #if defined(USE_TCP_ECHO_SRV1) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_tcp6_echo_srv1_nblk.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * SUPPORT_INET6 50 38 * USE_TCP_NON_BLOCKING: ON 51 39 * USE_TCP_EXTENTIONS: OFF 52 * TCP é信端ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 以é40 * TCP 通信端点、NUM_TCP_ECHO_SRV_TASKS >= 2 以降 53 41 * 54 42 */ 55 43 56 /* TCP é信端ç¹*/44 /* TCP 通信端点 */ 57 45 58 46 #if defined(USE_TCP_ECHO_SRV1) -
azure_iot_hub/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
r388 r389 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_INET6 -
azure_iot_hub/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
r388 r389 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_INET6 … … 74 62 #endif /* of #ifdef SUPPORT_INET6 */ 75 63 76 /* TCP é信端ç¹*/64 /* TCP 通信端点 */ 77 65 78 66 #ifdef SUPPORT_INET6 -
azure_iot_hub/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
r388 r389 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_INET6 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_srv2.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 #if defined(SUPPORT_INET6) … … 74 62 #endif /* of #if defined(SUPPORT_INET6) */ 75 63 76 /* TCP é信端ç¹*/64 /* TCP 通信端点 */ 77 65 78 66 #if defined(SUPPORT_INET6) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_udp4_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 #if !defined(USE_UDP_EXTENTIONS) 54 42 55 /* UDP é信端ç¹*/43 /* UDP 通信端点 */ 56 44 57 45 #if defined(USE_UDP_NON_BLOCKING) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_udp4_echo_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * IPv4 … … 55 43 #ifndef USE_UDP_EXTENTIONS 56 44 57 /* UDP é信端ç¹*/45 /* UDP 通信端点 */ 58 46 59 47 #ifdef USE_UDP_NON_BLOCKING -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_udp6_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 #if !defined(USE_UDP_EXTENTIONS) 54 42 55 /* UDP é信端ç¹*/43 /* UDP 通信端点 */ 56 44 57 45 #if defined(USE_UDP_NON_BLOCKING) -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/tinet_udp6_echo_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * IPv6 … … 55 43 #ifndef USE_UDP_EXTENTIONS 56 44 57 /* UDP é信端ç¹*/45 /* UDP 通信端点 */ 58 46 59 47 #ifdef USE_UDP_NON_BLOCKING -
azure_iot_hub/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
r388 r389 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_INET6 -
azure_iot_hub/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
r388 r389 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$ … … 45 33 46 34 /* 47 * WWW ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * WWW サーバの TCP/IP コンフィギュレーションファイル 48 36 * 49 37 * SUPPORT_INET6 … … 51 39 * USE_TCP_NON_BLOCKING: OFF 52 40 * USE_TCP_EXTENTIONS: OFF 53 * TCP åä»å£54 * TCP é信端ç¹41 * TCP 受付口 42 * TCP 通信端点 55 43 * 56 44 */ … … 59 47 60 48 /* 61 * TCP åä»å£49 * TCP 受付口 62 50 */ 63 51 … … 98 86 99 87 /* 100 * TCP é信端ç¹101 * 102 * å®ç¾©ãã TCP é信端ç¹ï¼WWW?_CEPID1ï¼ã®é¸æ88 * TCP 通信端点 89 * 90 * 定義する TCP 通信端点(WWW?_CEPID1)の選択 103 91 * 104 92 * INET6 INET4 USE_TCP4 TCP6_CRE_CEP TCP_CRE_CEP 105 * â â â ÃWWW4106 * â â à WWW Ã107 * â à â WWW Ã108 * â à à WWW Ã109 * à â â ÃWWW110 * à â à ÃWWW111 * à à â à Ã112 * à à à à Ã93 * ○ ○ ○ × WWW4 94 * ○ ○ × WWW × 95 * ○ × ○ WWW × 96 * ○ × × WWW × 97 * × ○ ○ × WWW 98 * × ○ × × WWW 99 * × × ○ × × 100 * × × × × × 113 101 * 114 102 */ -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp4_echo_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 * UDP4 ECHO ã¯ã©ã¤ã¢ã³ã35 * UDP4 ECHO クライアント 48 36 */ 49 37 … … 76 64 #if defined(USE_UDP4_ECHO_CLI_TSK) 77 65 78 /* echo ãµã¼ãã®ãã¼ãçªå·*/66 /* echo サーバのポート番号 */ 79 67 80 68 #define ECHO_SRV_PORTNO UINT_C(7) 81 69 82 /* éä¿¡éé*/70 /* 送信間隔 */ 83 71 84 72 #if defined(TOPPERS_S810_CLG3_85) … … 92 80 #endif /* of #if defined(TOPPERS_S810_CLG3_85) */ 93 81 94 /* èªåå®è¡*/82 /* 自動実行 */ 95 83 96 84 #if defined(UDP4_ECHO_CLI_AUTO_RUN_STR) … … 102 90 103 91 /* 104 * å 105 ¨åå¤æ° 92 * 全域変数 106 93 */ 107 94 … … 109 96 110 97 /* 111 * å¤æ°98 * 変数 112 99 */ 113 100 … … 123 110 124 111 /* 125 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°112 * ノンブロッキングコールのコールバック関数 126 113 */ 127 114 … … 135 122 136 123 /* 137 * udp4_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ãã³ããããã³ã°ã³ã¼ã«ä½¿ç¨)ã124 * udp4_echo_cli -- ECHO/UDP サーバにメッセージを送信する (ノンブロッキングコール使用)。 138 125 */ 139 126 … … 162 149 syscall(slp_tsk()); 163 150 get_tim(&time); 164 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/151 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 165 152 syslog(LOG_NOTICE, "[UEC4:%02u CBR(NBLK)] error: %7lu,%s", 166 153 cepid, time / SYSTIM_HZ, itron_strerror(nblk_len)); … … 176 163 syscall(slp_tsk()); 177 164 get_tim(&time); 178 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/165 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 179 166 syslog(LOG_NOTICE, "[UEC4:%02u RCV(NBLK)] error: %7lu,%s", 180 167 cepid, time / SYSTIM_HZ, itron_strerror(nblk_len)); … … 198 185 199 186 /* 200 * ã³ã¼ã«ããã¯é¢æ°187 * コールバック関数 201 188 */ 202 189 … … 222 209 223 210 /* 224 * udp4_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°ä½¿ç¨)ã211 * udp4_echo_cli -- ECHO/UDP サーバにメッセージを送信する (コールバック関数使用)。 225 212 */ 226 213 … … 248 235 249 236 /* 250 * udp4_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°æªä½¿ç¨)ã237 * udp4_echo_cli -- ECHO/UDP サーバにメッセージを送信する (コールバック関数未使用)。 251 238 */ 252 239 … … 291 278 292 279 /* 293 * getcomd -- ã³ãã³ããå¾ãã280 * getcomd -- コマンドを得る。 294 281 */ 295 282 … … 339 326 340 327 /* 341 * UDP4 ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯328 * UDP4 ECHO クライアント送信タスク 342 329 */ 343 330 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp4_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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_UDP4_ECHO_CLI_TSK 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_UDP4_ECHO_CLI, { TA_TFIFO, 1, NULL }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp4_echo_cli.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _UDP4_ECHO_CLI_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 #define UDP4_ECHO_CLI_STACK_SIZE 1024 /* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv4ï¼ã®ã¹ã¿ãã¯ãµã¤ãº*/39 #define UDP4_ECHO_CLI_STACK_SIZE 1024 /* UDP ECHO クライアントタスク(IPv4)のスタックサイズ */ 52 40 53 /* åªå 54 度 */ 41 /* 優先度 */ 55 42 56 #define UDP4_ECHO_CLI_MAIN_PRIORITY 5 /* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv4ï¼ã®åªå 57 度 */ 43 #define UDP4_ECHO_CLI_MAIN_PRIORITY 5 /* UDP ECHO クライアントタスク(IPv4)の優先度 */ 58 44 59 /* å¤æ°*/45 /* 変数 */ 60 46 61 47 extern bool_t udp4_echo_cli_valid; 62 48 63 /* ã¿ã¹ã¯*/49 /* タスク */ 64 50 65 51 extern void udp4_echo_cli_task(intptr_t exinf); 66 52 67 /* é¢æ°*/53 /* 関数 */ 68 54 69 55 extern ER callback_udp4_echo_cli (ID cepid, FN fncd, void *p_parblk); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp4_echo_srv.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 * IPv4 … … 79 67 80 68 /* 81 * åä¿¡ã¿ã¤ã ã¢ã¦ã69 * 受信タイムアウト 82 70 */ 83 71 … … 93 81 94 82 /* 95 * ã³ã¼ã«ããã¯é¢æ°83 * コールバック関数 96 84 */ 97 85 … … 134 122 135 123 /* 136 * å¤æ°124 * 変数 137 125 */ 138 126 … … 140 128 141 129 /* 142 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°130 * ノンブロッキングコールのコールバック関数 143 131 */ 144 132 … … 150 138 get_tim(&now); 151 139 nblk_len = *(ER_UINT*)p_parblk; 152 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/140 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 153 141 syslog(LOG_NOTICE, "[UES4:%02u CBR] error, %7lu,%s, fncd: %s", 154 142 cepid, now / SYSTIM_HZ, itron_strerror(nblk_len), in_strtfn(fncd)); … … 165 153 166 154 /* 167 * UDP ECHO ãµã¼ã155 * UDP ECHO サーバ 168 156 */ 169 157 … … 209 197 210 198 /* 211 * UDP ECHO ãµã¼ã199 * UDP ECHO サーバ 212 200 */ 213 201 … … 247 235 248 236 /* 249 * UDP ECHO ãµã¼ãã¿ã¹ã¯237 * UDP ECHO サーバタスク 250 238 */ 251 239 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp4_echo_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * IPv4 … … 53 41 54 42 /* 55 * ã¿ã¹ã¯43 * タスク 56 44 */ 57 45 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp4_echo_srv.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _UDP4_ECHO_SRV_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 #define UDP4_ECHO_SRV_STACK_SIZE 1024 /* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPV4ï¼ã®ã¹ã¿ãã¯ãµã¤ãº*/39 #define UDP4_ECHO_SRV_STACK_SIZE 1024 /* UDP ECHO サーバタスク(IPV4)のスタックサイズ */ 52 40 53 /* åªå 54 度 */ 41 /* 優先度 */ 55 42 56 #define UDP4_ECHO_SRV_MAIN_PRIORITY 5 /* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPV4ï¼ã®åªå 57 度 */ 43 #define UDP4_ECHO_SRV_MAIN_PRIORITY 5 /* UDP ECHO サーバタスク(IPV4)の優先度 */ 58 44 59 /* ã¿ã¹ã¯*/45 /* タスク */ 60 46 61 47 extern void udp4_echo_srv_task(intptr_t exinf); 62 48 63 /* é¢æ°*/49 /* 関数 */ 64 50 65 51 extern ER callback_udp4_echo_srv (ID cepid, FN fncd, void *p_parblk); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp6_echo_cli.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 * UDP6 ECHO ã¯ã©ã¤ã¢ã³ã35 * UDP6 ECHO クライアント 48 36 */ 49 37 … … 78 66 #if defined(USE_UDP6_ECHO_CLI_TSK) 79 67 80 /* echo ãµã¼ãã®ãã¼ãçªå·*/68 /* echo サーバのポート番号 */ 81 69 82 70 #define ECHO_SRV_PORTNO UINT_C(7) 83 71 84 /* éä¿¡éé*/72 /* 送信間隔 */ 85 73 86 74 #if defined(TOPPERS_S810_CLG3_85) … … 94 82 #endif /* of #if defined(TOPPERS_S810_CLG3_85) */ 95 83 96 /* èªåå®è¡*/84 /* 自動実行 */ 97 85 98 86 #if defined(UDP6_ECHO_CLI_AUTO_RUN_STR) … … 104 92 105 93 /* 106 * å 107 ¨åå¤æ° 94 * 全域変数 108 95 */ 109 96 … … 111 98 112 99 /* 113 * å¤æ°100 * 変数 114 101 */ 115 102 … … 125 112 126 113 /* 127 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°114 * ノンブロッキングコールのコールバック関数 128 115 */ 129 116 … … 137 124 138 125 /* 139 * udp6_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ãã³ããããã³ã°ã³ã¼ã«ä½¿ç¨)ã126 * udp6_echo_cli -- ECHO/UDP サーバにメッセージを送信する (ノンブロッキングコール使用)。 140 127 */ 141 128 … … 164 151 syscall(slp_tsk()); 165 152 get_tim(&time); 166 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/153 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 167 154 syslog(LOG_NOTICE, "[UEC6:%02u CBR] error: %7lu,%s", 168 155 cepid, time / SYSTIM_HZ, itron_strerror(nblk_len)); … … 178 165 syscall(slp_tsk()); 179 166 get_tim(&time); 180 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/167 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 181 168 syslog(LOG_NOTICE, "[UEC6:%02u RVN] error: %7lu,%s", 182 169 cepid, time / SYSTIM_HZ, itron_strerror(nblk_len)); … … 200 187 201 188 /* 202 * ã³ã¼ã«ããã¯é¢æ°189 * コールバック関数 203 190 */ 204 191 … … 224 211 225 212 /* 226 * udp6_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°ä½¿ç¨)ã213 * udp6_echo_cli -- ECHO/UDP サーバにメッセージを送信する (コールバック関数使用)。 227 214 */ 228 215 … … 250 237 251 238 /* 252 * udp6_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°æªä½¿ç¨)ã239 * udp6_echo_cli -- ECHO/UDP サーバにメッセージを送信する (コールバック関数未使用)。 253 240 */ 254 241 … … 293 280 294 281 /* 295 * getcomd -- ã³ãã³ããå¾ãã282 * getcomd -- コマンドを得る。 296 283 */ 297 284 … … 341 328 342 329 /* 343 * UDP6 ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯330 * UDP6 ECHO クライアント送信タスク 344 331 */ 345 332 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp6_echo_cli.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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_UDP6_ECHO_CLI_TSK 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_UDP6_ECHO_CLI, { TA_TFIFO, 1, NULL }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp6_echo_cli.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _UDP6_ECHO_CLI_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 #define UDP6_ECHO_CLI_STACK_SIZE 1024 /* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv6ï¼ã®ã¹ã¿ãã¯ãµã¤ãº*/39 #define UDP6_ECHO_CLI_STACK_SIZE 1024 /* UDP ECHO クライアントタスク(IPv6)のスタックサイズ */ 52 40 53 /* åªå 54 度 */ 41 /* 優先度 */ 55 42 56 #define UDP6_ECHO_CLI_MAIN_PRIORITY 5 /* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv6ï¼ã®åªå 57 度 */ 43 #define UDP6_ECHO_CLI_MAIN_PRIORITY 5 /* UDP ECHO クライアントタスク(IPv6)の優先度 */ 58 44 59 /* å¤æ°*/45 /* 変数 */ 60 46 61 47 extern bool_t udp6_echo_cli_valid; 62 48 63 /* ã¿ã¹ã¯*/49 /* タスク */ 64 50 65 51 extern void udp6_echo_cli_task(intptr_t exinf); 66 52 67 /* é¢æ°*/53 /* 関数 */ 68 54 69 55 extern ER callback_udp6_echo_cli (ID cepid, FN fncd, void *p_parblk); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp6_echo_srv.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 * IPv6 … … 79 67 80 68 /* 81 * åä¿¡ã¿ã¤ã ã¢ã¦ã69 * 受信タイムアウト 82 70 */ 83 71 … … 93 81 94 82 /* 95 * ã³ã¼ã«ããã¯é¢æ°83 * コールバック関数 96 84 */ 97 85 … … 134 122 135 123 /* 136 * å¤æ°124 * 変数 137 125 */ 138 126 … … 140 128 141 129 /* 142 * ãã³ããããã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°130 * ノンブロッキングコールのコールバック関数 143 131 */ 144 132 … … 150 138 get_tim(&now); 151 139 nblk_len = *(ER_UINT*)p_parblk; 152 if (nblk_len < 0) { /* 0 以ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã*/140 if (nblk_len < 0) { /* 0 以下の場合は、エラーコード */ 153 141 syslog(LOG_NOTICE, "[UES6:%02u CBR] error: %7lu,%s, fncd: %s", 154 142 cepid, now / SYSTIM_HZ, itron_strerror(nblk_len), in_strtfn(fncd)); … … 165 153 166 154 /* 167 * UDP ECHO ãµã¼ã155 * UDP ECHO サーバ 168 156 */ 169 157 … … 208 196 209 197 /* 210 * UDP ECHO ãµã¼ã198 * UDP ECHO サーバ 211 199 */ 212 200 … … 246 234 247 235 /* 248 * UDP ECHO ãµã¼ãã¿ã¹ã¯236 * UDP ECHO サーバタスク 249 237 */ 250 238 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp6_echo_srv.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * IPv6 … … 53 41 54 42 /* 55 * ã¿ã¹ã¯43 * タスク 56 44 */ 57 45 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp6_echo_srv.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _UDP6_ECHO_SRV_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 #define UDP6_ECHO_SRV_STACK_SIZE 1024 /* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPv6ï¼ã®ã¹ã¿ãã¯ãµã¤ãº*/39 #define UDP6_ECHO_SRV_STACK_SIZE 1024 /* UDP ECHO サーバタスク(IPv6)のスタックサイズ */ 52 40 53 /* åªå 54 度 */ 41 /* 優先度 */ 55 42 56 #define UDP6_ECHO_SRV_MAIN_PRIORITY 5 /* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPv6ï¼ã®åªå 57 度 */ 43 #define UDP6_ECHO_SRV_MAIN_PRIORITY 5 /* UDP ECHO サーバタスク(IPv6)の優先度 */ 58 44 59 /* ã¿ã¹ã¯*/45 /* タスク */ 60 46 61 47 extern void udp6_echo_srv_task(intptr_t exinf); 62 48 63 /* é¢æ°*/49 /* 関数 */ 64 50 65 51 extern ER callback_udp6_echo_srv (ID cepid, FN fncd, void *p_parblk); -
azure_iot_hub/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
r388 r389 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 … … 79 67 #ifdef USE_UDP_DISCARD_CLI 80 68 81 /* discard ãµã¼ãã®ãã¼ãçªå·*/69 /* discard サーバのポート番号 */ 82 70 83 71 #define DISCARD_SRV_PORTNO UINT_C(9) 84 72 85 73 /* 86 * å¤æ°74 * 変数 87 75 */ 88 76 … … 97 85 98 86 /* 99 * å 100 ¨åå¤æ° 87 * 全域変数 101 88 */ 102 89 … … 104 91 105 92 /* 106 * send_udp_discard -- DISCARD/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã93 * send_udp_discard -- DISCARD/UDP サーバにメッセージを送信する。 107 94 */ 108 95 … … 156 143 157 144 /* 158 * UDP DISCARD ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯145 * UDP DISCARD クライアント送信タスク 159 146 */ 160 147 -
azure_iot_hub/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
r388 r389 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 }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _UDP_DISCARD_CLI_H_ 48 36 49 /* ã¹ã¿ãã¯ãµã¤ãº*/37 /* スタックサイズ */ 50 38 51 #define UDP_DISCARD_CLI_STACK_SIZE 1024 /* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/39 #define UDP_DISCARD_CLI_STACK_SIZE 1024 /* UDP DISCARD クライアントタスクのスタックサイズ */ 52 40 53 /* åªå 54 度 */ 41 /* 優先度 */ 55 42 56 #define UDP_DISCARD_CLI_MAIN_PRIORITY 5 /* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå 57 度 */ 43 #define UDP_DISCARD_CLI_MAIN_PRIORITY 5 /* UDP DISCARD クライアントタスクの優先度 */ 58 44 59 /* å¤æ°*/45 /* 変数 */ 60 46 61 47 extern bool_t udp_discard_cli_valid; 62 48 63 /* ã¿ã¹ã¯*/49 /* タスク */ 64 50 65 51 extern void udp_discard_cli_task(intptr_t exinf); 66 52 67 /* é¢æ°*/53 /* 関数 */ 68 54 69 55 extern ER callback_udp_discard_cli (ID cepid, FN fncd, void *p_parblk); -
azure_iot_hub/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
r388 r389 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 … … 101 89 102 90 /* 103 * éåä¿¡ API ã®é¸æ91 * 送受信 API の選択 104 92 */ 105 93 … … 117 105 118 106 /* 119 * é¢æ°107 * 関数 120 108 */ 121 109 … … 132 120 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) 133 121 134 #if NUM_WWW_SRV_TASKS >= 2 /* 2 ãè¶ 135 ããåæ°ã¯æ³å®ãã¦ããªãã */ 122 #if NUM_WWW_SRV_TASKS >= 2 /* 2 を超える個数は想定していない。 */ 136 123 137 124 #define WWW4_SRV_TASK WWW_SRV_TASK1 … … 156 143 157 144 /* 158 * å 159 ¨åå¤æ° 160 */ 161 162 /* TCP éåä¿¡ã¦ã£ã³ããããã¡ */ 145 * 全域変数 146 */ 147 148 /* TCP 送受信ウィンドバッファ */ 163 149 164 150 #ifndef TCP_CFG_SWBUF_CSAVE … … 171 157 172 158 /* 173 * å¤æ°159 * 変数 174 160 */ 175 161 … … 200 186 201 187 /* 202 * æ¥ç¶ç¸æã®æ 203 å ±æ§é ä½ 188 * 接続相手の情報構造体 204 189 */ 205 190 … … 210 195 211 196 typedef struct t_www_srv_info { 212 ID cepid; /* éä¿¡ç«¯ç¹ ID */ 213 ID repid; /* åä»å£ ID */ 214 T_IPEP dst; /* æ¥ç¶ç¸æã¢ãã¬ã¹æ 215 å ± */ 197 ID cepid; /* 通信端点 ID */ 198 ID repid; /* 受付口 ID */ 199 T_IPEP dst; /* 接続相手アドレス情報 */ 216 200 } T_WWW_SRV_INFO; 217 201 … … 221 205 222 206 static T_WWW_SRV_INFO www_srv_info[NUM_WWW_SRV_TASKS]; 223 /* 2 ãè¶ 224 ããåæ°ã¯æ³å®ãã¦ããªãã */ 207 /* 2 を超える個数は想定していない。 */ 225 208 226 209 #else /* of #ifdef USE_TCP_EXTENTIONS */ … … 238 221 #endif /* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */ 239 222 240 #if NUM_WWW_SRV_TASKS >= 2 /* 2 ãè¶ 241 ããåæ°ã¯æ³å®ãã¦ããªãã */ 223 #if NUM_WWW_SRV_TASKS >= 2 /* 2 を超える個数は想定していない。 */ 242 224 { WWW_SRV_CEPID2, WWW_SRV_REPID }, 243 225 #endif … … 250 232 251 233 /* 252 * get_char -- ä¸æåå 253 ¥åããã 234 * get_char -- 一文字入力する。 254 235 */ 255 236 … … 286 267 287 268 /* 288 * flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã269 * flush_sbuf -- 送信バッファをフラッシュする。 289 270 */ 290 271 … … 301 282 302 283 /* 303 * put_str -- æååãåºåããã284 * put_str -- 文字列を出力する。 304 285 */ 305 286 … … 343 324 344 325 /* 345 * get_char -- ä¸æåå 346 ¥åããã 326 * get_char -- 一文字入力する。 347 327 */ 348 328 … … 376 356 377 357 /* 378 * flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã358 * flush_sbuf -- 送信バッファをフラッシュする。 379 359 */ 380 360 … … 396 376 397 377 /* 398 * put_str -- æååãåºåããã378 * put_str -- 文字列を出力する。 399 379 */ 400 380 … … 428 408 429 409 /* 430 * get_line -- ä¸è¡å 431 ¥åããã 410 * get_line -- 一行入力する。 432 411 */ 433 412 … … 469 448 470 449 /* 471 * convert -- æ°å¤å¤æ450 * convert -- 数値変換 472 451 */ 473 452 … … 499 478 500 479 /* 501 * split_fields -- ãã£ã¼ã«ãã«åå²ããã480 * split_fields -- フィールドに分割する。 502 481 */ 503 482 … … 523 502 524 503 /* 525 * put_status -- status line ãåºåããã504 * put_status -- status line を出力する。 526 505 */ 527 506 … … 538 517 539 518 /* 540 * put_content_length -- Content-length ãåºåããã519 * put_content_length -- Content-length を出力する。 541 520 */ 542 521 … … 557 536 558 537 /* 559 * get_method -- GET ã¡ã½ããã®å¦ç538 * get_method -- GET メソッドの処理 560 539 */ 561 540 … … 576 555 577 556 /* 578 * parse_request -- ãªã¯ã¨ã¹ãã解æããã557 * parse_request -- リクエストを解析する。 579 558 */ 580 559 … … 608 587 } 609 588 610 while (get_line(cepid, line, srbuf) > 0) { /* ããããã¹ãããããã*/589 while (get_line(cepid, line, srbuf) > 0) { /* ヘッダをスキップする。*/ 611 590 split_fields(line, ": "); 612 591 if (strcmp("Content-Length", &line->buf[line->off[0]]) == 0) … … 614 593 } 615 594 while (blen > 0 && get_line(cepid, line, srbuf) > 0) { 616 /* ã¨ã³ãã£ãã£ã»ããã£ãã¹ãããããã*/595 /* エンティティ・ボディをスキップする。*/ 617 596 blen -= line->len; 618 597 } … … 636 615 637 616 /* 638 * index_html -- /index.html ãã¡ã¤ã«617 * index_html -- /index.html ファイル 639 618 */ 640 619 … … 654 633 "<title>TINET TCP/IP Protocol Stack</title>\r\n" 655 634 "</head><body bgcolor=\"#ffffbb\">\r\n" 656 "<hr> ãã® WWW ãµã¼ãã¯<br>"635 "<hr>この WWW サーバは<br>" 657 636 658 637 #ifdef TARGET_KERNEL_ASP 659 "ASP Kernel for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"638 "ASP Kernel for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n" 660 639 #endif 661 640 662 641 #ifdef TARGET_KERNEL_JSP 663 "JSP Kernel for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"642 "JSP Kernel for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n" 664 643 #endif 665 644 666 "TINET TCP/IP ãããã³ã«ã¹ã¿ãã¯ã«ãããµã¼ãã¹ãã¦ãã¾ãã<br><hr>\r\n"645 "TINET TCP/IP プロトコルスタックによりサービスしています。<br><hr>\r\n" 667 646 668 647 #if NET_COUNT_ENABLE 669 648 670 "<ul><li type=\"square\"><a href=\"stat.html\">ãããã¯ã¼ã¯çµ±è¨æ 671 å ±</a></ul><hr>\r\n" 649 "<ul><li type=\"square\"><a href=\"stat.html\">ネットワーク統計情報</a></ul><hr>\r\n" 672 650 673 651 #else /* of #if NET_COUNT_ENABLE */ 674 652 675 "<ul><li type=\"square\">ãããã¯ã¼ã¯çµ±è¨æ 676 å ±</ul><hr>\r\n" 653 "<ul><li type=\"square\">ネットワーク統計情報</ul><hr>\r\n" 677 654 678 655 #endif /* of #if NET_COUNT_ENABLE */ … … 728 705 get_tim(&start); 729 706 len += put_status(cepid, srbuf, ST_OK); 730 len += put_content_length(cepid, srbuf, strlen(response) - 2); /* 2 ã¯æåã®\r\n */707 len += put_content_length(cepid, srbuf, strlen(response) - 2); /* 2 は最初の \r\n */ 731 708 len += put_str(cepid, srbuf, response); 732 709 get_tim(&finish); … … 749 726 750 727 static const char time_prefix[] = 751 " çµéæé: "728 "経過時間: " 752 729 ; 753 730 … … 762 739 static const char table_prefix_ip4[] = 763 740 "<h2>IPv4</h2><table border>\r\n" 764 "<tr><th>é 765 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 741 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 766 742 ; 767 743 … … 772 748 static const char table_prefix_ip6[] = 773 749 "<h2>IPv6</h2><table border>\r\n" 774 "<tr><th>é 775 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 750 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 776 751 ; 777 752 778 753 static const char table_prefix_icmp6[] = 779 754 "<h2>ICMPv6</h2><table border>\r\n" 780 "<tr><th>é 781 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 755 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 782 756 ; 783 757 784 758 static const char table_prefix_nd6[] = 785 "<h2>è¿é£æ¢ç´¢</h2><table border>\r\n" 786 "<tr><th>é 787 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 759 "<h2>近隣探索</h2><table border>\r\n" 760 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 788 761 ; 789 762 … … 792 765 static const char table_prefix_tcp[] = 793 766 "<h2>TCP</h2><table border>\r\n" 794 "<tr><th>é 795 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 767 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 796 768 ; 797 769 798 770 static const char table_prefix_net_buf[] = 799 "<h2> ãããã¯ã¼ã¯ãããã¡</h2><table border>\r\n"800 "<tr><th> ãµã¤ãº</th>"801 "<th> ç¨ææ°</th>"802 "<th> å²å½è¦æ±æ°</th>"803 "<th> å²å½æ°</th>"804 "<th> å²å½ã¦<br>ã¨ã©ã¼æ°</th></tr>\r\n"771 "<h2>ネットワークバッファ</h2><table border>\r\n" 772 "<tr><th>サイズ</th>" 773 "<th>用意数</th>" 774 "<th>割当要求数</th>" 775 "<th>割当数</th>" 776 "<th>割当て<br>エラー数</th></tr>\r\n" 805 777 ; 806 778 … … 808 780 809 781 static const char table_prefix_ppp[] = 810 "<h2>PPP ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n" 811 "<tr><th>é 812 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 782 "<h2>PPP ネットワークインタフェース</h2><table border>\r\n" 783 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 813 784 ; 814 785 815 786 static const char *ppp_item[NC_PPP_SIZE] = { 816 " åä¿¡ãªã¯ãããæ°",817 " éä¿¡ãªã¯ãããæ°",818 " åä¿¡ãã¬ã¼ã æ°",819 " éä¿¡ãã¬ã¼ã æ°",820 " åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",821 " éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",822 " ãããã¡å²ãå½ã¦å¤±ææ°",787 "受信オクテット数", 788 "送信オクテット数", 789 "受信フレーム数", 790 "送信フレーム数", 791 "受信エラーフレーム数", 792 "送信エラーフレーム数", 793 "バッファ割り当て失敗数", 823 794 }; 824 795 … … 828 799 829 800 static const char table_prefix_ether_nic[] = 830 "<h2>ã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n" 831 "<tr><th>é 832 ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n" 801 "<h2>イーサネット・ネットワークインタフェース</h2><table border>\r\n" 802 "<tr><th>項目</th><th>カウント</th></tr>\r\n" 833 803 ; 834 804 835 805 static const char *ether_nic_item[NC_ETHER_NIC_SIZE] = { 836 " ãªã»ããæ°",837 " éä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",838 " éä¿¡ã¿ã¤ã ã¢ã¦ãæ°",839 " è¡çªæ°",840 " éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",841 " éä¿¡ãã¬ã¼ã æ°",842 " éä¿¡ãªã¯ãããæ°",843 " åä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",844 " åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",845 " åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",846 " åä¿¡ãã¬ã¼ã æ°",847 " åä¿¡ãªã¯ãããæ°",806 "リセット数", 807 "送信セマフォ資源返却オーバー数", 808 "送信タイムアウト数", 809 "衝突数", 810 "送信エラーフレーム数", 811 "送信フレーム数", 812 "送信オクテット数", 813 "受信セマフォ資源返却オーバー数", 814 "受信バッファ割り当て失敗数", 815 "受信エラーフレーム数", 816 "受信フレーム数", 817 "受信オクテット数", 848 818 }; 849 819 … … 853 823 854 824 static const char *ip4_item[NC_IP4_SIZE] = { 855 "åå²éä¿¡ããã©ã°ã¡ã³ãæ°", 856 "åå²éä¿¡æ°", 857 "éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°", 858 "éä¿¡ãã¼ã¿ã°ã©ã æ°", 859 "éä¿¡ãªã¯ãããæ°", 860 "åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°", 861 "åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°", 862 "åå²åä¿¡ç ´æ£æ°", 863 "åå²åä¿¡åæ§ææåæ°", 864 "åå²åä¿¡ãã©ã°ã¡ã³ãæ°", 865 "åå²åä¿¡æ°", 866 "ãªãã·ã§ã³å 867 ¥åæ°", 868 "ãããã³ã«ã¨ã©ã¼æ°", 869 "ã¢ãã¬ã¹ã¨ã©ã¼æ°", 870 "ãã¼ã¸ã§ã³ã¨ã©ã¼æ°", 871 "é·ãã¨ã©ã¼æ°", 872 "ãã§ãã¯ãµã ã¨ã©ã¼æ°", 873 "åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°", 874 "åä¿¡ãã¼ã¿ã°ã©ã æ°", 875 "åä¿¡ãªã¯ãããæ°", 825 "分割送信、フラグメント数", 826 "分割送信数", 827 "送信エラーデータグラム数", 828 "送信データグラム数", 829 "送信オクテット数", 830 "分割受信タイムアウト数", 831 "分割受信バッファ割り当て失敗数", 832 "分割受信破棄数", 833 "分割受信再構成成功数", 834 "分割受信フラグメント数", 835 "分割受信数", 836 "オプション入力数", 837 "プロトコルエラー数", 838 "アドレスエラー数", 839 "バージョンエラー数", 840 "長さエラー数", 841 "チェックサムエラー数", 842 "受信エラーデータグラム数", 843 "受信データグラム数", 844 "受信オクテット数", 876 845 }; 877 846 … … 881 850 882 851 static const char *ip6_item[NC_IP6_SIZE] = { 883 " åå²éä¿¡ããã©ã°ã¡ã³ãæ°",884 " åå²éä¿¡æ°",885 " éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",886 " éä¿¡ãã¼ã¿ã°ã©ã æ°",887 " éä¿¡ãªã¯ãããæ°",888 " åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°",889 " åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",890 " åå²åä¿¡ç ´æ£æ°",891 " åå²åä¿¡åæ§ææåæ°",892 " åå²åä¿¡ãã©ã°ã¡ã³ãæ°",893 " åå²åä¿¡æ°",894 " ãããã³ã«ã¨ã©ã¼æ°",895 " ã¢ãã¬ã¹ã¨ã©ã¼æ°",896 " ãã¼ã¸ã§ã³ã¨ã©ã¼æ°",897 " é·ãã¨ã©ã¼æ°",898 " åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",899 " åä¿¡ãã¼ã¿ã°ã©ã æ°",900 " åä¿¡ãªã¯ãããæ°",852 "分割送信、フラグメント数", 853 "分割送信数", 854 "送信エラーデータグラム数", 855 "送信データグラム数", 856 "送信オクテット数 ", 857 "分割受信タイムアウト数", 858 "分割受信バッファ割り当て失敗数", 859 "分割受信破棄数", 860 "分割受信再構成成功数", 861 "分割受信フラグメント数", 862 "分割受信数", 863 "プロトコルエラー数 ", 864 "アドレスエラー数 ", 865 "バージョンエラー数 ", 866 "長さエラー数", 867 "受信エラーデータグラム数", 868 "受信データグラム数", 869 "受信オクテット数 ", 901 870 }; 902 871 903 872 static const char *icmp6_item[NC_ICMP6_SIZE] = { 904 " éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°",905 " éä¿¡ ICMP ãã¼ã¿æ°",906 " éä¿¡ ICMP ãªã¯ãããæ°",907 " é·ãã¨ã©ã¼æ°",908 " åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°",909 " åä¿¡ ICMP ãã¼ã¿æ°",910 " åä¿¡ ICMP ãªã¯ãããæ°",873 "送信エラー ICMP データ数 ", 874 "送信 ICMP データ数", 875 "送信 ICMP オクテット数", 876 "長さエラー数", 877 "受信エラー ICMP データ数 ", 878 "受信 ICMP データ数", 879 "受信 ICMP オクテット数", 911 880 }; 912 881 913 882 static const char *nd6_item[NC_ND6_SIZE] = { 914 " éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°",915 " è¿é£è¦è«éä¿¡æ°",916 " è¿é£è¦è«åä¿¡æ°",917 " è¿é£éç¥éä¿¡æ°",918 " è¿é£éç¥åä¿¡æ°",919 " ã«ã¼ã¿è¦è«åºåæ°",920 " ã«ã¼ã¿éç¥åä¿¡æ°",883 "重複アドレス検出送信数", 884 "近隣要請送信数", 885 "近隣要請受信数", 886 "近隣通知送信数", 887 "近隣通知受信数", 888 "ルータ要請出力数", 889 "ルータ通知受信数", 921 890 }; 922 891 … … 924 893 925 894 static const char *tcp_item[NC_TCP_SIZE] = { 926 " è½åãªã¼ãã³æ°",927 " ååãªã¼ãã³æ°",928 "RTT æ´æ°æ°",929 " éä¿¡ RST æ°",930 " éä¿¡ ACK æ°",931 " éä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",932 " éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",933 " åéã»ã°ã¡ã³ãæ°",934 " éä¿¡ã»ã°ã¡ã³ãæ°",935 " éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°",936 " éä¿¡ãã¼ã¿ãªã¯ãããæ°",937 " åä¿¡ãã¥ã¼è§£æ¾æ°",938 " åä¿¡å¤éæ°",939 " åä¿¡ç ´æ£æ°",940 " åä¿¡ RST æ°",941 " åä¿¡å¤é ACK æ°",942 " åä¿¡ ACK æ°",943 " åä¿¡ãã§ãã¯ãµã ä¸æ£æ°",944 " åä¿¡ãããä¸æ£æ°",945 " åä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",946 " åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",947 " åä¿¡ã»ã°ã¡ã³ãæ°",948 " åä¿¡ãã¼ã¿ãªã¯ãããæ°",949 " åä¿¡ãªã¯ãããæ°",895 "能動オープン数", 896 "受動オープン数", 897 "RTT 更新数", 898 "送信 RST 数", 899 "送信 ACK 数", 900 "送信緊急セグメント数", 901 "送信データセグメント数", 902 "再送セグメント数", 903 "送信セグメント数", 904 "送信制御セグメント数", 905 "送信データオクテット数", 906 "受信キュー解放数", 907 "受信多重数", 908 "受信破棄数", 909 "受信 RST 数", 910 "受信多重 ACK 数", 911 "受信 ACK 数", 912 "受信チェックサム不正数", 913 "受信ヘッダ不正数", 914 "受信緊急セグメント数", 915 "受信データセグメント数", 916 "受信セグメント数", 917 "受信データオクテット数", 918 "受信オクテット数", 950 919 }; 951 920 952 921 /* 953 * put_count_item1 -- ã«ã¦ã³ã¿ã®å 954 容ãåºåãããã°ã«ã¼ã 1 922 * put_count_item1 -- カウンタの内容を出力する。グループ 1 955 923 */ 956 924 … … 995 963 996 964 /* 997 * put_count_item2 -- ã«ã¦ã³ã¿ã®å 998 容ãåºåãããã°ã«ã¼ã 2 965 * put_count_item2 -- カウンタの内容を出力する。グループ 2 999 966 */ 1000 967 … … 1021 988 1022 989 /* 1023 * td_len_ppp -- put_count_ppp ã§åºåããæåæ°ã990 * td_len_ppp -- put_count_ppp で出力する文字数。 1024 991 */ 1025 992 … … 1036 1003 1037 1004 /* 1038 * put_count_ppp -- ã«ã¦ã³ã¿ (PPP) ã®å 1039 容ãåºåããã 1005 * put_count_ppp -- カウンタ (PPP) の内容を出力する。 1040 1006 */ 1041 1007 … … 1108 1074 1109 1075 /* 1110 * td_len_ip4 -- put_count_ip4 ã§åºåããæåæ°ã1076 * td_len_ip4 -- put_count_ip4 で出力する文字数。 1111 1077 */ 1112 1078 … … 1123 1089 1124 1090 /* 1125 * put_count_ip4 -- ã«ã¦ã³ã¿ (IP4) ã®å 1126 容ãåºåããã 1091 * put_count_ip4 -- カウンタ (IP4) の内容を出力する。 1127 1092 */ 1128 1093 … … 1153 1118 1154 1119 /* 1155 * td_len_nd6 -- put_count_nd6 ã§åºåããæåæ°ã1120 * td_len_nd6 -- put_count_nd6 で出力する文字数。 1156 1121 */ 1157 1122 … … 1168 1133 1169 1134 /* 1170 * put_count_nd6 -- ã«ã¦ã³ã¿ (ND6) ã®å 1171 容ãåºåããã 1135 * put_count_nd6 -- カウンタ (ND6) の内容を出力する。 1172 1136 */ 1173 1137 … … 1194 1158 1195 1159 /* 1196 * td_len_icmp6 -- put_count_icmp6 ã§åºåããæåæ°ã1160 * td_len_icmp6 -- put_count_icmp6 で出力する文字数。 1197 1161 */ 1198 1162 … … 1209 1173 1210 1174 /* 1211 * put_count_icmp6 -- ã«ã¦ã³ã¿ (ICMP6) ã®å 1212 容ãåºåããã 1175 * put_count_icmp6 -- カウンタ (ICMP6) の内容を出力する。 1213 1176 */ 1214 1177 … … 1235 1198 1236 1199 /* 1237 * td_len_ip6 -- put_count_ip6 ã§åºåããæåæ°ã1200 * td_len_ip6 -- put_count_ip6 で出力する文字数。 1238 1201 */ 1239 1202 … … 1250 1213 1251 1214 /* 1252 * put_count_ip6 -- ã«ã¦ã³ã¿ (IP6) ã®å 1253 容ãåºåããã 1215 * put_count_ip6 -- カウンタ (IP6) の内容を出力する。 1254 1216 */ 1255 1217 … … 1278 1240 1279 1241 /* 1280 * td_len_tcp -- put_count_tcp ã§åºåããæåæ°ã1242 * td_len_tcp -- put_count_tcp で出力する文字数。 1281 1243 */ 1282 1244 … … 1293 1255 1294 1256 /* 1295 * put_count_tcp -- ã«ã¦ã³ã¿ (TCP) ã®å 1296 容ãåºåããã 1257 * put_count_tcp -- カウンタ (TCP) の内容を出力する。 1297 1258 */ 1298 1259 … … 1319 1280 1320 1281 /* 1321 * put_elapse_time -- çµéæéãåºåããã1282 * put_elapse_time -- 経過時間を出力する。 1322 1283 */ 1323 1284 … … 1351 1312 1352 1313 /* 1353 * put_count_net_buf -- ã«ã¦ã³ã¿ (TCP) ã®å 1354 容ãåºåããã 1314 * put_count_net_buf -- カウンタ (TCP) の内容を出力する。 1355 1315 */ 1356 1316 … … 1392 1352 1393 1353 /* 1394 * td_len_ether_nic -- put_count_ether_nic ã§åºåããæåæ°ã1354 * td_len_ether_nic -- put_count_ether_nic で出力する文字数。 1395 1355 */ 1396 1356 … … 1407 1367 1408 1368 /* 1409 * put_count_ether_nic -- ã«ã¦ã³ã¿ (ETHER_NIC) ã®å 1410 容ãåºåããã 1369 * put_count_ether_nic -- カウンタ (ETHER_NIC) の内容を出力する。 1411 1370 */ 1412 1371 … … 1435 1394 1436 1395 /* 1437 * stat_html -- /stat.html ãã¡ã¤ã«1396 * stat_html -- /stat.html ファイル 1438 1397 */ 1439 1398 … … 1451 1410 #endif 1452 1411 1453 "<title>ãããã¯ã¼ã¯çµ±è¨æ 1454 å ±</title>\r\n" 1412 "<title>ネットワーク統計情報</title>\r\n" 1455 1413 "</head><body bgcolor=\"#ffffbb\">\r\n" 1456 "<hr><h1 align=\"center\">ãããã¯ã¼ã¯çµ±è¨æ 1457 å ±</h1><hr>\r\n" 1414 "<hr><h1 align=\"center\">ネットワーク統計情報</h1><hr>\r\n" 1458 1415 ; 1459 1416 … … 1463 1420 1464 1421 static const char table_prefix1[] = 1465 "<h2>ã°ã«ã¼ã 1</h2><table border>\r\n" 1466 "<tr><th>é 1467 ç®</th>\r\n" 1468 "<th>åä¿¡ãªã¯ãããæ°</th>" 1469 "<th>éä¿¡ãªã¯ãããæ°</th>\r\n" 1470 "<th>åä¿¡ãã±ããæ°</th>" 1471 "<th>éä¿¡ãã±ããæ°</th>\r\n" 1472 "<th>åä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th>" 1473 "<th>éä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th></tr>\r\n" 1422 "<h2>グループ 1</h2><table border>\r\n" 1423 "<tr><th>項目</th>\r\n" 1424 "<th>受信オクテット数</th>" 1425 "<th>送信オクテット数</th>\r\n" 1426 "<th>受信パケット数</th>" 1427 "<th>送信パケット数</th>\r\n" 1428 "<th>受信エラー<br>パケット数</th>" 1429 "<th>送信エラー<br>パケット数</th></tr>\r\n" 1474 1430 ; 1475 1431 … … 1477 1433 1478 1434 static const char table_prefix2[] = 1479 "<h2>ã°ã«ã¼ã 2</h2><table border>\r\n" 1480 "<tr><th>é 1481 ç®</th>" 1482 "<th>åä¿¡ãªã¯ãããæ°</th>" 1483 "<th>åä¿¡ãã¬ã¼ã æ°</th></tr>\r\n" 1435 "<h2>グループ 2</h2><table border>\r\n" 1436 "<tr><th>項目</th>" 1437 "<th>受信オクテット数</th>" 1438 "<th>受信フレーム数</th></tr>\r\n" 1484 1439 ; 1485 1440 … … 1574 1529 1575 1530 + content_len 1576 - 2); /* 2 ã¯æåã®\r\n */1531 - 2); /* 2 は最初の \r\n */ 1577 1532 1578 1533 len += put_str(cepid, srbuf, res_prefix); … … 1664 1619 1665 1620 /* 1666 * get_tcp_rep -- TCP åä»å£ãç²å¾ããã1621 * get_tcp_rep -- TCP 受付口を獲得する。 1667 1622 */ 1668 1623 … … 1722 1677 1723 1678 /* 1724 * get_tcp_cep -- TCP é信端ç¹ãç²å¾ããã1679 * get_tcp_cep -- TCP 通信端点を獲得する。 1725 1680 */ 1726 1681 … … 1767 1722 1768 1723 /* 1769 * tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã1724 * tcp_passive_open -- 受動オープンを実行する。 1770 1725 * 1771 1726 * USE_TCP_NON_BLOCKING OFF … … 1781 1736 1782 1737 if (apip == API_PROTO_IPV6) { 1783 /* åä»å£ã¯IPv6 */1738 /* 受付口は IPv6 */ 1784 1739 if ((error = tcp6_acp_cep(info->cepid, info->repid, &info->dst, TMO_FEVR)) != E_OK) 1785 1740 return error; … … 1792 1747 } 1793 1748 else { 1794 /* åä»å£ã¯IPv4 */1749 /* 受付口は IPv4 */ 1795 1750 if ((error = tcp_acp_cep(info->cepid, info->repid, &dst4, TMO_FEVR)) != E_OK) 1796 1751 return error; … … 1828 1783 1829 1784 /* 1830 * WWW ãµã¼ã1785 * WWW サーバ 1831 1786 */ 1832 1787 … … 1914 1869 1915 1870 /* 1916 * WWW ãµã¼ãã¿ã¹ã¯1871 * WWW サーバタスク 1917 1872 */ 1918 1873 … … 2008 1963 2009 1964 /* 2010 * wakeup_www_srv -- WWW ãµã¼ãã¿ã¹ã¯ã®ä¼æ¢è§£é¤1965 * wakeup_www_srv -- WWW サーバタスクの休止解除 2011 1966 */ 2012 1967 … … 2027 1982 2028 1983 /* 2029 * WWW ãµã¼ãã¿ã¹ã¯1984 * WWW サーバタスク 2030 1985 */ 2031 1986 -
azure_iot_hub/trunk/asp3_dcre/tinet/netapp/wwws.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 CRE_TSK(WWW_SRV_TASK1, { -
azure_iot_hub/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
r388 r389 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 53 41 #ifdef TOPPERS_S810_CLG3_85 54 #define WWW_SRV_STACK_SIZE 768 /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/42 #define WWW_SRV_STACK_SIZE 768 /* タスクのスタックサイズ */ 55 43 #else /* of #ifdef TOPPERS_S810_CLG3_85 */ 56 #define WWW_SRV_STACK_SIZE 1024 /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/44 #define WWW_SRV_STACK_SIZE 1024 /* タスクのスタックサイズ */ 57 45 #endif /* of #ifdef TOPPERS_S810_CLG3_85 */ 58 #define WWW_SRV_MAIN_PRIORITY 5 /* ã¿ã¹ã¯ã®åªå 59 度 */ 46 #define WWW_SRV_MAIN_PRIORITY 5 /* タスクの優先度 */ 60 47 61 48 /* 62 * TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº49 * TCP 送受信ウインドバッファサイズ 63 50 */ 64 51 … … 88 75 89 76 /* 90 * ã¿ã¹ã¯æ°77 * タスク数 91 78 */ 92 79 … … 124 111 } T_WWW_RWBUF; 125 112 126 /* ã¿ã¹ã¯*/113 /* タスク */ 127 114 128 115 extern void www_srv_task (intptr_t exinf); 129 116 130 117 /* 131 * å¤æ°118 * 変数 132 119 */ 133 120 134 /* TCP éåä¿¡ã¦ã£ã³ããããã¡*/121 /* TCP 送受信ウィンドバッファ */ 135 122 136 123 #ifdef NUM_WWW_SRV_TASKS … … 142 129 143 130 /* 144 * é¢æ°131 * 関数 145 132 */ 146 133 -
azure_iot_hub/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
r388 r389 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 … … 58 45 59 46 /* 60 * åºå®ã¡ã¢ãªãã¼ã«47 * 固定メモリプール 61 48 */ 62 49 63 /* åä¿¡ãããã¡*/50 /* 受信バッファ */ 64 51 65 52 CRE_MPF(MPF_WWW_RWBUF, { … … 71 58 }); 72 59 73 /* è¡ãããã¡*/60 /* 行バッファ */ 74 61 75 62 CRE_MPF(MPF_WWW_LINE, { -
azure_iot_hub/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
r388 r389 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, { -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/Makefile.tinet
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile;charset=UTF-8
r388 r389 5 5 # Tomakomai National College of Technology, JAPAN 6 6 # 7 # ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 9 # ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 10 # å¤ã»åé 11 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 12 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 13 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 14 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 15 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 16 # ç¨ã§ããå½¢ã§åé 17 å¸ããå ´åã«ã¯ï¼åé 18 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 19 # è 20 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 21 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 22 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 23 # ç¨ã§ããªãå½¢ã§åé 24 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 25 # ã¨ï¼ 26 # (a) åé 27 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 28 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 29 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 30 # (b) åé 31 å¸ã®å½¢æ 32 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 33 # å ±åãããã¨ï¼ 34 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 35 # 害ãããï¼ä¸è¨èä½æ¨©è 36 ããã³TOPPERSããã¸ã§ã¯ããå 37 責ãããã¨ï¼ 38 # ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 39 # ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ãã 41 # å 42 責ãããã¨ï¼ 7 # 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 8 # ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 # 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 # スコード中に含まれていること. 13 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 # の無保証規定を掲載すること. 17 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 # と. 20 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 # 報告すること. 24 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 # また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 # 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 # 免責すること. 43 29 # 44 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 45 ã 46 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 47 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 48 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 49 # ã®è²¬ä»»ãè² ããªãï¼ 30 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 # の責任を負わない. 50 35 # 51 36 # @(#) $Id$ … … 53 38 54 39 # 55 # ã³ã³ãã¤ã«ãªãã·ã§ã³40 # コンパイルオプション 56 41 # 57 42 INCLUDES := $(INCLUDES) -I$(TINET_ROOT)/netdev/$(NET_DEV) -
Property svn:mime-type
changed from
-
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/bt_main.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 63 63 //#define PACKET_DUMP 64 64 65 // ã¨ã©ã¼è¿å´ç¨å®æ°(-1:0xffffåºå®)65 // エラー返却用定数(-1:0xffff固定) 66 66 #define FAILED_RFCOMM_ID_NOT_SET 0xffff 67 67 … … 263 263 } 264 264 if (!bnep_do_connect) { 265 // 20 ç§å¾ BNEP Query éå§265 // 20秒後 BNEP Query 開始 266 266 bt_state = BT_STATE_BNEP_QUERY_WAIT; 267 267 bt_timer = 20 * 1000; … … 289 289 hci_send_cmd(&hci_write_local_name, bt_localname); 290 290 if (bt_bnep_mode == 0) { 291 // å³æ BNEP Query éå§291 // 即時 BNEP Query 開始 292 292 bt_state = BT_STATE_BNEP_QUERY_WAIT; 293 293 bt_timer = 0; … … 373 373 log_info("BNEP channel open failed, status %02x", packet[2]); 374 374 375 // 30 ç§å¾ BNEP Query éå§375 // 30秒後 BNEP Query 開始 376 376 bt_state = BT_STATE_BNEP_QUERY_WAIT; 377 377 bt_timer = 30 * 1000; … … 403 403 bt_channel_closed(bnep_cid); 404 404 405 // 30 ç§å¾ BNEP Query éå§405 // 30秒後 BNEP Query 開始 406 406 bt_state = BT_STATE_BNEP_QUERY_WAIT; 407 407 bt_timer = 30 * 1000; … … 514 514 memset(bnep_service_buffer, 0, sizeof(bnep_service_buffer)); 515 515 516 // ãµã¼ãã¹å®ç¾©516 // サービス定義 517 517 spp_service_record_item = (service_record_item_t *)spp_service_buffer; 518 518 bnep_service_record_item = (service_record_item_t *)bnep_service_buffer; … … 599 599 printf_hexdump(network_buffer, len); 600 600 #endif 601 // ãã®é¢æ°ã¯bnep_sendããå帰å¼ã³åºããããã®ã§ã 602 // bnep_sendãå¼ã³åºãããåã«éä¿¡ãã±ãããªãç¶æ 603 ã«ãã¾ãã 601 // この関数はbnep_sendから再帰呼び出しされるので、 602 // bnep_sendを呼び出すより前に送信パケットなし状態にします。 604 603 network_buffer_len = 0; 605 604 bnep_send(network_buffer_cid, (uint8_t*)network_buffer, len); -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/bt_main.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 10 10 #endif 11 11 12 // ã¨ã©ã¼è¿å´ç¨å®æ°(-1:0xffffåºå®)12 // エラー返却用定数(-1:0xffff固定) 13 13 #define FAILED_RFCOMM_ID_NOT_SET 0xffff 14 14 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/if_btusb.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 6 6 * Copyright (C) 2014-2017 by 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$ … … 145 130 146 131 /* 147 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããã½ããã¦ã§ã¢æ 148 å ± 132 * ネットワークインタフェースに依存するソフトウェア情報 149 133 */ 150 134 … … 156 140 157 141 /* 158 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 159 å ± 160 */ 161 162 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããã½ããã¦ã§ã¢æ 163 å ± */ 142 * ネットワークインタフェースのソフトウェア情報 143 */ 144 145 /* ネットワークインタフェースに依存するソフトウェア情報 */ 164 146 165 147 static T_BTUSB_SOFTC btusb_softc; 166 148 167 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 168 å ± */ 149 /* ネットワークインタフェースに依存しないソフトウェア情報 */ 169 150 170 151 T_IF_SOFTC if_softc = { 171 {{0,}}, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 172 0, /* éä¿¡ã¿ã¤ã ã¢ã¦ã */ 173 &btusb_softc, /* ãã£ãã¤ã¹ä¾åã®ã½ããã¦ã§ã¢æ 174 å ± */ 175 SEM_IF_BTUSB_SBUF_READY, /* éä¿¡ã»ããã© */ 176 SEM_IF_BTUSB_RBUF_READY, /* åä¿¡ã»ããã© */ 152 {{0,}}, /* ネットワークインタフェースのアドレス */ 153 0, /* 送信タイムアウト */ 154 &btusb_softc, /* ディバイス依存のソフトウェア情報 */ 155 SEM_IF_BTUSB_SBUF_READY, /* 送信セマフォ */ 156 SEM_IF_BTUSB_RBUF_READY, /* 受信セマフォ */ 177 157 178 158 #ifdef SUPPORT_INET6 179 159 180 IF_MADDR_INIT, /* ãã«ããã£ã¹ãã¢ãã¬ã¹ãªã¹ã*/160 IF_MADDR_INIT, /* マルチキャストアドレスリスト */ 181 161 182 162 #endif /* of #ifdef SUPPORT_INET6 */ … … 184 164 185 165 /* 186 * å±æå¤æ°166 * 局所変数 187 167 */ 188 168 … … 196 176 197 177 /* 198 * ds_crc -- ã¤ã¼ãµãããã¢ãã¬ã¹ã® CRC ãè¨ç®ããã178 * ds_crc -- イーサネットアドレスの CRC を計算する。 199 179 */ 200 180 … … 224 204 225 205 /* 226 * ds_getmcaf -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ãªã¹ããããã«ããã£ã¹ãã¢ãã¬ã¹227 * ãã£ã«ã¿ãè¨ç®ããã206 * ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス 207 * フィルタを計算する。 228 208 */ 229 209 … … 243 223 244 224 /* 245 * btusb_setrcr -- åä¿¡æ§æã¬ã¸ã¹ã¿ (RCR) ãè¨å®ããã225 * btusb_setrcr -- 受信構成レジスタ (RCR) を設定する。 246 226 */ 247 227 … … 252 232 253 233 /* 254 * btusb_addmulti -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã追å ããã234 * btusb_addmulti -- マルチキャストアドレスを追加する。 255 235 */ 256 236 … … 275 255 sc->bnep_cid = bnep_cid; 276 256 277 /* MAC ã¢ãã¬ã¹ãæ´æ°*/257 /* MACアドレスを更新 */ 278 258 memcpy(if_softc.ifaddr.lladdr, local_addr, sizeof(if_softc.ifaddr.lladdr)); 279 259 … … 305 285 306 286 /* 307 * btusb_stop -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãåæ¢ããã 308 * 309 * 注æ: NIC å²ãè¾¼ã¿ç¦æ¢ç¶æ 310 ã§å¼ã³åºããã¨ã 287 * btusb_stop -- ネットワークインタフェースを停止する。 288 * 289 * 注意: NIC 割り込み禁止状態で呼び出すこと。 311 290 */ 312 291 … … 320 299 321 300 /* 322 * btusb_init_sub -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå 323 * 324 * 注æ: NIC å²ãè¾¼ã¿ç¦æ¢ç¶æ 325 ã§å¼ã³åºããã¨ã 301 * btusb_init_sub -- ネットワークインタフェースの初期化 302 * 303 * 注意: NIC 割り込み禁止状態で呼び出すこと。 326 304 */ 327 305 … … 331 309 #if defined(TARGET_KERNEL_ASP) 332 310 333 /* ã¿ã¼ã²ããä¾åé¨ã®å²è¾¼ã¿åæå*/311 /* ターゲット依存部の割込み初期化 */ 334 312 btusb_inter_init(); 335 313 336 314 #endif /* of #if defined(TARGET_KERNEL_ASP) */ 337 315 338 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以é*/339 340 /* ã¿ã¼ã²ããä¾åé¨ã®å²è¾¼ã¿åæå*/316 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以降 */ 317 318 /* ターゲット依存部の割込み初期化 */ 341 319 btusb_inter_init(); 342 320 … … 345 323 346 324 /* 347 * btusb_reset -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããªã»ããããã325 * btusb_reset -- ネットワークインタフェースをリセットする。 348 326 */ 349 327 … … 357 335 358 336 /* 359 * get_btusb_softc -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 360 å ±ãè¿ãã 337 * get_btusb_softc -- ネットワークインタフェースのソフトウェア情報を返す。 361 338 */ 362 339 … … 368 345 369 346 /* 370 * btusb_watchdog -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ã ã¢ã¦ã347 * btusb_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト 371 348 */ 372 349 … … 378 355 379 356 /* 380 * btusb_probe -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ¤åº357 * btusb_probe -- ネットワークインタフェースの検出 381 358 */ 382 359 … … 387 364 #if defined(TARGET_KERNEL_ASP) 388 365 389 /* ã¿ã¼ã²ããä¾åé¨ã®ãã¹ã®åæå*/366 /* ターゲット依存部のバスの初期化 */ 390 367 btusb_bus_init(); 391 368 392 369 #endif /* of #if defined(TARGET_KERNEL_ASP) */ 393 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以é*/394 395 /* ã¿ã¼ã²ããä¾åé¨ã®ãã¹ã®åæå*/370 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以降 */ 371 372 /* ターゲット依存部のバスの初期化 */ 396 373 btusb_bus_init(); 397 374 … … 404 381 405 382 /* 406 * btusb_init -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå383 * btusb_init -- ネットワークインタフェースの初期化 407 384 */ 408 385 … … 410 387 btusb_init (T_IF_SOFTC *ic) 411 388 { 412 /* btusb_init æ¬ä½ãå¼ã³åºãã*/389 /* btusb_init 本体を呼び出す。*/ 413 390 btusb_init_sub(ic); 414 391 } 415 392 416 393 /* 417 * btstack_network_process_packet -- btstack ãããã¬ã¼ã ã®åä¿¡394 * btstack_network_process_packet -- btstackからフレームの受信 418 395 */ 419 396 … … 430 407 log_info("btstack_network_process_packet(bnep_cid=%d)", bnep_cid); 431 408 432 // åä¿¡ãããã¡ããã£ã±ã409 // 受信バッファがいっぱい 433 410 if (btstack_network_input[btstack_network_input_spos] != NULL) { 434 411 sc->over_flow = true; … … 443 420 * <----------------- len ----------------> 444 421 * ^ 445 * t_net_buf 㧠4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã422 * t_net_buf で 4 オクテット境界にアラインされている。 446 423 * 447 * tcp_input 㨠udp_input ã§ã¯ãæ¬ä¼¼ããã㨠SDU ã§ãã§ãã¯ãµã ã 448 * è¨ç®ããããn ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã 449 * ãããã£ã³ã°ããããã®åãèæ 450 ®ã㦠net_buf ãç²å¾ããªããã°ãªããªãã 424 * tcp_input と udp_input では、擬似ヘッダと SDU でチェックサムを 425 * 計算するが、n が 4 オクテット境界になるように SDU の後ろに 0 を 426 * パッディングする。その分を考慮して net_buf を獲得しなければならない。 451 427 */ 452 428 align = ((((size - sizeof(T_IF_HDR)) + 3) >> 2) << 2) + sizeof(T_IF_HDR); … … 470 446 471 447 /* 472 * btusb_read -- ãã¬ã¼ã ã®èªã¿è¾¼ã¿448 * btusb_read -- フレームの読み込み 473 449 */ 474 450 … … 502 478 503 479 /* 504 * btusb_start -- éä¿¡ãã¬ã¼ã ããããã¡ãªã³ã°ããã480 * btusb_start -- 送信フレームをバッファリングする。 505 481 */ 506 482 … … 534 510 535 511 /* 536 * btstack_network_packet_sent -- ãããã¡ããéä¿¡ãã¬ã¼ã ã®éä¿¡ãå®äºããã512 * btstack_network_packet_sent -- バッファした送信フレームの送信が完了する。 537 513 */ 538 514 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/if_btusb.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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_btusb ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«41 * if_btusb コンフィギュレーションファイル 57 42 */ 58 43 … … 61 46 INCLUDE("<netdev/if_btusb/if_btusb.h>"); 62 47 63 /* å 64 ¥åºååæç¨ã»ããã© */ 48 /* 入出力同期用セマフォ */ 65 49 66 50 CRE_SEM(SEM_IF_BTUSB_SBUF_READY, { TA_TPRI, NUM_IF_BTUSB_TXBUF, NUM_IF_BTUSB_TXBUF }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/if_btusb.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 66 51 67 52 /* 68 * NIC ã®é¸æãã¯ã53 * NIC の選択マクロ 69 54 */ 70 55 … … 79 64 #define T_IF_ETHER_NIC_SOFTC struct t_btusb_softc 80 65 81 /* IPv6 é¢ä¿*/66 /* IPv6 関係 */ 82 67 83 #define IF_ETHER_NIC_IN6_IFID(i,a) get_mac6_ifid(i,a) /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åã®è¨å®*/84 #define IF_ETHER_NIC_ADDMULTI(s) btusb_addmulti(s) /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ç»é²*/68 #define IF_ETHER_NIC_IN6_IFID(i,a) get_mac6_ifid(i,a) /* インタフェース識別子の設定 */ 69 #define IF_ETHER_NIC_ADDMULTI(s) btusb_addmulti(s) /* マルチキャストアドレスの登録 */ 85 70 86 71 #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY) 87 72 88 73 /* 89 * åæ¹åç 90 § 74 * 前方参照 91 75 */ 92 76 … … 108 92 109 93 /* 110 * é¢æ°94 * 関数 111 95 */ 112 96 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/if_btusb_sym.def
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
-
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/nic.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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$ -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/nic_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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_btusb ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«41 * if_btusb コンフィギュレーションファイル 57 42 */ 58 43 … … 61 46 #include "netdev/if_btusb/if_btusb.h" 62 47 63 /* å 64 ¥åºååæç¨ã»ããã© */ 48 /* 入出力同期用セマフォ */ 65 49 66 50 CRE_SEM(SEM_IF_BTUSB_SBUF_READY, { TA_TPRI, NUM_IF_BTUSB_TXBUF, NUM_IF_BTUSB_TXBUF }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/nic_rename.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/tinet_nic_config.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_btusb/tinet_nic_defs.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 59 44 60 45 /* 61 * T_ETHER_HDR ã§ãã¢ã©ã¤ã³ã調æ´ããå ´åã¯ã調æ´éãæå®ããã62 * 調æ´ããªãå ´åã¯ã0 ãæå®ããã46 * T_ETHER_HDR で、アラインを調整する場合は、調整量を指定する。 47 * 調整しない場合は、0 を指定する。 63 48 */ 64 49 #define IF_ETHER_NIC_HDR_ALIGN 0 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/Makefile.tinet
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile;charset=UTF-8
r388 r389 5 5 # Tomakomai National College of Technology, JAPAN 6 6 # 7 # ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 9 # ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 10 # å¤ã»åé 11 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 12 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 13 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 14 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 15 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 16 # ç¨ã§ããå½¢ã§åé 17 å¸ããå ´åã«ã¯ï¼åé 18 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 19 # è 20 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 21 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 22 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 23 # ç¨ã§ããªãå½¢ã§åé 24 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 25 # ã¨ï¼ 26 # (a) åé 27 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 28 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 29 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 30 # (b) åé 31 å¸ã®å½¢æ 32 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 33 # å ±åãããã¨ï¼ 34 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 35 # 害ãããï¼ä¸è¨èä½æ¨©è 36 ããã³TOPPERSããã¸ã§ã¯ããå 37 責ãããã¨ï¼ 38 # ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 39 # ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ãã 41 # å 42 責ãããã¨ï¼ 7 # 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 8 # ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 # 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 # スコード中に含まれていること. 13 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 # の無保証規定を掲載すること. 17 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 # と. 20 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 # 報告すること. 24 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 # また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 # 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 # 免責すること. 43 29 # 44 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 45 ã 46 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 47 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 48 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 49 # ã®è²¬ä»»ãè² ããªãï¼ 30 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 # の責任を負わない. 50 35 # 51 36 # @(#) $Id$ … … 53 38 54 39 # 55 # ã³ã³ãã¤ã«ãªãã·ã§ã³40 # コンパイルオプション 56 41 # 57 42 INCLUDES := $(INCLUDES) -I$(TINET_ROOT)/netdev/$(NET_DEV) -
Property svn:mime-type
changed from
-
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/ether_phy.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 6 6 * Copyright (C) 2014-2017 by 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$ … … 109 94 switch(state){ 110 95 case PHY_STATE_UNINIT: 111 /* PHY ã®ãªã»ãã*/96 /* PHYのリセット */ 112 97 phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_RESET); 113 98 114 /* 500mså¾ 115 㤠*/ 99 /* 500ms待つ */ 116 100 dly_tsk(500 * 1000); 117 101 /* continue; */ 118 102 case PHY_STATE_RESETING: 119 /* ãªã»ããå®äºã®ç¢ºèª*/103 /* リセット完了の確認 */ 120 104 if((phy_read_reg(phy_addr, PHY_CONTROL_REGISTER) & PHY_CONTROL_RESET) != 0) 121 105 return PHY_STATE_RESETING; … … 137 121 switch(state){ 138 122 case PHY_STATE_RESET: 139 /* ãªã¼ããã´ã·ã¨ã¼ã·ã§ã³ã®ãç¥ãããæå¹ã«è¨å®*/123 /* オートネゴシエーションのお知らせを有効に設定 */ 140 124 phy_write_reg(phy_addr, PHY_AN_ADVERTISEMENT_REGISTER, 141 125 PHY_AN_AD_100BASE_T4 | PHY_AN_AD_100BASE_TX_FULL_DUPLEX | PHY_AN_AD_100BASE_TX_HALF_DUPLEX 142 126 | PHY_AN_AD_10BASE_T_FULL_DUPLEX | PHY_AN_AD_10BASE_T_HALF_DUPLEX | PHY_AN_AD_SELECTOR_FIELD); 143 127 144 /* ãªã¼ããã´ã·ã¨ã¼ã·ã§ã³ãæå¹ã«è¨å®*/128 /* オートネゴシエーションを有効に設定 */ 145 129 phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_SPEED_SELECT | PHY_CONTROL_A_N_ENABLE); 146 130 /* continue; */ … … 150 134 if(reset < 2){ 151 135 #endif 152 /* ãªã³ã¯å®äºã®ç¢ºèª*/136 /* リンク完了の確認 */ 153 137 if(!phy_is_link(phy_addr)) 154 138 return PHY_STATE_LINKE_WAIT; … … 163 147 if(reset < 2){ 164 148 #endif 165 /* ãªã¼ããã´ã·ã¨ã¼ã·ã§ã³å®äºã®ç¢ºèª*/149 /* オートネゴシエーション完了の確認 */ 166 150 if((phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_A_N_COMPLETE) == 0) 167 151 return PHY_STATE_LINKED; … … 186 170 { 187 171 #if !defined(_MSC_VER) && !defined(__c2__) 188 /* ãªã³ã¯ã®ç¢ºèª*/172 /* リンクの確認 */ 189 173 return (phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_LINK_STATUS) != 0; 190 174 #else … … 198 182 int i; 199 183 200 /* PRE ï¼32åã®é£ç¶ãã1b */184 /* PRE :32個の連続した1b */ 201 185 for (i = 0; i < 32; i++) 202 186 phy_write_bit(true); 203 187 204 /* ST ï¼ãã¬ã¼ã ã®å 205 é ã示ã01bã®ã©ã¤ã */ 206 phy_write_bit(false); 207 phy_write_bit(true); 208 209 /* OP ï¼ã¢ã¯ã»ã¹ç¨®å¥ã示ãã³ã¼ãã®ã©ã¤ã */ 210 phy_write_bit(true); 211 phy_write_bit(false); 212 213 /* PHYAD ï¼PHY-LSIã®ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSB ããé 次ã©ã¤ãï¼ã */ 188 /* ST :フレームの先頭を示す01bのライト */ 189 phy_write_bit(false); 190 phy_write_bit(true); 191 192 /* OP :アクセス種別を示すコードのライト */ 193 phy_write_bit(true); 194 phy_write_bit(false); 195 196 /* PHYAD :PHY-LSIのアドレスが1番の場合、00001bをライト(MSB から順次ライト)。 */ 214 197 phy_write_bit((phy_addr & 0x10) != 0); 215 198 phy_write_bit((phy_addr & 0x08) != 0); … … 218 201 phy_write_bit((phy_addr & 0x01) != 0); 219 202 220 /* REGAD ï¼ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSBããé 次ã©ã¤ãï¼ã*/203 /* REGAD :レジスタアドレスが1番の場合、00001bをライト(MSBから順次ライト)。 */ 221 204 phy_write_bit((reg_addr & 0x10) != 0); 222 205 phy_write_bit((reg_addr & 0x08) != 0); … … 225 208 phy_write_bit((reg_addr & 0x01) != 0); 226 209 227 /* TA ï¼MII/RMIIã¤ã³ã¿ãã§ã¼ã¹ä¸ã§ãã¼ã¿ã®éä¿¡å 228 ãåãæ¿ããæé */ 229 /* ããã¹è§£æ¾ãï¼Z0ã¨è¡¨è¨ï¼ãè¡ã */ 210 /* TA :MII/RMIIインタフェース上でデータの送信元を切り替える時間 */ 211 /* 「バス解放」(Z0と表記)を行う */ 230 212 phy_release_bus(); 231 213 232 /* DATA ï¼16ãããã®ãã¼ã¿ãMSBããé 次ãªã¼ã*/214 /* DATA :16ビットのデータ。MSBから順次リード */ 233 215 for (bit = 0x8000; bit != 0; bit >>= 1) { 234 216 if(phy_read_bit()) … … 236 218 } 237 219 238 /* IDLE ï¼æ¬¡ã®MII管çãã©ã¼ãããå 239 ¥åã¾ã§ã®å¾ 240 æ©æé */ 241 /* ãã§ã«TAæã«ãã¹è§£æ¾æ¸ã¿ã§ããå¶å¾¡ä¸è¦ */ 220 /* IDLE :次のMII管理フォーマット入力までの待機時間 */ 221 /* すでにTA時にバス解放済みであり制御不要 */ 242 222 phy_release_bus(); 243 223 … … 250 230 uint16_t bit; 251 231 252 /* PRE ï¼32åã®é£ç¶ãã1b */232 /* PRE :32個の連続した1b */ 253 233 for (i = 0; i < 32; i++) 254 234 phy_write_bit(true); 255 235 256 /* ST ï¼ãã¬ã¼ã ã®å 257 é ã示ã01bã®ã©ã¤ã */ 258 phy_write_bit(false); 259 phy_write_bit(true); 260 261 /* OP ï¼ã¢ã¯ã»ã¹ç¨®å¥ã示ãã³ã¼ãã®ã©ã¤ã */ 262 phy_write_bit(false); 263 phy_write_bit(true); 264 265 /* PHYAD ï¼PHY-LSIã®ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSB ããé 次ã©ã¤ãï¼ã */ 236 /* ST :フレームの先頭を示す01bのライト */ 237 phy_write_bit(false); 238 phy_write_bit(true); 239 240 /* OP :アクセス種別を示すコードのライト */ 241 phy_write_bit(false); 242 phy_write_bit(true); 243 244 /* PHYAD :PHY-LSIのアドレスが1番の場合、00001bをライト(MSB から順次ライト)。 */ 266 245 phy_write_bit((phy_addr & 0x10) != 0); 267 246 phy_write_bit((phy_addr & 0x08) != 0); … … 270 249 phy_write_bit((phy_addr & 0x01) != 0); 271 250 272 /* REGAD ï¼ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSBããé 次ã©ã¤ãï¼ã*/251 /* REGAD :レジスタアドレスが1番の場合、00001bをライト(MSBから順次ライト)。 */ 273 252 phy_write_bit((reg_addr & 0x10) != 0); 274 253 phy_write_bit((reg_addr & 0x08) != 0); … … 277 256 phy_write_bit((reg_addr & 0x01) != 0); 278 257 279 /* TA ï¼MII/RMIIã¤ã³ã¿ãã§ã¼ã¹ä¸ã§ãã¼ã¿ã®éä¿¡å 280 ãåãæ¿ããæé */ 281 /* 10bãã©ã¤ã */ 282 phy_write_bit(true); 283 phy_write_bit(false); 284 285 /* DATA ï¼16ãããã®ãã¼ã¿ãMSBããé 次ã©ã¤ã */ 258 /* TA :MII/RMIIインタフェース上でデータの送信元を切り替える時間 */ 259 /* 10bをライト */ 260 phy_write_bit(true); 261 phy_write_bit(false); 262 263 /* DATA :16ビットのデータ。MSBから順次ライト */ 286 264 for (bit = 0x8000; bit != 0; bit >>= 1) { 287 265 phy_write_bit((reg_data & bit) != 0); 288 266 } 289 267 290 /* IDLE ï¼æ¬¡ã®MII管çãã©ã¼ãããå 291 ¥åã¾ã§ã®å¾ 292 æ©æé */ 293 /* ãåç¬ãã¹è§£æ¾ãï¼Xã¨è¡¨è¨ï¼ãè¡ã */ 268 /* IDLE :次のMII管理フォーマット入力までの待機時間 */ 269 /* 「単独バス解放」(Xと表記)を行う */ 294 270 phy_single_rel_bus(); 295 271 } … … 298 274 299 275 /* 300 * 1 ããããã¼ã¿ã®ã©ã¤ã276 * 1 ビットデータのライト 301 277 */ 302 278 static void phy_write_bit(bool_t bit) … … 305 281 uint32_t data = bit ? ETHERC_PIR_MDO : 0; 306 282 307 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/283 /* PHY部インタフェースレジスタへのライト */ 308 284 sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/); 309 285 310 286 for(i = ETHERC_PIR_WAIT; i > 0; i--); 311 287 312 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/288 /* PHY部インタフェースレジスタへのライト */ 313 289 sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | ETHERC_PIR_MDC); 314 290 315 291 for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--); 316 292 317 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/293 /* PHY部インタフェースレジスタへのライト */ 318 294 sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/); 319 295 … … 322 298 323 299 /* 324 * ãã¹è§£æ¾300 * バス解放 325 301 */ 326 302 static void phy_release_bus() … … 328 304 int i; 329 305 330 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/306 /* PHY部インタフェースレジスタへのライト */ 331 307 sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/); 332 308 333 309 for(i = ETHERC_PIR_WAIT; i > 0; i--); 334 310 335 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/311 /* PHY部インタフェースレジスタへのライト */ 336 312 sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC); 337 313 338 314 for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--); 339 315 340 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/316 /* PHY部インタフェースレジスタへのライト */ 341 317 sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/); 342 318 … … 345 321 346 322 /* 347 * 1 ããããã¼ã¿ã®ãªã¼ã323 * 1 ビットデータのリード 348 324 */ 349 325 static bool_t phy_read_bit() … … 354 330 for(i = ETHERC_PIR_WAIT; i > 0; i--); 355 331 356 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/332 /* PHY部インタフェースレジスタへのライト */ 357 333 sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC); 358 334 359 335 for(i = ETHERC_PIR_WAIT; i > 0; i--); 360 336 361 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/337 /* PHY部インタフェースレジスタへのライト */ 362 338 bit = (sil_rew_mem(ETHERC_PIR) & ETHERC_PIR_MDI) != 0; 363 339 364 340 for(i = ETHERC_PIR_WAIT; i > 0; i--); 365 341 366 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/342 /* PHY部インタフェースレジスタへのライト */ 367 343 sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/); 368 344 … … 373 349 374 350 /* 375 * åç¬ãã¹è§£æ¾351 * 単独バス解放 376 352 */ 377 353 static void phy_single_rel_bus() … … 381 357 for(i = ETHERC_PIR_WAIT; i > 0; i--); 382 358 383 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/359 /* PHY部インタフェースレジスタへのライト */ 384 360 sil_wrw_mem(ETHERC_PIR, ETHERC_PIR_MMD | ETHERC_PIR_MDC); 385 361 386 362 for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--); 387 363 388 /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã*/364 /* PHY部インタフェースレジスタへのライト */ 389 365 sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/); 390 366 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/ether_phy.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/if_rx62n.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 6 6 * Copyright (C) 2014-2017 by 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$ … … 128 113 129 114 /* 130 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããã½ããã¦ã§ã¢æ 131 å ± 115 * ネットワークインタフェースに依存するソフトウェア情報 132 116 */ 133 117 … … 142 126 143 127 /* 144 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 145 å ± 146 */ 147 148 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããã½ããã¦ã§ã¢æ 149 å ± */ 128 * ネットワークインタフェースのソフトウェア情報 129 */ 130 131 /* ネットワークインタフェースに依存するソフトウェア情報 */ 150 132 151 133 static T_RX62N_SOFTC rx62n_softc; … … 167 149 #endif 168 150 169 /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åããªãã½ããã¦ã§ã¢æ 170 å ± */ 151 /* ネットワークインタフェースに依存しないソフトウェア情報 */ 171 152 172 153 T_IF_SOFTC if_softc = { 173 {0,}, /* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 174 0, /* éä¿¡ã¿ã¤ã ã¢ã¦ã */ 175 &rx62n_softc, /* ãã£ãã¤ã¹ä¾åã®ã½ããã¦ã§ã¢æ 176 å ± */ 177 SEM_IF_RX62N_SBUF_READY, /* éä¿¡ã»ããã© */ 178 SEM_IF_RX62N_RBUF_READY, /* åä¿¡ã»ããã© */ 154 {0,}, /* ネットワークインタフェースのアドレス */ 155 0, /* 送信タイムアウト */ 156 &rx62n_softc, /* ディバイス依存のソフトウェア情報 */ 157 SEM_IF_RX62N_SBUF_READY, /* 送信セマフォ */ 158 SEM_IF_RX62N_RBUF_READY, /* 受信セマフォ */ 179 159 180 160 #ifdef SUPPORT_INET6 181 161 182 IF_MADDR_INIT, /* ãã«ããã£ã¹ãã¢ãã¬ã¹ãªã¹ã*/162 IF_MADDR_INIT, /* マルチキャストアドレスリスト */ 183 163 184 164 #endif /* of #ifdef SUPPORT_INET6 */ … … 186 166 187 167 /* 188 * å±æå¤æ°168 * 局所変数 189 169 */ 190 170 … … 199 179 200 180 /* 201 * ds_crc -- ã¤ã¼ãµãããã¢ãã¬ã¹ã® CRC ãè¨ç®ããã181 * ds_crc -- イーサネットアドレスの CRC を計算する。 202 182 */ 203 183 … … 227 207 228 208 /* 229 * ds_getmcaf -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ãªã¹ããããã«ããã£ã¹ãã¢ãã¬ã¹230 * ãã£ã«ã¿ãè¨ç®ããã209 * ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス 210 * フィルタを計算する。 231 211 */ 232 212 … … 246 226 247 227 /* 248 * rx62n_setrcr -- åä¿¡æ§æã¬ã¸ã¹ã¿ (RCR) ãè¨å®ããã228 * rx62n_setrcr -- 受信構成レジスタ (RCR) を設定する。 249 229 */ 250 230 … … 256 236 257 237 /* 258 * rx62n_addmulti -- ãã«ããã£ã¹ãã¢ãã¬ã¹ã追å ããã238 * rx62n_addmulti -- マルチキャストアドレスを追加する。 259 239 */ 260 240 … … 269 249 270 250 /* 271 * rx62n_stop -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãåæ¢ããã 272 * 273 * 注æ: NIC å²ãè¾¼ã¿ç¦æ¢ç¶æ 274 ã§å¼ã³åºããã¨ã 251 * rx62n_stop -- ネットワークインタフェースを停止する。 252 * 253 * 注意: NIC 割り込み禁止状態で呼び出すこと。 275 254 */ 276 255 … … 278 257 rx62n_stop (T_RX62N_SOFTC *sc) 279 258 { 280 /* åä½ã¢ã¼ãã¯ãªã¢*/259 /* 動作モードクリア */ 281 260 sil_wrw_mem(ETHERC_ECMR, 0x00000000); 282 /* ãªã³ã¯å¤åå²ãè¾¼ã¿ç¡å¹*/261 /* リンク変化割り込み無効 */ 283 262 sil_wrw_mem(ETHERC_ECSIPR, 0x00000000); 284 263 } 285 264 286 265 /* 287 * rx62n_init_sub -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå 288 * 289 * 注æ: NIC å²ãè¾¼ã¿ç¦æ¢ç¶æ 290 ã§å¼ã³åºããã¨ã 266 * rx62n_init_sub -- ネットワークインタフェースの初期化 267 * 268 * 注意: NIC 割り込み禁止状態で呼び出すこと。 291 269 */ 292 270 … … 298 276 PHY_STATE_T state = PHY_STATE_UNINIT; 299 277 300 /* MAC é¨ã½ããã¦ã¨ã¢ã»ãªã»ãã*/278 /* MAC部ソフトウエア・リセット */ 301 279 sil_wrw_mem(EDMAC_EDMR, sil_rew_mem(EDMAC_EDMR) | EDMAC_EDMR_SWR_BIT); 302 280 … … 309 287 | (uint32_t)mac_addr[5]); 310 288 311 /* PHY ãªã»ãã*/289 /* PHYリセット */ 312 290 while ((state = phy_reset(state, 0)) != PHY_STATE_RESET); 313 291 sc->state = state; … … 316 294 sil_wrw_mem(ETHERC_ECSR, 0x00000037); 317 295 318 /* ãªã³ã¯å¤åå²ãè¾¼ã¿æå¹*/296 /* リンク変化割り込み有効 */ 319 297 sil_wrw_mem(ETHERC_ECSIPR, sil_rew_mem(ETHERC_ECSIPR) | ETHERC_ECSIPR_LCHNGIP); 320 298 … … 322 300 sil_wrw_mem(EDMAC_EESR, 0x47FF0F9F); 323 301 324 /* éåä¿¡å²ãè¾¼ã¿æå¹*/302 /* 送受信割り込み有効 */ 325 303 sil_wrw_mem(EDMAC_EESIPR, (EDMAC_EESIPR_TCIP | EDMAC_EESIPR_FRIP | EDMAC_EESIPR_RDEIP | EDMAC_EESIPR_FROFIP)); 326 304 327 /* åä¿¡ãã¬ã¼ã é·ä¸éï¼ãããã¡ãµã¤ãºï¼*/305 /* 受信フレーム長上限(バッファサイズ) */ 328 306 sil_wrw_mem(ETHERC_RFLR, IF_RX62N_BUF_PAGE_SIZE); 329 307 330 /* 96 ãããæéï¼åæå¤ï¼*/308 /* 96ビット時間(初期値) */ 331 309 sil_wrw_mem(ETHERC_IPGR, 0x00000014); 332 310 … … 352 330 #if defined(TARGET_KERNEL_ASP) 353 331 354 /* ã¿ã¼ã²ããä¾åé¨ã®å²è¾¼ã¿åæå*/332 /* ターゲット依存部の割込み初期化 */ 355 333 rx62n_inter_init(); 356 334 357 335 #endif /* of #if defined(TARGET_KERNEL_ASP) */ 358 336 359 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以é*/360 361 /* ã¿ã¼ã²ããä¾åé¨ã®å²è¾¼ã¿åæå*/337 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以降 */ 338 339 /* ターゲット依存部の割込み初期化 */ 362 340 rx62n_inter_init(); 363 341 … … 367 345 368 346 /* 369 * rx62n_set_ecmr -- ECMR ã¬ã¸ã¹ã¿ã®è¨å®347 * rx62n_set_ecmr -- ECMRレジスタの設定 370 348 */ 371 349 … … 382 360 ecmr |= ETHERC_ECMR_RTM; 383 361 384 /* åä½ã¢ã¼ãè¨å®*/362 /* 動作モード設定 */ 385 363 sil_wrw_mem(ETHERC_ECMR, ecmr); 386 364 } 387 365 388 366 /* 389 * rx62n_reset -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããªã»ããããã367 * rx62n_reset -- ネットワークインタフェースをリセットする。 390 368 */ 391 369 … … 397 375 #endif 398 376 399 /* NIC ããã®å²ãè¾¼ã¿ãç¦æ¢ããã*/377 /* NIC からの割り込みを禁止する。*/ 400 378 #ifdef TARGET_KERNEL_JSP 401 379 ipm = rx62n_dis_inter(); … … 414 392 } 415 393 416 /* éåä¿¡ãæå¹*/394 /* 送受信を有効 */ 417 395 rx62n_set_ecmr(ic, 1); 418 396 419 /* NIC ããã®å²ãè¾¼ã¿ã許å¯ããã*/397 /* NIC からの割り込みを許可する。*/ 420 398 #ifdef TARGET_KERNEL_JSP 421 399 rx62n_ena_inter(ipm); … … 427 405 428 406 /* 429 * get_rx62n_softc -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ 430 å ±ãè¿ãã 407 * get_rx62n_softc -- ネットワークインタフェースのソフトウェア情報を返す。 431 408 */ 432 409 … … 438 415 439 416 /* 440 * rx62n_watchdog -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ã ã¢ã¦ã417 * rx62n_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト 441 418 */ 442 419 … … 448 425 449 426 /* 450 * rx62n_probe -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ¤åº427 * rx62n_probe -- ネットワークインタフェースの検出 451 428 */ 452 429 … … 457 434 #if defined(TARGET_KERNEL_ASP) 458 435 459 /* ã¿ã¼ã²ããä¾åé¨ã®ãã¹ã®åæå*/436 /* ターゲット依存部のバスの初期化 */ 460 437 rx62n_bus_init(); 461 438 462 439 #endif /* of #if defined(TARGET_KERNEL_ASP) */ 463 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以é*/464 465 /* ã¿ã¼ã²ããä¾åé¨ã®ãã¹ã®åæå*/440 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u /* JSP-1.4.2 以降 */ 441 442 /* ターゲット依存部のバスの初期化 */ 466 443 rx62n_bus_init(); 467 444 … … 472 449 473 450 /* 474 * rx62n_init -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå451 * rx62n_init -- ネットワークインタフェースの初期化 475 452 */ 476 453 … … 486 463 int i; 487 464 488 /* NIC ããã®å²ãè¾¼ã¿ãç¦æ¢ããã*/465 /* NIC からの割り込みを禁止する。*/ 489 466 #ifdef TARGET_KERNEL_JSP 490 467 ipm = rx62n_dis_inter(); … … 518 495 rdsc->rdle = 1; 519 496 520 /* rx62n_init æ¬ä½ãå¼ã³åºãã*/497 /* rx62n_init 本体を呼び出す。*/ 521 498 rx62n_init_sub(ic); 522 499 … … 525 502 } 526 503 527 /* éåä¿¡ãæå¹*/504 /* 送受信を有効 */ 528 505 rx62n_set_ecmr(ic, 1); 529 506 530 /* NIC ããã®å²ãè¾¼ã¿ã許å¯ããã*/507 /* NIC からの割り込みを許可する。*/ 531 508 #ifdef TARGET_KERNEL_JSP 532 509 rx62n_ena_inter(ipm); … … 541 518 542 519 /* 543 * rx62n_link -- ãªã³ã¯ç¶æ 544 ã®å¤åã«å¯¾ããå¦ç 520 * rx62n_link -- リンク状態の変化に対する処理 545 521 */ 546 522 bool_t … … 557 533 } 558 534 559 /* PHY ã®åæå*/535 /* PHYの初期化 */ 560 536 sc->state = phy_initialize(sc->state, phy_addr, &mode); 561 537 if(sc->state != PHY_STATE_NEGOTIATED){ … … 563 539 } 564 540 565 /* ECMR ã¬ã¸ã¹ã¿ã®è¨å®*/541 /* ECMRレジスタの設定 */ 566 542 rx62n_set_ecmr(ic, mode); 567 543 return true; … … 569 545 570 546 /* 571 * rx62n_read -- ãã¬ã¼ã ã®èªã¿è¾¼ã¿547 * rx62n_read -- フレームの読み込み 572 548 */ 573 549 … … 587 563 if (sc->link_pre != sc->link_now) { 588 564 sc->link_pre = sc->link_now; 589 /* ãªã³ã¯ç¶æ 590 ã«å¤åãã */ 565 /* リンク状態に変化あり */ 591 566 if (sc->link_now) { 592 567 ether_set_link_up(); … … 615 590 * <----------------- len ----------------> 616 591 * ^ 617 * t_net_buf 㧠4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã592 * t_net_buf で 4 オクテット境界にアラインされている。 618 593 * 619 * tcp_input 㨠udp_input ã§ã¯ãæ¬ä¼¼ããã㨠SDU ã§ãã§ãã¯ãµã ã 620 * è¨ç®ããããn ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã 621 * ãããã£ã³ã°ããããã®åãèæ 622 ®ã㦠net_buf ãç²å¾ããªããã°ãªããªãã 594 * tcp_input と udp_input では、擬似ヘッダと SDU でチェックサムを 595 * 計算するが、n が 4 オクテット境界になるように SDU の後ろに 0 を 596 * パッディングする。その分を考慮して net_buf を獲得しなければならない。 623 597 */ 624 598 align = ((((len - sizeof(T_IF_HDR)) + 3) >> 2) << 2) + sizeof(T_IF_HDR); … … 650 624 651 625 /* 652 * rx62n_start -- éä¿¡ãã¬ã¼ã ããããã¡ãªã³ã°ããã626 * rx62n_start -- 送信フレームをバッファリングする。 653 627 */ 654 628 … … 701 675 702 676 /* 703 * RX62N Ethernet Controler éåä¿¡å²ãè¾¼ã¿ãã³ãã©677 * RX62N Ethernet Controler 送受信割り込みハンドラ 704 678 */ 705 679 … … 717 691 718 692 if (ecsr & ETHERC_ECSR_LCHNG) { 719 /* ETHERC é¨å²ãè¾¼ã¿è¦å ã¯ãªã¢*/693 /* ETHERC部割り込み要因クリア */ 720 694 sil_wrw_mem(ETHERC_ECSR, ETHERC_ECSR_LCHNG); 721 695 722 /* åä¿¡å²ãè¾¼ã¿å¦ç*/696 /* 受信割り込み処理 */ 723 697 isig_sem(ic->semid_rxb_ready); 724 698 } … … 727 701 728 702 if (eesr & EDMAC_EESR_FR) { 729 /* DMA é¨å²ãè¾¼ã¿è¦å ã¯ãªã¢*/703 /* DMA部割り込み要因クリア */ 730 704 sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FR); 731 705 732 /* åä¿¡å²ãè¾¼ã¿å¦ç*/706 /* 受信割り込み処理 */ 733 707 isig_sem(ic->semid_rxb_ready); 734 708 } 735 709 if (eesr & EDMAC_EESR_TC) { 736 /* DMA é¨å²ãè¾¼ã¿è¦å ã¯ãªã¢*/710 /* DMA部割り込み要因クリア */ 737 711 sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_TC); 738 712 739 /* éä¿¡å²ãè¾¼ã¿å¦ç*/713 /* 送信割り込み処理 */ 740 714 isig_sem(ic->semid_txb_ready); 741 715 } 742 716 if (eesr & (EDMAC_EESR_FROF | EDMAC_EESR_RDE)) { 743 /* DMA é¨å²ãè¾¼ã¿è¦å ã¯ãªã¢*/717 /* DMA部割り込み要因クリア */ 744 718 sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FROF | EDMAC_EESR_RDE); 745 719 746 720 sc->over_flow = true; 747 721 748 /* åä¿¡å²ãè¾¼ã¿å¦ç*/722 /* 受信割り込み処理 */ 749 723 isig_sem(ic->semid_rxb_ready); 750 724 } … … 759 733 sc = ic->sc; 760 734 761 /* åä¿¡å²ãè¾¼ã¿å¦ç*/735 /* 受信割り込み処理 */ 762 736 isig_sem(ic->semid_rxb_ready); 763 737 } -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/if_rx62n.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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_rx62n ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«41 * if_rx62n コンフィギュレーションファイル 57 42 */ 58 43 … … 61 46 INCLUDE("<if_rx62nreg.h>"); 62 47 63 /* å²ãè¾¼ã¿ãã³ãã©*/48 /* 割り込みハンドラ */ 64 49 65 50 DEF_INH(INHNO_IF_RX62N_TRX, { TA_HLNG, if_rx62n_trx_handler }); 66 51 67 /* å 68 ¥åºååæç¨ã»ããã© */ 52 /* 入出力同期用セマフォ */ 69 53 70 54 CRE_SEM(SEM_IF_RX62N_SBUF_READY, { TA_TPRI, NUM_IF_RX62N_TXBUF, NUM_IF_RX62N_TXBUF }); 71 55 CRE_SEM(SEM_IF_RX62N_RBUF_READY, { TA_TPRI, 0, NUM_IF_RX62N_RXBUF }); 72 56 73 /* ãªã³ã¯ç¢ºèªç¨å¨æãã³ãã©*/57 /* リンク確認用周期ハンドラ */ 74 58 75 59 CRE_CYC(CYC_IF_RX62N_LINK, { TA_NULL, 0, if_rx62n_cyclic_handler, 1000, 0 }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/if_rx62n.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 66 51 67 52 /* 68 * NIC ã®é¸æãã¯ã53 * NIC の選択マクロ 69 54 */ 70 55 … … 79 64 #define T_IF_ETHER_NIC_SOFTC struct t_rx62n_softc 80 65 81 /* IPv6 é¢ä¿*/66 /* IPv6 関係 */ 82 67 83 #define IF_ETHER_NIC_IN6_IFID(i,a) get_mac6_ifid(i,a) /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åã®è¨å®*/84 #define IF_ETHER_NIC_ADDMULTI(s) rx62n_addmulti(s) /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®ç»é²*/68 #define IF_ETHER_NIC_IN6_IFID(i,a) get_mac6_ifid(i,a) /* インタフェース識別子の設定 */ 69 #define IF_ETHER_NIC_ADDMULTI(s) rx62n_addmulti(s) /* マルチキャストアドレスの登録 */ 85 70 86 71 #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY) 87 72 88 73 /* 89 * åæ¹åç 90 § 74 * 前方参照 91 75 */ 92 76 … … 108 92 109 93 /* 110 * é¢æ°94 * 関数 111 95 */ 112 96 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/if_rx62n_sym.def
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
-
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/if_rx62nreg.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 6 6 * Copyright (C) 2014-2015 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$ … … 58 43 #include "t_stddef.h" 59 44 60 #define EDMAC_EDMR ((uint32_t *)0x000C0000) /* EDMAC ã¢ã¼ãã¬ã¸ã¹ã¿*/45 #define EDMAC_EDMR ((uint32_t *)0x000C0000) /* EDMACモードレジスタ */ 61 46 #define EDMAC_EDMR_SWR_BIT 0x00000001 62 47 #define EDMAC_EDMR_DE_BIT 0x00000040 63 48 64 #define EDMAC_EDTRR ((uint32_t *)0x000C0008) /* EDMAC éä¿¡è¦æ±ã¬ã¸ã¹ã¿*/49 #define EDMAC_EDTRR ((uint32_t *)0x000C0008) /* EDMAC送信要求レジスタ */ 65 50 #define EDMAC_EDTRR_TR 0x00000001 66 51 67 #define EDMAC_EDRRR ((uint32_t *)0x000C0010) /* EDMAC åä¿¡è¦æ±ã¬ã¸ã¹ã¿*/52 #define EDMAC_EDRRR ((uint32_t *)0x000C0010) /* EDMAC受信要求レジスタ */ 68 53 #define EDMAC_EDRRR_RR 0x00000001 69 54 70 #define EDMAC_TDLAR ((uint32_t *)0x000C0018) /* éä¿¡ãã£ã¹ã¯ãªãã¿ãªã¹ãå 71 é ã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */ 72 #define EDMAC_RDLAR ((uint32_t *)0x000C0020) /* åä¿¡ãã£ã¹ã¯ãªãã¿ãªã¹ãå 73 é ã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */ 55 #define EDMAC_TDLAR ((uint32_t *)0x000C0018) /* 送信ディスクリプタリスト先頭アドレスレジスタ */ 56 #define EDMAC_RDLAR ((uint32_t *)0x000C0020) /* 受信ディスクリプタリスト先頭アドレスレジスタ */ 74 57 75 #define EDMAC_EESR ((uint32_t *)0x000C0028) /* ETHERC/EDMAC ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿*/58 #define EDMAC_EESR ((uint32_t *)0x000C0028) /* ETHERC/EDMACステータスレジスタ */ 76 59 #define EDMAC_EESR_FROF 0x00010000 77 60 #define EDMAC_EESR_RDE 0x00020000 … … 80 63 #define EDMAC_EESR_TWB 0x40000000 81 64 82 #define EDMAC_EESIPR ((uint32_t *)0x000C0030) /* ETHERC/EDMAC ã¹ãã¼ã¿ã¹å²ãè¾¼ã¿è¨±å¯ã¬ã¸ã¹ã¿*/65 #define EDMAC_EESIPR ((uint32_t *)0x000C0030) /* ETHERC/EDMACステータス割り込み許可レジスタ */ 83 66 #define EDMAC_EESIPR_RMAFIP 0x00000080 84 67 #define EDMAC_EESIPR_FROFIP 0x00010000 … … 88 71 #define EDMAC_EESIPR_TWBIP 0x40000000 89 72 90 #define EDMAC_TRSCER ((uint32_t *)0x000C0038) /* éåä¿¡ã¹ãã¼ã¿ã¹ã³ãã¼æ示ã¬ã¸ã¹ã¿ */ 91 #define EDMAC_RMFCR ((uint32_t *)0x000C0040) /* ãã¹ããã¬ã¼ã ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 92 #define EDMAC_TFTR ((uint32_t *)0x000C0048) /* éä¿¡FIFOãããå¤æå®ã¬ã¸ã¹ã¿ */ 93 #define EDMAC_FDR ((uint32_t *)0x000C0050) /* FIFO容éæå®ã¬ã¸ã¹ã¿ */ 94 #define EDMAC_RMCR ((uint32_t *)0x000C0058) /* åä¿¡æ¹å¼å¶å¾¡ã¬ã¸ã¹ã¿ */ 95 #define EDMAC_TFUCR ((uint32_t *)0x000C0064) /* éä¿¡FIFOã¢ã³ãã©ã³ã«ã¦ã³ã */ 96 #define EDMAC_RFOCR ((uint32_t *)0x000C0068) /* åä¿¡FIFOãªã¼ãããã¼ã«ã¦ã³ã */ 97 #define EDMAC_IOSR ((uint32_t *)0x000C006C) /* åå¥åºåä¿¡å·è¨å®ã¬ã¸ã¹ã¿ */ 98 #define EDMAC_FCFTR ((uint32_t *)0x000C0070) /* ããã¼å¶å¾¡éå§FIFOãããå¤è¨å®ã¬ã¸ã¹ã¿ */ 99 #define EDMAC_RPADIR ((uint32_t *)0x000C0078) /* åä¿¡ãã¼ã¿ããã£ã³ã°æ¿å 100 ¥è¨å®ã¬ã¸ã¹ã¿ */ 101 #define EDMAC_TRIMD ((uint32_t *)0x000C007C) /* éä¿¡å²ãè¾¼ã¿è¨å®ã¬ã¸ã¹ã¿ */ 102 #define EDMAC_RBWAR ((uint32_t *)0x000C00C8) /* åä¿¡ãããã¡ã©ã¤ãã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */ 103 #define EDMAC_RDFAR ((uint32_t *)0x000C00CC) /* åä¿¡ãã£ã¹ã¯ãªãã¿ãã§ããã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */ 104 #define EDMAC_TBRAR ((uint32_t *)0x000C00D4) /* éä¿¡ãããã¡ãªã¼ãã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */ 105 #define EDMAC_TDFAR ((uint32_t *)0x000C00D8) /* éä¿¡ãã£ã¹ã¯ãªãã¿ãã§ããã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */ 73 #define EDMAC_TRSCER ((uint32_t *)0x000C0038) /* 送受信ステータスコピー指示レジスタ */ 74 #define EDMAC_RMFCR ((uint32_t *)0x000C0040) /* ミスドフレームカウンタレジスタ */ 75 #define EDMAC_TFTR ((uint32_t *)0x000C0048) /* 送信FIFOしきい値指定レジスタ */ 76 #define EDMAC_FDR ((uint32_t *)0x000C0050) /* FIFO容量指定レジスタ */ 77 #define EDMAC_RMCR ((uint32_t *)0x000C0058) /* 受信方式制御レジスタ */ 78 #define EDMAC_TFUCR ((uint32_t *)0x000C0064) /* 送信FIFOアンダランカウント */ 79 #define EDMAC_RFOCR ((uint32_t *)0x000C0068) /* 受信FIFOオーバフローカウント */ 80 #define EDMAC_IOSR ((uint32_t *)0x000C006C) /* 個別出力信号設定レジスタ */ 81 #define EDMAC_FCFTR ((uint32_t *)0x000C0070) /* フロー制御開始FIFOしきい値設定レジスタ */ 82 #define EDMAC_RPADIR ((uint32_t *)0x000C0078) /* 受信データパディング挿入設定レジスタ */ 83 #define EDMAC_TRIMD ((uint32_t *)0x000C007C) /* 送信割り込み設定レジスタ */ 84 #define EDMAC_RBWAR ((uint32_t *)0x000C00C8) /* 受信バッファライトアドレスレジスタ */ 85 #define EDMAC_RDFAR ((uint32_t *)0x000C00CC) /* 受信ディスクリプタフェッチアドレスレジスタ */ 86 #define EDMAC_TBRAR ((uint32_t *)0x000C00D4) /* 送信バッファリードアドレスレジスタ */ 87 #define EDMAC_TDFAR ((uint32_t *)0x000C00D8) /* 送信ディスクリプタフェッチアドレスレジスタ */ 106 88 107 #define ETHERC_ECMR ((uint32_t *)0x000C0100) /* ETHERC ã¢ã¼ãã¬ã¸ã¹ã¿*/89 #define ETHERC_ECMR ((uint32_t *)0x000C0100) /* ETHERCモードレジスタ */ 108 90 #define ETHERC_ECMR_PRM 0x00000001 109 91 #define ETHERC_ECMR_DM 0x00000002 … … 112 94 #define ETHERC_ECMR_RE 0x00000040 113 95 114 #define ETHERC_RFLR ((uint32_t *)0x000C0108) /* åä¿¡ãã¬ã¼ã é·ä¸éã¬ã¸ã¹ã¿*/115 #define ETHERC_ECSR ((uint32_t *)0x000C0110) /* ETHERC ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿*/96 #define ETHERC_RFLR ((uint32_t *)0x000C0108) /* 受信フレーム長上限レジスタ */ 97 #define ETHERC_ECSR ((uint32_t *)0x000C0110) /* ETHERCステータスレジスタ */ 116 98 #define ETHERC_ECSR_LCHNG 0x00000004 117 #define ETHERC_ECSIPR ((uint32_t *)0x000C0118) /* ETHERC å²ãè¾¼ã¿è¨±å¯ã¬ã¸ã¹ã¿*/99 #define ETHERC_ECSIPR ((uint32_t *)0x000C0118) /* ETHERC割り込み許可レジスタ */ 118 100 #define ETHERC_ECSIPR_LCHNGIP 0x00000004 119 #define ETHERC_PIR ((uint32_t *)0x000C0120) /* PHY é¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿*/101 #define ETHERC_PIR ((uint32_t *)0x000C0120) /* PHY部インタフェースレジスタ */ 120 102 #define ETHERC_PIR_MDC 0x00000001 121 103 #define ETHERC_PIR_MMD 0x00000002 … … 123 105 #define ETHERC_PIR_MDI 0x00000008 124 106 125 #define ETHERC_PSR ((uint32_t *)0x000C0128) /* PHY é¨ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿*/107 #define ETHERC_PSR ((uint32_t *)0x000C0128) /* PHY部ステータスレジスタ */ 126 108 #define ETHERC_PSR_LMON 0x00000001 127 109 128 #define ETHERC_RDMLR ((uint32_t *)0x000C0140) /* ä¹±æ°çæã«ã¦ã³ã¿ä¸éå¤è¨å®ã¬ã¸ã¹ã¿ */ 129 #define ETHERC_IPGR ((uint32_t *)0x000C0150) /* IPGè¨å®ã¬ã¸ã¹ã¿ */ 130 #define ETHERC_APR ((uint32_t *)0x000C0154) /* èªåPAUSEãã¬ã¼ã è¨å®ã¬ã¸ã¹ã¿ */ 131 #define ETHERC_MPR ((uint32_t *)0x000C0158) /* æåPAUSEãã¬ã¼ã è¨å®ã¬ã¸ã¹ã¿ */ 132 #define ETHERC_RFCF ((uint32_t *)0x000C0160) /* åä¿¡PAUSEãã¬ã¼ã ã«ã¦ã³ã¿ */ 133 #define ETHERC_TPAUSER ((uint32_t *)0x000C0164) /* èªåPAUSEãã¬ã¼ã åéåæ°è¨å®ã¬ã¸ã¹ã¿ */ 134 #define ETHERC_TPAUSECR ((uint32_t *)0x000C0168) /* PAUSEãã¬ã¼ã åéåæ°ã«ã¦ã³ã¿ */ 135 #define ETHERC_BCFRR ((uint32_t *)0x000C016C) /* Broadcastãã¬ã¼ã åä¿¡åæ°è¨å®ã¬ã¸ã¹ã¿ */ 136 #define ETHERC_MAHR ((uint32_t *)0x000C01C0) /* MACã¢ãã¬ã¹ä¸ä½è¨å®ã¬ã¸ã¹ã¿ */ 137 #define ETHERC_MALR ((uint32_t *)0x000C01C8) /* MACã¢ãã¬ã¹ä¸ä½è¨å®ã¬ã¸ã¹ã¿ */ 138 #define ETHERC_TROCR ((uint32_t *)0x000C01D0) /* éä¿¡ãªãã©ã¤ãªã¼ãã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 139 #define ETHERC_CDCR ((uint32_t *)0x000C01D4) /* é 140 延è¡çªæ¤åºã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 141 #define ETHERC_LCCR ((uint32_t *)0x000C01D8) /* ãã£ãªã¢æ¶å¤±ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 142 #define ETHERC_CNDCR ((uint32_t *)0x000C01DC) /* ãã£ãªã¢æªæ¤åºã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 143 #define ETHERC_CEFCR ((uint32_t *)0x000C01E4) /* CRCã¨ã©ã¼ãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 144 #define ETHERC_FRECR ((uint32_t *)0x000C01E8) /* ãã¬ã¼ã åä¿¡ã¨ã©ã¼ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 145 #define ETHERC_TSFRCR ((uint32_t *)0x000C01EC) /* 64ãã¤ãæªæºãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 146 #define ETHERC_TLFRCR ((uint32_t *)0x000C01F0) /* æå®ãã¤ãè¶ 147 ãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 148 #define ETHERC_RFCR ((uint32_t *)0x000C01F4) /* 端æ°ããããã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 149 #define ETHERC_MAFCR ((uint32_t *)0x000C01F8) /* ãã«ããã£ã¹ãã¢ãã¬ã¹ãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */ 110 #define ETHERC_RDMLR ((uint32_t *)0x000C0140) /* 乱数生成カウンタ上限値設定レジスタ */ 111 #define ETHERC_IPGR ((uint32_t *)0x000C0150) /* IPG設定レジスタ */ 112 #define ETHERC_APR ((uint32_t *)0x000C0154) /* 自動PAUSEフレーム設定レジスタ */ 113 #define ETHERC_MPR ((uint32_t *)0x000C0158) /* 手動PAUSEフレーム設定レジスタ */ 114 #define ETHERC_RFCF ((uint32_t *)0x000C0160) /* 受信PAUSEフレームカウンタ */ 115 #define ETHERC_TPAUSER ((uint32_t *)0x000C0164) /* 自動PAUSEフレーム再送回数設定レジスタ */ 116 #define ETHERC_TPAUSECR ((uint32_t *)0x000C0168) /* PAUSEフレーム再送回数カウンタ */ 117 #define ETHERC_BCFRR ((uint32_t *)0x000C016C) /* Broadcastフレーム受信回数設定レジスタ */ 118 #define ETHERC_MAHR ((uint32_t *)0x000C01C0) /* MACアドレス上位設定レジスタ */ 119 #define ETHERC_MALR ((uint32_t *)0x000C01C8) /* MACアドレス下位設定レジスタ */ 120 #define ETHERC_TROCR ((uint32_t *)0x000C01D0) /* 送信リトライオーバカウンタレジスタ */ 121 #define ETHERC_CDCR ((uint32_t *)0x000C01D4) /* 遅延衝突検出カウンタレジスタ */ 122 #define ETHERC_LCCR ((uint32_t *)0x000C01D8) /* キャリア消失カウンタレジスタ */ 123 #define ETHERC_CNDCR ((uint32_t *)0x000C01DC) /* キャリア未検出カウンタレジスタ */ 124 #define ETHERC_CEFCR ((uint32_t *)0x000C01E4) /* CRCエラーフレーム受信カウンタレジスタ */ 125 #define ETHERC_FRECR ((uint32_t *)0x000C01E8) /* フレーム受信エラーカウンタレジスタ */ 126 #define ETHERC_TSFRCR ((uint32_t *)0x000C01EC) /* 64バイト未満フレーム受信カウンタレジスタ */ 127 #define ETHERC_TLFRCR ((uint32_t *)0x000C01F0) /* 指定バイト超フレーム受信カウンタレジスタ */ 128 #define ETHERC_RFCR ((uint32_t *)0x000C01F4) /* 端数ビットフレーム受信カウンタレジスタ */ 129 #define ETHERC_MAFCR ((uint32_t *)0x000C01F8) /* マルチキャストアドレスフレーム受信カウンタレジスタ */ 150 130 151 /* éä¿¡ãã£ã¹ã¯ãªãã¿*/131 /* 送信ディスクリプタ */ 152 132 typedef struct t_rx62n_tx_desc { 153 133 uint32_t tfs : 26; … … 163 143 } T_RX62N_TX_DESC; 164 144 165 /* åä¿¡ãã£ã¹ã¯ãªãã¿*/145 /* 受信ディスクリプタ */ 166 146 typedef struct t_rx62n_rx_desc { 167 147 uint32_t rfs : 27; -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/nic.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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$ -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/nic_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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_rx62n ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«41 * if_rx62n コンフィギュレーションファイル 57 42 */ 58 43 … … 61 46 #include "if_rx62nreg.h" 62 47 63 /* å²ãè¾¼ã¿ãã³ãã©*/48 /* 割り込みハンドラ */ 64 49 65 50 DEF_INH(INHNO_IF_RX62N_TRX, { TA_NULL, if_rx62n_trx_handler }); 66 51 CFG_INT(INTNO_IF_RX62N_TRX, { INTATR_IF_RX62N_TRX, INTPRI_IF_RX62N_TRX }); 67 52 68 /* å 69 ¥åºååæç¨ã»ããã© */ 53 /* 入出力同期用セマフォ */ 70 54 71 55 CRE_SEM(SEM_IF_RX62N_SBUF_READY, { TA_TPRI, NUM_IF_RX62N_TXBUF, NUM_IF_RX62N_TXBUF }); 72 56 CRE_SEM(SEM_IF_RX62N_RBUF_READY, { TA_TPRI, 0, NUM_IF_RX62N_RXBUF }); 73 57 74 /* ãªã³ã¯ç¢ºèªç¨å¨æãã³ãã©*/58 /* リンク確認用周期ハンドラ */ 75 59 76 60 CRE_CYC(CYC_IF_RX62N_LINK, { TA_NULL, { TNFY_HANDLER, 0, if_rx62n_cyclic_handler }, 1000000, 0 }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/nic_rename.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/tinet_nic_config.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/tinet_nic_defs.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 59 44 60 45 /* 61 * T_ETHER_HDR ã§ãã¢ã©ã¤ã³ã調æ´ããå ´åã¯ã調æ´éãæå®ããã62 * 調æ´ããªãå ´åã¯ã0 ãæå®ããã46 * T_ETHER_HDR で、アラインを調整する場合は、調整量を指定する。 47 * 調整しない場合は、0 を指定する。 63 48 */ 64 49 #define IF_ETHER_NIC_HDR_ALIGN 0 -
azure_iot_hub/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
r388 r389 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 * ICMPv6 ããã105 * ICMPv6 ヘッダ 118 106 */ 119 107 120 108 typedef struct t_icmp6_hdr { 121 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/122 uint8_t code; /* ãµãå*/123 uint16_t sum; /* ãã§ãã¯ãµã*/109 uint8_t type; /* メッセージの型 */ 110 uint8_t code; /* サブ型 */ 111 uint16_t sum; /* チェックサム */ 124 112 union { 125 113 uint32_t data32; … … 132 120 #define icmp6_data16 data.data16 133 121 #define icmp6_data8 data.data8 134 #define icmp6_pptr data.data32 /* ãã©ã¡ã¼ã¿ç°å¸¸*/135 #define icmp6_mtu data.data32 /* ãã©ã¡ã¼ã¿ç°å¸¸*/136 #define icmp6_id data.data16[0] /* ã¨ã³ã¼è¦æ±ã¨å¿ç*/137 #define icmp6_seq data.data16[1] /* ã¨ã³ã¼è¦æ±ã¨å¿ç*/122 #define icmp6_pptr data.data32 /* パラメータ異常 */ 123 #define icmp6_mtu data.data32 /* パラメータ異常 */ 124 #define icmp6_id data.data16[0] /* エコー要求と応答 */ 125 #define icmp6_seq data.data16[1] /* エコー要求と応答 */ 138 126 139 127 #define ICMP6_HDR_SIZE (sizeof(T_ICMP6_HDR)) … … 147 135 148 136 /* 149 * ICMP6 ã¿ã¤ã 150 */ 151 152 #define ICMP6_DST_UNREACH UINT_C(1) /* å®å 153 å°éä¸å¯è½ */ 154 #define ICMP6_PACKET_TOO_BIG UINT_C(2) /* ãã±ããã大ããããã */ 155 #define ICMP6_TIME_EXCEEDED UINT_C(3) /* TTL ãè¶ 156 éããã */ 157 #define ICMP6_PARAM_PROB UINT_C(4) /* IPv6 ããããä¸æ£ã */ 158 159 #define ICMP6_ECHO_REQUEST UINT_C(128) /* ã¨ã³ã¼è¦æ± */ 160 #define ICMP6_ECHO_REPLY UINT_C(129) /* ã¨ã³ã¼å¿ç */ 161 162 #define ICMP6_MEMBERSHIP_QUERY UINT_C(130) /* ã°ã«ã¼ãã¡ã³ãç 163 §ä¼ */ 164 #define ICMP6_MEMBERSHIP_REPORT UINT_C(131) /* ã°ã«ã¼ãã¡ã³ãå ±å */ 165 #define ICMP6_MEMBERSHIP_REDUCTION UINT_C(132) /* ã°ã«ã¼ãã¡ã³ãçµäº */ 166 167 #define MLD_LISTENER_QUERY UINT_C(130) /* ãã«ããã£ã¹ãåä¿¡è 168 ç 169 §ä¼ */ 170 #define MLD_LISTENER_REPORT UINT_C(131) /* ãã«ããã£ã¹ãåä¿¡è 171 å ±å */ 172 #define MLD_LISTENER_DONE UINT_C(132) /* ãã«ããã£ã¹ãåä¿¡è 173 çµäº */ 174 175 #define ND_ROUTER_SOLICIT UINT_C(133) /* ã«ã¼ã¿è¦è« */ 176 #define ND_ROUTER_ADVERT UINT_C(134) /* ã«ã¼ã¿éç¥ */ 177 #define ND_NEIGHBOR_SOLICIT UINT_C(135) /* è¿é£è¦è« */ 178 #define ND_NEIGHBOR_ADVERT UINT_C(136) /* è¿é£éç¥ */ 179 #define ND_REDIRECT UINT_C(137) /* åãç´ã */ 180 181 #define ICMP6_ROUTER_RENUMBERING UINT_C(138) /* ã«ã¼ã¿çªå·åè¨å® */ 182 183 #define ICMP6_WRU_REQUEST UINT_C(139) /* è¦æ±ãã¼ãæ¢ç´¢ */ 184 #define ICMP6_WRU_REPLY UINT_C(140) /* å¿çãã¼ãæ¢ç´¢ */ 185 186 #define ICMP6_FQDN_QUERY UINT_C(139) /* FQDN ç 187 §ä¼ */ 188 #define ICMP6_FQDN_REPLY UINT_C(140) /* FQDN å¿ç */ 189 190 #define ICMP6_NI_QUERY UINT_C(139) /* ãã¼ãæ 191 å ±ç 192 §ä¼ */ 193 #define ICMP6_NI_REPLY UINT_C(140) /* ãã¼ãæ 194 å ±å¿ç */ 195 196 #define ICMP6_MAX_TYPE UINT_C(203) /* ICMP6 ã¿ã¤ãã®æå¤§å¤ */ 197 198 /* 199 * ICMP6 ã³ã¼ã 200 */ 201 202 /* å®å 203 å°éä¸å¯è½ */ 204 205 #define ICMP6_DST_UNREACH_NOROUTE UINT_C(0) /* å°éã«ã¼ããªãã */ 206 #define ICMP6_DST_UNREACH_ADMIN UINT_C(1) /* 管çè 207 ã«ããç¡å¹åä¸ã */ 208 #define ICMP6_DST_UNREACH_NOTEIGHBOR UINT_C(2) /* è¿é£è 209 ã§ã¯ãªããªã£ãã */ 210 #define ICMP6_DST_UNREACH_BEYOND_SCOPE UINT_C(2) /* ã¹ã³ã¼ããè¶ 211 ãã¦ããã */ 212 #define ICMP6_DST_UNREACH_ADDR UINT_C(3) /* å®å 213 ã¢ãã¬ã¹ã«å°éä¸å¯è½ã */ 214 #define ICMP6_DST_UNREACH_NOPORT UINT_C(4) /* å®å 215 ãã¼ãã«å°éä¸å¯è½ã */ 216 217 /* TTL è¶ 218 é */ 219 220 #define ICMP6_TIME_EXCEED_TRANSIT UINT_C(0) /* 転éæã« TTL==0 ã«ãªã£ãã */ 221 #define ICMP6_TIME_EXCEED_REASSEMBLY UINT_C(1) /* IP åæ§æã§ã¿ã¤ã ã¢ã¦ãããã*/ 222 223 /* ãããä¸æ£ */ 224 225 #define ICMP6_PARAMPROB_HEADER UINT_C(0) /* ãããã«ä¸æ£ããã£ãã */ 226 #define ICMP6_PARAMPROB_NEXT_HEADER UINT_C(1) /* 次ããããèªèã§ããªãã */ 227 #define ICMP6_PARAMPROB_OPTION UINT_C(2) /* ãªãã·ã§ã³ãèªèã§ããªãã */ 228 229 /* å 230 é¨ä½¿ç¨ */ 231 #define ND_REDIRECT_ONLINK UINT_C(0) /* ãªã³ãªã³ã¯ã¸ã®åãç´ã */ 232 #define ND_REDIRECT_ROUTER UINT_C(1) /* ã«ã¼ã¿ã¸ã®åãç´ã */ 233 234 /* 235 * å¶éå¤ 236 */ 237 238 /* ICMPv6 ã®æ大ãã¤ãã¼ãé· */ 137 * ICMP6 タイプ 138 */ 139 140 #define ICMP6_DST_UNREACH UINT_C(1) /* 宛先到達不可能 */ 141 #define ICMP6_PACKET_TOO_BIG UINT_C(2) /* パケットが大きすぎる。 */ 142 #define ICMP6_TIME_EXCEEDED UINT_C(3) /* TTL を超過した。 */ 143 #define ICMP6_PARAM_PROB UINT_C(4) /* IPv6 ヘッダが不正。 */ 144 145 #define ICMP6_ECHO_REQUEST UINT_C(128) /* エコー要求 */ 146 #define ICMP6_ECHO_REPLY UINT_C(129) /* エコー応答 */ 147 148 #define ICMP6_MEMBERSHIP_QUERY UINT_C(130) /* グループメンバ照会 */ 149 #define ICMP6_MEMBERSHIP_REPORT UINT_C(131) /* グループメンバ報告 */ 150 #define ICMP6_MEMBERSHIP_REDUCTION UINT_C(132) /* グループメンバ終了 */ 151 152 #define MLD_LISTENER_QUERY UINT_C(130) /* マルチキャスト受信者照会 */ 153 #define MLD_LISTENER_REPORT UINT_C(131) /* マルチキャスト受信者報告 */ 154 #define MLD_LISTENER_DONE UINT_C(132) /* マルチキャスト受信者終了 */ 155 156 #define ND_ROUTER_SOLICIT UINT_C(133) /* ルータ要請 */ 157 #define ND_ROUTER_ADVERT UINT_C(134) /* ルータ通知 */ 158 #define ND_NEIGHBOR_SOLICIT UINT_C(135) /* 近隣要請 */ 159 #define ND_NEIGHBOR_ADVERT UINT_C(136) /* 近隣通知 */ 160 #define ND_REDIRECT UINT_C(137) /* 向け直し */ 161 162 #define ICMP6_ROUTER_RENUMBERING UINT_C(138) /* ルータ番号再設定 */ 163 164 #define ICMP6_WRU_REQUEST UINT_C(139) /* 要求ノード探索 */ 165 #define ICMP6_WRU_REPLY UINT_C(140) /* 応答ノード探索 */ 166 167 #define ICMP6_FQDN_QUERY UINT_C(139) /* FQDN 照会 */ 168 #define ICMP6_FQDN_REPLY UINT_C(140) /* FQDN 応答 */ 169 170 #define ICMP6_NI_QUERY UINT_C(139) /* ノード情報照会 */ 171 #define ICMP6_NI_REPLY UINT_C(140) /* ノード情報応答 */ 172 173 #define ICMP6_MAX_TYPE UINT_C(203) /* ICMP6 タイプの最大値 */ 174 175 /* 176 * ICMP6 コード 177 */ 178 179 /* 宛先到達不可能 */ 180 181 #define ICMP6_DST_UNREACH_NOROUTE UINT_C(0) /* 到達ルートなし。 */ 182 #define ICMP6_DST_UNREACH_ADMIN UINT_C(1) /* 管理者により無効化中。 */ 183 #define ICMP6_DST_UNREACH_NOTEIGHBOR UINT_C(2) /* 近隣者ではなくなった。 */ 184 #define ICMP6_DST_UNREACH_BEYOND_SCOPE UINT_C(2) /* スコープを超えている。 */ 185 #define ICMP6_DST_UNREACH_ADDR UINT_C(3) /* 宛先アドレスに到達不可能。 */ 186 #define ICMP6_DST_UNREACH_NOPORT UINT_C(4) /* 宛先ポートに到達不可能。 */ 187 188 /* TTL 超過 */ 189 190 #define ICMP6_TIME_EXCEED_TRANSIT UINT_C(0) /* 転送時に TTL==0 になった。 */ 191 #define ICMP6_TIME_EXCEED_REASSEMBLY UINT_C(1) /* IP 再構成でタイムアウトした。*/ 192 193 /* ヘッダ不正 */ 194 195 #define ICMP6_PARAMPROB_HEADER UINT_C(0) /* ヘッダに不正があった。 */ 196 #define ICMP6_PARAMPROB_NEXT_HEADER UINT_C(1) /* 次ヘッダが認識できない。 */ 197 #define ICMP6_PARAMPROB_OPTION UINT_C(2) /* オプションが認識できない。 */ 198 199 /* 内部使用 */ 200 #define ND_REDIRECT_ONLINK UINT_C(0) /* オンリンクへの向け直し */ 201 #define ND_REDIRECT_ROUTER UINT_C(1) /* ルータへの向け直し */ 202 203 /* 204 * 制限値 205 */ 206 207 /* ICMPv6 の最大ペイロード長 */ 239 208 #define ICMPV6_PAYLOAD_MAXLEN (IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE)) 240 209 241 210 /* 242 * è¿é£è¦è«211 * 近隣要請 243 212 */ 244 213 … … 246 215 T_ICMP6_HDR hdr; 247 216 T_IN6_ADDR target; 248 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/217 /* この後にオプションが続く */ 249 218 } T_NEIGHBOR_SOLICIT_HDR; 250 219 … … 264 233 265 234 /* 266 * è¿é£éç¥235 * 近隣通知 267 236 */ 268 237 … … 270 239 T_ICMP6_HDR hdr; 271 240 T_IN6_ADDR target; 272 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/241 /* この後にオプションが続く */ 273 242 } __attribute__((packed, aligned(2))) T_NEIGHBOR_ADVERT_HDR; 274 243 275 /* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾©*/244 /* ICMP6 ヘッダのデータ部の定義 */ 276 245 277 246 #define nd_na_flags_reserved hdr.data.data32 … … 295 264 296 265 /* 297 * è¿é£éç¥ãã©ã°ãnd_na_flags_reserved (hdr.data32) ã«è¨å®ããã266 * 近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。 298 267 */ 299 268 300 269 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN 301 270 302 #define ND_NA_FLG_OVERRIDE ULONG_C(0x20000000) /* è¿é£ãã£ãã·ã¥ä¸æ¸ã*/303 #define ND_NA_FLG_SOLICITED ULONG_C(0x40000000) /* è¿é£è¦è«ã¸ã®å¿ç*/304 #define ND_NA_FLG_ROUTER ULONG_C(0x80000000) /* ã«ã¼ã¿éç¥*/271 #define ND_NA_FLG_OVERRIDE ULONG_C(0x20000000) /* 近隣キャッシュ上書き */ 272 #define ND_NA_FLG_SOLICITED ULONG_C(0x40000000) /* 近隣要請への応答 */ 273 #define ND_NA_FLG_ROUTER ULONG_C(0x80000000) /* ルータ通知 */ 305 274 306 275 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN 307 276 308 #define ND_NA_FLG_OVERRIDE ULONG_C(0x00000020) /* è¿é£ãã£ãã·ã¥ä¸æ¸ã*/309 #define ND_NA_FLG_SOLICITED ULONG_C(0x00000040) /* è¿é£è¦è«ã¸ã®å¿ç*/310 #define ND_NA_FLG_ROUTER ULONG_C(0x00000080) /* ã«ã¼ã¿éç¥*/277 #define ND_NA_FLG_OVERRIDE ULONG_C(0x00000020) /* 近隣キャッシュ上書き */ 278 #define ND_NA_FLG_SOLICITED ULONG_C(0x00000040) /* 近隣要請への応答 */ 279 #define ND_NA_FLG_ROUTER ULONG_C(0x00000080) /* ルータ通知 */ 311 280 312 281 #endif /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */ 313 282 314 283 /* 315 * ã«ã¼ã¿éç¥284 * ルータ通知 316 285 * 317 286 * RFC4291: IP Version 6 Addressing Architecture … … 322 291 typedef struct t_router_advert_hdr { 323 292 T_ICMP6_HDR hdr; 324 uint32_t reachable; /* [us] å°éå¯è½æé*/325 uint32_t retransmit; /* [us] è¿é£è¦è«éä¿¡éé*/326 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/293 uint32_t reachable; /* [us] 到達可能時間 */ 294 uint32_t retransmit; /* [us] 近隣要請送信間隔 */ 295 /* この後にオプションが続く */ 327 296 } __attribute__((packed, aligned(2))) T_ROUTER_ADVERT_HDR; 328 297 329 /* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾©*/298 /* ICMP6 ヘッダのデータ部の定義 */ 330 299 331 300 #define nd_ra_current_hoplimit hdr.data.data8[0] 332 301 #define nd_ra_flags hdr.data.data8[1] 333 #define nd_ra_router_lifetime hdr.data.data16[1] /* [s] ã«ã¼ã¿æå¹æé*/302 #define nd_ra_router_lifetime hdr.data.data16[1] /* [s] ルータ有効時間 */ 334 303 335 304 #define ROUTER_ADVERT_HDR_SIZE (sizeof(T_ROUTER_ADVERT_HDR)) … … 349 318 350 319 /* 351 * ã«ã¼ã¿éç¥ãããã®ãã©ã°320 * ルータ通知ヘッダのフラグ 352 321 */ 353 322 … … 357 326 358 327 /* 359 * M: RA以å¤ã®æ¹æ³ã§èªåçã«ã¢ãã¬ã¹ãè¨å®ãããã¨ã許å¯ããã 360 * O: RA以å¤ã®æ¹æ³ã§èªåçã«ã¢ãã¬ã¹ä»¥å¤ã®æ 361 å ±ãè¨å®ãããã¨ãã許å¯ããã 328 * M: RA以外の方法で自動的にアドレスを設定することを許可する。 329 * O: RA以外の方法で自動的にアドレス以外の情報を設定することをを許可する。 362 330 * 363 331 * M O 364 * ON ON ã¢ãã¬ã¹ã¨ãã以å¤ã®æ 365 å ±ãDHCPv6ã§è¨å®ããï¼statefullï¼ 366 * ON OFF ã¢ãã¬ã¹ã¯DHCPv6ã§è¨å®ãããããã以å¤ã¯æåã§è¨å®ããã 367 * OFF ON ã¢ãã¬ã¹ã¯ RA ã§è¨å®ãããããã以å¤ã®æ 368 å ±ãDHCPv6ã§è¨å®ããï¼statelessï¼ 369 * OFF OFF DHCPv6 ã¯ä½¿ç¨ããªãã 370 */ 371 372 /* 373 * ã«ã¼ã¿è¦è« 332 * ON ON アドレスとそれ以外の情報をDHCPv6で設定する(statefull) 333 * ON OFF アドレスはDHCPv6で設定するが、それ以外は手動で設定する。 334 * OFF ON アドレスは RA で設定するが、それ以外の情報をDHCPv6で設定する(stateless) 335 * OFF OFF DHCPv6 は使用しない。 336 */ 337 338 /* 339 * ルータ要請 374 340 */ 375 341 … … 378 344 } __attribute__((packed, aligned(2))) T_ROUTER_SOLICIT_HDR; 379 345 380 /* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾©*/346 /* ICMP6 ヘッダのデータ部の定義 */ 381 347 382 348 #define nd_rs_reserved hdr.data.data32 … … 399 365 400 366 /* 401 * è¿é£æ¢ç´¢ãªãã·ã§ã³402 */ 403 404 /* è¿é£æ¢ç´¢ããã*/367 * 近隣探索オプション 368 */ 369 370 /* 近隣探索ヘッダ */ 405 371 406 372 typedef struct t_neighbor_hdr { … … 409 375 } __attribute__((packed, aligned(2))) T_NEIGHBOR_HDR; 410 376 411 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ããã*/377 /* 近隣探索オプションヘッダ */ 412 378 413 379 typedef struct t_nd_opt_hdr { 414 uint8_t type; /* ãªãã·ã§ã³ã¿ã¤ã*/415 uint8_t len; /* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã*/380 uint8_t type; /* オプションタイプ */ 381 uint8_t len; /* オプション長、単位は 8 バイト */ 416 382 } __attribute__((packed, aligned(2))) T_ND_OPT_HDR; 417 383 418 384 #define ND_OPT_HDR_SIZE (sizeof(T_ND_OPT_HDR)) 419 385 420 #define ND_OPT_SOURCE_LINKADDR UINT_C(1) /* éä¿¡å 421 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 422 #define ND_OPT_TARGET_LINKADDR UINT_C(2) /* 対象ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 423 #define ND_OPT_PREFIX_INFORMATION UINT_C(3) /* ãã¬ãã£ãã¯ã¹æ 424 å ± */ 425 #define ND_OPT_REDIRECTED_HEADER UINT_C(4) /* ãªãã¤ã¬ã¯ãã»ããã */ 386 #define ND_OPT_SOURCE_LINKADDR UINT_C(1) /* 送信先ネットワークインタフェースのアドレス */ 387 #define ND_OPT_TARGET_LINKADDR UINT_C(2) /* 対象ネットワークインタフェースのアドレス */ 388 #define ND_OPT_PREFIX_INFORMATION UINT_C(3) /* プレフィックス情報 */ 389 #define ND_OPT_REDIRECTED_HEADER UINT_C(4) /* リダイレクト・ヘッダ */ 426 390 #define ND_OPT_MTU UINT_C(5) /* MTU */ 427 391 428 #define ND_OPT_PREFIX_INFO_COUNT UINT_C(6) /* ãã¬ãã£ãã¯ã¹æ 429 å ±ã®åæ° */ 430 #define ND_OPT_OFF_ARRAY_SIZE UINT_C(7) /* ND ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããé 431 åãµã¤ãº*/ 432 433 #define ND_OPT_OFF_ARRAY_IX(t) ((t)-1) /* ãªãã»ããé 434 åã®ã¤ã³ããã¯ã¹ */ 435 436 /* ãã¬ãã£ãã¯ã¹ãªãã·ã§ã³ */ 392 #define ND_OPT_PREFIX_INFO_COUNT UINT_C(6) /* プレフィックス情報の個数 */ 393 #define ND_OPT_OFF_ARRAY_SIZE UINT_C(7) /* ND オプションのオフセットを記録する配列サイズ*/ 394 395 #define ND_OPT_OFF_ARRAY_IX(t) ((t)-1) /* オフセット配列のインデックス */ 396 397 /* プレフィックスオプション */ 437 398 438 399 typedef struct t_nd_opt_prefix_info { 439 uint8_t type; /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¿ã¤ã= 3 */440 uint8_t len; /* ãªãã·ã§ã³é· = 8Ã4=32 */441 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é·*/442 uint8_t flags; /* ãã©ã°*/443 uint32_t valid; /* [s] æå¹æé*/444 uint32_t preferred; /* [s] æ¨å¥¨æå¹æé*/400 uint8_t type; /* 近隣探索オプションタイプ = 3 */ 401 uint8_t len; /* オプション長 = 8×4=32 */ 402 uint8_t prefix_len; /* プレフィックス長 */ 403 uint8_t flags; /* フラグ */ 404 uint32_t valid; /* [s] 有効時間 */ 405 uint32_t preferred; /* [s] 推奨有効時間 */ 445 406 uint32_t reserved; 446 T_IN6_ADDR prefix; /* ãã¬ãã£ãã¯ã¹*/407 T_IN6_ADDR prefix; /* プレフィックス */ 447 408 } __attribute__((packed, aligned(2))) T_ND_OPT_PREFIX_INFO; 448 409 449 #define ND_OPT_PI_FLAG_ONLINK UINT_C(0x80) /* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹*/450 #define ND_OPT_PI_FLAG_AUTO UINT_C(0x40) /* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®*/451 452 /* MTU ãªãã·ã§ã³ããã*/410 #define ND_OPT_PI_FLAG_ONLINK UINT_C(0x80) /* オンリンクプレフィックス */ 411 #define ND_OPT_PI_FLAG_AUTO UINT_C(0x40) /* ステートレス・アドレス自動設定*/ 412 413 /* MTU オプションヘッダ */ 453 414 454 415 typedef struct t_nd_opt_mtu_hdr { 455 uint8_t type; /* ãªãã·ã§ã³ã¿ã¤ã*/456 uint8_t len; /* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã*/416 uint8_t type; /* オプションタイプ */ 417 uint8_t len; /* オプション長、単位は 8 バイト*/ 457 418 uint16_t reserved; 458 419 uint32_t mtu; /* MTU */ … … 460 421 461 422 /* 462 * åãç´ã423 * 向け直し 463 424 */ 464 425 465 426 typedef struct t_nd_redirect_hdr { 466 427 T_ICMP6_HDR hdr; 467 T_IN6_ADDR target; /* ã«ã¼ã¿ã®ã¢ãã¬ã¹*/468 T_IN6_ADDR dst; /* åãç´ãã®çµç¹ã¢ãã¬ã¹*/469 /* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã*/428 T_IN6_ADDR target; /* ルータのアドレス */ 429 T_IN6_ADDR dst; /* 向け直しの終点アドレス */ 430 /* この後にオプションが続く */ 470 431 } __attribute__((packed, aligned(2))) T_ND_REDIRECT_HDR; 471 432 … … 475 436 476 437 /* 477 * SNMP 㮠管çæ 478 å ±ãã¼ã¹ (MIB) 438 * SNMP の 管理情報ベース (MIB) 479 439 */ 480 440 … … 521 481 522 482 /* 523 * é¢æ°483 * 関数 524 484 */ 525 485 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 * ARP ãã£ãã·ã¥ã¨ã³ããª112 * ARP キャッシュエントリ 125 113 */ 126 114 … … 128 116 129 117 /* 130 * é¢æ°118 * 関数 131 119 */ 132 120 … … 135 123 136 124 /* 137 * in_arpinput -- TCP/IP ç¨ ARP ã®å 138 ¥åé¢æ° 125 * in_arpinput -- TCP/IP 用 ARP の入力関数 139 126 */ 140 127 … … 152 139 et_arph = GET_ETHER_ARP_HDR(input); 153 140 154 ntoahl(saddr, et_arph->sproto); /* éä¿¡å 155 IP ã¢ãã¬ã¹ */ 156 ntoahl(taddr, et_arph->tproto); /* 解決対象 IP ã¢ãã¬ã¹ */ 157 158 /* 159 * 以ä¸ã®å ´åã¯ã¨ã©ã¼ 160 * ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ãèªå 161 * ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ãããã¼ããã£ã¹ã 141 ntoahl(saddr, et_arph->sproto); /* 送信元 IP アドレス */ 142 ntoahl(taddr, et_arph->tproto); /* 解決対象 IP アドレス */ 143 144 /* 145 * 以下の場合はエラー 146 * ・送信ホストの物理アドレスが自分 147 * ・送信ホストの物理アドレスがブロードキャスト 162 148 */ 163 149 if (memcmp(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN) == 0 || … … 166 152 167 153 /* 168 * éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹ãèªåã®å ´åã¯ãéè¤ãã¦ããã®ã§169 * ç¸æã«ãç¥ãããã170 * ãã ããèªåã¨ç¸æã®ã¢ãã¬ã¹ãæªå®ç¾©ï¼IPV4_ADDRANYï¼ã®æã¯ä½ãããªãã154 * 送信ホストの IP アドレスが自分の場合は、重複しているので 155 * 相手にも知らせる。 156 * ただし、自分と相手のアドレスが未定義(IPV4_ADDRANY)の時は何もしない。 171 157 */ 172 158 if ((saddr == ifp->in4_ifaddr.addr) && (saddr != IPV4_ADDRANY)) { … … 197 183 198 184 /* 199 * 以ä¸ã®å ´åã¯ä½ãããªãã 200 * ã»è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹ãèªåã§ã¯ãªãã注: å 201 ã® FreeBSD ã® 202 * å®è£ 203 ã§ã¯ãARP PROXY çã®ãããèªå以å¤ã® IP ã¢ãã¬ã¹ã® 204 * 解決ãè¡ã£ã¦ããããæ¬å®è£ 205 ã§ã¯ãèªå以å¤ã® IP 206 * ã¢ãã¬ã¹ã®è§£æ±ºã¯è¡ããªãã 185 * 以下の場合は何もしない。 186 * ・解決対象 IP アドレスが自分ではない、注: 元の FreeBSD の 187 * 実装では、ARP PROXY 等のため、自分以外の IP アドレスの 188 * 解決も行っているが、本実装では、自分以外の IP 189 * アドレスの解決は行わない。 207 190 */ 208 191 if (taddr != ifp->in4_ifaddr.addr) … … 210 193 211 194 /* 212 * éä¿¡å 213 IP ã¢ãã¬ã¹ã ARP ãã£ãã·ã¥ã«ããã調ã¹ãã 214 * ãã£ãã·ã¥ã«ãªããã°ãæ°ãã«ã¨ã³ããªãç»é²ããã 195 * 送信元 IP アドレスが ARP キャッシュにあるか調べる。 196 * キャッシュになければ、新たにエントリを登録する。 215 197 */ 216 198 syscall(wai_sem(SEM_ARP_CACHE_LOCK)); … … 221 203 222 204 /* 223 * éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°éä¿¡ããã205 * 送信がペンデングされているフレームがあれば送信する。 224 206 */ 225 207 if (ent->hold) { 226 208 227 /* ãã¬ã¼ã ã® Ethernet ããããè¨å®ããã*/209 /* フレームの Ethernet ヘッダを設定する。*/ 228 210 memcpy(GET_ETHER_HDR(ent->hold)->dhost, ent->mac_addr, ETHER_ADDR_LEN); 229 211 … … 232 214 syscall(sig_sem(SEM_ARP_CACHE_LOCK)); 233 215 234 /* ãã³ãã£ã³ã°ããã¦ãããã¬ã¼ã ãéä¿¡ããã*/216 /* ペンディングされているフレームを送信する。*/ 235 217 IF_RAW_OUTPUT(pending, TMO_FEVR); 236 218 … … 243 225 arph = GET_ARP_HDR(input); 244 226 245 /* ã¢ãã¬ã¹è§£æ±ºè¦æ±ã§ãªããã°çµäº*/227 /* アドレス解決要求でなければ終了 */ 246 228 if (ntohs(arph->opcode) != ARPOP_REQUEST) 247 229 goto buf_rel; 248 230 249 /* Ethernet ARP ããããè¨å®ããã*/231 /* Ethernet ARP ヘッダを設定する。*/ 250 232 memcpy(et_arph->thost, et_arph->shost, ETHER_ADDR_LEN); 251 233 memcpy(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN); … … 253 235 ahtonl(et_arph->sproto, taddr); 254 236 255 /* Ethernet ARP ããããè¨å®ããã*/237 /* Ethernet ARP ヘッダを設定する。*/ 256 238 arph->opcode = htons(ARPOP_REPLY); 257 239 258 /* Ethernet ããããè¨å®ããã*/240 /* Ethernet ヘッダを設定する。*/ 259 241 eth = GET_ETHER_HDR(input); 260 242 memcpy(eth->dhost, eth->shost, ETHER_ADDR_LEN); 261 243 memcpy(eth->shost, ifaddr->lladdr, ETHER_ADDR_LEN); 262 244 263 /* ARP å¿çãéä¿¡ããã*/245 /* ARP 応答を送信する。*/ 264 246 IF_RAW_OUTPUT(input, TMO_FEVR); 265 247 return; … … 272 254 273 255 /* 274 * arp_timer -- ARP ãã£ãã·ã¥ã®æ´æ°256 * arp_timer -- ARP キャッシュの更新 275 257 */ 276 258 … … 286 268 arp_cache[ix].expire -= ARP_TIMER_TMO; 287 269 if (arp_cache[ix].expire == 0) { 288 /* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/270 /* 送信がペンデングされているフレームがあれば捨てる。*/ 289 271 if (arp_cache[ix].hold) { 290 272 NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1); … … 301 283 302 284 /* 303 * arp_lookup -- ARP ãã£ãã·ã¥ã®æ¢ç´¢ã¨ç»é² 304 * 305 * 注æ: SEM_ARP_CACHE_LOCK ãç²å¾ããç¶æ 306 ã§å¼åºãã㨠285 * arp_lookup -- ARP キャッシュの探索と登録 286 * 287 * 注意: SEM_ARP_CACHE_LOCK を獲得した状態で呼出すこと 307 288 */ 308 289 … … 318 299 } 319 300 320 /* create ãçãªããæ°ããªã¨ã³ããªãç»é²ããã*/301 /* create が真なら、新たなエントリを登録する。*/ 321 302 if (create) { 322 303 323 /* ã¾ãã空ããããã°ããã®ç©ºããå©ç¨ããã*/304 /* まず、空きがあれば、その空きを利用する。*/ 324 305 for (ix = NUM_ARP_ENTRY; ix -- > 0; ) { 325 306 if (arp_cache[ix].expire == 0) { … … 330 311 331 312 /* 332 * 空ãããªããã°ãã¿ã¤ã ã¢ã¦ãã¾ã§æéãæçã®333 * ã¨ã³ããªã¼ãç ´æ£ãã¦å©ç¨ããã313 * 空きがなければ、タイムアウトまで時間が最短の 314 * エントリーを破棄して利用する。 334 315 */ 335 316 syslog(LOG_NOTICE, "[ARP] cache busy, size=%d", NUM_ARP_ENTRY); … … 349 330 350 331 /* 351 * arp_request -- MAC ã¢ãã¬ã¹è§£æ±ºè¦æ±332 * arp_request -- MAC アドレス解決要求 352 333 */ 353 334 … … 367 348 if ((error = tget_net_buf(&arp_req, IF_ARP_ETHER_HDR_SIZE, TMO_ARP_GET_NET_BUF)) == E_OK) { 368 349 369 /* ã¤ã¼ãµãããããããè¨å®ããã*/350 /* イーサネットヘッダを設定する。*/ 370 351 eth = GET_ETHER_HDR(arp_req); 371 352 memcpy(eth->dhost, ether_broad_cast_addr, ETHER_ADDR_LEN); … … 373 354 eth->type = htons(ETHER_TYPE_ARP); 374 355 375 /* ARP ããããè¨å®ããã*/356 /* ARP ヘッダを設定する。*/ 376 357 arph = GET_ARP_HDR(arp_req); 377 358 arph->hrd_addr = htons(ARPHRD_ETHER); … … 381 362 arph->opcode = htons(ARPOP_REQUEST); 382 363 383 /* ã¤ã¼ãµããã ARP ããããè¨å®ããã*/364 /* イーサネット ARP ヘッダを設定する。*/ 384 365 et_arph = GET_ETHER_ARP_HDR(arp_req); 385 366 src = IF_GET_IFNET()->in4_ifaddr.addr; … … 389 370 ahtonl(et_arph->tproto, dst); 390 371 391 /* éä¿¡ããã*/372 /* 送信する。*/ 392 373 error = IF_RAW_OUTPUT(arp_req, TMO_ARP_OUTPUT); 393 374 } … … 398 379 399 380 /* 400 * arp_get_cache -- ARP ãã£ãã·ã¥ãç²å¾ããã381 * arp_get_cache -- ARP キャッシュを獲得する。 401 382 */ 402 383 … … 408 389 409 390 /* 410 * arp_input -- ARP ã®å 411 ¥åé¢æ° 391 * arp_input -- ARP の入力関数 412 392 */ 413 393 … … 420 400 NET_COUNT_ARP(net_count_arp.in_packets, 1); 421 401 422 /* ARP ãããã®é·ãããã§ãã¯ããã*/402 /* ARP ヘッダの長さをチェックする。*/ 423 403 if (input->len < IF_ARP_HDR_SIZE) 424 404 goto buf_rel; … … 427 407 428 408 /* 429 * ç©çã¢ãã¬ã¹ãã©ã¼ãããã Ehternet 以å¤430 * ã¾ãã¯ããããã³ã«ã IP 以å¤ã¯ã¨ã©ã¼ã409 * 物理アドレスフォーマットが Ehternet 以外 410 * または、プロトコルが IP 以外はエラー。 431 411 */ 432 412 if (ntohs(arph->hrd_addr) != ARPHRD_ETHER || … … 434 414 goto buf_rel; 435 415 436 /* ARP ããã + Ether ARP ãããã®é·ãããã§ãã¯ããã*/416 /* ARP ヘッダ + Ether ARP ヘッダの長さをチェックする。*/ 437 417 if (input->len < IF_ARP_ETHER_HDR_SIZE) 438 418 goto buf_rel; … … 447 427 448 428 /* 449 * arp_resolve -- MAC ã¢ãã¬ã¹è§£æ±º450 * 451 * ã¢ãã¬ã¹è§£æ±ºãã§ããã°ãæ»ãå¤ã¯ true ãè¿ããã§ããªããã°452 * éä¿¡ããã³ãã£ã³ã°ãã¦ãæ»ãå¤ã¯ false ãè¿ãã429 * arp_resolve -- MAC アドレス解決 430 * 431 * アドレス解決ができれば、戻り値は true を返し、できなければ 432 * 送信をペンディングして、戻り値は false を返す。 453 433 */ 454 434 … … 463 443 464 444 /* 465 * 次ã®å ´åã¯ãã¤ã¼ãµãããã®ããã¼ããã£ã¹ãã¢ãã¬ã¹ãè¿ãã445 * 次の場合は、イーサネットのブロードキャストアドレスを返す。 466 446 * 467 * ã»å 468 ¨ãããã 1 469 * ã»ãã¹ãé¨ã®å 470 ¨ãããã 1 ã§ããããã¯ã¼ã¯é¨ããã¼ã«ã«ã¢ãã¬ã¹ 447 * ・全ビットが 1 448 * ・ホスト部の全ビットが 1 で、ネットワーク部がローカルアドレス 471 449 */ 472 450 if (gw == IPV4_ADDR_BROADCAST || … … 476 454 } 477 455 478 /* éä¿¡å 479 GW ã® IP ã¢ãã¬ã¹ã ARP ãã£ãã·ã¥ã«ããã調ã¹ãã*/ 456 /* 送信先 GW の IP アドレスが ARP キャッシュにあるか調べる。*/ 480 457 syscall(wai_sem(SEM_ARP_CACHE_LOCK)); 481 458 ent = arp_lookup(gw, true); … … 486 463 } 487 464 else { 488 /* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/465 /* 送信がペンデングされているフレームがあれば捨てる。*/ 489 466 if (ent->hold) { 490 467 NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1); … … 493 470 494 471 /* 495 * éä¿¡ããã³ãã£ã³ã°ããã496 * IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨å®ããã¦ããã¨ãã¯ã497 * éä¿¡ããã³ãã£ã³ã°ããªãã472 * 送信をペンディングする。 473 * IF でネットワークバッファを開放しないフラグが設定されているときは、 474 * 送信をペンディングしない。 498 475 */ 499 476 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) … … 505 482 syscall(sig_sem(SEM_ARP_CACHE_LOCK)); 506 483 507 /* ã¢ãã¬ã¹è§£æ±ºè¦æ±ãéä¿¡ããã*/484 /* アドレス解決要求を送信する。*/ 508 485 arp_request(ifaddr, gw); 509 486 return false; … … 512 489 513 490 /* 514 * arp_init -- ARP åæå491 * arp_init -- ARP 初期化 515 492 */ 516 493 … … 523 500 #ifdef ETHER_CFG_MULTICAST 524 501 /* 525 * ether_map_ipv4_multicast -- IPv4 ãã«ããã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ502 * ether_map_ipv4_multicast -- IPv4 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換 526 503 */ 527 504 -
azure_iot_hub/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
r388 r389 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 #if defined(_IP4_CFG) && defined(SUPPORT_ETHER) 51 39 52 /* ARP ãã£ãã·ã¥æ´æ°ç¨ã»ããã©*/40 /* ARP キャッシュ更新用セマフォ */ 53 41 54 42 CRE_SEM(SEM_ARP_CACHE_LOCK, { TA_TPRI, 1, 1 }); -
azure_iot_hub/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
r388 r389 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 … … 132 118 133 119 /* 134 * TINET ç¬èªAPI120 * TINET 独自 API 135 121 */ 136 122 -
azure_iot_hub/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
r388 r389 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$ … … 89 77 90 78 /* 91 * TINET ã®ãã¼ã¸ã§ã³æ 92 å ± 79 * TINET のバージョン情報 93 80 */ 94 81 95 #define TINET_PRVER UINT_C(0x1070) /* TINET ã®ãã¼ã¸ã§ã³çªå·*/82 #define TINET_PRVER UINT_C(0x1070) /* TINET のバージョン番号 */ 96 83 97 84 /* 98 * ã¤ã³ã¿ã¼ãããã·ã¹ãã ã®å®ç¾©ãRFC790 åç 99 § 85 * インターネットシステムの定義、RFC790 参照 100 86 */ 101 87 102 88 /* 103 * ãããã³ã«(RFC1700)89 * プロトコル (RFC1700) 104 90 */ 105 91 106 #define IPPROTO_IP UINT_C(0) /* IP ã®ããã¼*/107 #define IPPROTO_HOPOPTS UINT_C(0) /* IPv6 ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³*/92 #define IPPROTO_IP UINT_C(0) /* IP のダミー */ 93 #define IPPROTO_HOPOPTS UINT_C(0) /* IPv6 中継点 (Hop-by-Hop) オプション */ 108 94 #define IPPROTO_ICMP UINT_C(1) /* ICMP */ 109 95 #define IPPROTO_IGMP UINT_C(2) /* IGMP */ … … 111 97 #define IPPROTO_UDP UINT_C(17) /* UDP */ 112 98 #define IPPROTO_IPV6 UINT_C(41) /* IPv6 */ 113 #define IPPROTO_ROUTING UINT_C(43) /* çµè·¯å¶å¾¡ãªãã·ã§ã³*/114 #define IPPROTO_FRAGMENT UINT_C(44) /* æçåãªãã·ã§ã³*/99 #define IPPROTO_ROUTING UINT_C(43) /* 経路制御オプション */ 100 #define IPPROTO_FRAGMENT UINT_C(44) /* 断片化オプション */ 115 101 #define IPPROTO_RSVP UINT_C(46) /* RSVP */ 116 #define IPPROTO_ESP UINT_C(50) /* IPv6 æå·åãªãã·ã§ã³*/117 #define IPPROTO_AH UINT_C(51) /* IPv6 èªè¨¼ãªãã·ã§ã³*/102 #define IPPROTO_ESP UINT_C(50) /* IPv6 暗号化オプション */ 103 #define IPPROTO_AH UINT_C(51) /* IPv6 認証オプション */ 118 104 #define IPPROTO_ICMPV6 UINT_C(58) /* ICMPv6 */ 119 #define IPPROTO_NONE UINT_C(59) /* IPv6 次ãããç¡ã */ 120 #define IPPROTO_DSTOPTS UINT_C(60) /* IPv6 çµç¹ãªãã·ã§ã³ */ 121 #define IPPROTO_IPCOMP UINT_C(108) /* ãã¤ãã¼ãå§ç¸® */ 122 #define IPPROTO_DONE UINT_C(257) /* IPv6 ã§ä¸ä½ãããã³ã«å 123 ¥åçµäº */ 105 #define IPPROTO_NONE UINT_C(59) /* IPv6 次ヘッダ無し */ 106 #define IPPROTO_DSTOPTS UINT_C(60) /* IPv6 終点オプション */ 107 #define IPPROTO_IPCOMP UINT_C(108) /* ペイロード圧縮 */ 108 #define IPPROTO_DONE UINT_C(257) /* IPv6 で上位プロトコル入力終了 */ 124 109 125 110 /* 126 * ãã¼ãã®é·ã111 * ポートの長さ 127 112 */ 128 113 … … 130 115 131 116 /* 132 * ãã¼ãçªå·ã®å®ç¾©117 * ポート番号の定義 133 118 */ 134 119 135 #define TCP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP æ¨æº*/136 #define UDP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP æ¨æº*/120 #define TCP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP 標準 */ 121 #define UDP_PORTANY UINT_C(0x0000) /* ITRON TCP/IP 標準 */ 137 122 138 #define TCP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known çµäºçªå·*/139 #define TCP_PORT_FIRST_AUTO UINT_C(1024) /* èªåå²ãå½ã¦éå§çªå·*/140 #define TCP_PORT_LAST_AUTO UINT_C(4999) /* èªåå²ãå½ã¦çµäºçªå·*/123 #define TCP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known 終了番号 */ 124 #define TCP_PORT_FIRST_AUTO UINT_C(1024) /* 自動割り当て開始番号 */ 125 #define TCP_PORT_LAST_AUTO UINT_C(4999) /* 自動割り当て終了番号 */ 141 126 142 #define UDP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known çµäºçªå·*/143 #define UDP_PORT_FIRST_AUTO UINT_C(1024) /* èªåå²ãå½ã¦éå§çªå·*/144 #define UDP_PORT_LAST_AUTO UINT_C(4999) /* èªåå²ãå½ã¦çµäºçªå·*/127 #define UDP_PORT_LAST_WELL_KNOWN UINT_C(1023) /* Well Known 終了番号 */ 128 #define UDP_PORT_FIRST_AUTO UINT_C(1024) /* 自動割り当て開始番号 */ 129 #define UDP_PORT_LAST_AUTO UINT_C(4999) /* 自動割り当て終了番号 */ 145 130 146 131 /* 147 * API IP ãããã³ã«ã®æå®132 * API IPプロトコルの指定 148 133 */ 149 134 … … 153 138 154 139 /* 155 * åççæç¨ TCP/IPv6 é信端ç¹140 * 動的生成用 TCP/IPv6 通信端点 156 141 */ 157 142 … … 159 144 160 145 /* 161 * ãã¤ããªã¼ãé¢æ°ã®å®ç¾©146 * バイトオーダ関数の定義 162 147 * 163 * tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã164 * tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªã165 * ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ç¨ã«166 * ã¿ã¼ã²ããä¾åããªããã¤ããªã¼ãé¢æ°ãå®ç¾©ããã148 * tinet/net/net.h でもバイトオーダの定義を行っているが、 149 * tinet/net/net.h をインクルードしない 150 * アプリケーションプログラム用に 151 * ターゲット依存しないバイトオーダ関数を定義する。 167 152 */ 168 153 169 154 #if defined(_NET_CFG_BYTE_ORDER) 170 155 171 /* tinet/net/net.h ãã¤ã³ã¯ã«ã¼ããã¦ããã*/156 /* tinet/net/net.h をインクルードしている。*/ 172 157 173 158 #else /* of #if defined(_NET_CFG_BYTE_ORDER) */ … … 186 171 187 172 /* 188 * TINET ç¬èªAPI173 * TINET 独自 API 189 174 */ 190 175 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 ã¢ãã¬ã¹ 87 */ 88 89 /* åæ¹åç 90 § */ 74 * IPv4 アドレス 75 */ 76 77 /* 前方参照 */ 91 78 92 79 #ifndef T_IN4_ADDR_DEFINED … … 99 86 100 87 /* 101 * ITRON TCP/IPv4 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©88 * ITRON TCP/IPv4 アドレス/ポート番号の定義 102 89 */ 103 90 104 91 typedef struct t_ipv4ep { 105 uint32_t ipaddr; /* IPv4 ã¢ãã¬ã¹*/106 uint16_t portno; /* ãã¼ãçªå·*/92 uint32_t ipaddr; /* IPv4 アドレス */ 93 uint16_t portno; /* ポート番号 */ 107 94 } T_IPV4EP; 108 95 … … 110 97 111 98 /* 112 * ã¢ãã¬ã¹ã®é·ã99 * アドレスの長さ 113 100 */ 114 101 … … 116 103 117 104 /* 118 * IPv4 ã¢ãã¬ã¹ã®å®ç¾©119 */ 120 121 #define IPV4_ADDRANY ULONG_C(0x00000000) /* ITRON TCP/IP æ¨æº*/105 * IPv4 アドレスの定義 106 */ 107 108 #define IPV4_ADDRANY ULONG_C(0x00000000) /* ITRON TCP/IP 標準 */ 122 109 #define IPV4_ADDRBROADCAST ULONG_C(0xffffffff) 123 110 … … 158 145 159 146 /* 160 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã147 * 関数シミュレーションマクロ 161 148 */ 162 149 … … 167 154 168 155 /* 169 * åççæç¨ TCP é信端ç¹156 * 動的生成用 TCP 通信端点 170 157 */ 171 158 172 159 typedef struct t_tcp_ccep { 173 /* æ¨æº */ 174 ATR cepatr; /* é信端ç¹å±æ§ */ 175 void *sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ */ 176 int_t sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 177 void *rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ */ 178 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 179 FP callback; /* ã³ã¼ã«ãã㯠*/ 180 /* å®è£ 181 ä¾å */ 160 /* 標準 */ 161 ATR cepatr; /* 通信端点属性 */ 162 void *sbuf; /* 送信用ウィンドバッファ */ 163 int_t sbufsz; /* 送信用ウィンドバッファサイズ */ 164 void *rbuf; /* 受信用ウィンドバッファ */ 165 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 166 FP callback; /* コールバック */ 167 /* 実装依存 */ 182 168 } T_TCP_CCEP; 183 169 184 170 /* 185 * åççæç¨ TCP åä»å£171 * 動的生成用 TCP 受付口 186 172 */ 187 173 188 174 typedef struct t_tcp_crep { 189 /* æ¨æº */ 190 ATR repatr; /* åä»å£å±æ§ */ 191 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 192 /* å®è£ 193 ä¾å */ 175 /* 標準 */ 176 ATR repatr; /* 受付口属性 */ 177 T_IPV4EP myaddr; /* 自分のアドレス */ 178 /* 実装依存 */ 194 179 } T_TCP_CREP; 195 180 196 181 /* 197 * åççæç¨ UDP é信端ç¹182 * 動的生成用 UDP 通信端点 198 183 */ 199 184 200 185 typedef struct t_udp_ccep { 201 /* æ¨æº */ 202 ATR cepatr; /* UDP é信端ç¹å±æ§ */ 203 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 204 FP callback; /* ã³ã¼ã«ããã¯é¢æ° */ 205 /* å®è£ 206 ä¾å */ 186 /* 標準 */ 187 ATR cepatr; /* UDP 通信端点属性 */ 188 T_IPV4EP myaddr; /* 自分のアドレス */ 189 FP callback; /* コールバック関数 */ 190 /* 実装依存 */ 207 191 } T_UDP_CCEP; 208 192 209 193 /* 210 * TINET ç¬èªAPI194 * TINET 独自 API 211 195 */ 212 196 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 125 113 126 114 /* 127 * in_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã115 * in_rtinit -- ルーティング表を初期化する。 128 116 */ 129 117 … … 141 129 142 130 /* 143 * in_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã131 * in_rtnewentry -- 新しいエントリを獲得する。 144 132 */ 145 133 … … 151 139 int_t ix; 152 140 153 /* 空ãã¨ã³ããªãæ¢ãã*/141 /* 空きエントリを探す。*/ 154 142 for (ix = NUM_IN4_STATIC_ROUTE_ENTRY; ix < NUM_IN4_ROUTE_ENTRY; ix ++) { 155 143 rt = &routing4_tbl[ix]; … … 160 148 } 161 149 162 /* expire ã®åä½ã¯ [s]ã*/150 /* expire の単位は [s]。*/ 163 151 syscall(get_tim(&now)); 164 152 now /= SYSTIM_HZ; 165 153 166 154 if (frt == NULL) { 167 /* 空ãããªããã°ãæå¹æéããã£ã¨ãçãã¨ã³ããªã空ãã«ããã*/155 /* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/ 168 156 T_IN4_RTENTRY *srt = NULL; 169 157 int_t diff, sdiff = INT_MAX; … … 174 162 diff = (int_t)(rt->expire - now); 175 163 if (diff <= 0) { /* rt->expire <= now */ 176 /* æ¢ã«ãæå¹æéãéãã¦ããã*/164 /* 既に、有効時間が過ぎている。*/ 177 165 frt = rt; 178 166 break; … … 195 183 196 184 /* 197 * in_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼185 * in_rttimer -- ルーティング表の管理タイマー 198 186 */ 199 187 … … 204 192 int_t ix; 205 193 206 /* expire ã®åä½ã¯ [s]ã*/194 /* expire の単位は [s]。*/ 207 195 syscall(get_tim(&now)); 208 196 now /= SYSTIM_HZ; … … 219 207 220 208 /* 221 * in4_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®å¯è½ãªæ大ã¢ãã¬ã¹æ°ãè¿ãã209 * in4_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。 222 210 */ 223 211 … … 229 217 230 218 /* 231 * in4_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ããã¢ãã¬ã¹ãè¿ãã219 * in4_get_ifaddr -- インタフェースに設定されているアドレスを返す。 232 220 */ 233 221 … … 241 229 242 230 /* 243 * in4_set_header -- IPv4 ããããè¨å®ããã231 * in4_set_header -- IPv4 ヘッダを設定する。 244 232 */ 245 233 … … 251 239 T_IFNET *ifp = IF_GET_IFNET(); 252 240 253 /* IP ããããè¨å®ããã*/241 /* IP ヘッダを設定する。*/ 254 242 ip4h->vhl = IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2); 255 243 ip4h->len = htons(IP4_HDR_SIZE + len); … … 259 247 ip4h->id = ip4h->flg_off = ip4h->sum = 0; 260 248 261 /* IP ã¢ãã¬ã¹ãè¨å®ããã*/249 /* IP アドレスを設定する。*/ 262 250 ip4h->dst = htonl(*dstaddr); 263 251 … … 271 259 272 260 /* 273 * in4_get_datagram -- IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨å®ããã261 * in4_get_datagram -- IPv4 データグラムを獲得し、ヘッダを設定する。 274 262 */ 275 263 … … 282 270 uint_t align; 283 271 284 /* ãã¼ã¿é·ã 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/272 /* データ長を 4 オクテット境界に調整する。*/ 285 273 align = (len + 3) >> 2 << 2; 286 274 287 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/275 /* ネットワークバッファを獲得する。*/ 288 276 if ((error = tget_net_buf_ex(nbuf, (uint_t)(IF_IP4_HDR_SIZE + align), 289 277 (uint_t)(IF_IP4_HDR_SIZE + maxlen), nbatr, tmout)) != E_OK) … … 291 279 292 280 /* 293 * ãã大ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ãã調æ´ããã294 * ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®295 * çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã281 * より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。 282 * より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの 283 * 省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。 296 284 */ 297 285 if ((nbatr & NBA_SEARCH_ASCENT) != 0) 298 286 (*nbuf)->len = (uint16_t)(IF_IP4_HDR_SIZE + len); 299 287 300 /* IP ããããè¨å®ããã*/288 /* IP ヘッダを設定する。*/ 301 289 if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK) { 302 290 syscall(rel_net_buf(*nbuf)); … … 305 293 } 306 294 307 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/295 /* 4 オクテット境界までパディングで埋める。*/ 308 296 if (align > len) 309 297 memset((GET_IP4_SDU(*nbuf) + len), 0, (size_t)(align - len)); … … 313 301 314 302 /* 315 * in4_cksum -- IPv4 ã®ãã©ã³ã¹ãã¼ã層ãããã®ãã§ãã¯ãµã ãè¨ç®ããã316 * 317 * 注æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã303 * in4_cksum -- IPv4 のトランスポート層ヘッダのチェックサムを計算する。 304 * 305 * 注意: 戻り値はネットワークバイトオーダ 318 306 */ 319 307 … … 324 312 uint_t align; 325 313 326 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/314 /* 4 オクテット境界のデータ長 */ 327 315 align = (len + 3) >> 2 << 2; 328 316 329 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/317 /* 4 オクテット境界までパディングで埋める。*/ 330 318 if (align > len) 331 319 memset((uint8_t*)nbuf->buf + off + len, 0, (size_t)(align - len)); … … 340 328 341 329 /* 342 * in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨343 * 344 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã345 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨346 * ä¾å¤ãçºçããå¯è½æ§ãããã347 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã348 * 349 * æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã330 * in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用 331 * 332 * 注意: data は 4 オクテット単位でパディングすること。 333 * data が 2 オクテット単位にアラインされていないと 334 * 例外が発生する可能性がある。 335 * len は 4 オクテット単位にアラインされていること。 336 * 337 * 戻り値はネットワークバイトオーダ 350 338 */ 351 339 352 340 uint16_t 353 in_cksum (void *data, uint_t len /* ãªã¯ãããåä½*/)341 in_cksum (void *data, uint_t len /*オクテット単位*/) 354 342 { 355 343 uint16_t sum; … … 360 348 361 349 /* 362 * in4_is_dstaddr_accept -- å®å 363 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 364 * 365 * 注æ: dstaddr ã¯ã 366 * TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã 367 * TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã 350 * in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 351 * 352 * 注意: dstaddr は、 353 * TINET-1.2 からネットワークバイトオーダ、 354 * TINET-1.1 までは、ホストバイトオーダ 368 355 */ 369 356 … … 378 365 379 366 /* 380 * inn4_is_dstaddr_accept -- å®å 381 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 382 * 383 * 注æ: dstaddr ã¯ã 384 * TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã 385 * TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã 367 * inn4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 368 * 369 * 注意: dstaddr は、 370 * TINET-1.2 からネットワークバイトオーダ、 371 * TINET-1.1 までは、ホストバイトオーダ 386 372 */ 387 373 … … 399 385 400 386 /* 401 * in4_addrwithifp -- å®å 402 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 403 ã¢ãã¬ã¹ãã 404 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã 405 * in6_addrwithifp ãã·ãã¥ã¬ã¼ãããã ãã§ã 406 * ã¨ã©ã¼ãè¿ããã¨ã¯ãªãã 387 * in4_addrwithifp -- 宛先アドレスにふさわしい送信元アドレスを、 388 * ネットワークインタフェースから探索する。 389 * in6_addrwithifp をシミュレートするだけで、 390 * エラーを返すことはない。 407 391 */ 408 392 … … 415 399 416 400 /* 417 * in4_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨å®ããã401 * in4_add_ifaddr -- インタフェースに IPv4 アドレスを設定する。 418 402 */ 419 403 … … 431 415 432 416 /* 433 * in4_add_route -- çµè·¯è¡¨ã«ã¨ã³ããªãè¨å®ããã417 * in4_add_route -- 経路表にエントリを設定する。 434 418 */ 435 419 … … 451 435 452 436 /* 453 * in4_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã437 * in4_rtalloc -- ルーティング表を探索する。 454 438 */ 455 439 … … 477 461 478 462 /* 479 * in4_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã480 * 481 * 注æ: å¼æ° tmo ã®åä½ã¯ [ms]ã463 * in4_rtredirect -- ルーティング表にエントリを登録する。 464 * 465 * 注意: 引数 tmo の単位は [ms]。 482 466 */ 483 467 … … 496 480 497 481 /* 498 * in4_timer -- IPv4 å 499 ±éã¿ã¤ãã¼ 500 * 501 * 1ç§å¨æã§èµ·åãããã 482 * in4_timer -- IPv4 共通タイマー 483 * 484 * 1秒周期で起動される。 502 485 */ 503 486 … … 521 504 522 505 /* 523 * in4_init -- IPv4 å 524 ±éæ©è½ãåæåããã 506 * in4_init -- IPv4 共通機能を初期化する。 525 507 */ 526 508 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 86 74 87 75 /* 88 * ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½76 * インタフェースアドレス構造体 89 77 */ 90 78 91 79 typedef struct t_in4_ifaddr { 92 T_IN4_ADDR addr; /* IPv4 ã¢ãã¬ã¹*/93 T_IN4_ADDR mask; /* ãµãããããã¹ã¯*/80 T_IN4_ADDR addr; /* IPv4 アドレス */ 81 T_IN4_ADDR mask; /* サブネットマスク */ 94 82 } T_IN4_IFADDR; 95 83 96 84 /* 97 * ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½85 * ルーティング表エントリ構造体 98 86 */ 99 87 100 88 typedef struct t_in4_rtentry { 101 T_IN4_ADDR target; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹*/102 T_IN4_ADDR mask; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹ã®ãµãããããã¹ã¯*/103 T_IN4_ADDR gateway; /* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹*/104 uint32_t expire; /* æå¹æéãåããæå»[s] */105 uint8_t flags; /* ãã©ã°*/89 T_IN4_ADDR target; /* 目標ネットワークアドレス */ 90 T_IN4_ADDR mask; /* 目標ネットワークアドレスのサブネットマスク */ 91 T_IN4_ADDR gateway; /* ゲートウェイの IP アドレス */ 92 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 93 uint8_t flags; /* フラグ */ 106 94 } T_IN4_RTENTRY; 107 95 /* 108 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©109 * 110 * TINET 1.5 ã¨ã®äºææ§ã®ããã«å®ç¾©ãç¡å¹ã«ããã96 * TINET 1.1 との互換性のための定義 97 * 98 * TINET 1.5 との互換性のために定義を無効にした。 111 99 */ 112 100 … … 123 111 124 112 /* 125 * ã«ã¼ãã£ã³ã°è¡¨113 * ルーティング表 126 114 */ 127 115 … … 133 121 134 122 /* 135 * åæ¹åç 136 § 123 * 前方参照 137 124 */ 138 125 … … 148 135 149 136 /* 150 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã137 * 関数シミュレーションマクロ 151 138 */ 152 139 … … 154 141 155 142 /* 156 * é¢æ°143 * 関数 157 144 */ 158 145 … … 171 158 172 159 /* 173 * in4_is_dstaddr_accept -- å®å 174 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 175 * 176 * 注æ: dstaddr ã¯ã 177 * TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã 178 * TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã 160 * in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 161 * 162 * 注意: dstaddr は、 163 * TINET-1.2 からネットワークバイトオーダ、 164 * TINET-1.1 までは、ホストバイトオーダ 179 165 */ 180 166 extern bool_t in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr); … … 182 168 183 169 /* 184 * in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨185 * 186 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã187 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨188 * ä¾å¤ãçºçããå¯è½æ§ãããã189 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã190 */ 191 extern uint16_t in_cksum(void *data, uint_t len /* ãªã¯ãããåä½*/);192 193 /* 194 * in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°195 * 196 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã197 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨198 * ä¾å¤ãçºçããå¯è½æ§ãããã199 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã200 */ 201 extern uint32_t in_cksum_sum (void *data, uint_t len /* ãªã¯ãããåä½*/);202 203 /* 204 * in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°205 * 206 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã207 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨208 * ä¾å¤ãçºçããå¯è½æ§ãããã209 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã170 * in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用 171 * 172 * 注意: data は 4 オクテット単位でパディングすること。 173 * data が 2 オクテット単位にアラインされていないと 174 * 例外が発生する可能性がある。 175 * len は 4 オクテット単位にアラインされていること。 176 */ 177 extern uint16_t in_cksum(void *data, uint_t len /*オクテット単位*/); 178 179 /* 180 * in_cksum_sum -- チェックサムの合計計算関数 181 * 182 * 注意: data は 4 オクテット単位でパディングすること。 183 * data が 2 オクテット単位にアラインされていないと 184 * 例外が発生する可能性がある。 185 * len は 4 オクテット単位にアラインされていること。 186 */ 187 extern uint32_t in_cksum_sum (void *data, uint_t len /*オクテット単位*/); 188 189 /* 190 * in_cksum_carry -- チェックサムの桁上げ計算関数 191 * 192 * 注意: data は 4 オクテット単位でパディングすること。 193 * data が 2 オクテット単位にアラインされていないと 194 * 例外が発生する可能性がある。 195 * len は 4 オクテット単位にアラインされていること。 210 196 */ 211 197 extern uint32_t in_cksum_carry (uint32_t sum); -
azure_iot_hub/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
r388 r389 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); … … 145 133 extern ER udp6_can_cep(ID cepid, FN fncd); 146 134 147 /* ãæ¡å¼µæ©è½ã*/135 /* 【拡張機能】 */ 148 136 149 137 extern ER udp_del_cep (ID cepid); -
azure_iot_hub/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
r388 r389 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 … … 158 145 #define tmax_tcp_repid _tinet_tmax_tcp_repid 159 146 #define tmax_tcp_cepid _tinet_tmax_tcp_cepid 160 #define tmax_tcp_crepid _tinet_tmax_tcp_repid /* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©*/161 #define tmax_tcp_ccepid _tinet_tmax_tcp_cepid /* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©*/147 #define tmax_tcp_crepid _tinet_tmax_tcp_repid /* TINET 1.3 との互換性のための定義 */ 148 #define tmax_tcp_ccepid _tinet_tmax_tcp_cepid /* TINET 1.3 との互換性のための定義 */ 162 149 163 150 /* netinet/udp_input.c */ … … 195 182 #define udp4_cep _tinet_udp4_cep 196 183 #define tmax_udp_cepid _tinet_tmax_udp_cepid 197 #define tmax_udp_ccepid _tinet_tmax_udp_cepid /* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©*/184 #define tmax_udp_ccepid _tinet_tmax_udp_cepid /* TINET 1.3 との互換性のための定義 */ 198 185 199 186 /* netinet/ip_icmp.c */ -
azure_iot_hub/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
r388 r389 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 * in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°120 * 121 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã122 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨123 * ä¾å¤ãçºçããå¯è½æ§ãããã124 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã125 * 126 * æ»ãå¤ã¯ãã¹ããã¤ããªã¼ã107 * in_cksum_sum -- チェックサムの合計計算関数 108 * 109 * 注意: data は 4 オクテット単位でパディングすること。 110 * data が 2 オクテット単位にアラインされていないと 111 * 例外が発生する可能性がある。 112 * len は 4 オクテット単位にアラインされていること。 113 * 114 * 戻り値はホストバイトオーダ 127 115 */ 128 116 129 117 uint32_t 130 in_cksum_sum (void *data, uint_t len /* ãªã¯ãããåä½*/)118 in_cksum_sum (void *data, uint_t len /*オクテット単位*/) 131 119 { 132 120 uint32_t sum = 0; … … 146 134 147 135 /* 148 * in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°149 * 150 * 注æ: data 㯠4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã151 * data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨152 * ä¾å¤ãçºçããå¯è½æ§ãããã153 * len 㯠4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã136 * in_cksum_carry -- チェックサムの桁上げ計算関数 137 * 138 * 注意: data は 4 オクテット単位でパディングすること。 139 * data が 2 オクテット単位にアラインされていないと 140 * 例外が発生する可能性がある。 141 * len は 4 オクテット単位にアラインされていること。 154 142 */ 155 143 … … 168 156 169 157 /* 170 * in_strtfn -- API æ©è½ã³ã¼ãã®æå表ç¾ãè¿ãã158 * in_strtfn -- API 機能コードの文字表現を返す。 171 159 */ 172 160 173 161 typedef struct t_strtfn { 174 FN fncd; /* API æ©è½ã³ã¼ã*/175 const char *str; /* æå表ç¾*/162 FN fncd; /* API 機能コード */ 163 const char *str; /* 文字表現 */ 176 164 } T_STRTFN; 177 165 … … 222 210 223 211 /* 224 * ipv42str -- IPv4 ã¢ãã¬ã¹ãæååã«å¤æããã212 * ipv42str -- IPv4 アドレスを文字列に変換する。 225 213 */ 226 214 … … 256 244 257 245 /* 258 * in6_is_addr_ipv4mapped -- IPv4 å°å½±ã¢ãã¬ã¹ã§ããäºãæ¤æ»ããã246 * in6_is_addr_ipv4mapped -- IPv4 射影アドレスである事を検査する。 259 247 */ 260 248 … … 268 256 269 257 /* 270 * ip_exchg_addr -- IP ã¢ãã¬ã¹ã交æããã258 * ip_exchg_addr -- IP アドレスを交換する。 271 259 */ 272 260 … … 279 267 iph = GET_IP6_HDR(nbuf); 280 268 281 /* IPv6 ã¢ãã¬ã¹ã交æããã*/269 /* IPv6 アドレスを交換する。*/ 282 270 ipaddr = iph->src; 283 271 iph->src = iph->dst; … … 293 281 iph = GET_IP4_HDR(nbuf); 294 282 295 /* IPv4 ã¢ãã¬ã¹ã交æããã*/283 /* IPv4 アドレスを交換する。*/ 296 284 ipaddr = iph->src; 297 285 iph->src = iph->dst; … … 311 299 312 300 /* 313 * ip_exchg_addr -- IP ã¢ãã¬ã¹ã交æããã301 * ip_exchg_addr -- IP アドレスを交換する。 314 302 */ 315 303 … … 322 310 iph = GET_IP_HDR(nbuf); 323 311 324 /* IP ã¢ãã¬ã¹ã交æããã*/312 /* IP アドレスを交換する。*/ 325 313 ipaddr = iph->src; 326 314 iph->src = iph->dst; … … 333 321 334 322 /* 335 * inn_is_dstaddr_accept -- å®å 336 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 323 * inn_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 337 324 */ 338 325 … … 357 344 358 345 /* 359 * inn_are_net_srcaddr_equal -- ã¢ãã¬ã¹ãåä¸ããã§ãã¯ããã346 * inn_are_net_srcaddr_equal -- アドレスが同一かチェックする。 360 347 */ 361 348 … … 375 362 376 363 /* 377 * inn_copy_to_host -- IP ããããããã¹ã表ç¾å¤æãã¦ãIP ã¢ãã¬ã¹ãã³ãã¼ããã364 * inn_copy_to_host -- IP ヘッダからホスト表現変換して、IP アドレスをコピーする。 378 365 */ 379 366 … … 389 376 390 377 /* 391 * inn_get_datagram -- IPv6/IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨å®ããã378 * inn_get_datagram -- IPv6/IPv4 データグラムを獲得し、ヘッダを設定する。 392 379 */ 393 380 … … 413 400 414 401 /* 415 * inn_addrwithifp -- å®å 416 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 417 ã¢ãã¬ã¹ãã 418 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã 402 * inn_addrwithifp -- 宛先アドレスにふさわしい送信元アドレスを、 403 * ネットワークインタフェースから探索する。 419 404 */ 420 405 … … 435 420 436 421 /* 437 * inn_is_addr_multicast -- ã¢ãã¬ã¹ããã«ããã£ã¹ãã¢ãã¬ã¹ããã§ãã¯ããã422 * inn_is_addr_multicast -- アドレスがマルチキャストアドレスかチェックする。 438 423 */ 439 424 … … 451 436 452 437 /* 453 * ãã¤ããªã¼ãé¢æ°ã®å®ç¾©454 * 455 * tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã456 * tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªã457 * ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ç¨ã«458 * ã¿ã¼ã²ããä¾åããªããã¤ããªã¼ãé¢æ°ãå®ç¾©ããã438 * バイトオーダ関数の定義 439 * 440 * tinet/net/net.h でもバイトオーダの定義を行っているが、 441 * tinet/net/net.h をインクルードしない 442 * アプリケーションプログラム用に 443 * ターゲット依存しないバイトオーダ関数を定義する。 459 444 */ 460 445 -
azure_iot_hub/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
r388 r389 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$ … … 87 75 88 76 /* 89 * ç¬èªã®ã¨ã©ã¼ã³ã¼ã 90 */ 91 92 #define EV_NOPND (-97) /* ãã³ãã£ã³ã°ãã¦ããªã */ 93 94 /* 95 * ãããã¯ã¼ã¯ã¨ã©ã¼ã³ã¼ã 96 */ 97 98 #define EV_MSIZE (-98) /* ãã¼ã¿ã°ã©ã é·è¶ 99 é */ 100 #define EV_NURCH (-99) /* ãããã¯ã¼ã¯å°éä¸è½ */ 101 #define EV_HDOWN (-100) /* ãã¹ããã¦ã³ */ 102 #define EV_HURCH (-101) /* ãã¹ãå°éä¸è½ */ 103 #define EV_CNNRF (-102) /* æ¥ç¶ä¸è½ */ 104 #define EV_CNRST (-103) /* æ¥ç¶ãªã»ãã */ 105 #define EV_REXMTMO (-104) /* åéã¿ã¤ã ã¢ã¦ã */ 106 107 /* 108 * å 109 ±éã¿ã¤ãã®èµ·åå¨æã®å®ç¾© 77 * 独自のエラーコード 78 */ 79 80 #define EV_NOPND (-97) /* ペンディングしていない */ 81 82 /* 83 * ネットワークエラーコード 84 */ 85 86 #define EV_MSIZE (-98) /* データグラム長超過 */ 87 #define EV_NURCH (-99) /* ネットワーク到達不能 */ 88 #define EV_HDOWN (-100) /* ホストダウン */ 89 #define EV_HURCH (-101) /* ホスト到達不能 */ 90 #define EV_CNNRF (-102) /* 接続不能 */ 91 #define EV_CNRST (-103) /* 接続リセット */ 92 #define EV_REXMTMO (-104) /* 再送タイムアウト */ 93 94 /* 95 * 共通タイマの起動周期の定義 110 96 */ 111 97 … … 113 99 114 100 /* 115 * ã«ã¼ãã£ã³ã°ã¨ã³ããªç¶æ 116 ãã©ã° 117 */ 118 119 #define IN_RTF_DEFINED UINT_C(0x01) /* å®ç¾©æ¸ã¿ */ 120 #define IN_RTF_REDIRECT UINT_C(0x10) /* åãç´ãã«ããèªåè¨å®ããã */ 121 122 /* 123 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã 101 * ルーティングエントリ状態フラグ 102 */ 103 104 #define IN_RTF_DEFINED UINT_C(0x01) /* 定義済み */ 105 #define IN_RTF_REDIRECT UINT_C(0x10) /* 向け直しにより自動設定された */ 106 107 /* 108 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 124 109 */ 125 110 … … 207 192 208 193 /* 209 * é¢æ°194 * 関数 210 195 */ 211 196 extern bool_t inn_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *nbuf); -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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_IN4_REDIRECT_ROUTE_ENTRY > 0 61 49 62 /* ã«ã¼ãã£ã³ã°è¡¨ï¼åãç´ãï¼*/50 /* ルーティング表(向け直し)*/ 63 51 64 52 CRE_SEM(SEM_IN4_ROUTING_TBL, { TA_TPRI, 1, 1 }); -
azure_iot_hub/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
r388 r389 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 * IPv4 ã®å®ç¾©ãRFC791 åç 89 § 76 * IPv4 の定義、RFC791 参照 90 77 */ 91 78 … … 93 80 94 81 /* 95 * IPv4 ãããã®å®ç¾©82 * IPv4 ヘッダの定義 96 83 */ 97 84 98 85 typedef struct t_ip4_hdr { 99 86 uint8_t vhl; /* version << 4 | header length >> 2 */ 100 /* length 㯠4 octets åä½*/87 /* length は 4 octets 単位 */ 101 88 uint8_t type; /* type of services */ 102 89 uint16_t len; /* total length */ … … 116 103 117 104 /* 118 * IPv4 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã105 * IPv4 ヘッダ構造体メンバアクセスマクロ 119 106 */ 120 107 … … 128 115 129 116 /* 130 * IPv4 ãããã®ãã£ã¼ã«ãã®å¤ã®å®ç¾©117 * IPv4 ヘッダのフィールドの値の定義 131 118 */ 132 119 133 #define IP4_VHL_BORING UINT_C(0x45) /* ãªãã·ã§ã³ããªã VHL å¤*/134 #define IP4_RF UINT_C(0x8000) /* off: äºç´*/135 #define IP4_DF UINT_C(0x4000) /* off: åå²ç¦æ¢*/136 #define IP4_MF UINT_C(0x2000) /* off: åå²ãã*/137 #define IP4_OFFMASK UINT_C(0x1fff) /* ãªãã»ããé¨ã®ãã¹ã¯å¤*/120 #define IP4_VHL_BORING UINT_C(0x45) /* オプションがない VHL 値 */ 121 #define IP4_RF UINT_C(0x8000) /* off: 予約 */ 122 #define IP4_DF UINT_C(0x4000) /* off: 分割禁止 */ 123 #define IP4_MF UINT_C(0x2000) /* off: 分割あり */ 124 #define IP4_OFFMASK UINT_C(0x1fff) /* オフセット部のマスク値 */ 138 125 139 126 /* 140 * å¶éå¤127 * 制限値 141 128 */ 142 129 143 #define IP4_MAXPACKET UINT_C(65535) /* æ大ãã±ãããµã¤ãº*/144 #define IP4_MAXTTL UINT_C(255) /* TTL æ大å¤*/145 #define IP4_DEFTTL UINT_C(64) /* TTL è¦å®å¤(RFC1340) */146 #define IP4_FRAGTTL UINT_C(60) /* åå²ããããã¼ã¿ã°ã©ã ã®çåæéï¼ç§ï¼*/147 #define IP4_MSS UINT_C(576) /* æ大ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤*/130 #define IP4_MAXPACKET UINT_C(65535) /* 最大パケットサイズ */ 131 #define IP4_MAXTTL UINT_C(255) /* TTL 最大値 */ 132 #define IP4_DEFTTL UINT_C(64) /* TTL 規定値 (RFC1340) */ 133 #define IP4_FRAGTTL UINT_C(60) /* 分割されたデータグラムの生存時間(秒)*/ 134 #define IP4_MSS UINT_C(576) /* 最大セグメントサイズの規定値 */ 148 135 149 /* IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã*/136 /* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */ 150 137 151 138 #if !defined(_IP6_CFG) && defined(_IP4_CFG) -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip4_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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 * IP ã® MSS ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡89 * IP の MSS サイズのネットワークバッファ 102 90 */ 103 91 104 92 typedef struct t_net_buf_ip_mss { 105 uint16_t len; /* ãã¼ã¿ã®é·ã*/106 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/107 uint8_t flags; /* ãã©ã°*/93 uint16_t len; /* データの長さ */ 94 uint8_t idix; /* mpfid のインデックス */ 95 uint8_t flags; /* フラグ */ 108 96 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 109 97 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 113 101 #endif 114 102 uint8_t buf[IF_HDR_SIZE + IP4_MSS]; 115 /* ãããã¡æ¬ä½*/103 /* バッファ本体 */ 116 104 } T_NET_BUF_IP_MSS; 117 105 118 106 /* 119 * 65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡107 * 65536 オクテットサイズのネットワークバッファ 120 108 */ 121 109 122 110 typedef struct t_net_buf4_65536 { 123 uint16_t len; /* ãã¼ã¿ã®é·ã*/124 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/125 uint8_t flags; /* ãã©ã°*/111 uint16_t len; /* データの長さ */ 112 uint8_t idix; /* mpfid のインデックス */ 113 uint8_t flags; /* フラグ */ 126 114 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 127 115 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 131 119 #endif 132 120 uint8_t buf[IF_IP4_HDR_SIZE + 65536]; 133 /* ãããã¡æ¬ä½*/121 /* バッファ本体 */ 134 122 #if defined(IF_PDU_HDR_PADDING) 135 123 uint8_t padding[IF_PDU_HDR_PADDING]; 136 #endif /* ãããã®ä½å*/124 #endif /* ヘッダの余分 */ 137 125 } T_NET_BUF4_65536; 138 126 … … 140 128 141 129 /* 142 * åæ§æãã¥ã¼ç¨ IPv4 ãããã®å®ç¾©130 * 再構成キュー用 IPv4 ヘッダの定義 143 131 */ 144 132 145 133 typedef struct t_qip4_hdr { 146 134 uint8_t vhl; /* version << 4 | header length >> 2 */ 147 /* length 㯠4 octets åä½*/135 /* length は 4 octets 単位 */ 148 136 uint8_t type; /* type of services */ 149 137 uint16_t len; /* total length */ … … 158 146 uint32_t src; /* source address */ 159 147 160 T_NET_BUF *next; /* 次㮠IPv4 ãã©ã°ã¡ã³ã*/148 T_NET_BUF *next; /* 次の IPv4 フラグメント */ 161 149 } __attribute__((packed, aligned(2))) T_QIP4_HDR; 162 150 … … 171 159 172 160 /* 173 * ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡161 * データグラム再構成用ネットワークバッファ 174 162 */ 175 163 176 164 typedef struct t_net_buf4_reassm { 177 uint16_t len; /* ãã¼ã¿ã®é·ã*/178 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/179 uint8_t flags; /* ãã©ã°*/165 uint16_t len; /* データの長さ */ 166 uint8_t idix; /* mpfid のインデックス */ 167 uint8_t flags; /* フラグ */ 180 168 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 181 169 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 185 173 #endif 186 174 uint8_t buf[IP4_CFG_FRAG_REASSM_SIZE]; 187 /* ãããã¡æ¬ä½*/175 /* バッファ本体 */ 188 176 } __attribute__((packed, aligned(2))) T_NET_BUF4_REASSM; 189 177 … … 191 179 192 180 /* 193 * TCP ã®åæ§æãã¥ã¼ã«ããã IPv4 ãããã®å®ç¾©181 * TCP の再構成キューにおける IPv4 ヘッダの定義 194 182 */ 195 183 196 184 typedef struct t_ip4_tcp_q_hdr { 197 185 uint8_t vhl; /* version << 4 | header length >> 2 */ 198 /* length 㯠4 octets åä½*/186 /* length は 4 octets 単位 */ 199 187 uint8_t type; /* type of services */ 200 188 uint16_t len; /* total length */ … … 205 193 uint8_t ttl; /* time to live */ 206 194 uint8_t proto; /* protocol */ 207 uint16_t thoff; /* TCP ãããã®ãªãã»ãã*/195 uint16_t thoff; /* TCP ヘッダのオフセット */ 208 196 209 197 T_IN4_ADDR src; /* source address */ … … 214 202 215 203 /* 216 * SNMP 㮠管çæ 217 å ±ãã¼ã¹ (MIB) 204 * SNMP の 管理情報ベース (MIB) 218 205 */ 219 206 … … 257 244 258 245 /* 259 * é¢æ°246 * 関数 260 247 */ 261 248 -
azure_iot_hub/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
r388 r389 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 ã®å®ç¾©ãRFC2460 åç 118 § 105 * IPv6 の定義、RFC2460 参照 119 106 */ 120 107 … … 122 109 123 110 /* 124 * IPv6 ãããã®å®ç¾©111 * IPv6 ヘッダの定義 125 112 */ 126 113 … … 139 126 140 127 /* 141 * IPv6 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã128 * IPv6 ヘッダ構造体メンバアクセスマクロ 142 129 */ 143 130 … … 149 136 150 137 /* 151 * æ¡å¼µããã138 * 拡張ヘッダ 152 139 */ 153 140 154 141 typedef struct t_ip6_ext_hdr { 155 142 uint8_t next; /* Next Header */ 156 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ã*/143 uint8_t len; /* 8 オクテット単位の長さ */ 157 144 } __attribute__((packed, aligned(2)))T_IP6_EXT_HDR; 158 145 159 146 /* 160 * ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ããã147 * 中継点 (Hop-by-Hop) オプションヘッダ 161 148 */ 162 149 163 150 typedef struct t_ip6_hbh_hdr { 164 151 uint8_t next; /* Next Header */ 165 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 166 * ãã®ãªãã·ã§ã³ãããå 167 ¨ä½ã®ãªã¯ãããæ°ã 168 * 8 ã§å²ã£ãå¤ã® - 1 ãå 169 ¥ãã 152 uint8_t len; /* 8 オクテット単位の長さ。ただし、 153 * このオプションヘッダ全体のオクテット数を 154 * 8 で割った値の - 1 が入る。 170 155 */ 171 156 } __attribute__((packed, aligned(2)))T_IP6_HBH_HDR; 172 157 173 158 /* 174 * çµç¹ (Destination) ãªãã·ã§ã³ããã159 * 終点 (Destination) オプションヘッダ 175 160 */ 176 161 177 162 typedef struct t_ip6_dest_hdr { 178 163 uint8_t next; /* Next Header */ 179 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 180 * ãã®ãªãã·ã§ã³ãããå 181 ¨ä½ã®ãªã¯ãããæ°ã 182 * 8 ã§å²ã£ãå¤ã® - 1 ãå 183 ¥ãã 164 uint8_t len; /* 8 オクテット単位の長さ。ただし、 165 * このオプションヘッダ全体のオクテット数を 166 * 8 で割った値の - 1 が入る。 184 167 */ 185 168 } __attribute__((packed, aligned(2)))T_IP6_DEST_HDR; 186 169 187 /* ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³*/170 /* 中継点 (Hop-by-Hop) オプション */ 188 171 189 172 #define IP6OPT_PAD1 UINT_C(0x00) /* 00 0 00000 */ … … 194 177 #define IP6OPT_RTR_ALERT UINT_C(0x05) /* 00 0 00101 */ 195 178 196 #define IP6OPT_MINLEN 2 /* ãªãã·ã§ã³ã®æçé·*/197 198 /* æªç¥ã®ãªãã·ã§ã³ã®å¦çã®æå®*/199 200 #define IP6OPT_TYPE_SKIP UINT_C(0x00) /* ç¡è¦ããã*/201 #define IP6OPT_TYPE_DISCARD UINT_C(0x40) /* ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/202 #define IP6OPT_TYPE_FORCEICMP UINT_C(0x80) /* ç ´æ£ãã¦ãICMP ãè¿éããã*/179 #define IP6OPT_MINLEN 2 /* オプションの最短長 */ 180 181 /* 未知のオプションの処理の指定 */ 182 183 #define IP6OPT_TYPE_SKIP UINT_C(0x00) /* 無視する。 */ 184 #define IP6OPT_TYPE_DISCARD UINT_C(0x40) /* データグラムを破棄する。 */ 185 #define IP6OPT_TYPE_FORCEICMP UINT_C(0x80) /* 破棄して、ICMP を返送する。 */ 203 186 #define IP6OPT_TYPE_ICMP UINT_C(0xc0) 204 /* ç ´æ£ãã¦ããã«ããã£ã¹ãã§ãªããã° ICMP ãè¿éããã*/187 /* 破棄して、マルチキャストでなければ ICMP を返送する。 */ 205 188 206 189 #define IP6OPT_TYPE(o) ((o)&UINT_C(0xc0)) 207 190 208 191 /* 209 * çµè·¯å¶å¾¡ããã192 * 経路制御ヘッダ 210 193 */ 211 194 212 195 typedef struct t_ip6_rt_hdr { 213 196 uint8_t next; /* Next Header */ 214 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 215 * ãã®ãªãã·ã§ã³ãããå 216 ¨ä½ã®ãªã¯ãããæ°ã 217 * 8 ã§å²ã£ãå¤ã® - 1 ãå 218 ¥ãã 219 */ 220 uint8_t type; /* çµè·¯å¶å¾¡ã¿ã¤ã */ 221 uint8_t segleft; /* ã»ã°ã¡ã³ãã®æ®ã */ 197 uint8_t len; /* 8 オクテット単位の長さ。ただし、 198 * このオプションヘッダ全体のオクテット数を 199 * 8 で割った値の - 1 が入る。 200 */ 201 uint8_t type; /* 経路制御タイプ */ 202 uint8_t segleft; /* セグメントの残り */ 222 203 } __attribute__((packed, aligned(2)))T_IP6_RT_HDR; 223 204 224 205 /* 225 * ã¿ã¤ã 0 çµè·¯å¶å¾¡ããã206 * タイプ 0 経路制御ヘッダ 226 207 */ 227 208 228 209 typedef struct t_ip6_rt0_hdr { 229 210 uint8_t next; /* Next Header */ 230 uint8_t len; /* 8 ãªã¯ãããåä½ã®é·ãããã ãã 231 * ãã®ãªãã·ã§ã³ãããå 232 ¨ä½ã®ãªã¯ãããæ°ã 233 * 8 ã§å²ã£ãå¤ã® - 1 ãå 234 ¥ãã 235 */ 236 uint8_t type; /* çµè·¯å¶å¾¡ã¿ã¤ã */ 237 uint8_t segleft; /* ã»ã°ã¡ã³ãã®æ®ã */ 238 uint32_t reserved; /* äºç´ */ 211 uint8_t len; /* 8 オクテット単位の長さ。ただし、 212 * このオプションヘッダ全体のオクテット数を 213 * 8 で割った値の - 1 が入る。 214 */ 215 uint8_t type; /* 経路制御タイプ */ 216 uint8_t segleft; /* セグメントの残り */ 217 uint32_t reserved; /* 予約 */ 239 218 } __attribute__((packed, aligned(2)))T_IP6_RT0_HDR; 240 219 241 220 /* 242 * æçããã221 * 断片ヘッダ 243 222 */ 244 223 … … 246 225 uint8_t next; /* Next Header */ 247 226 uint8_t reserved; 248 uint16_t off_flag; /* ãªãã»ããã¨ãã©ã°*/249 uint32_t ident; /* åå²èå¥å*/227 uint16_t off_flag; /* オフセットとフラグ */ 228 uint32_t ident; /* 分割識別子 */ 250 229 } __attribute__((packed, aligned(2)))T_IP6_FRAG_HDR; 251 230 252 /* æçãããã®ãªãã»ããã¨ãã©ã°*/231 /* 断片ヘッダのオフセットとフラグ */ 253 232 254 233 #ifdef _NET_CFG_BYTE_ORDER … … 256 235 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN 257 236 258 #define IP6F_OFF_MASK UINT_C(0xfff8) /* ãªãã»ãããååºããã¹ã¯*/259 #define IP6F_RESERVED_MASK UINT_C(0x0006) /* äºç´ãååºããã¹ã¯*/260 #define IP6F_MORE_FRAG UINT_C(0x0001) /* ä¸éãã©ã°ã¡ã³ã*/237 #define IP6F_OFF_MASK UINT_C(0xfff8) /* オフセットを取出すマスク */ 238 #define IP6F_RESERVED_MASK UINT_C(0x0006) /* 予約を取出すマスク */ 239 #define IP6F_MORE_FRAG UINT_C(0x0001) /* 中間フラグメント */ 261 240 262 241 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN 263 242 264 #define IP6F_OFF_MASK UINT_C(0xf8ff) /* ãªãã»ãããååºããã¹ã¯*/265 #define IP6F_RESERVED_MASK UINT_C(0x0600) /* äºç´ãååºããã¹ã¯*/266 #define IP6F_MORE_FRAG UINT_C(0x0100) /* ä¸éãã©ã°ã¡ã³ã*/243 #define IP6F_OFF_MASK UINT_C(0xf8ff) /* オフセットを取出すマスク */ 244 #define IP6F_RESERVED_MASK UINT_C(0x0600) /* 予約を取出すマスク */ 245 #define IP6F_MORE_FRAG UINT_C(0x0100) /* 中間フラグメント */ 267 246 268 247 #endif /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */ … … 271 250 272 251 /* 273 * å¶éå¤274 */ 275 276 #define IPV6_MAXHLIM UINT_C(255) /* ããããªãããã®æ大å¤*/277 #define IPV6_DEFHLIM UINT_C(64) /* ããããªãããã®è¦å®å¤*/278 #define IPV6_FRAGTTL UINT_C(60) /* åå²ããããã¼ã¿ã°ã©ã ã®çåæéï¼ç§ï¼*/279 #define IPV6_MMTU UINT_C(1280) /* æå° MTUããã¤ãã¼ã (1024) + ããã(256) */280 #define IPV6_MAXPACKET UINT_C(65535) /* ã¸ã£ã³ããã¤ãã¼ããé¤ãæ大ãã±ãããµã¤ãº*/281 282 /* 283 * IPv6 㨠IPv4 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã284 */ 285 286 /* 287 * ããããªãããã®è¦å®å¤ã¯ãã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ããã252 * 制限値 253 */ 254 255 #define IPV6_MAXHLIM UINT_C(255) /* ホップリミットの最大値 */ 256 #define IPV6_DEFHLIM UINT_C(64) /* ホップリミットの規定値 */ 257 #define IPV6_FRAGTTL UINT_C(60) /* 分割されたデータグラムの生存時間(秒) */ 258 #define IPV6_MMTU UINT_C(1280) /* 最小 MTU。ペイロード (1024) + ヘッダ (256) */ 259 #define IPV6_MAXPACKET UINT_C(65535) /* ジャンボペイロードを除く最大パケットサイズ */ 260 261 /* 262 * IPv6 と IPv4 をコンパイル時に選択するためのマクロ 263 */ 264 265 /* 266 * ホップリミットの規定値は、ルータ通知により変更されることがある 288 267 */ 289 268 290 269 #if NUM_ND6_DEF_RTR_ENTRY > 0 291 270 292 /* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤*/271 /* ルータ通知を受信する場合は、通知された値 */ 293 272 294 273 #define IP6_DEFTTL ip6_defhlim … … 296 275 #else /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */ 297 276 298 /* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤*/277 /* ルータ通知を受信しない場合の値は既定値 */ 299 278 300 279 #define IP6_DEFTTL IPV6_DEFHLIM … … 302 281 #endif /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */ 303 282 304 /* IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã*/283 /* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */ 305 284 306 285 #ifdef _IP6_CFG -
azure_iot_hub/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
r388 r389 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 * å¤æ°119 * 変数 132 120 */ 133 121 … … 135 123 136 124 /* 137 * SNMP 㮠管çæ 138 å ±ãã¼ã¹ (MIB) 125 * SNMP の 管理情報ベース (MIB) 139 126 */ 140 127 … … 144 131 145 132 /* 146 * é¢æ°133 * 関数 147 134 */ 148 135 … … 159 146 160 147 /* 161 * icmp_echo -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç162 * 163 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã148 * icmp_echo -- エコー要求を受信したときの処理 149 * 150 * input には IF ヘッダと IP ヘッダも含まれている。 164 151 */ 165 152 … … 173 160 NET_COUNT_MIB(icmp_stats.icmpInEchos, 1); 174 161 175 /* IPv4 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯å¿çããªãã*/162 /* IPv4 アドレスが未定義の時は応答しない。*/ 176 163 if (!IN4_IS_ADDR_ANY(&ifp->in4_ifaddr.addr)) { 177 164 178 165 /* 179 * ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (8) ãã180 * ã¨ã³ã¼å¿ç (0) ã«å¤æ´ãã¦éãè¿ãã166 * メッセージの型をエコー要求 (8) から 167 * エコー応答 (0) に変更して送り返す。 181 168 */ 182 169 … … 185 172 186 173 /* 187 * å®å 188 ã¢ãã¬ã¹ã¯åä¿¡ããã¡ãã»ã¼ã¸ã®éä¿¡å 189 ã¢ãã¬ã¹ã 190 * éä¿¡å 191 ã¢ãã¬ã¹ã¯èª IPv4 ã¢ãã¬ã¹ã 174 * 宛先アドレスは受信したメッセージの送信元アドレス。 175 * 送信元アドレスは自 IPv4 アドレス。 192 176 */ 193 177 ip4h = GET_IP4_HDR(input); … … 195 179 ip4h->src = htonl(ifp->in4_ifaddr.addr); 196 180 197 /* ãã§ãã¯ãµã ãè¨ç®ããã*/181 /* チェックサムを計算する。*/ 198 182 icmp4h->sum = 0; 199 183 icmp4h->sum = in_cksum(icmp4h, 200 184 (uint_t)(((input->len - GET_IF_IP4_HDR_SIZE(input)) + 3) >> 2 << 2)); 201 185 202 /* éä¿¡ããã*/186 /* 送信する。*/ 203 187 NET_COUNT_ICMP4(net_count_icmp4.out_octets, 204 188 input->len - GET_IF_IP4_HDR_SIZE(input)); … … 211 195 212 196 /* 213 * icmp_unreach -- ICMP4_UNREACH ãåä¿¡ããã¨ãã®å¦ç197 * icmp_unreach -- ICMP4_UNREACH を受信したときの処理 214 198 */ 215 199 … … 246 230 error = code2error[code]; 247 231 248 /* æçµãããã TCP/UDP ã®ã¿å¯¾å¿ããã*/232 /* 最終ヘッダが TCP/UDP のみ対応する。*/ 249 233 if (ip4h->proto == IPPROTO_TCP || ip4h->proto == IPPROTO_UDP) { 250 234 … … 275 259 276 260 /* 277 * icmp_redirect -- åãç´ãã¡ãã»ã¼ã¸ãåä¿¡ããã¨ãã®å¦ç278 * 279 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã261 * icmp_redirect -- 向け直しメッセージを受信したときの処理 262 * 263 * input には IF ヘッダと IP ヘッダも含まれている。 280 264 */ 281 265 … … 291 275 292 276 /* 293 * å 294 容ãã§ãã¯ã以ä¸ã®å ´åã¯ã¨ã©ã¼ 277 * 内容チェック、以下の場合はエラー 295 278 * 296 * ã»ICMP ã³ã¼ãããICMP4_REDIRECT_PORT_AND_HOST (3) 以ä¸297 * ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå°é·ããçã (IP ããã + ICMP ããã + IP ããã+ 8)298 * ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æ大é·ããçã299 * ã»279 * ・ICMP コードが、ICMP4_REDIRECT_PORT_AND_HOST (3) 以上 280 * ・データグラム長が、ICMP の最小長より短い (IP ヘッダ + ICMP ヘッダ + IP ヘッダ + 8) 281 * ・データグラム長が、ICMP の最大長より短い 282 * ・ 300 283 */ 301 284 if (icmp4h->code > ICMP4_REDIRECT_PORT_AND_HOST || … … 313 296 314 297 /* 315 * icmp_input -- ICMP ã®å 316 ¥åé¢æ° 317 * 318 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã 298 * icmp_input -- ICMP の入力関数 299 * 300 * input には IF ヘッダと IP ヘッダも含まれている。 319 301 */ 320 302 … … 331 313 NET_COUNT_ICMP4(net_count_icmp4.in_packets, 1); 332 314 333 /* ICMP ãããã®é·ãããã§ãã¯ããã*/315 /* ICMP ヘッダの長さをチェックする。*/ 334 316 if (input->len < IF_IP4_ICMP4_HDR_SIZE) { 335 317 NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1); … … 340 322 icmp4h = (T_ICMP4_HDR *)(input->buf + *offp); 341 323 342 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/324 /* 4 オクテット境界のデータ長 */ 343 325 len = input->len - *offp; 344 326 align = (len + 3) >> 2 << 2; 345 327 346 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/328 /* 4 オクテット境界までパディングで埋める。*/ 347 329 if (align > len) 348 330 memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len)); 349 331 350 /* ãã§ãã¯ãµã ãè¨ç®ããã*/332 /* チェックサムを計算する。*/ 351 333 if (in_cksum(icmp4h, align) != 0) { 352 334 NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1); … … 354 336 } 355 337 356 /* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/338 /* メッセージの型により分岐する。*/ 357 339 switch (icmp4h->type) { 358 340 case ICMP4_ECHO_REQUEST: … … 409 391 410 392 /* 411 * icmp_error -- ICMP ã¨ã©ã¼éä¿¡é¢æ°ã412 * 413 * input ã«ã¯ IF ããã㨠IP ããããå«ã¾ãã¦ããã414 * icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ã415 * å¼åºãå´ã§ãéæ¾ãã¦ããçµäºããã393 * icmp_error -- ICMP エラー送信関数。 394 * 395 * input には IF ヘッダと IP ヘッダも含まれている。 396 * icmp_error では、ネットワークバッファ input を返却しないので、 397 * 呼出し側で、開放してから終了する。 416 398 */ 417 399 … … 428 410 ip4hl = GET_IP4_HDR_SIZE(input); 429 411 430 /* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/412 /* 送信用の IP データグラムを獲得する。*/ 431 413 if (input->len - ip4hl < 8) 432 414 len = input->len - ip4hl; … … 440 422 return; 441 423 442 /* ICMP ããããè¨å®ããã*/424 /* ICMP ヘッダを設定する。*/ 443 425 icmp4h = GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET); 444 426 icmp4h->type = ICMP4_UNREACH; … … 446 428 icmp4h->data.addr= 0; 447 429 448 /* ã¨ã©ã¼ãçºçãã IP ããã㨠ãã¼ã¿ 8 ãªã¯ããããã³ãã¼ããã*/430 /* エラーが発生した IP ヘッダと データ 8 オクテットをコピーする。*/ 449 431 memcpy(GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET), 450 432 GET_IP4_HDR(input), (size_t)(ip4hl + len)); 451 433 452 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/434 /* 4 オクテット境界のデータ長 */ 453 435 align = (len + 3) >> 2 << 2; 454 436 455 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/437 /* 4 オクテット境界までパディングで埋める。*/ 456 438 if (align > len) 457 439 memset((uint8_t*)GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + ip4hl + len, 458 440 0, (size_t)(align - len)); 459 441 460 /* ãã§ãã¯ãµã ãè¨ç®ããã*/442 /* チェックサムを計算する。*/ 461 443 icmp4h->sum = 0; 462 444 icmp4h->sum = in_cksum(icmp4h, (uint_t)(ICMP4_HDR_SIZE + ip4hl + align)); 463 445 464 /* éä¿¡ããã*/446 /* 送信する。*/ 465 447 NET_COUNT_ICMP4(net_count_icmp4.out_octets, 466 448 output->len - GET_IF_IP4_HDR_SIZE(output)); -
azure_iot_hub/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
r388 r389 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 * ICMP ãããã®å®ç¾©ãRFC 79276 * ICMP ヘッダの定義、RFC 792 89 77 */ 90 78 91 79 typedef struct t_icmp_hdr { 92 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/93 uint8_t code; /* ãµãå*/94 uint16_t sum; /* ãã§ãã¯ãµã*/80 uint8_t type; /* メッセージの型 */ 81 uint8_t code; /* サブ型 */ 82 uint16_t sum; /* チェックサム */ 95 83 union { 96 84 struct id_seq { … … 116 104 117 105 /* 118 * ã¡ãã»ã¼ã¸ã®å106 * メッセージの型 119 107 */ 120 108 121 #define ICMP4_ECHO_REPLY UINT_C(0) /* ã¨ã³ã¼å¿ç*/122 #define ICMP4_UNREACH UINT_C(3) /* ã¨ã©ã¼*/123 #define ICMP4_SOURCE_QUENCH UINT_C(4) /* çºä¿¡å¶é*/124 #define ICMP4_REDIRECT UINT_C(5) /* æ¹åå¤æ´*/125 #define ICMP4_ECHO_REQUEST UINT_C(8) /* ã¨ã³ã¼è¦æ±*/126 #define ICMP4_TIME_EXCEEDED UINT_C(11) /* çºä¿¡å¶é*/127 #define ICMP4_PARAMETER UINT_C(12) /* ãã©ã¡ã¼ã¿ç°å¸¸*/128 #define ICMP4_TIME_REQUEST UINT_C(13) /* ã¿ã¤ã ã¹ã¿ã³ãè¦æ±*/129 #define ICMP4_TIME_REPLY UINT_C(14) /* ã¿ã¤ã ã¹ã¿ã³ãå¿ç*/130 #define ICMP4_MASK_REQUEST UINT_C(17) /* ã¢ãã¬ã¹ãã¹ã¯è¦æ±*/131 #define ICMP4_MASK_REPLY UINT_C(18) /* ã¢ãã¬ã¹ãã¹ã¯å¿ç*/109 #define ICMP4_ECHO_REPLY UINT_C(0) /* エコー応答 */ 110 #define ICMP4_UNREACH UINT_C(3) /* エラー */ 111 #define ICMP4_SOURCE_QUENCH UINT_C(4) /* 発信制限 */ 112 #define ICMP4_REDIRECT UINT_C(5) /* 方向変更 */ 113 #define ICMP4_ECHO_REQUEST UINT_C(8) /* エコー要求 */ 114 #define ICMP4_TIME_EXCEEDED UINT_C(11) /* 発信制限 */ 115 #define ICMP4_PARAMETER UINT_C(12) /* パラメータ異常 */ 116 #define ICMP4_TIME_REQUEST UINT_C(13) /* タイムスタンプ要求 */ 117 #define ICMP4_TIME_REPLY UINT_C(14) /* タイムスタンプ応答 */ 118 #define ICMP4_MASK_REQUEST UINT_C(17) /* アドレスマスク要求 */ 119 #define ICMP4_MASK_REPLY UINT_C(18) /* アドレスマスク応答 */ 132 120 133 121 /* 134 * ãµãå122 * サブ型 135 123 */ 136 124 137 125 /* ICMP4_UNREACH (3) */ 138 126 139 #define ICMP4_UNREACH_NET UINT_C(0) /* ãããã¯ã¼ã¯*/140 #define ICMP4_UNREACH_HOST UINT_C(1) /* ãã¹ã*/141 #define ICMP4_UNREACH_PROTOCOL UINT_C(2) /* ãããã³ã«*/142 #define ICMP4_UNREACH_PORT UINT_C(3) /* ãã¼ã*/143 #define ICMP4_UNREACH_FLAG UINT_C(4) /* åå²*/144 #define ICMP4_UNREACH_SRC_FAIL UINT_C(5) /* ã½ã¼ã¹çµè·¯*/145 #define ICMP4_UNREACH_NET_UNKNOWN UINT_C(6) /* ãããã¯ã¼ã¯ä¸æ*/146 #define ICMP4_UNREACH_HOST_UNKNOWN UINT_C(7) /* ãã¹ãä¸æ*/147 #define ICMP4_UNREACH_ISOLATED UINT_C(8) /* åé¢*/127 #define ICMP4_UNREACH_NET UINT_C(0) /* ネットワーク */ 128 #define ICMP4_UNREACH_HOST UINT_C(1) /* ホスト */ 129 #define ICMP4_UNREACH_PROTOCOL UINT_C(2) /* プロトコル */ 130 #define ICMP4_UNREACH_PORT UINT_C(3) /* ポート */ 131 #define ICMP4_UNREACH_FLAG UINT_C(4) /* 分割 */ 132 #define ICMP4_UNREACH_SRC_FAIL UINT_C(5) /* ソース経路 */ 133 #define ICMP4_UNREACH_NET_UNKNOWN UINT_C(6) /* ネットワーク不明 */ 134 #define ICMP4_UNREACH_HOST_UNKNOWN UINT_C(7) /* ホスト不明 */ 135 #define ICMP4_UNREACH_ISOLATED UINT_C(8) /* 分離 */ 148 136 #define ICMP4_UNREACH_NET_PROHIB UINT_C(9) /* */ 149 137 #define ICMP4_UNREACH_HOST_PROHIB UINT_C(10) /* */ 150 #define ICMP4_UNREACH_TOS_NET UINT_C(11) /* ãããã¯ã¼ã¯ã¸ã®ä¸æ£TOS*/151 #define ICMP4_UNREACH_TOS_HOST UINT_C(12) /* ãã¹ãã¸ã®ä¸æ£TOS */138 #define ICMP4_UNREACH_TOS_NET UINT_C(11) /* ネットワークへの不正TOS*/ 139 #define ICMP4_UNREACH_TOS_HOST UINT_C(12) /* ホストへの不正TOS */ 152 140 #define ICMP4_UNREACH_FILTER_PROHIB UINT_C(13) /* */ 153 141 #define ICMP4_UNREACH_HOST_PRECEDENCE UINT_C(14) /* */ … … 156 144 /* ICMP4_REDIRECT (5) */ 157 145 158 #define ICMP4_REDIRECT_NET UINT_C(0) /* ãããã¯ã¼ã¯*/159 #define ICMP4_REDIRECT_HOST UINT_C(1) /* ãã¹ã*/160 #define ICMP4_REDIRECT_PORT_AND_NET UINT_C(2) /* ãã¼ãçªå·ã¨ããã*/161 #define ICMP4_REDIRECT_PORT_AND_HOST UINT_C(3) /* ãã¼ãçªå·ã¨ãã¹ã*/146 #define ICMP4_REDIRECT_NET UINT_C(0) /* ネットワーク */ 147 #define ICMP4_REDIRECT_HOST UINT_C(1) /* ホスト */ 148 #define ICMP4_REDIRECT_PORT_AND_NET UINT_C(2) /* ポート番号とネット */ 149 #define ICMP4_REDIRECT_PORT_AND_HOST UINT_C(3) /* ポート番号とホスト */ 162 150 163 151 /* 164 * å 165 ¨åå¤æ° 152 * 全域変数 166 153 */ 167 154 168 155 /* 169 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã156 * 関数シミュレーションマクロ 170 157 */ 171 158 … … 177 164 178 165 /* 179 * é¢æ°166 * 関数 180 167 */ 181 168 … … 189 176 190 177 /* 191 * TINET ç¬èªAPI178 * TINET 独自 API 192 179 */ 193 180 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 239 227 NET_COUNT_IGMP(net_count_igmp.in_packets, 1); 240 228 241 /* ICMP ãããã®é·ãããã§ãã¯ããã*/229 /* ICMP ヘッダの長さをチェックする。*/ 242 230 if (input->len < IF_IP4_IGMP_HDR_SIZE) { 243 231 NET_COUNT_IGMP(net_count_igmp.in_err_packets, 1); … … 248 236 igmph = (T_IGMPV2_HDR *)(input->buf + *offp); 249 237 250 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/238 /* 4 オクテット境界のデータ長 */ 251 239 len = input->len - *offp; 252 240 align = (len + 3) >> 2 << 2; 253 241 254 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/242 /* 4 オクテット境界までパディングで埋める。*/ 255 243 if (align > len) 256 244 memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len)); 257 245 258 /* ãã§ãã¯ãµã ãè¨ç®ããã*/246 /* チェックサムを計算する。*/ 259 247 if (in_cksum(igmph, align) != 0) { 260 248 NET_COUNT_IGMP(net_count_igmp.in_err_packets, 1); … … 262 250 } 263 251 264 /* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/252 /* メッセージの型により分岐する。*/ 265 253 switch (igmph->type) { 266 254 case IGMP_MEMBERSHIP_QUERY: … … 268 256 ret = false; 269 257 270 /* åå ä¸ã®ã°ã«ã¼ãã¢ãã¬ã¹ããã®ã¯ã¨ãªã¼ã®å ´å*/258 /* 参加中のグループアドレスからのクエリーの場合 */ 271 259 syscall(wai_sem(SEM_IGMP_GROUP_LOCK)); 272 260 … … 283 271 284 272 if (ret) { 285 /* ã¡ã³ãã¼ã·ãããªãã¼ããéä¿¡*/273 /* メンバーシップリポートを送信 */ 286 274 igmp_send_report_v2(ip4h->src); 287 275 } … … 305 293 return false; 306 294 307 /* IGMP ããããè¨å®ããã*/295 /* IGMP ヘッダを設定する。*/ 308 296 igmph = GET_IGMPV2_HDR(output, IF_IP4_IGMP_HDR_OFFSET); 309 297 igmph->type = IGMP_MEMBERSHIP_REPORT_V2; … … 311 299 igmph->addr = htonl(dst); 312 300 313 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/301 /* 4 オクテット境界のデータ長 */ 314 302 align = (len + 3) >> 2 << 2; 315 303 316 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/304 /* 4 オクテット境界までパディングで埋める。*/ 317 305 if (align > len) 318 306 memset((uint8_t*)GET_IGMP_SDU(output, IF_IP4_IGMP_HDR_OFFSET) + len, 319 307 0, (size_t)(align - len)); 320 308 321 /* ãã§ãã¯ãµã ãè¨ç®ããã*/309 /* チェックサムを計算する。*/ 322 310 igmph->sum = 0; 323 311 igmph->sum = in_cksum(igmph, (uint_t)(IGMP_HDR_SIZE + align)); 324 312 325 /* éä¿¡ããã*/313 /* 送信する。*/ 326 314 NET_COUNT_IGMP(net_count_igmp.out_octets, 327 315 output->len - GET_IF_IP4_HDR_SIZE(output)); … … 335 323 336 324 /* 337 * igmp_timer -- IGMP å 338 ±éã¿ã¤ãã¼ 325 * igmp_timer -- IGMP 共通タイマー 339 326 */ 340 327 static void igmp_timer(void *ignore) … … 367 354 368 355 /* 369 * igmp_init -- IGMP æ©è½ãåæåããã356 * igmp_init -- IGMP 機能を初期化する。 370 357 */ 371 358 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 * IGMP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«35 * IGMP コンフィギュレーションファイル 48 36 */ 49 37 50 38 #if defined(_IP4_CFG) && defined(SUPPORT_IGMP) 51 39 52 /* IGMP ã°ã«ã¼ãæ´æ°ç¨ã»ããã©*/40 /* IGMP グループ更新用セマフォ */ 53 41 54 42 CRE_SEM(SEM_IGMP_GROUP_LOCK, { TA_TPRI, 1, 1 }); -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 47 35 #define _IP_IGMP_H_ 48 36 49 #define NUM_IGMP_ENTRY 5 /* ãã«ããã£ã¹ãã°ã«ã¼ãã®ã¨ã³ããªæ°*/37 #define NUM_IGMP_ENTRY 5 /* マルチキャストグループのエントリ数 */ 50 38 51 39 /* 52 * IGMPv1 ãããã®å®ç¾©ãRFC 111240 * IGMPv1 ヘッダの定義、RFC 1112 53 41 */ 54 42 55 43 typedef struct t_igmpv1_hdr 56 44 { 57 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/58 uint8_t unused; /* æªä½¿ç¨*/59 uint16_t sum; /* ãã§ãã¯ãµã*/60 T_IN4_ADDR addr; /* ã°ã«ã¼ãã¢ãã¬ã¹*/45 uint8_t type; /* メッセージの型 */ 46 uint8_t unused; /* 未使用 */ 47 uint16_t sum; /* チェックサム */ 48 T_IN4_ADDR addr; /* グループアドレス */ 61 49 } __attribute__((packed)) T_IGMPV1_HDR; 62 50 63 51 /* 64 * IGMPv2 ãããã®å®ç¾©ãRFC 223652 * IGMPv2 ヘッダの定義、RFC 2236 65 53 */ 66 54 67 55 typedef struct t_igmpv2_hdr 68 56 { 69 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/70 uint8_t time; /* æ大å¿çæé*/71 uint16_t sum; /* ãã§ãã¯ãµã*/72 T_IN4_ADDR addr; /* ã°ã«ã¼ãã¢ãã¬ã¹*/57 uint8_t type; /* メッセージの型 */ 58 uint8_t time; /* 最大応答時間 */ 59 uint16_t sum; /* チェックサム */ 60 T_IN4_ADDR addr; /* グループアドレス */ 73 61 } __attribute__((packed)) T_IGMPV2_HDR; 74 62 75 63 typedef struct t_igmpv3_query_hdr 76 64 { 77 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/78 uint8_t time; /* æ大å¿çæé*/79 uint16_t sum; /* ãã§ãã¯ãµã*/80 T_IN4_ADDR grpaddr; /* ã°ã«ã¼ãã¢ãã¬ã¹*/81 uint8_t sqrv; /* S ãã©ã°ãQuerier Robustness Value */65 uint8_t type; /* メッセージの型 */ 66 uint8_t time; /* 最大応答時間 */ 67 uint16_t sum; /* チェックサム */ 68 T_IN4_ADDR grpaddr; /* グループアドレス */ 69 uint8_t sqrv; /* Sフラグ、Querier Robustness Value */ 82 70 uint8_t qqic; /* Qurier's Query Interval Code */ 83 uint16_t num; /* éä¿¡å 84 ã®æ° */ 85 T_IN4_ADDR sdraddr; /* éä¿¡å 86 ã¢ãã¬ã¹ */ 71 uint16_t num; /* 送信元の数 */ 72 T_IN4_ADDR sdraddr; /* 送信元アドレス */ 87 73 } __attribute__((packed)) T_IGMPV3Q_HDR; 88 74 89 75 typedef struct t_igmp_group_record 90 76 { 91 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å */ 92 uint8_t len; /* è£å©ãã¼ã¿é· */ 93 uint16_t num; /* éä¿¡å 94 ã®æ° */ 95 T_IN4_ADDR grpaddr; /* ã°ã«ã¼ãã¢ãã¬ã¹ */ 96 T_IN4_ADDR sdraddr; /* éä¿¡å 97 ã¢ãã¬ã¹ */ 98 /* è£å©ãã¼ã¿ */ 77 uint8_t type; /* メッセージの型 */ 78 uint8_t len; /* 補助データ長 */ 79 uint16_t num; /* 送信元の数 */ 80 T_IN4_ADDR grpaddr; /* グループアドレス */ 81 T_IN4_ADDR sdraddr; /* 送信元アドレス */ 82 /* 補助データ */ 99 83 } __attribute__((packed)) T_IGMP_GROUP_RECORD; 100 84 101 85 typedef struct t_igmpv3_report_hdr 102 86 { 103 uint8_t type; /* ã¡ãã»ã¼ã¸ã®å*/104 uint8_t rsv1; /* äºç´*/105 uint16_t sum; /* ãã§ãã¯ãµã*/106 uint16_t rsv2; /* äºç´*/107 uint16_t num; /* ã°ã«ã¼ãã¬ã³ã¼ãã®æ°*/108 T_IGMP_GROUP_RECORD record; /* ã°ã«ã¼ãã¬ã³ã¼ã*/87 uint8_t type; /* メッセージの型 */ 88 uint8_t rsv1; /* 予約 */ 89 uint16_t sum; /* チェックサム */ 90 uint16_t rsv2; /* 予約 */ 91 uint16_t num; /* グループレコードの数 */ 92 T_IGMP_GROUP_RECORD record; /* グループレコード */ 109 93 } __attribute__((packed)) T_IGMPV3R_HDR; 110 94 … … 121 105 122 106 /* 123 * ã¡ãã»ã¼ã¸ã®å107 * メッセージの型 124 108 */ 125 109 126 #define IGMP_MEMBERSHIP_QUERY 0x11 /* ã¡ã³ãã¼ã·ããã¯ã¨ãªã¼*/127 #define IGMP_MEMBERSHIP_REPORT 0x12 /* ã¡ã³ãã¼ã·ããã¬ãã¼ã*/128 #define IGMP_MEMBERSHIP_REPORT_V2 0x16 /* ã¡ã³ãã¼ã·ããã¬ãã¼ã*/129 #define IGMP_LEAVE_GROUP 0x17 /* ãªã¼ãã°ã«ã¼ã*/130 #define IGMP_MEMBERSHIP_REPORT_V3 0x22 /* ã¡ã³ãã¼ã·ããã¬ãã¼ã*/110 #define IGMP_MEMBERSHIP_QUERY 0x11 /* メンバーシップクエリー */ 111 #define IGMP_MEMBERSHIP_REPORT 0x12 /* メンバーシップレポート */ 112 #define IGMP_MEMBERSHIP_REPORT_V2 0x16 /* メンバーシップレポート */ 113 #define IGMP_LEAVE_GROUP 0x17 /* リーブグループ */ 114 #define IGMP_MEMBERSHIP_REPORT_V3 0x22 /* メンバーシップレポート */ 131 115 132 116 /* 133 * UDP é信端ç¹ãªãã·ã§ã³117 * UDP通信端点オプション 134 118 */ 135 119 … … 164 148 165 149 /* 166 * IGMP ã°ã«ã¼ãã¨ã³ããª150 * IGMP グループエントリ 167 151 */ 168 152 169 153 typedef struct igmp_entry 170 154 { 171 int16_t timer; /* éä¿¡ã¾ã§ã®æé[ç§] */172 int16_t resptime; /* æ大å¿çæé[ç§] */173 T_IN4_ADDR ip_addr; /* IP ã¢ãã¬ã¹*/155 int16_t timer; /* 送信までの時間[秒] */ 156 int16_t resptime; /* 最大応答時間[秒] */ 157 T_IN4_ADDR ip_addr; /* IP アドレス */ 174 158 } T_IGMP_ENTRY; 175 159 -
azure_iot_hub/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
r388 r389 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$ … … 141 129 142 130 /* 143 * å¤æ°131 * 変数 144 132 */ 145 133 … … 147 135 148 136 /* 149 * SNMP 㮠管çæ 150 å ±ãã¼ã¹ (MIB) 137 * SNMP の 管理情報ベース (MIB) 151 138 */ 152 139 … … 158 145 159 146 /* 160 * ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼147 * データグラム再構成キュー 161 148 */ 162 149 … … 165 152 166 153 /* 167 * é¢æ°154 * 関数 168 155 */ 169 156 … … 172 159 173 160 /* 174 * ip_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ãç²å¾ããã161 * ip_get_frag_queue -- データグラム再構成キューを獲得する。 175 162 */ 176 163 … … 182 169 183 170 /* 184 * ip_freef -- ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ã解æ¾ããã171 * ip_freef -- データグラム再構成キューを解放する。 185 172 */ 186 173 … … 200 187 201 188 /* 202 * ip_frag_timer -- ãã¼ã¿ã°ã©ã åæ§æ管çã¿ã¤ã189 * ip_frag_timer -- データグラム再構成管理タイマ 203 190 */ 204 191 … … 223 210 224 211 /* 225 * ip_reass -- ãã¼ã¿ã°ã©ã ãåæ§æããã212 * ip_reass -- データグラムを再構成する。 226 213 */ 227 214 … … 247 234 248 235 /* 249 * ID ãIPã¢ãã¬ã¹ãä¸ä½ãããã³ã«ãç°ãªããã©ã°ã¡ã³ãããã¥ã¼ã«æãã°ç ´æ£ããã236 * ID、IPアドレス、上位プロトコルが異なるフラグメントがキューに有れば破棄する。 250 237 */ 251 238 frag = ip_frag_queue[ix]; … … 264 251 NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN], 1); 265 252 266 /* æ°è¦ã® ID ãªããå®å 267 ã¢ãã¬ã¹ãä¿åãã¦ããã¥ã¼ã«ã¤ãªãã*/ 253 /* 新規の ID なら、宛先アドレスを保存して、キューにつなぐ。*/ 268 254 frag_dst [ix] = dst; 269 255 ip_frag_queue[ix] = input; … … 271 257 input = NULL; 272 258 273 /* åæ§æã¿ã¤ã ã¢ã¦ããè¨å®ããã*/259 /* 再構成タイムアウトを設定する。*/ 274 260 ip4h->ttl = IP4_FRAGTTL; 275 261 } 276 262 else { 277 263 278 /* æ£ããä½ç½®ã«æ¿å 279 ¥ããã*/ 264 /* 正しい位置に挿入する。*/ 280 265 prev = NULL; 281 266 while (frag != NULL && … … 294 279 input = NULL; 295 280 296 /* å 297 ¨ã¦ã®ãã©ã°ã¡ã³ããæã£ã¦ããã調ã¹ãã*/ 281 /* 全てのフラグメントが揃っているか調べる。*/ 298 282 off = 0; 299 283 for (frag = ip_frag_queue[ix]; frag != NULL; frag = GET_QIP4_HDR(frag)->next) { 300 284 if ((IP4_FLGOFF_OFF(GET_QIP4_HDR(frag)->flg_off) << 3) != off) { 301 /* éä¸ãæãã¦ãããçµäºããã*/285 /* 途中が抜けていたら終了する。*/ 302 286 syscall(sig_sem(SEM_IP4_FRAG_QUEUE)); 303 287 return NULL; … … 307 291 } 308 292 309 /* å 310 ¨ã¦ã®ãã©ã°ã¡ã³ããæã£ããåæ§æããã*/ 293 /* 全てのフラグメントが揃ったら再構成する。*/ 311 294 if ((GET_QIP4_HDR(prev)->flg_off & IP4_MF) == 0) { 312 295 313 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/296 /* ネットワークバッファを獲得する。*/ 314 297 if (tget_net_buf(&input, IF_IP4_HDR_SIZE + off, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) { 315 298 NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_OK], 1); 316 299 NET_COUNT_MIB(ip_stats.ipReasmOKs, 1); 317 300 318 /* IPv4 ããããè¨å®ããã*/301 /* IPv4 ヘッダを設定する。*/ 319 302 frag = ip_frag_queue[ix]; 320 303 ip4h = GET_IP4_HDR(input); … … 326 309 ip4h->flg_off = ip4h->id = 0; 327 310 328 /* ãã¼ã¿ã°ã©ã ãåæ§æããã*/311 /* データグラムを再構成する。*/ 329 312 off = IP4_HDR_SIZE; 330 313 while (frag != NULL) { … … 340 323 NET_COUNT_MIB(ip_stats.ipReasmFails, 1); 341 324 } 342 /* ãã¥ã¼ã空ã«ããã*/325 /* キューを空にする。*/ 343 326 ip_freef(ix); 344 327 } … … 351 334 352 335 /* 353 * ip_init -- IP ã®åæå336 * ip_init -- IP の初期化 354 337 */ 355 338 … … 361 344 362 345 /* 363 * ip_remove_options -- IPv4 ãããã®ãªãã·ã§ã³ãåé¤ãã以éãåã«è©°ããã346 * ip_remove_options -- IPv4 ヘッダのオプションを削除し、以降を前に詰める。 364 347 */ 365 348 … … 385 368 386 369 /* 387 * ip_input -- IP ã®å 388 ¥åé¢æ° 370 * ip_input -- IP の入力関数 389 371 */ 390 372 391 373 #if defined(SUPPORT_IPSEC) 392 374 /* 393 * TODO: IPsec SPãæ¤ç´¢ãããã±ããããªã¸ã§ã¯ããããã©ããå¤å®ããå¦çãå®è£ 394 ãã 375 * TODO: IPsec SPを検索し、パケットをリジェクトするかどうか判定する処理を実装する 395 376 */ 396 377 #endif /* of defined(SUPPORT_IPSEC) */ … … 408 389 NET_COUNT_MIB(ip_stats.ipInReceives, 1); 409 390 410 /* IP ãããã®é·ãããã§ãã¯ããã*/391 /* IP ヘッダの長さをチェックする。*/ 411 392 if (input->len < IF_IP4_HDR_SIZE) { 412 393 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1); … … 418 399 hlen = GET_IP4_HDR_SIZE(input); 419 400 420 /* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/401 /* バージョンをチェックする。*/ 421 402 if (IP4_VHL_V(ip4h->vhl) != IPV4_VERSION) { 422 403 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_VER], 1); … … 425 406 } 426 407 427 /* IP ãããã®é·ãããã§ãã¯ãããªãã·ã§ã³ã解æããã*/408 /* IP ヘッダの長さをチェックし、オプションを解析する。*/ 428 409 if (hlen > IP4_HDR_SIZE) { 429 410 NET_COUNT_IP4(net_count_ip4[NC_IP4_OPTS], 1); 430 /* %%% ãªãã·ã§ã³ã®è§£æ%%% */431 } 432 433 /* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/411 /* %%% オプションの解析 %%% */ 412 } 413 414 /* データグラム長をチェックする。*/ 434 415 if (ntohs(ip4h->len) > input->len - IF_HDR_SIZE) { 435 416 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1); … … 438 419 } 439 420 440 /* ãããã¯ã¼ã¯ãããã¡ã®é·ãããã¼ã¿ã°ã©ã é·ã«èª¿æ´ããã*/421 /* ネットワークバッファの長さをデータグラム長に調整する。*/ 441 422 input->len = (uint16_t)(ntohs(ip4h->len) + IF_HDR_SIZE); 442 423 443 /* ãã§ãã¯ãµã ããã§ãã¯ããã*/424 /* チェックサムをチェックする。*/ 444 425 if (in_cksum(ip4h, hlen) != 0) { 445 426 NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_CKSUM], 1); … … 448 429 } 449 430 450 /* IP ãããã®é·ãããã§ãã¯ããä¸ä½ã ICMP 以å¤ã¯ãªãã·ã§ã³ãæ¶å»ããã*/431 /* IP ヘッダの長さをチェックし、上位が ICMP 以外はオプションを消去する。*/ 451 432 if (hlen > IP4_HDR_SIZE && ip4h->proto != IPPROTO_ICMP) { 452 433 memset((uint8_t*)ip4h + IP4_HDR_SIZE, 0, hlen - IP4_HDR_SIZE); 453 434 } 454 435 455 /* éä¿¡å 456 ã¢ãã¬ã¹ããã§ãã¯ããã*/ 436 /* 送信元アドレスをチェックする。*/ 457 437 src = ntohl(ip4h->src); 458 438 bc = (ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask; … … 476 456 #endif /* of #ifdef SUPPORT_LOOP */ 477 457 478 /* ãã¦å 479 ã¢ãã¬ã¹ããã§ãã¯ããã*/ 458 /* あて先アドレスをチェックする。*/ 480 459 dst = ntohl(ip4h->dst); 481 460 … … 483 462 484 463 /* 485 * DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ããã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©ã®486 * å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã464 * DHCP_CFG が定義されているときは、ローカルアドレスが未定義の 465 * 場合もデータグラムを受信する。 487 466 */ 488 467 … … 529 508 #ifdef IP4_CFG_FRAGMENT 530 509 531 /* åå²ããã¦ããããã§ãã¯ããã*/510 /* 分割されているかチェックする。*/ 532 511 if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) { 533 512 if ((input = ip_reass(ip4h, input)) == NULL) … … 537 516 #else /* of #ifdef IP4_CFG_FRAGMENT */ 538 517 539 /* åå²ããã¦ããããã§ãã¯ããã*/518 /* 分割されているかチェックする。*/ 540 519 if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) { 541 520 T_IN4_ADDR src; … … 555 534 556 535 #if defined(SUPPORT_IPSEC) 557 /* ããã§ipsec4_in_rejectãå®è¡ãã*/536 /* ここでipsec4_in_rejectを実行する */ 558 537 if ((ip4h->proto != IPPROTO_ESP) && ipsec4_in_reject (input)) { 559 538 goto buf_rel; … … 561 540 #endif /* of #if defined(SUPPORT_IPSEC) */ 562 541 563 /* ãããã³ã«ãé¸æãã*/542 /* プロトコルを選択する */ 564 543 switch (ip4h->proto) { 565 544 … … 607 586 NET_COUNT_MIB(ip_stats.ipInUnknownProtos, 1); 608 587 609 /* ãã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/588 /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/ 610 589 if (dst == ifp->in4_ifaddr.addr) { 611 590 T_IN4_ADDR src; … … 616 595 } 617 596 /* 618 * icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§619 * éæ¾ãã¦ããçµäºããã597 * icmp_error では、ネットワークバッファ input を返却しないので 598 * 開放してから終了する。 620 599 */ 621 600 break; -
azure_iot_hub/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
r388 r389 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 * IP output -- IP ã®åºåé¢æ°126 * 127 * 注æ: ãã¼ã¸ã§ã³ã¨ãããé·ã¯ä¸ä½å±¤ã§è¨å®ããã113 * IP output -- IP の出力関数 114 * 115 * 注意: バージョンとヘッダ長は上位層で設定する。 128 116 */ 129 117 … … 144 132 145 133 #ifdef SUPPORT_IPSEC 146 /* XXX: IPsec ã®å¦çã¯ãã±ããæçåã®åã«è¡ããã*/147 148 /* SPD ãåå¾ãã*/134 /* XXX: IPsecの処理はパケット断片化の前に行われる */ 135 136 /* SPDを取得する */ 149 137 sp = ipsec4_getpolicybyaddr(output, IPSEC_DIR_OUTBOUND, &ipsec_error); 150 138 if (sp==NULL) { … … 153 141 } 154 142 155 /* ããªã·ããã§ãã¯ãã*/143 /* ポリシをチェックする*/ 156 144 #if 0 157 145 switch (sp->policy) { … … 165 153 166 154 case IPSEC_POLICY_IPSEC: 167 /* XXX: SH2 ã§ã¯ããã§illegal Instructionãçºçãããã³ã³ãã¤ã©ã®ãã°? */155 /* XXX: SH2ではここでillegal Instructionが発生する。コンパイラのバグ? */ 168 156 if (sp->req == NULL) { 169 /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã*/157 /* 鍵交換デーモンに対してSAの取得を要求する */ 170 158 goto bad; 171 159 } … … 173 161 174 162 default: 175 /* ä¸æ£ãªããªã·*/163 /* 不正なポリシ */ 176 164 goto bad; 177 165 break; 178 166 } 179 167 #else /* 0 */ 180 /* XXX: ã³ã³ãã¤ã©ã®ä¸å 181 ·ååé¿ã®ãã switchãããifæã§æ¸ãç´ãã */ 168 /* XXX: コンパイラの不具合回避のため switchをやめif文で書き直した */ 182 169 policy = sp->spinitb->policy; 183 170 … … 188 175 else if (policy == IPSEC_POLICY_IPSEC) { 189 176 if (sp->req == NULL) 190 /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã*/177 /* 鍵交換デーモンに対してSAの取得を要求する */ 191 178 goto bad; 192 179 } else … … 199 186 200 187 state.m = output; 201 /* XXX: ipsec4_output()å 202 ã§ã¯ãip->{len,off}ããããã¯ã¼ã¯ãã¤ããªã¼ãã¨ãã */ 188 /* XXX: ipsec4_output()内では、ip->{len,off}をネットワークバイトオーダとする */ 203 189 error = ipsec4_output (&state, sp, 0 /* flags */ ); 204 190 output = state.m; 205 191 206 192 if (error) { 207 /* net_buf ã¯ipsec4_outputã«ãã£ã¦æ¢ã«è§£æ¾ããã¦ãã*/193 /* net_buf はipsec4_outputによって既に解放されている */ 208 194 switch (error) { 209 195 default: … … 213 199 } 214 200 215 /* ipsec4_outputã«å½±é¿ãåããå¤ãæ´æ°ãã */ 216 /* XXX: å¿ 217 è¦ã? */ 201 /* ipsec4_outputに影響を受けた値を更新する */ 202 /* XXX: 必要か? */ 218 203 219 204 skip_ipsec: … … 227 212 228 213 /* 229 * ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶ 230 ãã¦ããã°ã 231 * åå²ãã¦éä¿¡ããã 214 * データグラムサイズがネットワークの MTU を超えていれば、 215 * 分割して送信する。 232 216 */ 233 217 if (ntohs(ip4h->len) > IF_MTU) { … … 247 231 flen = len - off; 248 232 249 /* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/233 /* データ長は 4 オクテット境界に調整する。 */ 250 234 align = (flen + 3) >> 2 << 2; 251 235 252 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/236 /* ネットワークバッファを獲得する。*/ 253 237 if (tget_net_buf(&frag, align + IF_IP4_HDR_SIZE, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) { 254 238 255 /* ãã©ã°ã¡ã³ããã³ãã¼ããã*/239 /* フラグメントをコピーする。*/ 256 240 memcpy(GET_IP4_SDU(frag), (uint8_t *)ip4h + off, flen); 257 241 258 /* ããããåããã*/242 /* ヘッダを埋める。*/ 259 243 fip4h = GET_IP4_HDR(frag); 260 244 *fip4h = *ip4h; … … 279 263 } 280 264 else { 281 /* ç²å¾ã§ããªããã°ãéä¿¡ããããããã*/265 /* 獲得できなければ、送信をあきらめる。*/ 282 266 syscall(rel_net_buf(output)); 283 267 NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1); … … 294 278 else { 295 279 296 /* ããããåããã*/280 /* ヘッダを埋める。*/ 297 281 ip4h->id = htons(frag_id); 298 282 frag_id ++; … … 312 296 ip4h = GET_IP4_HDR(output); 313 297 314 /* ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶ 315 ãã¦ããã°ã¨ã©ã¼ */ 298 /* データグラムサイズがネットワークの MTU を超えていればエラー */ 316 299 if (ntohs(ip4h->len) > IF_MTU) 317 300 return E_PAR; 318 301 319 /* ããããåããã*/302 /* ヘッダを埋める。*/ 320 303 ip4h->id = htons(frag_id); 321 304 frag_id ++; … … 327 310 328 311 #ifdef ETHER_CFG_MULTICAST 329 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯IPã¢ãã¬ã¹ã¯ãã®ã¾ã¾*/312 /* マルチキャストアドレスの場合はIPアドレスはそのまま */ 330 313 gw = ntohl(ip4h->dst); 331 314 if(!IN4_IS_ADDR_MULTICAST(gw)) -
azure_iot_hub/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
r388 r389 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$ … … 87 75 88 76 /* 89 * IPv4 㨠IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã77 * IPv4 と IPv6 をコンパイル時に選択するためのマクロ 90 78 */ 91 79 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 }); -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 * æ»ãå¤118 * 戻り値 131 119 * 132 * RET_OK æ£å¸¸133 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã134 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã120 * RET_OK 正常 121 * RET_DROP エラー、セグメントを破棄する。 122 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 135 123 */ 136 124 … … 142 130 143 131 /* 144 * é¢æ°132 * 関数 145 133 */ 146 134 … … 159 147 160 148 /* 161 * parse_option -- TCP ãããã®ãªãã·ã§ã³ã解æããã149 * parse_option -- TCP ヘッダのオプションを解析する。 162 150 */ 163 151 … … 214 202 215 203 /* 216 * set_rexmt_timer -- æ°ããå¾å¾©æéãåéããåéã¿ã¤ããæ´æ°ããã204 * set_rexmt_timer -- 新しい往復時間を収集し、再送タイマを更新する。 217 205 */ 218 206 … … 225 213 if (cep->srtt != 0) { 226 214 /* 227 * srtt: å¹³æ»åãããRTT215 * srtt: 平滑化された RTT 228 216 * 229 * è¨æ¸¬ããã RTT (rtt) ã¨ç¾å¨ã®å¹³æ»åããã RTT (srtt) ã®å·® (delta) ãæ±ããã217 * 計測された RTT (rtt) と現在の平滑化された RTT (srtt) の差 (delta) を求める。 230 218 * 231 * delta 㯠2 ãããå·¦ã·ãã ( 4 å) ããå¤ã§ä¿æããã232 * srtt 㯠5 ãããå·¦ã·ãã (32 å) ããå¤ã§ä¿æããã¦ããã219 * delta は 2 ビット左シフト ( 4 倍) した値で保持する。 220 * srtt は 5 ビット左シフト (32 倍) した値で保持されている。 233 221 * 234 222 * delta = rtt / 8 - srtt / 8 235 223 * 236 * æ°ãã srtt ã¯224 * 新しい srtt は 237 225 * 238 226 * srtt = rtt / 8 + srtt * 7 / 8 239 227 * = srtt + (rtt / 8 - srtt / 8) 240 228 * 241 * ã§è¨ç®ããã242 * ãã®ãããrtt ã 2 ãããå·¦ã·ããããsrtt ã (5 - 2) ãããå³ã·ããã㦠delta ãæ±ããã229 * で計算する。 230 * このため、rtt を 2 ビット左シフトし、srtt を (5 - 2) ビット右シフトして delta を求める。 243 231 */ 244 232 delta = ((rtt - 1) << TCP_DELTA_SHIFT) - (cep->srtt >> (TCP_SRTT_SHIFT - TCP_DELTA_SHIFT)); … … 248 236 249 237 /* 250 * delta ã®çµ¶å¯¾å¤ | delta | ãæ±ããã238 * delta の絶対値 | delta | を求める。 251 239 */ 252 240 if (delta < 0) … … 254 242 255 243 /* 256 * rttvar: å¹³æ»åãããåæ£244 * rttvar: 平滑化された分散 257 245 * 258 * rttvar 㯠4 ãããå·¦ã·ãã (16 å) ããå¤ã§ä¿æããã¦ããã246 * rttvar は 4 ビット左シフト (16 倍) した値で保持されている。 259 247 * 260 248 * delta = |delta| / 4 - rttvar / 4 261 249 * 262 * æ°ãã rttvar ã¯250 * 新しい rttvar は 263 251 * 264 252 * rttvar = |delta|/ 4 + rttvar * 3 /4 265 253 * = rttvar + (|delta| / 4 - rttvar / 4) 266 254 * 267 * ã§è¨ç®ããã255 * で計算する。 268 256 */ 269 257 delta -= cep->rttvar >> (TCP_RTTVAR_SHIFT - TCP_DELTA_SHIFT); … … 274 262 else { 275 263 /* 276 * ã¾ã srtt ã®è¨å®ãè¡ããã¦ããªãã¨ãã¯ãä»åè¨æ¸¬ããã RTT ã使ç¨ããã277 * å¹³æ»åããã RTT (srtt) ã«ã¯ãRTT ã 5 ãããå·¦ã·ãã (32å) ããå¤ã278 * å¹³æ»åãããåæ£ (rttvar) ã«ã¯ãRTT ã® 1/2 ã 4 ãããå·¦ã·ãã (16å) ããå¤ã264 * まだ srtt の設定が行われていないときは、今回計測された RTT を使用する。 265 * 平滑化された RTT (srtt) には、RTT を 5 ビット左シフト (32倍) した値。 266 * 平滑化された分散 (rttvar) には、RTT の 1/2 を 4 ビット左シフト (16倍) した値。 279 267 */ 280 268 cep->srtt = rtt << TCP_SRTT_SHIFT; … … 283 271 284 272 /* 285 * rtt ã®æ¸¬å®ãçµäºããåéåæ°ããªã»ããããã273 * rtt の測定を終了し、再送回数をリセットする。 286 274 */ 287 275 cep->rtt = cep->rxtshift = 0; 288 276 289 277 /* 290 * RTT ã«è¨±ãããæå°å¤ 㨠rtt + 2 ã®å¤§ããªå¤ã®æ¹ãåéã¿ã¤ã ã¢ã¦ãã®æå°å¤ã«ããã278 * RTT に許される最小値 と rtt + 2 の大きな値の方を再送タイムアウトの最小値にする。 291 279 */ 292 280 if (rtt + 2 < TCP_TVAL_MIN) … … 301 289 302 290 /* 303 * reassemble -- åä¿¡ã»ã°ã¡ã³ããåæ§æãããé çªéãã«åä¿¡ããã¨ãã®å¦ç291 * reassemble -- 受信セグメントを再構成する。順番通りに受信したときの処理 304 292 */ 305 293 … … 313 301 if (tcph->sum > cep->rbufsz - cep->rwbuf_count) { 314 302 /* 315 * åä¿¡ã¦ã£ã³ããããã¡ã«ç©ºãããªãã¨ãã¯ç ´æ£ããã303 * 受信ウィンドバッファに空きがないときは破棄する。 316 304 */ 317 305 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DROP_SEGS], 1); … … 324 312 cep->fsm_state == TCP_FSM_ESTABLISHED) { 325 313 /* 326 * é çªéãã«ã»ã°ã¡ã³ããåä¿¡ããæã®å¦ç327 * åä¿¡ã»ã°ã¡ã³ãã®ä¸¦ã¹æ¿ãã¯ä¸è¦ãªã®ã§328 * ãã®ã¾ã¾åä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã314 * 順番通りにセグメントを受信した時の処理 315 * 受信セグメントの並べ替えは不要なので 316 * そのまま受信ウィンドバッファに書き込む。 329 317 */ 330 318 … … 341 329 qhdr = GET_TCP_Q_HDR(input, thoff); 342 330 343 /* TCP ãããã®ä½ç½®ãä¿åããã*/331 /* TCP ヘッダの位置を保存する。*/ 344 332 SET_IP_TCP_Q_HDR_OFFSET(input, thoff); 345 333 346 /* SDU ã®ãªãã»ããï¼å 347 ã¯ã¦ã£ã³ããµã¤ãºï¼ããªã»ããããã*/ 334 /* SDU のオフセット(元はウィンドサイズ)をリセットする。*/ 348 335 qhdr->soff = 0; 349 336 350 /* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/337 /* データを受信ウィンドバッファに書き込む。*/ 351 338 TCP_WRITE_RWBUF(cep, input, thoff); 352 339 } … … 359 346 360 347 /* 361 * listening -- ååãªã¼ãã³ãã¦ï¼ç¶æ 362 ã LISTEN ã®å¦ç 348 * listening -- 受動オープンして,状態が LISTEN の処理 363 349 * 364 * æ»ãå¤:365 * RET_OK æ£å¸¸366 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã367 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã350 * 戻り値: 351 * RET_OK 正常 352 * RET_DROP エラー、セグメントを破棄する。 353 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 368 354 */ 369 355 … … 376 362 377 363 /* 378 * ãã©ã°ã« RST ãã»ããããã¦ããã°ç ´æ£ããã364 * フラグに RST がセットされていれば破棄する。 379 365 */ 380 366 if (tcph->flags & TCP_FLG_RST) … … 382 368 383 369 /* 384 * ãã©ã°ã« ACK ãã»ãããã¦ãããã°ã385 * ãªã»ãããéã£ã¦ç ´æ£ããã370 * フラグに ACK がセットさてれいれば、 371 * リセットを送って破棄する。 386 372 */ 387 373 if (tcph->flags & TCP_FLG_ACK) … … 389 375 390 376 /* 391 * ãã©ã°ã« SYN ãã»ããããã¦ããªããã°ãã°ç ´æ£ããã377 * フラグに SYN がセットされていなければれば破棄する。 392 378 */ 393 379 if ((tcph->flags & TCP_FLG_SYN) == 0) … … 395 381 396 382 /* 397 * åä¿¡å¯è½ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ã§ãããã¨ã確èªããã383 * 受信可能な IP アドレスとポート番号であることを確認する。 398 384 */ 399 385 if (!tcp_is_addr_accept(input, thoff)) 400 386 return RET_DROP; 401 387 402 /* ç¸æã®ã¢ãã¬ã¹ãè¨é²ããã*/388 /* 相手のアドレスを記録する。*/ 403 389 IN_COPY_TO_HOST(&cep->dstaddr.ipaddr, input); 404 390 cep->dstaddr.portno = tcph->sport; 405 391 406 /* ãªãã·ã§ã³ãå¦çããã*/392 /* オプションを処理する。*/ 407 393 parse_option(tcph, cep); 408 394 409 /* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/395 /* シーケンス番号を初期化する。*/ 410 396 if (tcp_iss == 0) 411 397 tcp_init_iss(); 412 398 413 /* èªåã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/399 /* 自分のシーケンス番号の初期値を記録する。*/ 414 400 if (iss != 0) 415 401 cep->iss = iss; … … 419 405 tcp_iss += TCP_ISS_INCR() / 4; 420 406 421 /* ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/407 /* 相手のシーケンス番号の初期値を記録する。*/ 422 408 cep->irs = tcph->seq; 423 409 424 /* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/410 /* 送受信シーケンス番号を初期化する。*/ 425 411 init_send_seq(cep); 426 412 init_receive_seq(cep); 427 413 428 /* éä¿¡ã¦ã¤ã³ããµã¤ãºãè¨å®ããã*/414 /* 送信ウインドサイズを設定する。*/ 429 415 cep->snd_wnd = tcph->win; 430 416 431 /* æçµè¨å®*/417 /* 最終設定 */ 432 418 cep->flags |= TCP_CEP_FLG_ACK_NOW; 433 419 cep->fsm_state = TCP_FSM_SYN_RECVD; … … 438 424 439 425 /* 440 * syn_sent -- è½åãªã¼ãã³ãã¦ãç¶æ 441 ã SYN éä¿¡æ¸ã®å¦ç 426 * syn_sent -- 能動オープンして、状態が SYN 送信済の処理 442 427 * 443 * æ»ãå¤:444 * RET_OK æ£å¸¸445 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã446 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã428 * 戻り値: 429 * RET_OK 正常 430 * RET_DROP エラー、セグメントを破棄する。 431 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 447 432 */ 448 433 … … 453 438 454 439 /* 455 * ç¸æããå信確èªãéããã¦æ¥ã¦ãã440 * 相手から受信確認が送られて来ても、 456 441 * 457 * ACK <= iss && éä¿¡ããæ大SEQ (snd_max) < ACK442 * ACK <= iss && 送信した最大 SEQ (snd_max) < ACK 458 443 * 459 * ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã444 * なら、リセットを送ってセグメントを破棄する。 460 445 */ 461 446 if ((tcph->flags & TCP_FLG_ACK) && … … 464 449 465 450 /* 466 * RST/ACK ãã©ã°ã®å¿çãããã°ããã¼ããéãã¦ããªã467 * ãã¨ãæå³ãã¦ããã451 * RST/ACK フラグの応答があれば、ポートが開いていない 452 * ことを意味している。 468 453 */ 469 454 if (tcph->flags & TCP_FLG_RST) { … … 476 461 477 462 /* 478 * SYN ãã©ã°ããªããã°ã»ã°ã¡ã³ããç ´æ£ããã463 * SYN フラグがなければセグメントを破棄する。 479 464 */ 480 465 if ((tcph->flags & TCP_FLG_SYN) == 0) 481 466 return RET_DROP; 482 467 483 cep->snd_wnd = tcph->win; /* snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº*/484 cep->irs = tcph->seq; /* irs: ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤*/485 init_receive_seq(cep); /* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/468 cep->snd_wnd = tcph->win; /* snd_wnd: 相手の受信可能ウィンドサイズ */ 469 cep->irs = tcph->seq; /* irs: 相手のシーケンス番号の初期値 */ 470 init_receive_seq(cep); /* 送受信シーケンス番号を初期化する。 */ 486 471 487 472 if (tcph->flags & TCP_FLG_ACK) { 488 473 /* 489 * ACK ãã©ã°ãããã¨ãã®å¦ç474 * ACK フラグがあるときの処理 490 475 * 491 * åä¿¡ãæå¾ 492 ãã¦ããæ大㮠SEQ (rcv_adv) ã 493 * åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº (rcv_wnd) åé²ããã 494 */ 495 cep->rcv_adv += cep->rcv_wnd; /* rcv_adv: åä¿¡ãæå¾ 496 ãã¦ããæ大㮠SEQ */ 497 /* rcv_wnd: åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº */ 498 499 /* æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã SYN å (1 ãªã¯ããã) é²ããã*/ 476 * 受信を期待している最大の SEQ (rcv_adv) を 477 * 受信可能なウィンドサイズ (rcv_wnd) 分進める。 478 */ 479 cep->rcv_adv += cep->rcv_wnd; /* rcv_adv: 受信を期待している最大の SEQ */ 480 /* rcv_wnd: 受信可能なウィンドサイズ */ 481 482 /* 未確認の最小送信 SEQ (snd_una) を SYN 分 (1 オクテット) 進める。*/ 500 483 cep->snd_una ++; 501 484 502 485 #ifdef TCP_CFG_DELAY_ACK 503 486 504 if (tcph->sum != 0) /* tcph->sum 㯠SDU é·*/487 if (tcph->sum != 0) /* tcph->sum は SDU 長 */ 505 488 cep->flags |= TCP_CEP_FLG_DEL_ACK; 506 489 else … … 515 498 if (cep->flags & TCP_CEP_FLG_NEED_FIN) { 516 499 /* 517 * CEP 㧠FIN éä¿¡ãè¦æ±ããã¦ããã°ã 518 * åæå¦çãéå§ãã 519 * CEP ã®ç¶æ 520 ã FIN Wait 1 ã«ããã 500 * CEP で FIN 送信が要求されていれば、 501 * 切断処理を開始し、 502 * CEP の状態を FIN Wait 1 にする。 521 503 */ 522 504 cep->fsm_state = TCP_FSM_FIN_WAIT_1; … … 526 508 else { 527 509 /* 528 * ç¸æãã ACK ãå¿çãããã®ã§ã 529 * CEP ã®ç¶æ 530 ã ã³ãã¯ã·ã§ã³éè¨å®äºç¶æ 531 ã«ããã 510 * 相手から ACK が応答されたので、 511 * CEP の状態を コネクション開設完了状態にする。 532 512 */ 533 513 cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE; … … 540 520 if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) { 541 521 542 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/522 /* 相手のアドレスをコピーする。*/ 543 523 544 524 #if defined(_IP6_CFG) && defined(_IP4_CFG) … … 590 570 } 591 571 else { 592 /* ACK ãã©ã°ããªãã¨ãã¯ãACK ãéã£ã¦ãCEP ã®ç¶æ 593 ã SYN åä¿¡æ¸ã¿ã«ããã*/ 572 /* ACK フラグがないときは、ACK を送って、CEP の状態を SYN 受信済みにする。*/ 594 573 cep->flags |= TCP_CEP_FLG_ACK_NOW; 595 574 cep->timer[TCP_TIM_REXMT] = 0; … … 601 580 602 581 /* 603 * trim_length -- åä¿¡ãã SDU é·ã調æ´ããã582 * trim_length -- 受信した SDU 長を調整する。 604 583 */ 605 584 … … 608 587 { 609 588 tcph->seq ++; 610 if (tcph->sum > cep->rcv_wnd) { /* 注æ: tcph->sum 㯠SDU é·*/611 /* 612 * SDU é·ãåä¿¡ã¦ã£ã³ããµã¤ãºãã大ããã¨ãã¯ãåä¿¡ã¦ã£ã³ããµã¤ãºä»¥éã¯613 * ç ´æ£ããFIN ã«å¿çããªããã¨ã§ãç ´æ£ãããã¼ã¿ãåéãããã589 if (tcph->sum > cep->rcv_wnd) { /* 注意: tcph->sum は SDU 長 */ 590 /* 591 * SDU 長が受信ウィンドサイズより大きいときは、受信ウィンドサイズ以降は 592 * 破棄し、FIN に応答しないことで、破棄したデータを再送させる。 614 593 */ 615 594 tcph->sum = (uint16_t)cep->rcv_wnd; 616 595 tcph->flags &= ~TCP_FLG_FIN; 617 596 } 618 cep->snd_wl1 = tcph->seq - 1; /* cep->snd_wl1: ã¦ã£ã³ãæ´æ° SEQ çªå·*/597 cep->snd_wl1 = tcph->seq - 1; /* cep->snd_wl1: ウィンド更新 SEQ 番号 */ 619 598 620 599 #ifdef TCP_CFG_EXTENTIONS 621 cep->rcv_up = tcph->seq; /* cep->rcv_up : åä¿¡ããç·æ¥ãã¤ã³ã¿*/600 cep->rcv_up = tcph->seq; /* cep->rcv_up : 受信した緊急ポインタ */ 622 601 #endif 623 602 } 624 603 625 604 /* 626 * proc_ack2 -- ACK ã®å¦ç(2)605 * proc_ack2 -- ACK の処理 (2) 627 606 * 628 * æ»ãå¤607 * 戻り値 629 608 * 630 * RET_OK æ£å¸¸631 * RET_RETURN æ£å¸¸ããªã¿ã¼ã³ããã632 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã633 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã609 * RET_OK 正常 610 * RET_RETURN 正常、リターンする。 611 * RET_DROP エラー、セグメントを破棄する。 612 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 634 613 */ 635 614 … … 645 624 646 625 /* 647 * ç¸æã«å信確èªããã ACK ãããã¾ã 確èªããã¦ããªã648 * æå°éä¿¡ SEQ (snd_una) ãå¼ãã¨ãéä¿¡ã¦ã£ã³ããããã¡ãã649 * åé¤ãã¦ãããªã¯ãããæ° (acked) ã«ãªãã626 * 相手に受信確認された ACK から、まだ確認されていない 627 * 最小送信 SEQ (snd_una) を引くと、送信ウィンドバッファから 628 * 削除してよいオクテット数 (acked) になる。 650 629 */ 651 630 acked = tcph->ack - cep->snd_una; … … 653 632 654 633 /* 655 * å¾å¾©æéè¨æ¸¬ (rtt) ãè¨å®ããã¦ãã¦ãè¨æ¸¬éå§ SEQ ãã656 * å¾ã® ACK ãåä¿¡ããããã¿ã¤ãããã¯ãªãããã£ã³ã»ã«ãã657 * åéã¿ã¤ããåè¨å®ããã634 * 往復時間計測 (rtt) が設定されていて、計測開始 SEQ より 635 * 後の ACK を受信したら、タイマバックオフをキャンセルし、 636 * 再送タイマを再設定する。 658 637 */ 659 638 if (cep->rtt && SEQ_GT(tcph->ack, cep->rtseq)) { … … 662 641 663 642 /* 664 * å 665 ¨ã¦ã®æªç¢ºèªãã¼ã¿ã ACK ãããããåéã¿ã¤ããåæ¢ãã 666 * åéãè¨æ¶ãã (ããã«åºåãæç¶)ã 667 * ãããACK ãã¹ããããã«å¤ãã®ãã¼ã¿ããããªããåéã¿ã¤ãã« 668 * ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ããè¨å®ããã 669 */ 670 if (tcph->ack == cep->snd_max) { /* cep->snd_max: éä¿¡ããæ大 SEQ */ 643 * 全ての未確認データが ACK されたら、再送タイマを停止し、 644 * 再開を記憶する (さらに出力か持続)。 645 * もし、ACK すべき、さらに多くのデータがあるなら、再送タイマに 646 * 現在の再送タイムアウトを設定する。 647 */ 648 if (tcph->ack == cep->snd_max) { /* cep->snd_max: 送信した最大 SEQ */ 671 649 672 650 #ifdef TCP_CFG_SWBUF_CSAVE 673 651 674 652 /* 675 * éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã¯ã676 * éä¿¡æ¸ã¿ã§ãACKãå®äºããã¾ã§åéã¿ã¤ããå¤æ´ããªãã653 * 送信ウィンドバッファの省コピー機能が有効の場合は、 654 * 送信済みで、ACKが完了するまで再送タイマを変更しない。 677 655 */ 678 656 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_ACKED) … … 688 666 } 689 667 else if (cep->timer[TCP_TIM_PERSIST] == 0) { 690 cep->timer[TCP_TIM_REXMT] = cep->rxtcur; /* cep->rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã*/691 } 692 693 /* ç¸æãå信確èªãããã¼ã¿ãããã¨ãã®å¦ç*/668 cep->timer[TCP_TIM_REXMT] = cep->rxtcur; /* cep->rxtcur: 現在の再送タイムアウト */ 669 } 670 671 /* 相手が受信確認したデータがあるときの処理 */ 694 672 if (acked) { 695 uint32_t cw = cep->snd_cwnd; /* cep->snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº*/696 uint32_t incr = cep->maxseg; /* cep->maxseg: æ大ã»ã°ã¡ã³ããµã¤ãº*/697 698 /* 699 * æ°ãã«ç¸æãå信確èªãããã¼ã¿ããã£ãã¨ãã¯ã700 * 輻輳ã¦ã£ã³ããµã¤ãºã大ããããã701 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã702 * 輻輳ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ãã大ããã¨ãã¯703 * 輻輳åé¿å¶å¾¡ãè¡ãã673 uint32_t cw = cep->snd_cwnd; /* cep->snd_cwnd: 輻輳ウィンドサイズ */ 674 uint32_t incr = cep->maxseg; /* cep->maxseg: 最大セグメントサイズ */ 675 676 /* 677 * 新たに相手が受信確認したデータがあったときは、 678 * 輻輳ウィンドサイズを大きくする。 679 * 輻輳ウィンドサイズ (snd_cwnd) が 680 * 輻輳ウィンドサイズのしきい値 (snd_ssthresh) より大きいときは 681 * 輻輳回避制御を行い。 704 682 * 705 683 * snd_cwnd = snd_cwnd + maxseg * maxseg / snd_cwnd; 706 684 * 707 * çãããå°ããã¨ãã¯ãã¹ãã¼ã¹ã¿ã¼ãå¶å¾¡ãè¡ãã685 * 等しいか小さいときは、スロースタート制御を行う。 708 686 * 709 687 * snd_cwnd = snd_cwnd + maxseg … … 711 689 */ 712 690 if (cw > cep->snd_ssthresh) 713 /* 輻輳åé¿å¶å¾¡*/691 /* 輻輳回避制御 */ 714 692 incr = incr * incr / cw; 715 693 … … 720 698 721 699 /* 722 * éä¿¡ã¦ã£ã³ããããã¡ãããç¸æãå信確èªãããã¼ã¿æ° (acked) ã®ãã¼ã¿ãåé¤ããã700 * 送信ウィンドバッファから、相手が受信確認したデータ数 (acked) のデータを削除する。 723 701 */ 724 702 if (acked > cep->swbuf_count) { … … 733 711 } 734 712 735 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/713 /* 送信ウィンドバッファに空きができたことを知らせる。*/ 736 714 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); 737 715 738 716 /* 739 * éé確èªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ã740 * ä»åéé確èªããã ACK ã¾ã§é²ãã741 * 次ã®éä¿¡ãã¼ã¿ã® SEQ (snd_nxt) ããæ°ãã742 * éé確èªããã¦ããªãæå°éä¿¡SEQ (snd_una)743 * ã¾ã§é²ããã717 * 送達確認されていない最小送信 SEQ (snd_una) を 718 * 今回送達確認された ACK まで進め、 719 * 次の送信データの SEQ (snd_nxt) も、新しい 720 * 送達確認されていない最小送信 SEQ (snd_una) 721 * まで進める。 744 722 */ 745 723 cep->snd_una += acked; … … 748 726 749 727 /* 750 * ç¶æ 751 ã«ããåå² 728 * 状態により分岐 752 729 */ 753 730 switch (cep->fsm_state) { 754 case TCP_FSM_FIN_WAIT_1: /* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾ 755 ã¡ */ 731 case TCP_FSM_FIN_WAIT_1: /* APP が終了、FIN 送信済み、ACK 待ち */ 756 732 if (ourfinisacked) { 757 733 cep->fsm_state = TCP_FSM_FIN_WAIT_2; … … 759 735 } 760 736 break; 761 case TCP_FSM_CLOSING: /* åæã¯ãã¼ãºãFIN 交ææ¸ã¿ãACK å¾ 762 ã¡ */ 737 case TCP_FSM_CLOSING: /* 同時クローズ、FIN 交換済み、ACK 待ち */ 763 738 if (ourfinisacked) { 764 739 /* 765 * éä¿¡ãã FIN ã確èªããã¦ããã°ç¶æ 766 ãå¤æ´ãã 767 * ãã¹ã¦ã®ã¿ã¤ãããªã»ããããå¾ã2MSL ã¿ã¤ããè¨å®ããã 740 * 送信した FIN が確認されていれば状態を変更し、 741 * すべてのタイマをリセットした後、2MSL タイマを設定する。 768 742 */ 769 743 cep->fsm_state = TCP_FSM_TIME_WAIT; … … 772 746 } 773 747 break; 774 case TCP_FSM_LAST_ACK: /* APP ãçµäºãACK å¾ 775 ã¡ */ 748 case TCP_FSM_LAST_ACK: /* APP が終了、ACK 待ち */ 776 749 if (ourfinisacked) { 777 750 /* 778 * éä¿¡ãã FIN ã確èªããã¦ããã°ãcep ãã¯ãã¼ãºãã779 * ã»ã°ã¡ã³ããç ´æ£ããã751 * 送信した FIN が確認されていれば、cep をクローズし、 752 * セグメントを破棄する。 780 753 */ 781 754 cep = tcp_close(cep); … … 783 756 } 784 757 break; 785 case TCP_FSM_TIME_WAIT: /* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾ 786 ã¡ */ 758 case TCP_FSM_TIME_WAIT: /* 相手からの FIN 受信済み、時間待ち */ 787 759 /* 788 * ç¸æãã FIN ãåéããããããä¸åº¦2MSL ã¿ã¤ããè¨å®ãã789 * ACK éä¿¡å¾ãã»ã°ã¡ã³ããç ´æ£ããã760 * 相手から FIN が再送された。もう一度2MSL タイマを設定し、 761 * ACK 送信後、セグメントを破棄する。 790 762 */ 791 763 cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL; … … 798 770 799 771 /* 800 * proc_ack1 -- ACK ã®å¦ç(1)772 * proc_ack1 -- ACK の処理 (1) 801 773 * 802 * æ»ãå¤:803 * RET_OK æ£å¸¸804 * RET_RETURN æ£å¸¸ããªã¿ã¼ã³ããã805 * RET_DROP ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã806 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã774 * 戻り値: 775 * RET_OK 正常 776 * RET_RETURN 正常、リターンする。 777 * RET_DROP エラー、セグメントを破棄する。 778 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 807 779 * 808 780 */ … … 814 786 815 787 switch (cep->fsm_state) { 816 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿ */ 817 818 /* ç¶æ 819 ãå¤æ´ããã*/ 788 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 789 790 /* 状態を変更する。*/ 820 791 if (cep->flags & TCP_CEP_FLG_NEED_FIN) { 821 792 cep->fsm_state = TCP_FSM_FIN_WAIT_1; … … 826 797 cep->fsm_state = TCP_FSM_ESTABLISHED; 827 798 828 /* TCP é信端ç¹ããTCP åä»å£ã解æ¾ããã*/799 /* TCP 通信端点からTCP 受付口を解放する。*/ 829 800 cep->rep = NULL; 830 801 … … 839 810 if (cep->rcv_nblk_tfn == TFN_TCP_ACP_CEP) { 840 811 841 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/812 /* 相手のアドレスをコピーする。*/ 842 813 843 814 #if defined(_IP6_CFG) && defined(_IP4_CFG) … … 889 860 if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) { 890 861 891 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/862 /* 相手のアドレスをコピーする。*/ 892 863 893 864 #if defined(_IP6_CFG) && defined(_IP4_CFG) … … 951 922 952 923 /* 953 * SDU ããªã FIN ãã¤ãã¦ããªããã°ãtcp_move_ra2rw() ãå¼åºãã954 */ 955 if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0) /* tcph->sum 㯠SDU é·*/924 * SDU がなく FIN がついていなければ、tcp_move_ra2rw() を呼出す。 925 */ 926 if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0) /* tcph->sum は SDU 長 */ 956 927 tcph->flags = tcp_move_ra2rw(cep, tcph->flags); 957 928 958 cep->snd_wl1 = tcph->seq - 1; /* snd_wl1: ã¦ã£ã³ãæ´æ°SEQ */959 960 /* break; ä¸ã«è½ã¡ãã*/929 cep->snd_wl1 = tcph->seq - 1; /* snd_wl1: ウィンド更新 SEQ */ 930 931 /* break; 下に落ちる。*/ 961 932 962 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº */ 963 case TCP_FSM_FIN_WAIT_1: /* çµäºãã¦ãFIN éä¿¡æ¸ã¿ */ 964 case TCP_FSM_FIN_WAIT_2: /* çµäºãFIN ä¼é確èªåä¿¡ãFINå¾ 965 ã¡*/ 966 case TCP_FSM_CLOSE_WAIT: /* FIN åä¿¡ãã¯ãã¼ãºå¾ 967 ã¡ */ 968 case TCP_FSM_CLOSING: /* çµäºãFIN 交ææ¸ã¿ãACK å¾ 969 ã¡ */ 970 case TCP_FSM_LAST_ACK: /* FIN åä¿¡ãçµäºãACK å¾ 971 ã¡ */ 972 case TCP_FSM_TIME_WAIT: /* çµäºãæéå¾ 973 ã¡ */ 933 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 934 case TCP_FSM_FIN_WAIT_1: /* 終了して、FIN 送信済み */ 935 case TCP_FSM_FIN_WAIT_2: /* 終了、FIN 伝達確認受信、FIN待ち*/ 936 case TCP_FSM_CLOSE_WAIT: /* FIN 受信、クローズ待ち */ 937 case TCP_FSM_CLOSING: /* 終了、FIN 交換済み、ACK 待ち */ 938 case TCP_FSM_LAST_ACK: /* FIN 受信、終了、ACK 待ち */ 939 case TCP_FSM_TIME_WAIT: /* 終了、時間待ち */ 974 940 975 941 if (SEQ_LE(tcph->ack, cep->snd_una)) { 976 942 977 943 /* 978 * åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã¨åãã以åã®ã¨ãã®å¦ç979 * ã¤ã¾ããå¤éã« ACK ãåä¿¡ãããã¨ãæå³ãã¦ããã944 * 受信確認 ACK が 未確認の最小送信 SEQ (snd_una) と同じか以前のときの処理 945 * つまり、多重に ACK を受信したことを意味している。 980 946 */ 981 947 982 if (tcph->sum == 0 && tcph->win == cep->snd_wnd) { /* tcph->sum 㯠SDU é·*/948 if (tcph->sum == 0 && tcph->win == cep->snd_wnd) { /* tcph->sum は SDU 長 */ 983 949 984 950 /* 985 * SDU ããªããç¸æã®ã¦ã£ã³ããµã¤ãºãå¤æ´ããã¦ããªããã°ã986 * ãã§ã«éä¿¡ããã»ã°ã¡ã³ãã®ä¸ã§ãACK (tcph->ack) ã¨987 * åã SEQ ããå§ã¾ãã»ã°ã¡ã³ãããéä¸ã§æ¶å¤±ããå¯è½æ§ãããã988 * ãã®å ´åã¯ãé«éå転éã¨é«éãªã«ããªãè¡ãã951 * SDU がなく、相手のウィンドサイズが変更されていなければ、 952 * すでに送信したセグメントの中で、ACK (tcph->ack) と 953 * 同じ SEQ から始まるセグメントが、途中で消失した可能性がある。 954 * この場合は、高速再転送と高速リカバリを行う。 989 955 */ 990 956 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DUP_ACKS], 1); … … 993 959 994 960 /* 995 * åéã¿ã¤ããã»ããããã¦ããªãã¨ãã996 * ã¾ãã¯ãACK (tcph->ack) ã¨æªç¢ºèªã®æå°éä¿¡ SEQã997 * ä¸è´ããªãã¨ãã¯ãå¤é ACK æ°ã 0 ã«ããã961 * 再送タイマがセットされていないとき、 962 * または、ACK (tcph->ack) と未確認の最小送信 SEQが 963 * 一致しないときは、多重 ACK 数を 0 にする。 998 964 */ 999 965 cep->dupacks = 0; … … 1003 969 1004 970 /* 1005 * å¤é ACK æ°ããããå¤ (æ¨æº 3) ã«ãªã£ãã1006 * é«éå転éå¦çãéå§ããã971 * 多重 ACK 数がしきい値 (標準 3) になったら 972 * 高速再転送処理を開始する。 1007 973 */ 1008 974 uint_t win; 1009 975 1010 976 /* 1011 * 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®ãããå¤ãè¨å®ããã977 * 輻輳ウィンドサイズ(snd_cwnd)のしきい値を設定する。 1012 978 * 1013 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã1014 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã® 1/2ã1015 * ãã ãã2 * maxseg 以ä¸ã979 * 相手の受信可能ウィンドサイズ (snd_wnd) か 980 * 輻輳ウィンドサイズ (snd_cwnd) の 1/2。 981 * ただし、2 * maxseg 以上。 1016 982 * 1017 983 */ … … 1024 990 cep->snd_ssthresh = win * cep->maxseg; 1025 991 1026 /* åéã¿ã¤ãã¨å¾å¾©æéããªã»ããããã*/992 /* 再送タイマと往復時間をリセットする。*/ 1027 993 cep->timer[TCP_TIM_REXMT] = 0; 1028 994 cep->rtt = 0; 1029 995 1030 /* æ¶å¤±ããã»ã°ã¡ã³ããéä¿¡ããã*/996 /* 消失したセグメントを送信する。*/ 1031 997 cep->snd_old_nxt = cep->snd_nxt; 1032 998 cep->snd_nxt = tcph->ack; … … 1034 1000 1035 1001 /* 1036 * snd_nxt ãå 1037 ã«æ»ãããã«è¨å®ã㦠1038 * éä¿¡ãæ示ããã 1002 * snd_nxt を元に戻すように設定して 1003 * 送信を指示する。 1039 1004 */ 1040 1005 cep->flags |= TCP_CEP_FLG_POST_OUTPUT | … … 1044 1009 sig_sem(SEM_TCP_POST_OUTPUT); 1045 1010 1046 /* 輻輳ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/1011 /* 輻輳ウィンドサイズを更新する。*/ 1047 1012 cep->snd_cwnd = (uint16_t)(cep->snd_ssthresh 1048 1013 + cep->maxseg * cep->dupacks); … … 1054 1019 1055 1020 /* 1056 * å¤é ACK æ°ããããå¤ (æ¨æº 3) ãè¶ 1057 ããã 1058 * 輻輳ã¦ã£ã³ããµã¤ãºãå¢å ããªããåéããã 1021 * 多重 ACK 数がしきい値 (標準 3) を超えたら 1022 * 輻輳ウィンドサイズを増加しながら再送する。 1059 1023 */ 1060 1024 cep->snd_cwnd += cep->maxseg; 1061 1025 1062 /* éä¿¡ãæ示ããã*/1026 /* 送信を指示する。*/ 1063 1027 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1064 1028 sig_sem(SEM_TCP_POST_OUTPUT); … … 1073 1037 1074 1038 /* 1075 * åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) 以éã®ã¨ãã®å¦ç1039 * 受信確認 ACK が 未確認の最小送信 SEQ (snd_una) 以降のときの処理 1076 1040 */ 1077 1041 if (cep->dupacks >= MAX_TCP_REXMT_THRESH && cep->snd_cwnd > cep->snd_ssthresh) 1078 1042 /* 1079 * é«éå転éãè¡ã£ã¦ããã¨ãã¯ã輻輳ã¦ã£ã³ããµã¤ãºããããå¤ã¾ã§æ»ãã1043 * 高速再転送を行っていたときは、輻輳ウィンドサイズをしきい値まで戻す。 1080 1044 */ 1081 1045 cep->snd_cwnd = (uint16_t)cep->snd_ssthresh; … … 1085 1049 if (SEQ_GT(tcph->ack, cep->snd_max)) 1086 1050 /* 1087 * åä¿¡ãã ACK ãéä¿¡ããæ大 SEQ ãè¶ 1088 ãã¦ããã¨ãã®å¦ç 1051 * 受信した ACK が送信した最大 SEQ を超えていたときの処理 1089 1052 */ 1090 1053 return drop_after_ack(input, cep, thoff); … … 1092 1055 if (cep->flags & TCP_CEP_FLG_NEED_SYN) { 1093 1056 /* 1094 * SYN éä¿¡è¦æ±ãåãæ¶ãã¦ãæªç¢ºèªã®æå°éä¿¡ SEQ ãé²ããã1057 * SYN 送信要求を取り消して、未確認の最小送信 SEQ を進める。 1095 1058 */ 1096 1059 cep->flags &= ~TCP_CEP_FLG_NEED_SYN; … … 1105 1068 1106 1069 /* 1107 * update_wnd -- ã¦ã£ã³ããµã¤ãºãæ´æ°ããã1070 * update_wnd -- ウィンドサイズを更新する。 1108 1071 * 1109 * æ»ãå¤: éä¿¡ãå¿ 1110 è¦ãªã true ãè¿ãã 1072 * 戻り値: 送信が必要なら true を返す。 1111 1073 */ 1112 1074 … … 1116 1078 1117 1079 /* 1118 * æ´æ°æ¡ä»¶1080 * 更新条件 1119 1081 * 1120 * ACK ãã©ã°ãã»ããããã¦ãã&&1121 * ( ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ããå||1122 * ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ã¨åã&&1123 * ( ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ããå||1124 * ( ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ã¨åã&&1125 * WIN ãç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ãã大ãã1082 * ACK フラグがセットされている && 1083 * (前回ウィンドを更新した SEQ (snd_wl1) が SEQ より前 || 1084 * 前回ウィンドを更新した SEQ (snd_wl1) が SEQ と同じ && 1085 * (前回ウィンドを更新した ACK (snd_wl2) が ACK より前 || 1086 * (前回ウィンドを更新した ACK (snd_wl2) が ACK と同じ && 1087 * WIN が相手の受信可能ウィンドサイズ (snd_wnd) より大きい 1126 1088 * ) 1127 1089 * ) … … 1139 1101 1140 1102 if (cep->snd_wnd > cep->max_sndwnd) 1141 /* ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/1103 /* 今までの最大送信ウィンドサイズを更新する。*/ 1142 1104 cep->max_sndwnd = cep->snd_wnd; 1143 1105 … … 1147 1109 1148 1110 /* 1149 * éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ä¸ã§ã 1150 * ç¸æã®åä¿¡ã¦ã£ã³ãã空ãã®ãå¾ 1151 ã£ã¦ããã¨ãã®å¦ç 1111 * 送信ウィンドバッファ用のネットワークバッファ割り当て中で、 1112 * 相手の受信ウィンドが空くのを待っているときの処理 1152 1113 */ 1153 1114 if (cep->snd_wnd > 0) { 1154 1115 1155 1116 /* 1156 * ç¸æã®åä¿¡ã¦ã£ã³ãã空ããã¨ãã¯ã1157 * éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ãåéããã1117 * 相手の受信ウィンドが空いたときは、 1118 * 送信ウィンドバッファ用のネットワークバッファ割り当てを再開する。 1158 1119 */ 1159 1120 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) … … 1172 1133 1173 1134 /* 1174 * proc_urg -- ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç1135 * proc_urg -- 緊急データつきのセグメントの処理 1175 1136 */ 1176 1137 … … 1183 1144 TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) { 1184 1145 1185 /* ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç*/1146 /* 緊急データつきのセグメントの処理 */ 1186 1147 1187 1148 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_URG_SEGS], 1); … … 1189 1150 1190 1151 /* 1191 * ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ãåä¿¡ã¦ã£ã³ããããã¡ã® 1192 * ç¯å²ãè¶ 1193 ããã¨ãã¯ä½ãããªãã 1152 * 緊急ポインタの位置が受信ウィンドバッファの 1153 * 範囲を超えるときは何もしない。 1194 1154 */ 1195 1155 tcph->urp = 0; … … 1198 1158 1199 1159 if (SEQ_GT(tcph->seq + tcph->urp, cep->rcv_up)) 1200 /* ç·æ¥ãã¤ã³ã¿ãæ´æ°ãããã¨ãã®å¦ç*/1160 /* 緊急ポインタが更新されたときの処理 */ 1201 1161 cep->rcv_up = tcph->seq + tcph->urp; 1202 1162 1203 if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) { /* tcph->sum 㯠TCP ã® SDU é·*/1163 if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) { /* tcph->sum は TCP の SDU 長 */ 1204 1164 1205 1165 /* 1206 * ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ããä»ååä¿¡ããã»ã°ã¡ã³ãå 1207 ã®å ´åã¯ã 1208 * ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã 1166 * 緊急ポインタの位置が、今回受信したセグメント内の場合は、 1167 * コールバック関数を呼び出す。 1209 1168 */ 1210 1169 cep->urg_tcph = tcph; … … 1229 1188 1230 1189 if (cep->urg_tcph != NULL) { 1231 /* ã³ã¼ã«ããã¯é¢æ°å 1232 㧠tcp_rcv_oob() ãå¼åºããªãã£ãã*/ 1190 /* コールバック関数内で tcp_rcv_oob() を呼出さなかった。*/ 1233 1191 cep->urg_tcph = NULL; 1234 1192 tcph->urp = 0; … … 1236 1194 else { 1237 1195 /* 1238 * ã³ã¼ã«ããã¯é¢æ°å 1239 㧠tcp_rcv_oob() ãå¼åºããæã¯ã 1240 * SDU é·ã®è£æ£å¤ãè¨å®ããã 1196 * コールバック関数内で tcp_rcv_oob() を呼出した時は、 1197 * SDU 長の補正値を設定する。 1241 1198 */ 1242 1199 tcph->urp = 1; … … 1265 1222 1266 1223 /* 1267 * drop_after_ack -- åä¿¡ã»ã°ã¡ã³ããç ´æ£ããå¾ãACK ãè¿ã (注æ: ååã¨ã¯åã£ã¦ããªã)ã1224 * drop_after_ack -- 受信セグメントを破棄した後、ACK を返す (注意: 名前とは合っていない)。 1268 1225 * 1269 * æ»ãå¤:1270 * RET_RETURN æ£å¸¸ããªã¿ã¼ã³ããã1271 * RET_RST_DROP ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã1226 * 戻り値: 1227 * RET_RETURN 正常、リターンする。 1228 * RET_RST_DROP エラー、RST を送信し、セグメントを破棄する。 1272 1229 */ 1273 1230 … … 1278 1235 1279 1236 /* 1280 * SYN åä¿¡ç¶æ 1281 ã§ãACK ãéé確èªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ãã 1282 * åã®å¤ããéä¿¡ãããæ大 SEQ (snd_max) ããå¾ã®å¤ã®å ´åã¯ãç¸æã« RST ã 1283 * éã£ã¦çµäºãããããã¯ã"LAND" DoS æ»æã¸ã®é²å¾¡ã§ãããå½é ããã SYN 1284 * ã»ã°ã¡ã³ããéä¿¡ãã¤ã¥ãããã¼ãéã§ã® ACK ã¹ãã¼ã ãé²ãã 1237 * SYN 受信状態で、ACK が送達確認されていない最小送信 SEQ (snd_una) より 1238 * 前の値か、送信された最大 SEQ (snd_max) より後の値の場合は、相手に RST を 1239 * 送って終了する。これは、"LAND" DoS 攻撃への防御であり、偽造された SYN 1240 * セグメントを送信しつづけるポート間での ACK ストームを防ぐ。 1285 1241 */ 1286 1242 if (cep->fsm_state == TCP_FSM_SYN_RECVD && (tcph->flags & TCP_FLG_ACK) && … … 1291 1247 syscall(rel_net_buf(input)); 1292 1248 1293 /* éä¿¡ãæ示ããã*/1249 /* 送信を指示する。*/ 1294 1250 cep->flags |= TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_POST_OUTPUT; 1295 1251 sig_sem(SEM_TCP_POST_OUTPUT); … … 1298 1254 1299 1255 /* 1300 * close_connection -- ã³ãã¯ã·ã§ã³éæ¾å¦çãç¸æãã FIN ãåä¿¡ããã1256 * close_connection -- コネクション開放処理、相手から FIN を受信した。 1301 1257 */ 1302 1258 … … 1323 1279 1324 1280 switch (cep->fsm_state) { 1325 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿*/1326 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº*/1281 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 1282 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 1327 1283 cep->fsm_state = TCP_FSM_CLOSE_WAIT; 1328 1284 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_RWBUF_READY)); 1329 1285 break; 1330 1286 1331 case TCP_FSM_FIN_WAIT_1: /* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾ 1332 ã¡ */ 1287 case TCP_FSM_FIN_WAIT_1: /* APP が終了、FIN 送信済み、ACK 待ち */ 1333 1288 cep->fsm_state = TCP_FSM_CLOSING; 1334 1289 break; 1335 1290 1336 case TCP_FSM_FIN_WAIT_2: /* ç¸æããã® FIN å¾ 1337 ã¡ */ 1291 case TCP_FSM_FIN_WAIT_2: /* 相手からの FIN 待ち */ 1338 1292 cep->fsm_state = TCP_FSM_TIME_WAIT; 1339 1293 tcp_cancel_timers(cep); … … 1341 1295 1342 1296 /* 1343 * FIN WAIT 2 ç¶æ 1344 ã§ã¯ã 1345 * åä¿¡ã¯å¯è½ã§ãããããã§ã«éä¿¡ã¯çµäºãã¦ããã 1346 * ç¸æã®éä¿¡ãçµäºããã®ã§ãå 1347 ¥åã¿ã¹ã¯ã®ã¿èµ·åºããã 1297 * FIN WAIT 2 状態では、 1298 * 受信は可能であるが、すでに送信は終了している。 1299 * 相手の送信も終了したので、入力タスクのみ起床する。 1348 1300 */ 1349 1301 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); … … 1351 1303 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 1352 1304 1353 /* ç¸æããã® FIN ã«å¯¾ãã¦å¿çãè¿ãã*/1305 /* 相手からの FIN に対して応答を返す。*/ 1354 1306 tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una, 1355 1307 cep->rbufsz - cep->rwbuf_count, TCP_FLG_ACK); … … 1358 1310 1359 1311 /* 1360 * å¿ 1361 è¦ãªæ 1362 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã¦ã 1363 * æ¨æºã® TCP é信端ç¹ãéæ¾ããã 1312 * 必要な情報を Time Wait 用 TCP 通信端点に移して、 1313 * 標準の TCP 通信端点を開放する。 1364 1314 */ 1365 1315 tcp_move_twcep(cep); … … 1369 1319 break; 1370 1320 1371 case TCP_FSM_TIME_WAIT: /* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾ 1372 ã¡ */ 1321 case TCP_FSM_TIME_WAIT: /* 相手からの FIN 受信済み、時間待ち */ 1373 1322 cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL; 1374 1323 break; … … 1377 1326 1378 1327 /* 1379 * tcp_input -- TCP ã®å 1380 ¥åé¢æ° 1328 * tcp_input -- TCP の入力関数 1381 1329 * 1382 * 注æ: input ã«ã¯ IF ããã㨠IP ããããå 1383 é ã«ããã 1330 * 注意: input には IF ヘッダと IP ヘッダが先頭にある。 1384 1331 */ 1385 1332 … … 1407 1354 NET_COUNT_MIB(tcp_stats.tcpInSegs, 1); 1408 1355 1409 /* ãããé·ããã§ãã¯ããã*/1356 /* ヘッダ長をチェックする。*/ 1410 1357 if (input->len < IF_IP_TCP_HDR_SIZE(input)) { 1411 1358 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1); … … 1415 1362 tcph = GET_TCP_HDR(input, *offp); 1416 1363 1417 seglen = input->len - *offp; /* TCP ã®ã»ã°ã¡ã³ãé·*/1364 seglen = input->len - *offp; /* TCP のセグメント長 */ 1418 1365 1419 1366 if (IN_CKSUM(input, IPPROTO_TCP, *offp, (uint_t)seglen) != 0) { … … 1422 1369 } 1423 1370 1424 /* TCP ãããé·ããã§ãã¯ããã*/1371 /* TCP ヘッダ長をチェックする。*/ 1425 1372 if (TCP_HDR_LEN(tcph->doff) < TCP_HDR_SIZE || TCP_HDR_LEN(tcph->doff) > seglen) { 1426 1373 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1); 1427 1374 goto drop; 1428 1375 } 1429 tcph->sum = seglen - TCP_HDR_LEN(tcph->doff); /* ãããã tcph->sum 㯠TCP ã® SDU é·*/1376 tcph->sum = seglen - TCP_HDR_LEN(tcph->doff); /* ここから tcph->sum は TCP の SDU 長 */ 1430 1377 1431 1378 /* 1432 * SYN 㨠FIN ã®ä¸¡ããããã»ããããã¦ããã°ç ´æ£ãããnmap çã®å¯¾ç1433 * ãã ããRFC1644 T/TCP æ¡å¼µæ©è½ã¨ç«¶åããã1379 * SYN と FIN の両ビットがセットされていれば破棄する。nmap 等の対策 1380 * ただし、RFC1644 T/TCP 拡張機能と競合する。 1434 1381 */ 1435 1382 if ((tcph->flags & (TCP_FLG_SYN | TCP_FLG_FIN)) == (TCP_FLG_SYN | TCP_FLG_FIN)) 1436 1383 goto drop; 1437 1384 1438 /* ãããã¯ã¼ã¯ãªã¼ãã¼ãããã¹ããªã¼ãã¼ã«å¤æããã*/1385 /* ネットワークオーダーからホストオーダーに変換する。*/ 1439 1386 1440 1387 NTOHL(tcph->seq); … … 1445 1392 NTOHS(tcph->dport); 1446 1393 1447 /* SDU é· ãã ç·æ¥ãã¤ã³ã¿ã大ããå ´å*/1394 /* SDU 長 より 緊急ポインタが大きい場合 */ 1448 1395 if (tcph->urp > tcph->sum) 1449 1396 goto drop; … … 1454 1401 1455 1402 /* 1456 * ç¶æ 1457 ã Time Wait ä¸ã® CEP ãæ¢ç´¢ããã 1403 * 状態が Time Wait 中の CEP を探索する。 1458 1404 */ 1459 1405 twcep = tcp_find_twcep(input, *offp); 1460 1406 if (twcep != NULL) { 1461 1407 1462 if (tcph->flags & TCP_FLG_RST) /* RST ãã©ã°ãåä¿¡ããã¨ãã¯ç¡è¦ããã*/1408 if (tcph->flags & TCP_FLG_RST) /* RST フラグを受信したときは無視する。*/ 1463 1409 goto drop; 1464 1410 else { 1465 1411 1466 1412 /* 1467 * TCP é信端ç¹ã Time Wait ã®æãç¸æãã¹ãããã»ã°ã¡ã³ããæ¥ãã¨ãã¯ã1468 * ç¸æãã¹ãã® FIN ã«å¯¾ããèªãã¹ãã® ACK ã»ã°ã¡ã³ããéä¸ã§1469 * æ失ãããã¨ãæå³ãã¦ããã®ã§ãACK ã»ã°ã¡ã³ããåéããã1413 * TCP 通信端点が Time Wait の時、相手ホストからセグメントが来たときは、 1414 * 相手ホストの FIN に対する自ホストの ACK セグメントが途中で 1415 * 損失したことを意味しているので、ACK セグメントを再送する。 1470 1416 */ 1471 1417 1472 /* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/1418 /* ホストオーダーからネットワークオーダーに戻す。*/ 1473 1419 HTONS(tcph->sport); 1474 1420 HTONS(tcph->dport); … … 1479 1425 } 1480 1426 else 1481 /* æ¨æºã® TCP é信端ç¹ãå¾ãã*/1427 /* 標準の TCP 通信端点を得る。*/ 1482 1428 cep = tcp_find_cep(input, *offp); 1483 1429 1484 1430 #else /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */ 1485 1431 1486 /* TCP é信端ç¹ãå¾ãã*/1432 /* TCP 通信端点を得る。*/ 1487 1433 cep = tcp_find_cep(input, *offp); 1488 1434 … … 1490 1436 1491 1437 /* 1492 * TCP é信端ç¹ããªãå ´å㨠CEP ã®ç¶æ 1493 ãã¯ãã¼ãºãªãç ´æ£ããã 1438 * TCP 通信端点がない場合と CEP の状態がクローズなら破棄する。 1494 1439 */ 1495 1440 if (cep == NULL) { … … 1509 1454 1510 1455 /* 1511 * ã³ãã¯ã·ã§ã³éè¨æ¸ã¿ã§ã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã1512 * ã¢ã¤ãã«æéã¨çå確èªã¿ã¤ãããªã»ããããã1456 * コネクション開設済みでセグメントを受信したときは、 1457 * アイドル時間と生存確認タイマをリセットする。 1513 1458 */ 1514 1459 cep->idle = 0; … … 1517 1462 } 1518 1463 1519 /* CEP ã®ç¶æ 1520 ã LISTEN 以å¤ã®æã¯ããªãã·ã§ã³ãå¦çããã*/ 1464 /* CEP の状態が LISTEN 以外の時は、オプションを処理する。*/ 1521 1465 if (cep->fsm_state != TCP_FSM_LISTEN) 1522 1466 parse_option(tcph, cep); 1523 1467 1524 1468 /* 1525 * åä¿¡å¯è½ã¦ã£ã³ããµã¤ãºãè¨ç®ããã1469 * 受信可能ウィンドサイズを計算する。 1526 1470 * 1527 * rcv_nxt: åä¿¡ãæå¾ 1528 ãã¦ããæå°ã® SEQï¼ãã以åã¯åä¿¡æ¸ã¿ï¼ 1529 * rcv_adv: åä¿¡ãæå¾ 1530 ãã¦ããæ大㮠SEQ 1531 * rbufsz: åä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº 1532 * rwbuf_count: åä¿¡ã¦ã£ã³ããããã¡ã«ãããã¼ã¿é 1533 * tcph->sum: ä»ååä¿¡ãã SDU ãµã¤ãº 1471 * rcv_nxt: 受信を期待している最小の SEQ(これ以前は受信済み) 1472 * rcv_adv: 受信を期待している最大の SEQ 1473 * rbufsz: 受信ウィンドバッファサイズ 1474 * rwbuf_count: 受信ウィンドバッファにあるデータ量 1475 * tcph->sum: 今回受信した SDU サイズ 1534 1476 * 1535 * ä»ååä¿¡ããã»ã°ã¡ã³ããé åºæ´åãã¥ã¼ã«é£çµãã 1536 * å¯è½æ§ãããã®ã§ tcph->sum ãèæ 1537 ®ããã 1477 * 今回受信したセグメントを順序整列キューに連結する 1478 * 可能性があるので tcph->sum を考慮する。 1538 1479 * 1539 1480 */ … … 1546 1487 cep->rcv_wnd = cep->rcv_adv - cep->rcv_nxt; 1547 1488 1548 /* CEP ã®ç¶æ 1549 ã«ããå¦çãè¡ãã*/ 1550 1551 if (cep->fsm_state == TCP_FSM_LISTEN) { /* ååãªã¼ãã³ (LISTEN) ã®å¦çã*/ 1489 /* CEP の状態により処理を行う。*/ 1490 1491 if (cep->fsm_state == TCP_FSM_LISTEN) { /* 受動オープン (LISTEN) の処理。*/ 1552 1492 if ((ret = listening(input, cep, *offp, iss)) == RET_RST_DROP) 1553 1493 goto reset_drop; 1554 1494 else if (ret == RET_DROP) 1555 1495 goto drop; 1556 trim_length(tcph, cep); /* åä¿¡ãã SDU é·ã調æ´ããã*/1557 1558 if (tcph->flags & TCP_FLG_ACK) { /* ACK ãã©ã°ã®å¦ç*/1496 trim_length(tcph, cep); /* 受信した SDU 長を調整する。*/ 1497 1498 if (tcph->flags & TCP_FLG_ACK) { /* ACK フラグの処理 */ 1559 1499 if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP) 1560 1500 goto drop; … … 1565 1505 } 1566 1506 } 1567 else if (cep->fsm_state == TCP_FSM_SYN_SENT) { /* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿*/1507 else if (cep->fsm_state == TCP_FSM_SYN_SENT) { /* 能動オープン、SYN 送信済み */ 1568 1508 if ((ret = syn_sent(tcph, cep)) == RET_RST_DROP) 1569 1509 goto reset_drop; 1570 1510 else if (ret == RET_DROP) 1571 1511 goto drop; 1572 trim_length(tcph, cep); /* åä¿¡ãã SDU é·ã調æ´ããã*/1573 1574 if (tcph->flags & TCP_FLG_ACK) { /* ACK ãã©ã°ã®å¦ç*/1512 trim_length(tcph, cep); /* 受信した SDU 長を調整する。*/ 1513 1514 if (tcph->flags & TCP_FLG_ACK) { /* ACK フラグの処理 */ 1575 1515 if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP) 1576 1516 goto drop; … … 1582 1522 } 1583 1523 else { 1584 if (cep->fsm_state == TCP_FSM_SYN_RECVD) { /* SYN ãåä¿¡ãSYN éä¿¡æ¸ã¿*/1524 if (cep->fsm_state == TCP_FSM_SYN_RECVD) { /* SYN を受信、SYN 送信済み */ 1585 1525 /* 1586 * ç¸æããå信確èªãéããã¦æ¥ã¦ãã1526 * 相手から受信確認が送られて来ても、 1587 1527 * 1588 * ACK <= æªç¢ºèªã®æå°éä¿¡SEQ (snd_una) &&1589 * éä¿¡ããæ大SEQ (snd_max) < ACK1528 * ACK <= 未確認の最小送信 SEQ (snd_una) && 1529 * 送信した最大 SEQ (snd_max) < ACK 1590 1530 * 1591 * ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã1531 * なら、リセットを送ってセグメントを破棄する。 1592 1532 */ 1593 1533 if ((tcph->flags & TCP_FLG_ACK) && … … 1598 1538 1599 1539 /* 1600 * RST ãã©ã°ãåä¿¡ããã¨ãã®å¦ç (ç°å¸¸åæ)1540 * RST フラグを受信したときの処理 (異常切断) 1601 1541 */ 1602 1542 if (tcph->flags & TCP_FLG_RST) { … … 1604 1544 SEQ_LT(tcph->seq, cep->last_ack_sent + cep->rcv_wnd)) { 1605 1545 /* 1606 * åä¿¡ããã»ã°ã¡ã³ãã® SEQ ããæå¾ã«éä¿¡ããACK (last_ack_sent)1607 * ãããåä¿¡ã¦ã¤ã³ãã¦ãµã¤ãºã¾ã§ã®éã®å¦ç1546 * 受信したセグメントの SEQ が、最後に送信した ACK (last_ack_sent) 1547 * から、受信ウインドウサイズまでの間の処理 1608 1548 */ 1609 1549 switch (cep->fsm_state) { 1610 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿*/1611 1612 cep->net_error = EV_CNNRF; /* æ¥ç¶ä¸è½*/1550 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 1551 1552 cep->net_error = EV_CNNRF; /* 接続不能 */ 1613 1553 cep->error = E_CLS; 1614 1554 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1); … … 1617 1557 break; 1618 1558 1619 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº */ 1620 case TCP_FSM_CLOSE_WAIT: /* FIN åä¿¡ãã¯ãã¼ãºå¾ 1621 ã¡ */ 1559 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 1560 case TCP_FSM_CLOSE_WAIT: /* FIN 受信、クローズ待ち */ 1622 1561 NET_COUNT_MIB(tcp_stats.tcpEstabResets, 1); 1623 1562 /* fallthrough */ 1624 1563 1625 case TCP_FSM_FIN_WAIT_1: /* çµäºãã¦ãFIN éä¿¡æ¸ã¿ */ 1626 case TCP_FSM_FIN_WAIT_2: /* çµäºãFIN ä¼é確èªåä¿¡ãFINå¾ 1627 ã¡ */ 1628 1629 cep->net_error = EV_CNRST; /* æ¥ç¶ãªã»ãã */ 1564 case TCP_FSM_FIN_WAIT_1: /* 終了して、FIN 送信済み */ 1565 case TCP_FSM_FIN_WAIT_2: /* 終了、FIN 伝達確認受信、FIN待ち */ 1566 1567 cep->net_error = EV_CNRST; /* 接続リセット */ 1630 1568 cep->error = E_CLS; 1631 1569 NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1); 1632 1570 /* no break; */ 1633 1571 1634 case TCP_FSM_CLOSING: /* çµäºãFIN 交ææ¸ã¿ãACK å¾ 1635 ã¡ */ 1636 case TCP_FSM_LAST_ACK: /* FIN åä¿¡ãçµäºãACK å¾ 1637 ã¡ */ 1572 case TCP_FSM_CLOSING: /* 終了、FIN 交換済み、ACK 待ち */ 1573 case TCP_FSM_LAST_ACK: /* FIN 受信、終了、ACK 待ち */ 1638 1574 1639 1575 cep = tcp_close(cep); … … 1645 1581 1646 1582 /* 1647 * CEP ã®ç¶æ 1648 ã SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿ã®å ´åã¯ã 1649 * åä¿¡ã¦ã£ã³ãã«åã¾ãããã«ãã¼ã¿ã 1650 * 調æ´ããåã«ããã®æ¥ç¶ã«ãããã±ãããã©ãããæ¤è¨¼ããã 1583 * CEP の状態が SYN を受信し、SYN 送信済みの場合は、 1584 * 受信ウィンドに収まるようにデータを 1585 * 調整する前に、この接続によるパケットかどうかを検証する。 1651 1586 * 1652 * åä¿¡ããç¸æã® SEQ < ç¸æã® SEQ ã®åæå¤(irs)1587 * 受信した相手の SEQ < 相手の SEQ の初期値 (irs) 1653 1588 * 1654 * ããã¯ã"LAND" DoS æ»æã®é²å¾¡ã§ããã1589 * これは、"LAND" DoS 攻撃の防御である。 1655 1590 */ 1656 1591 if (cep->fsm_state == TCP_FSM_SYN_RECVD && SEQ_LT(tcph->seq, cep->irs)) { … … 1659 1594 1660 1595 /* 1661 * åä¿¡ãæå¾ 1662 ãã¦ããæå°ã® SEQ (rcv_nxt) - åä¿¡ããç¸æã® SEQ ã 1663 * æ£ãªããrcv_nxt 以åã®ãã¼ã¿ã¯ãã§ã«åä¿¡ãã¦ããã®ã§ããã®é¨åã 1664 * åé¤ããã 1596 * 受信を期待している最小の SEQ (rcv_nxt) - 受信した相手の SEQ が 1597 * 正なら、rcv_nxt 以前のデータはすでに受信しているので、その部分を 1598 * 削除する。 1665 1599 * <---------- rcv_wnd ---------> 1666 1600 * rcv_nxt rcv_nxt + rcv_wnd … … 1674 1608 * ^ ^ 1675 1609 * seq seq + len 1676 * <---------------> åé¤ããã1610 * <---------------> 削除する。 1677 1611 */ 1678 1612 todrop = cep->rcv_nxt - tcph->seq; … … 1680 1614 1681 1615 /* 1682 * SYN ãã©ã°ãã¤ãã¦ããã¨ãã¯ããã®å (1 ãªã¯ããã)1683 * SEQ ãé²ããç·æ¥ãã¤ã³ã¿ã¨åé¤ããé·ãã調æ´ããã1616 * SYN フラグがついているときは、その分 (1 オクテット) 1617 * SEQ を進め、緊急ポインタと削除する長さを調整する。 1684 1618 */ 1685 1619 if (tcph->flags & TCP_FLG_SYN) { … … 1694 1628 1695 1629 /* 1696 * åé¤ããé·ãã SDU ããé·ããã¤ã¾ããåä¿¡ãæå¾ 1697 ãã¦ãã 1698 * æå°ã® SEQ (rcv_nxt) ã«éãã¦ããªããã 1699 * åé¤ããé·ãã SDU ã¨åãã§ãFIN ãã©ã°ãã¤ãã¦ãªããã° 1700 * å 1701 ¨ã¦åé¤ããã 1630 * 削除する長さが SDU より長い、つまり、受信を期待している 1631 * 最小の SEQ (rcv_nxt) に達していないか、 1632 * 削除する長さが SDU と同じで、FIN フラグがついてなければ 1633 * 全て削除する。 1702 1634 */ 1703 if ( todrop > tcph->sum || /* tcph->sum 㯠TCP ã® SDU é·*/1635 if ( todrop > tcph->sum || /* tcph->sum は TCP の SDU 長 */ 1704 1636 (todrop == tcph->sum && (tcph->flags & TCP_FLG_FIN) == 0)) { 1705 1637 tcph->flags &= ~TCP_FLG_FIN; 1706 1638 cep->flags |= TCP_CEP_FLG_ACK_NOW; 1707 todrop = tcph->sum; /* tcph->sum 㯠TCP ã® SDU é·*/1639 todrop = tcph->sum; /* tcph->sum は TCP の SDU 長 */ 1708 1640 } 1709 1641 1710 1642 /* 1711 * SDU ãåã«è©°ããã1643 * SDU を前に詰める。 1712 1644 */ 1713 if (todrop < tcph->sum) { /* tcph->sum 㯠TCP ã® SDU é·*/1645 if (todrop < tcph->sum) { /* tcph->sum は TCP の SDU 長 */ 1714 1646 memcpy(GET_TCP_SDU(input, *offp), 1715 1647 GET_TCP_SDU(input, *offp) + todrop, (size_t)(tcph->sum - todrop)); … … 1717 1649 1718 1650 /* 1719 * SEQ 㨠SDU é·ã調æ´ããã1651 * SEQ と SDU 長を調整する。 1720 1652 */ 1721 1653 tcph->seq += todrop; 1722 tcph->sum -= (uint16_t)todrop; /* tcph->sum 㯠TCP ã® SDU é·*/1654 tcph->sum -= (uint16_t)todrop; /* tcph->sum は TCP の SDU 長 */ 1723 1655 1724 1656 /* 1725 * ç·æ¥ãã¤ã³ã¿ã調æ´ããã1657 * 緊急ポインタを調整する。 1726 1658 */ 1727 1659 if (tcph->urp > todrop) … … 1736 1668 1737 1669 /* 1738 * ããã¦ã¼ã¶ã¿ã¹ã¯ãçµäºããå¾ã«ããã¼ã¿ãåä¿¡ãã1739 * å ´åã¯ãRST ãéãã1740 */ 1741 if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) { /* tcph->sum 㯠TCP ã® SDU é·*/1670 * もしユーザタスクが終了した後に、データを受信した 1671 * 場合は、RST を送る。 1672 */ 1673 if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) { /* tcph->sum は TCP の SDU 長 */ 1742 1674 cep = tcp_close(cep); 1743 1675 goto reset_drop; … … 1745 1677 1746 1678 /* 1747 * åä¿¡ã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããè¶ 1748 ããå ´åã¯ã 1749 * è¶ 1750 ããåãåãã 1679 * 受信セグメントが受信ウィンドを超える場合は、 1680 * 超えた分を削る。 1751 1681 * 1752 1682 * <---------- rcv_wnd ---------> … … 1761 1691 * ^ ^ 1762 1692 * seq seq + len 1763 * <-----> åé¤ããã1764 */ 1765 todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd); /* tcph->sum 㯠TCP ã® SDU é·*/1693 * <-----> 削除する。 1694 */ 1695 todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd); /* tcph->sum は TCP の SDU 長 */ 1766 1696 if (todrop > 0) { 1767 if (todrop > tcph->sum) { /* tcph->sum 㯠TCP ã® SDU é·*/1697 if (todrop > tcph->sum) { /* tcph->sum は TCP の SDU 長 */ 1768 1698 /* 1769 * åä¿¡ãã SDU ã®å 1770 ¨ã¦ãåä¿¡ã¦ã£ã³ããè¶ 1771 ããå ´åã 1699 * 受信した SDU の全てが受信ウィンドを超える場合。 1772 1700 * 1773 * TIME_WAIT ä¸ã«ãæ°ããªæ¥ç¶è¦æ±ãåä¿¡ããã1774 * å¤ãæ¥ç¶ãç ´æ£ããæ°ããªæ¥ç¶ãéå§ããã1775 * ãã ããSEQ ã¯åããé²ãã§ããªããã°ãªããªãã1701 * TIME_WAIT 中に、新たな接続要求を受信したら 1702 * 古い接続を破棄し、新たな接続を開始する。 1703 * ただし、SEQ は前より進んでいなければならない。 1776 1704 */ 1777 1705 if ((tcph->flags & TCP_FLG_SYN) && … … 1785 1713 1786 1714 /* 1787 * åä¿¡ã¦ã£ã³ãã 0 ã§ãåä¿¡ãã SEQ 㨠1788 * åä¿¡ãæå¾ 1789 ãã¦ããæå°ã® SEQ ãä¸è´ããã¨ã㯠1790 * ACK ãè¿ãããã以å¤ã¯ãã¼ã¿ãç ´æ£ããACK ãè¿ãã 1715 * 受信ウィンドが 0 で、受信した SEQ と 1716 * 受信を期待している最小の SEQ が一致したときは 1717 * ACK を返す。それ以外はデータを破棄し、ACK を返す。 1791 1718 */ 1792 1719 if (cep->rcv_wnd == 0 && (tcph->seq == cep->rcv_nxt || tcph->sum == 0)) { … … 1799 1726 } 1800 1727 } 1801 tcph->sum -= (uint16_t)todrop; /* tcph->sum 㯠TCP ã® SDU é·*/1728 tcph->sum -= (uint16_t)todrop; /* tcph->sum は TCP の SDU 長 */ 1802 1729 tcph->flags &= ~(TCP_FLG_PUSH | TCP_FLG_FIN); 1803 1730 } 1804 1731 1805 1732 /* 1806 * ãããSYN ãã»ããããã¦ããã°ã1807 * ã¨ã©ã¼ãªã®ã§ RST ãéããæ¥ç¶ãç ´æ£ããã1733 * もし、SYN がセットされていれば、 1734 * エラーなので RST を送り、接続を破棄する。 1808 1735 */ 1809 1736 if (tcph->flags & TCP_FLG_SYN) { … … 1814 1741 1815 1742 /* 1816 * ãããACK ãã»ããããã¦ããªãå ´åã¯ã 1817 * ç¶æ 1818 ã SYN åä¿¡æ¸ã¿ã 1819 * SYN ãéä¿¡ãããã¨ãã¦ããã°ãå¦çãç¶ãããã 1820 * ãã以å¤ã¯ã»ã°ã¡ã³ããç ´æ£ãã¦çµäºããã 1743 * もし、ACK がセットされていない場合は、 1744 * 状態が SYN 受信済みか 1745 * SYN を送信しようとしていれば、処理を続けるが、 1746 * それ以外はセグメントを破棄して終了する。 1821 1747 */ 1822 1748 if ((tcph->flags & TCP_FLG_ACK) == 0) { … … 1826 1752 else { 1827 1753 /* 1828 * ACK ã®å¦ç1754 * ACK の処理 1829 1755 */ 1830 1756 ret = proc_ack1(input, cep, *offp, &needoutput); … … 1840 1766 /* step 6 */ 1841 1767 1842 /* éä¿¡ã¦ã£ã³ããæ´æ°ããã*/1768 /* 送信ウィンドを更新する。*/ 1843 1769 if (update_wnd(tcph, cep) == true) 1844 1770 needoutput = true; 1845 1771 1846 /* ç·æ¥ãã¼ã¿ãå¦çããã*/1772 /* 緊急データを処理する。*/ 1847 1773 proc_urg(tcph, cep); 1848 1774 … … 1850 1776 1851 1777 /* 1852 * SDU ãããããFIN ãæªåä¿¡ã®ç¶æ 1853 ã§ãæåã« FIN ãåä¿¡ããã¨ãã 1854 * åä¿¡ã»ã°ã¡ã³ããã¥ã¼ã« net_buf ã追å ããã 1855 * ãã以å¤ã®å ´åã¯ãã»ã°ã¡ã³ããç ´æ£ããã 1778 * SDU があるか、FIN を未受信の状態で、最初に FIN を受信したとき、 1779 * 受信セグメントキューに net_buf を追加する。 1780 * それ以外の場合は、セグメントを破棄する。 1856 1781 */ 1857 1782 flags = tcph->flags; 1858 if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) && /* tcph->sum 㯠TCP ã® SDU é·*/1783 if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) && /* tcph->sum は TCP の SDU 長 */ 1859 1784 TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) { 1860 1785 flags = reassemble(input, cep, *offp, flags); … … 1866 1791 1867 1792 /* 1868 * FIN ãåä¿¡ãããã³ãã¯ã·ã§ã³ãã¯ãã¼ãºããã1793 * FIN を受信したらコネクションをクローズする。 1869 1794 */ 1870 1795 if (flags & TCP_FLG_FIN) 1871 1796 close_connection(cep, &needoutput); 1872 1797 1873 /* åºåãè¡ã£ãå¾çµäºããã*/1798 /* 出力を行った後終了する。*/ 1874 1799 if (needoutput == true || (cep->flags & TCP_CEP_FLG_ACK_NOW)) { 1875 /* éä¿¡ãæ示ããã*/1800 /* 送信を指示する。*/ 1876 1801 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1877 1802 sig_sem(SEM_TCP_POST_OUTPUT); … … 1882 1807 reset_drop: 1883 1808 /* 1884 * RST éä¿¡å¦ç1809 * RST 送信処理 1885 1810 */ 1886 1811 … … 1888 1813 goto drop; 1889 1814 1890 /* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/1815 /* ホストオーダーからネットワークオーダーに戻す。*/ 1891 1816 1892 1817 HTONS(tcph->sport); … … 1902 1827 else { 1903 1828 if (tcph->flags & TCP_FLG_SYN) 1904 tcph->sum ++; /* tcph->sum 㯠SDU é·*/1829 tcph->sum ++; /* tcph->sum は SDU 長 */ 1905 1830 tcp_respond(input, cep, tcph->seq + tcph->sum, 0, rbfree, TCP_FLG_RST | TCP_FLG_ACK); 1906 1831 } 1907 1832 1908 /* input 㯠tcp_respoond ã§è¿å´ãããã*/1833 /* input は tcp_respoond で返却される。*/ 1909 1834 NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_RSTS], 1); 1910 1835 NET_COUNT_MIB(tcp_stats.tcpOutRsts, 1); -
azure_iot_hub/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
r388 r389 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 … … 132 120 133 121 /* 134 * å¤æ°122 * 変数 135 123 */ 136 124 137 /* åºåæã®ãã©ã°ã FSM ç¶æ 138 ã«ããé¸æããããã®è¡¨ */ 125 /* 出力時のフラグを FSM 状態により選択するための表 */ 139 126 140 127 const static uint8_t tcp_outflags[] = { 141 TCP_FLG_RST | TCP_FLG_ACK, /* 0, ã¯ãã¼ãº */ 142 0, /* 1, ååãªã¼ãã³ */ 143 TCP_FLG_SYN, /* 2, è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿ */ 144 TCP_FLG_SYN | TCP_FLG_ACK, /* 3, SYM ãåä¿¡ããSYN éä¿¡æ¸ã¿ */ 145 TCP_FLG_ACK, /* 4, ã³ãã¯ã·ã§ã³éè¨å®äº */ 146 TCP_FLG_ACK, /* 5, FIN åä¿¡ãã¯ãã¼ãºå¾ 147 ã¡ */ 148 TCP_FLG_FIN | TCP_FLG_ACK, /* 6, çµäºãã¦ãFIN éä¿¡æ¸ã¿ */ 149 TCP_FLG_FIN | TCP_FLG_ACK, /* 7, çµäºãFIN 交ææ¸ã¿ãACK å¾ 150 ã¡ */ 151 TCP_FLG_FIN | TCP_FLG_ACK, /* 8, FIN åä¿¡ãçµäºãACK å¾ 152 ã¡ */ 153 TCP_FLG_ACK, /* 9, çµäºãFIN ä¼é確èªåä¿¡ãFINå¾ 154 ã¡ */ 155 TCP_FLG_ACK, /* 10, çµäºãæéå¾ 156 ã¡ */ 128 TCP_FLG_RST | TCP_FLG_ACK, /* 0, クローズ */ 129 0, /* 1, 受動オープン */ 130 TCP_FLG_SYN, /* 2, 能動オープン、SYN 送信済み */ 131 TCP_FLG_SYN | TCP_FLG_ACK, /* 3, SYM を受信し、SYN 送信済み */ 132 TCP_FLG_ACK, /* 4, コネクション開設完了 */ 133 TCP_FLG_ACK, /* 5, FIN 受信、クローズ待ち */ 134 TCP_FLG_FIN | TCP_FLG_ACK, /* 6, 終了して、FIN 送信済み */ 135 TCP_FLG_FIN | TCP_FLG_ACK, /* 7, 終了、FIN 交換済み、ACK 待ち */ 136 TCP_FLG_FIN | TCP_FLG_ACK, /* 8, FIN 受信、終了、ACK 待ち */ 137 TCP_FLG_ACK, /* 9, 終了、FIN 伝達確認受信、FIN待ち */ 138 TCP_FLG_ACK, /* 10, 終了、時間待ち */ 157 139 }; 158 140 159 141 /* 160 * send_segment -- TCP åºåå¦ç142 * send_segment -- TCP 出力処理 161 143 */ 162 144 … … 188 170 189 171 /* 190 * ã»ã°ã¡ã³ãé·ããç¸æã®æ大åä¿¡ã»ã°ã¡ã³ãé·ã«èª¿æ´ããã 191 * ãããè¶ 192 ãã¦ããå ´åã¯ãè¶ 193 ããåãå¾ã§éä¿¡ããã 194 * ãã®ãããFIN ããããã¯ãªã¢ããã 172 * セグメント長を、相手の最大受信セグメント長に調整する。 173 * もし、超えている場合は、超えた分を後で送信する。 174 * このため、FIN ビットをクリアする。 195 175 * 196 * ãªãªã¸ãã«ã§ã¯ãt_maxopd ãå¶éé·ã«ãã¦ãããã 197 * æ¬å®è£ 198 ã§ã¯ãç¸æã®æ大åä¿¡ã»ã°ã¡ã³ãã«ããã 176 * オリジナルでは、t_maxopd を制限長にしているが、 177 * 本実装では、相手の最大受信セグメントにする。 199 178 */ 200 179 if (len + optlen > cep->maxseg) { … … 205 184 206 185 /* 207 * éä¿¡ãããã¡ã空ã«ãªãã¨ã㯠PUSH ãã©ã°ãè¨å®ããã186 * 送信バッファが空になるときは PUSH フラグを設定する。 208 187 */ 209 188 if (len && doff + len >= cep->swbuf_count) … … 216 195 217 196 /* 218 * éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã219 * ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã197 * 送信ウインドバッファが開放されないようにして、 198 * ネットワークバッファを出力に移す。 220 199 */ 221 200 cep->swbufq->flags |= NB_FLG_NOREL_IFOUT; … … 225 204 226 205 /* 227 * ACK å®äºç¶æ 228 ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã 229 * ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã 206 * ACK 完了状態で、この関数が呼び出されることもある。 207 * この時は、len を 0 にして、処理を継続する。 230 208 */ 231 209 len = 0; … … 254 232 255 233 /* 256 * éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã257 * ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã234 * 送信ウインドバッファが開放されないようにして、 235 * ネットワークバッファを出力に移す。 258 236 */ 259 237 cep->swbufq->flags |= NB_FLG_NOREL_IFOUT; … … 263 241 264 242 /* 265 * ACK å®äºç¶æ 266 ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã 267 * ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã 243 * ACK 完了状態で、この関数が呼び出されることもある。 244 * この時は、len を 0 にして、処理を継続する。 268 245 */ 269 246 len = 0; … … 290 267 291 268 /* 292 * TCP ãªãã·ã§ã³ã®è¨å®ãè¡ãã 293 * æ¬å®è£ 294 ã§ã¯ãæ大ã»ã°ã¡ã³ããµã¤ãºã®ã¿è¨å®ããã 269 * TCP オプションの設定を行う。 270 * 本実装では、最大セグメントサイズのみ設定する。 295 271 */ 296 272 hdr_offset = IF_IP_TCP_HDR_OFFSET(output); … … 309 285 } 310 286 311 /* TCP SDU ã«éä¿¡ãã¼ã¿ãã³ãã¼ããã*/287 /* TCP SDU に送信データをコピーする。*/ 312 288 313 289 if (len > 0) { … … 335 311 336 312 /* 337 * snd_max: éä¿¡ããæ大SEQ338 * snd_nxt: 次ã«éä¿¡ããSEQ313 * snd_max: 送信した最大 SEQ 314 * snd_nxt: 次に送信する SEQ 339 315 * 340 * ç¸æãã FIN ãåä¿¡ããã¾ã FIN ãéä¿¡ãã¦ããªããã341 * éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã342 * ã»ã°ã¡ã³ããéä¿¡ããããSEQ ã¯é²ããªãã316 * 相手から FIN を受信し、まだ FIN を送信していないか、 317 * 送るデータがないときは、FIN を相手に届けるため、 318 * セグメントを送信するが、SEQ は進めない。 343 319 */ 344 320 if ((flags & TCP_FLG_FIN) && (cep->flags & TCP_CEP_FLG_SENT_FIN) && … … 350 326 351 327 /* 352 * SEQ ãACKããã©ã°ã®è¨å®ã328 * SEQ、ACK、フラグの設定。 353 329 */ 354 330 if (len > 0 || (flags & (TCP_FLG_SYN | TCP_FLG_FIN)) || cep->timer[TCP_TIM_PERSIST] != 0) … … 358 334 359 335 /* 360 * rcv_nxt: åä¿¡ãæå¾ 361 ãã¦ããæå°ã® SEQ 336 * rcv_nxt: 受信を期待している最小の SEQ 362 337 */ 363 338 tcph->ack = htonl(cep->rcv_nxt); … … 365 340 366 341 /* 367 * åä¿¡ã¦ã£ã³ãã®è¨ç®342 * 受信ウィンドの計算 368 343 * 369 * rbufsz: åä¿¡ç¨ãããã¡ãµã¤ãº370 * maxseg: ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº344 * rbufsz: 受信用バッファサイズ 345 * maxseg: 相手の最大受信セグメントサイズ 371 346 */ 372 347 if (win < (cep->rbufsz / 4) && win < cep->maxseg) … … 374 349 375 350 /* 376 * rcv_nxt: åä¿¡ãæå¾ 377 ãã¦ããæå°ã® SEQ 378 * rcv_adv: åä¿¡ãæå¾ 379 ãã¦ããæ大㮠SEQ 351 * rcv_nxt: 受信を期待している最小の SEQ 352 * rcv_adv: 受信を期待している最大の SEQ 380 353 */ 381 354 if ((int32_t)win < (int32_t)(cep->rcv_adv - cep->rcv_nxt)) … … 387 360 388 361 /* 389 * ç·æ¥ãã¤ã³ã¿ã®è¨å®362 * 緊急ポインタの設定 390 363 */ 391 364 if (SEQ_GT(cep->snd_up, cep->snd_nxt)) { … … 404 377 405 378 /* 406 * ãã§ãã¯ãµã ãè¨å®ããã379 * チェックサムを設定する。 407 380 */ 408 381 tcph->sum = 0; 409 382 tcph->sum = IN_CKSUM(output, IPPROTO_TCP, hdr_offset, GET_TCP_HDR_SIZE(output, hdr_offset) + len); 410 383 411 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/384 /* ネットワークバッファ長を調整する。*/ 412 385 output->len = (uint16_t)(GET_IF_IP_TCP_HDR_SIZE(output, 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_NOT_CLEAR; … … 526 496 527 497 /* 528 * tcp_output -- TCP åºåå¦ç498 * tcp_output -- TCP 出力処理 529 499 */ 530 500 … … 539 509 540 510 /* 541 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ ã¾ãã¯ã確èªãããæ大éä¿¡SEQ542 * snd_max: éä¿¡ããæ大SEQ511 * snd_una: 未確認の最小送信 SEQ または、確認された最大送信 SEQ 512 * snd_max: 送信した最大 SEQ 543 513 */ 544 514 idle = (cep->snd_max == cep->snd_una); 545 515 546 516 /* 547 * idle: ã¢ã¤ãã«æé548 * rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã517 * idle: アイドル時間 518 * rxtcur: 現在の再送タイムアウト 549 519 */ 550 520 if (idle && cep->idle >= cep->rxtcur) 551 521 552 522 /* 553 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº554 * maxseg : ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº523 * snd_cwnd: 輻輳ウィンドサイズ 524 * maxseg : 相手の最大受信セグメントサイズ 555 525 * 556 * é·æéã¢ã¤ãã«ã ã£ãã®ã§ã¹ãã¼ã¹ã¿ã¼ãå¶å¾¡ã«è¨å®ããã526 * 長時間アイドルだったのでスロースタート制御に設定する。 557 527 */ 558 528 cep->snd_cwnd = cep->maxseg; … … 562 532 563 533 /* 564 * snd_nxt: 次ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ããSEQ565 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæ大éä¿¡SEQ534 * snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ 535 * snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ 566 536 * 567 * doff: éä¿¡ãéå§ãããªãã»ããã568 * swbuf_count ( éä¿¡ãããã¡ã«ãããªã¯ãããæ°)537 * doff: 送信を開始するオフセット。 538 * swbuf_count (送信バッファにあるオクテット数) 569 539 * 0 V 570 540 * +-------------------------------------------+ … … 572 542 * +-------------------------------------------+ 573 543 * ^ ^ 574 * |<------------->snd_nxt ( ååéä¿¡ããSEQ)544 * |<------------->snd_nxt (前回送信した SEQ) 575 545 * | doff 576 * snd_una ( ã¾ã 確èªããã¦ããªã)546 * snd_una (まだ確認されていない) 577 547 */ 578 548 doff = (uint_t)(cep->snd_nxt - cep->snd_una); 579 549 580 550 /* 581 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº582 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº551 * snd_wnd: 相手の受信可能ウィンドサイズ 552 * snd_cwnd: 輻輳ウィンドサイズ 583 553 * 584 * win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨å®ããã554 * win: どちらか小さいウィンドサイズに設定する。 585 555 */ 586 556 win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd; 587 557 588 /* åºåãã©ã°ã®è¨å®*/558 /* 出力フラグの設定 */ 589 559 flags = tcp_outflags[cep->fsm_state]; 590 560 if (cep->flags & TCP_CEP_FLG_NEED_FIN) … … 595 565 596 566 /* 597 * ãããéä¿¡ã¦ã¤ã³ããµã¤ãº (win) ã 0 ãªã 1 ãªã¯ãããéä¿¡ããã598 * ããã§ãªããã°ãæç¶ã¿ã¤ã ã¢ã¦ãããã£ã³ã»ã«ãã599 * åéä¿¡åæ° (rxtshift) ã 0 ã«ããã567 * もし、送信ウインドサイズ (win) が 0 なら 1 オクテット送信する。 568 * そうでなければ、持続タイムアウトをキャンセルし、 569 * 再送信回数 (rxtshift) を 0 にする。 600 570 */ 601 571 if (win == 0) { 602 572 603 573 /* 604 * doff: éä¿¡ãããªã¯ãããæ°ã605 * swbuf_count: éä¿¡ãããã¡ã®ä½¿ç¨ä¸ãµã¤ãº574 * doff: 送信するオクテット数。 575 * swbuf_count: 送信バッファの使用中サイズ 606 576 * 607 * éä¿¡ãããã¡ã«æ®ã£ã¦ãããªã¯ããããããããã608 * éä¿¡ãããã¨ãã¦ãããªã¯ãããæ°ããå¤ããã°609 * FIN ãã©ã°ãã¯ãªã¢ããã577 * 送信バッファに残っているオクテットが、これから 578 * 送信しようとしているオクテット数より多ければ 579 * FIN フラグをクリアする。 610 580 */ 611 581 if (doff < cep->swbuf_count) … … 615 585 else { 616 586 /* 617 * TCP_TIM_PERSIST: æç¶ã¿ã¤ã618 * rxtshift: åéä¿¡åæ°ã®log(2)587 * TCP_TIM_PERSIST: 持続タイマ 588 * rxtshift: 再送信回数の log(2) 619 589 */ 620 590 cep->timer[TCP_TIM_PERSIST] = 0; … … 624 594 625 595 /* 626 * len: ä»åéä¿¡ãããªã¯ãããæ°627 * swbuf_count ( éä¿¡ãããã¡ã«ãããªã¯ãããæ°)596 * len: 今回送信するオクテット数 597 * swbuf_count (送信バッファにあるオクテット数) 628 598 * | 629 599 * 0 V … … 633 603 * ^ ^<-------------> 634 604 * | | len 635 * |<------------->snd_nxt ( ååéä¿¡ããSEQ)605 * |<------------->snd_nxt (前回送信した SEQ) 636 606 * | doff 637 * snd_una ( ã¾ã 確èªããã¦ããªã)607 * snd_una (まだ確認されていない) 638 608 */ 639 609 if (cep->swbuf_count < win) … … 643 613 644 614 /* 645 * ãã§ã«éä¿¡ããã¦ããã°ãSYN ãããããªãããã646 * ãããã以ä¸ã®æ¡ä»¶ã§ã¯éä¿¡ãæ§ããã615 * すでに送信されていれば、SYN ビットをオフする。 616 * しかし、以下の条件では送信を控える。 647 617 * 648 * ã»ç¶æ 649 ã SYN éä¿¡ã 650 * ã»ã»ã°ã¡ã³ãããã¼ã¿ãå«ãã§ããã 618 * ・状態が SYN 送信。 619 * ・セグメントがデータを含んでいる。 651 620 */ 652 621 if ((flags & TCP_FLG_SYN) && SEQ_GT(cep->snd_nxt, cep->snd_una)) { 653 622 flags &= ~TCP_FLG_SYN; 654 doff --; /* -1 㯠SYN ãã©ã°å*/655 len ++; /* +1 㯠SYN ãã©ã°å*/623 doff --; /* -1 は SYN フラグ分 */ 624 len ++; /* +1 は SYN フラグ分 */ 656 625 if (len > 0 && cep->fsm_state == TCP_FSM_SYN_SENT) 657 626 break; … … 666 635 667 636 /* 668 * len ã 0 以ä¸ãªãã0 ã«è¨å®ããã669 * ãããéä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ãªãã670 * åéä¿¡ã¿ã¤ãããã£ã³ã»ã«ãã671 * ååéä¿¡ãã SEQ (snd_nxt) ã672 * 確èªãããæ大éä¿¡ SEQ (snd_una) ã«æ»ãã673 * ããã¦ãæç¶ã¿ã¤ãã¼ãæ¢ã¾ã£ã¦ããã°ãåè¨å®ããã637 * len が 0 以下なら、0 に設定する。 638 * もし、送信ウィンドウサイズが 0 なら、 639 * 再送信タイマをキャンセルし、 640 * 前回送信した SEQ (snd_nxt) を 641 * 確認された最大送信 SEQ (snd_una) に戻す。 642 * そして、持続タイマーが止まっていれば、再設定する。 674 643 */ 675 644 len = 0; … … 685 654 686 655 /* 687 * ä»åéä¿¡ãããªã¯ãããæ° (len) ã¯ã 688 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶ 689 ããªãããã«ããã 656 * 今回送信するオクテット数 (len) は、 657 * 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。 690 658 */ 691 659 if (len > cep->maxseg) { … … 695 663 696 664 /* 697 * swbuf_count ( éä¿¡ãããã¡ã«ãããªã¯ãããæ°)665 * swbuf_count (送信バッファにあるオクテット数) 698 666 * | 699 667 * 0 V … … 703 671 * ^ ^<-------------> 704 672 * | | len 705 * |<------------->snd_nxt ( ååéä¿¡ããSEQ)673 * |<------------->snd_nxt (前回送信した SEQ) 706 674 * | doff 707 * snd_una ( ã¾ã 確èªããã¦ããªã)675 * snd_una (まだ確認されていない) 708 676 * 709 * ä»åéä¿¡å¾ããéä¿¡ãããã¡ã«ãã¼ã¿ãæ®ã£ã¦ããã°710 * FIN ãã©ã°ãã¯ãªã¢ããã677 * 今回送信後も、送信バッファにデータが残っていれば 678 * FIN フラグをクリアする。 711 679 */ 712 680 if (SEQ_LT(cep->snd_nxt + len, cep->snd_una + cep->swbuf_count)) … … 714 682 715 683 /* 716 * ãããã win ã¯ãåä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã717 * åä¿¡ãããã¡ã®ç©ºã容é684 * ここから win は、受信ウィンドウサイズ。 685 * 受信バッファの空き容量 718 686 */ 719 687 win = cep->rbufsz - cep->rwbuf_count; 720 688 721 689 /* 722 * æããªã¦ã£ã³ãã¦ã»ã·ã³ããã¼ã ã®åé¿å¦ç (éä¿¡å´)690 * 愚かなウィンドウ・シンドロームの回避処理 (送信側) 723 691 * 724 * 以ä¸ã®æ¡ä»¶ã§ãéä¿¡ãè¡ãã692 * 以下の条件で、送信を行う。 725 693 * 726 * ã»ãã«ãµã¤ãº (maxseg) ã®ã»ã°ã¡ã³ããéããã¨ãã§ããã 727 * ã»ç¸æã®æ大ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ã®ãã¼ã¿ã 728 * éããã¨ãã§ããã 729 * ã»éä¿¡ãããã¡ã空ã«ã§ããã¢ã¤ãã«ãéé 730 延ãªãã·ã§ã³ãæå¹ãªã¨ãã 694 * ・フルサイズ (maxseg) のセグメントを送ることができる。 695 * ・相手の最大の受信ウィンドウサイズの 1/2 のデータを 696 * 送ることができる。 697 * ・送信バッファを空にでき、アイドルか非遅延オプションが有効なとき。 731 698 */ 732 699 if (len) { 733 700 734 701 /* 735 * ä»åéä¿¡ãããªã¯ãããæ° (len) ã736 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã«737 * ä¸è´ããã¨ãã¯éä¿¡ããã702 * 今回送信するオクテット数 (len) が 703 * 相手の最大受信セグメントサイズ (maxseg) に 704 * 一致するときは送信する。 738 705 */ 739 706 if (len == cep->maxseg) { … … 743 710 744 711 /* 745 * ä»åã®éä¿¡ã§ãéä¿¡ãããã¡ã空ã«ã§ãã746 * ã¢ã¤ãã«ãé PUSH ãªãã·ã§ã³ãæå¹ãªã¨ãã712 * 今回の送信で、送信バッファを空にでき、 713 * アイドルか非 PUSH オプションが有効なとき。 747 714 */ 748 715 if ((idle || (cep->flags & TCP_CEP_FLG_NO_DELAY)) && … … 754 721 755 722 /* 756 * max_sndwnd: ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãº757 * snd_nxt: 次ã«éä¿¡ããSEQ758 * snd_max: éä¿¡ããæ大SEQ723 * max_sndwnd: 今までの最大送信ウィンドサイズ 724 * snd_nxt: 次に送信する SEQ 725 * snd_max: 送信した最大 SEQ 759 726 * 760 * 次ã®æ¡ä»¶ã§ã¯éä¿¡ãè¡ãã727 * 次の条件では送信を行う。 761 728 * 762 * ã»å¼·å¶éä¿¡ãã©ã°ãã»ããããã¦ããã763 * ã»ãã¼ã¿é·ãç¸æã®æ大ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 以ä¸ã§ã764 * ç¸æã®æ大ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ãã大ããã765 * ã»æ¬¡ã«éä¿¡ãã SEQ ãéä¿¡ããæ大 SEQ ããå°ããã766 * ã¤ã¾ããåéããã¨ãã729 * ・強制送信フラグがセットされている。 730 * ・データ長が相手の最大の受信ウィンドウサイズの 1/2 以上で、 731 * 相手の最大の受信ウィンドウサイズが 0 より大きい。 732 * ・次に送信する SEQ が送信した最大 SEQ より小さい、 733 * つまり、再送するとき。 767 734 */ 768 735 if ((cep->flags & TCP_CEP_FLG_FORCE) || … … 776 743 777 744 /* 778 * æããªã¦ã£ã³ãã¦ã»ã·ã³ããã¼ã ã®åé¿å¦ç (åä¿¡å´)745 * 愚かなウィンドウ・シンドロームの回避処理 (受信側) 779 746 * 780 * ã¦ã£ã³ãã¦ãµã¤ãºããã«ãµã¤ãºã® 2 åã®ã»ã°ã¡ã³ãããããã¯781 * åä¿¡ãããã¡å®¹éã® 1/2 ã®ãããããå°ããã»ãã®782 * ãµã¤ãºã§å¢å ãããå ´åã¯ãã¦ã£ã³ãã¦ãµã¤ãºã®æ´æ°ãè¡ãã747 * ウィンドウサイズがフルサイズの 2 倍のセグメント、あるいは 748 * 受信バッファ容量の 1/2 の、いずれか小さいほうの 749 * サイズで増加される場合は、ウィンドウサイズの更新を行う。 783 750 */ 784 751 if (win > 0) { … … 786 753 787 754 /* 788 * win: åä¿¡ãããã¡ã®ç©ºã容é 789 * MAX_TCP_WIN_SIZE: TCP ãããã® win ãã£ã¼ã«ãã«è¨å®ã§ããæå¤§å¤ 790 * rcv_adv: åä¿¡ãæå¾ 791 ãã¦ããæ大㮠SEQ 792 * rcv_nxt: åä¿¡ãæå¾ 793 ãã¦ããæå°ã® SEQ 755 * win: 受信バッファの空き容量 756 * MAX_TCP_WIN_SIZE: TCP ヘッダの win フィールドに設定できる最大値 757 * rcv_adv: 受信を期待している最大の SEQ 758 * rcv_nxt: 受信を期待している最小の SEQ 794 759 */ 795 760 if (win < MAX_TCP_WIN_SIZE) … … 806 771 807 772 /* 808 * ACK ãéä¿¡ããã773 * ACK を送信する。 809 774 */ 810 775 if (cep->flags & TCP_CEP_FLG_ACK_NOW) { … … 829 794 830 795 /* 831 * snd_nxt: 次ã«éä¿¡ããSEQ832 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæ大éä¿¡SEQ796 * snd_nxt: 次に送信する SEQ 797 * snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ 833 798 * 834 * ç¸æãã FIN ãåä¿¡ããã¾ã FIN ãéä¿¡ãã¦ããªããã835 * éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã836 * ã»ã°ã¡ã³ããéä¿¡ããã799 * 相手から FIN を受信し、まだ FIN を送信していないか、 800 * 送るデータがないときは、FIN を相手に届けるため、 801 * セグメントを送信する。 837 802 */ 838 803 if ((flags & TCP_FLG_FIN) && … … 843 808 844 809 /* 845 * éä¿¡ãã¹ããã¼ã¿ããããåéã¿ã¤ãã¨æç¶ã¿ã¤ããåãã¦ããã¨ãã¯846 * æç¶ã¿ã¤ããè¨å®ããã810 * 送信すべきデータがあり、再送タイマと持続タイマが切れているときは 811 * 持続タイマを設定する。 847 812 */ 848 813 if (cep->swbuf_count && cep->timer[TCP_TIM_REXMT ] == 0 && … … 859 824 860 825 /* 861 * tcptsk_alloc_swbufq -- éä¿¡ã¦ã£ã³ããããã¡å²ãå½ã¦826 * tcptsk_alloc_swbufq -- 送信ウィンドバッファ割り当て 862 827 */ 863 828 … … 869 834 870 835 /* 871 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº872 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº836 * snd_wnd: 相手の受信可能ウィンドサイズ 837 * snd_cwnd: 輻輳ウィンドサイズ 873 838 * 874 * win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨å®ããã839 * win: どちらか小さいウィンドサイズに設定する。 875 840 */ 876 841 win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd; 877 842 878 843 /* 879 * ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾ 880 æ©ããã 844 * 相手の受信ウィンドが閉じている場合は、開くまで待機する。 881 845 */ 882 846 if (win == 0) { … … 887 851 #ifdef TCP_CFG_NON_BLOCKING 888 852 889 /* ãã³ããããã³ã°ã³ã¼ã«*/853 /* ノンブロッキングコール */ 890 854 if (!IS_PTR_DEFINED(cep->callback)) { 891 855 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 892 856 893 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/857 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 894 858 cep->snd_tskid = TA_NULL; 895 859 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 906 870 (GET_TCP_CEPID(cep) & NBA_ID_MASK)), TMO_POL)) != E_OK) { 907 871 908 /* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/872 /* ネットワークバッファを予約する。*/ 909 873 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_PEND; 910 874 } 911 875 else { 912 876 913 /* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/877 /* 送信ウィンドバッファを初期化する。*/ 914 878 tcp_init_swbuf(cep); 915 879 … … 920 884 uint_t len; 921 885 922 /* éä¿¡ã¦ã£ã³ããããã¡ã®æ¸ãè¾¼ã¿ã¢ãã¬ã¹ãè¨å®ããã*/886 /* 送信ウィンドバッファの書き込みアドレスを設定する。*/ 923 887 len = TCP_GET_SWBUF_ADDR(cep, cep->snd_p_buf); 924 888 925 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/889 /* コールバック関数を呼び出す。*/ 926 890 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 927 891 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len); … … 931 895 932 896 933 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/897 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 934 898 cep->snd_tskid = TA_NULL; 935 899 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 941 905 uint_t len; 942 906 943 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/907 /* 送信ウィンドバッファにデータを書き込む。*/ 944 908 len = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len); 945 909 946 910 #ifdef TCP_CFG_EXTENTIONS 947 911 948 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/912 /* 送信緊急ポインタを設定する。*/ 949 913 if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB) 950 914 cep->snd_up = cep->snd_una + len; … … 952 916 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 953 917 954 /* ãã©ã°ããéä¿¡å¯è½ã«è¨å®ããå¼·å¶çã«éä¿¡ããã*/918 /* フラグを、送信可能に設定し、強制的に送信する。*/ 955 919 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR | TCP_CEP_FLG_POST_OUTPUT; 956 920 957 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/921 /* コールバック関数を呼び出す。*/ 958 922 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 959 923 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len); … … 963 927 964 928 965 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/929 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 966 930 cep->snd_tskid = TA_NULL; 967 931 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 975 939 976 940 /* 977 * tcptsk_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡éæ¾941 * tcptsk_free_swbufq -- 送信ウィンドバッファ開放 978 942 */ 979 943 … … 982 946 { 983 947 /* 984 * å信確èªãå®äºãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããã®985 * åºåãå®äºããã¨ãã¯ãéä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã986 */ 987 988 /* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãºããªã»ããããã*/948 * 受信確認が完了し、ネットワークインタフェースからの 949 * 出力も完了したときは、送信ウィンドバッファキューを解放する。 950 */ 951 952 /* 送信ウィンドバッファの使用中サイズをリセットする。*/ 989 953 cep->swbuf_count = 0; 990 954 991 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/955 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 992 956 syscall(rel_net_buf(cep->swbufq)); 993 957 cep->swbufq = NULL; 994 958 995 /* ãã©ã°ã空ãã«è¨å®ããã*/959 /* フラグを空きに設定する。*/ 996 960 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_FREE; 997 961 998 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/962 /* 送信ウィンドバッファに空きができたことを知らせる。*/ 999 963 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); 1000 964 1001 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾ 1002 ã¡ã®ã¨ãã¯ãTCP åºåã¿ã¹ã¯ãèµ·åããã*/ 965 /* 送信ウィンドバッファの空き待ちのときは、TCP 出力タスクを起動する。*/ 1003 966 if ((cep->flags & TCP_CEP_FLG_WBCS_NBUF_REQ) != 0) { 1004 967 sig_sem(SEM_TCP_POST_OUTPUT); … … 1009 972 1010 973 /* 1011 * TCP åºåã¿ã¹ã¯974 * TCP 出力タスク 1012 975 */ 1013 976 … … 1028 991 #ifdef _IP6_CFG 1029 992 1030 /* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ãå®è¡ããã*/993 /* IPv6 のステートレス・アドレス自動設定を実行する。*/ 1031 994 in6_if_up(IF_GET_IFNET()); 1032 995 … … 1035 998 while (true) { 1036 999 1037 /* åºåããã¹ããããã¾ã§å¾ 1038 ã¤ã*/ 1000 /* 出力がポストされるまで待つ。*/ 1039 1001 syscall(wai_sem(SEM_TCP_POST_OUTPUT)); 1040 1002 … … 1061 1023 1062 1024 /* 1063 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµãã£ã¦ããªãã¨ãã¯ã1064 * éä¿¡ãäºç´ããã1025 * ネットワークインタフェースから送信が終わっていないときは、 1026 * 送信を予約する。 1065 1027 */ 1066 1028 if (cep->flags & TCP_CEP_FLG_POST_OUTPUT && … … 1077 1039 1078 1040 /* 1079 * éä¿¡äºç´ä¸ã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµäºãããã 1080 * éä¿¡ãéå§ããããã ããå®å 1081 ¨ã«éä¿¡ãçµäºããã¨ãã¯ä½ãããªãã 1041 * 送信予約中に、ネットワークインタフェースから送信が終了したら、 1042 * 送信を開始する。ただし、完全に送信が終了したときは何もしない。 1082 1043 */ 1083 1044 if (cep->flags & TCP_CEP_FLG_RESERVE_OUTPUT) { … … 1102 1063 1103 1064 /* 1104 * tcp_con_cep ã®ãã³ããããã³ã°ã³ã¼ã«ã§ã1105 * æªå²å½ã®ã®å ´åã¯ããã¼ãçªå·ãå²ãå½ã¦ãã1106 * p_myaddr ã NADR (-1) ãã1107 * èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã1065 * tcp_con_cep のノンブロッキングコールで、 1066 * 未割当のの場合は、ポート番号を割り当てる。 1067 * p_myaddr が NADR (-1) か、 1068 * 自ポート番号が TCP_PORTANY なら、自動で割り当てる。 1108 1069 */ 1109 1070 if (cep->p_myaddr == NADR || cep->p_myaddr->portno == TCP_PORTANY) … … 1120 1081 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 1121 1082 1122 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/1083 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 1123 1084 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; 1124 1085 cep->snd_tskid = TA_NULL; … … 1132 1093 1133 1094 if (cep->flags & TCP_CEP_FLG_CLOSE_AFTER_OUTPUT) { 1134 /* ã³ãã¯ã·ã§ã³ãéããã*/1095 /* コネクションを閉じる。*/ 1135 1096 tcp_close(cep); 1136 1097 cep->flags &= ~TCP_CEP_FLG_CLOSE_AFTER_OUTPUT; … … 1138 1099 1139 1100 if (cep->flags & TCP_CEP_FLG_RESTORE_NEXT_OUTPUT) { 1140 /* snd_nxt ãå 1141 ã«æ»ãã*/ 1101 /* snd_nxt を元に戻す。*/ 1142 1102 if (SEQ_GT(cep->snd_old_nxt, cep->snd_nxt)) 1143 1103 cep->snd_nxt = cep->snd_old_nxt; … … 1152 1112 } while (ix != last_ix); 1153 1113 1154 /* 次åã¯ãå¦çããé信端ç¹ãå¾åãã«ããã*/1114 /* 次回は、処理した通信端点を後回しにする。*/ 1155 1115 last_ix = sel_ix; 1156 1116 } -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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$ … … 129 117 130 118 /* 131 * å 132 ¨åå¤æ° 133 */ 134 135 /* 136 * TCP ã® SEQ ã®åæå¤ãããã°ã©ã ãèµ·åãã¦ãæåã« TCP ã»ã°ã¡ã³ãã 137 * éåä¿¡ããã¨ãã«ãget_tim() ã«ããåæåããã 119 * 全域変数 120 */ 121 122 /* 123 * TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを 124 * 送受信するときに、get_tim() により初期化する。 138 125 */ 139 126 T_TCP_SEQ tcp_iss = 0; … … 142 129 143 130 /* 144 * SNMP 㮠管çæ 145 å ±ãã¼ã¹ (MIB) 131 * SNMP の 管理情報ベース (MIB) 146 132 */ 147 133 … … 151 137 152 138 /* 153 * å±æå¤æ°154 */ 155 156 static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO; /* èªåå²ãå½ã¦çªå·*/139 * 局所変数 140 */ 141 142 static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO; /* 自動割り当て番号 */ 157 143 158 144 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 159 145 160 146 /* 161 * ã¿ã¹ã¯ããã® Time Wait ç¶æ 162 CEP åé¢æ©è½ 163 */ 164 165 /* 166 * å¤æ° 147 * タスクからの Time Wait 状態 CEP 分離機能 148 */ 149 150 /* 151 * 変数 167 152 */ 168 153 … … 170 155 171 156 /* 172 * tcp_move_twcep -- å¿ 173 è¦ãªæ 174 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã¦ã 175 * æ¨æºã® TCP é信端ç¹ãéæ¾ããã 157 * tcp_move_twcep -- 必要な情報を Time Wait 用 TCP 通信端点に移して、 158 * 標準の TCP 通信端点を開放する。 176 159 */ 177 160 … … 181 164 T_TCP_TWCEP* twcep; 182 165 183 /* 空ãã® Time Wait ç¨ TCP é信端ç¹ãæ¢ç´¢ããã*/166 /* 空きの Time Wait 用 TCP 通信端点を探索する。*/ 184 167 for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) { 185 168 if (twcep->fsm_state != TCP_FSM_TIME_WAIT) { 186 169 187 170 /* 188 * é信端ç¹ãããã¯ãã 189 * å¿ 190 è¦ãªæ 191 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã 171 * 通信端点をロックし、 172 * 必要な情報を Time Wait 用 TCP 通信端点に移す。 192 173 */ 193 174 syscall(wai_sem(cep->semid_lock)); … … 202 183 twcep->timer_2msl = cep->timer[TCP_TIM_2MSL]; 203 184 204 /* é信端ç¹ãããã¯ã解é¤ããã*/185 /* 通信端点をロックを解除する。*/ 205 186 syscall(sig_sem(cep->semid_lock)); 206 187 207 /* æ¨æº TCP é信端ç¹ãéæ¾ããã*/188 /* 標準 TCP 通信端点を開放する。*/ 208 189 tcp_close(cep); 209 190 … … 214 195 215 196 /* 216 * tcp_find_twcep -- ãã¼ãçªå·ãã Time Wait ç¨ TCP é信端ç¹ãå¾ãã197 * tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。 217 198 */ 218 199 … … 226 207 227 208 /* 228 * ç¶æ 229 ã TIME WAIT ã§ã 230 * IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããé信端ç¹ãæ¢ç´¢ããã 209 * 状態が TIME WAIT で、 210 * IP アドレスとポート番号が一致する通信端点を探索する。 231 211 */ 232 212 for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) { … … 245 225 246 226 /* 247 * tcp_find_cep -- ãã¼ãçªå·ãã TCP é信端ç¹ãå¾ãã227 * tcp_find_cep -- ポート番号から TCP 通信端点を得る。 248 228 */ 249 229 … … 257 237 258 238 /* 259 * ç¶æ 260 ã SYN éä¿¡æ¸ã¿ä»¥å¾ã¯ã 261 * IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ãã TCP é信端ç¹ãæ¢ç´¢ããã 239 * 状態が SYN 送信済み以後は、 240 * IP アドレスとポート番号が一致する TCP 通信端点を探索する。 262 241 */ 263 242 for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) { … … 270 249 } 271 250 272 /* IPv4 ã§ååãªã¼ãã³ä¸ã® TCP é信端ç¹ãå 273 ã«æ¢ç´¢ããã*/ 251 /* IPv4 で受動オープン中の TCP 通信端点を先に探索する。*/ 274 252 for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) { 275 253 if ((cep->flags & TCP_CEP_FLG_IPV4) && … … 281 259 } 282 260 283 /* ååãªã¼ãã³ä¸ã® TCP é信端ç¹ãæ¢ç´¢ããã*/261 /* 受動オープン中の TCP 通信端点を探索する。*/ 284 262 for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) { 285 263 … … 327 305 328 306 /* 329 * tcp_is_addr_accept -- åä¿¡å¯è½ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ã§ãããã¨ã確èªããã307 * tcp_is_addr_accept -- 受信可能な IP アドレスとポート番号であることを確認する。 330 308 */ 331 309 … … 340 318 341 319 /* 342 * 次ã®ã¨ãã¯ç ´æ£ããã 343 * ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã 344 * ãã ããéä¿¡å 345 IP ã¢ãã¬ã¹ããã¼ã«ã«ã«ã¼ãããã¯ãªãè¯ãã 346 * ã»ãã«ããã£ã¹ãã¢ãã¬ã¹ 320 * 次のときは破棄する。 321 * ・ポート番号が同一で、送受信 IP アドレス が同一。 322 * ただし、送信元 IP アドレスがローカルループバックなら良い。 323 * ・マルチキャストアドレス 347 324 */ 348 325 … … 354 331 355 332 /* 356 * 次ã®ã¨ãã¯ãåä¿¡å¯è½ã§ã¯ãªãã357 * ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã358 * ã»ãã«ããã£ã¹ãã¢ãã¬ã¹333 * 次のときは、受信可能ではない。 334 * ・ポート番号が同一で、送受信 IP アドレス が同一。 335 * ・マルチキャストアドレス 359 336 */ 360 337 if (tcph->dport == tcph->sport && IN_ARE_HDR_ADDR_EQUAL(input)) … … 370 347 371 348 /* 372 * tcp_free_reassq -- åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã349 * tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。 373 350 * 374 * 注æ: 375 * å¿ 376 è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãé信端ç¹ãããã¯ãã 377 * æ»ã£ãå¾ã解é¤ããå¿ 378 è¦ãããã 351 * 注意: 352 * 必要であれば、この関数を呼び出す前に、通信端点をロックし、 353 * 戻った後、解除する必要がある。 379 354 */ 380 355 … … 393 368 394 369 /* 395 * tcp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨å®ããã370 * tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。 396 371 */ 397 372 … … 480 455 481 456 /* 482 * tcp_alloc_port -- æå®ããããã¼ãçªå·ãè¨å®ããã457 * tcp_alloc_port -- 指定されたポート番号を設定する。 483 458 */ 484 459 … … 500 475 501 476 /* 502 * tcp_init -- TCP ã¢ã¸ã¥ã¼ã«ã®åæå477 * tcp_init -- TCP モジュールの初期化 503 478 */ 504 479 … … 516 491 517 492 /* 518 * tcp_init_iss ã·ã¼ã±ã³ã¹çªå·ãåæåããã493 * tcp_init_iss シーケンス番号を初期化する。 519 494 */ 520 495 … … 530 505 531 506 /* 532 * tcp_close -- ã³ãã¯ã·ã§ã³ãéæ¾ããã507 * tcp_close -- コネクションを開放する。 533 508 */ 534 509 … … 536 511 tcp_close (T_TCP_CEP *cep) 537 512 { 538 /* ã¿ã¤ãã¼ãåæ¢ããã*/513 /* タイマーを停止する。*/ 539 514 tcp_cancel_timers(cep); 540 515 541 516 /* 542 * é信端ç¹ãããã¯ãã543 * åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã517 * 通信端点をロックし、 518 * 受信再構成キューのネットワークバッファを解放する。 544 519 */ 545 520 syscall(wai_sem(cep->semid_lock)); … … 547 522 syscall(sig_sem(cep->semid_lock)); 548 523 549 /* ç¶æ 550 ãæªä½¿ç¨ã«ããã*/ 524 /* 状態を未使用にする。*/ 551 525 cep->fsm_state = TCP_FSM_CLOSED; 552 526 553 527 /* 554 * 以ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã555 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½556 * ã»åçãªé信端ç¹ã®çæã»åé¤æ©è½557 * ã»é信端ç¹ã®ãããã¯ã¼ã¯å±¤ãããã³ã«528 * 以下に関係しないフラグをクリアーする。 529 * ・送受信ウィンドバッファの省コピー機能 530 * ・動的な通信端点の生成・削除機能 531 * ・通信端点のネットワーク層プロトコル 558 532 */ 559 533 cep->flags &= TCP_CEP_FLG_NOT_CLEAR; … … 562 536 563 537 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF || cep->rcv_nblk_tfn != TFN_TCP_UNDEF) { 564 /* ãã³ããããã³ã°ã³ã¼ã«*/538 /* ノンブロッキングコール */ 565 539 566 540 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 … … 575 549 576 550 case TFN_TCP_ACP_CEP: 577 /* TCP é信端ç¹ããTCP åä»å£ã解æ¾ããã*/551 /* TCP 通信端点からTCP 受付口を解放する。*/ 578 552 cep->rep = NULL; 579 553 … … 587 561 case TFN_TCP_RCV_BUF: 588 562 589 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/563 /* 受信ウィンドバッファの空アドレスを獲得する。*/ 590 564 len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf); 591 565 592 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/566 /* 異常切断等のエラーを設定する。*/ 593 567 if (cep->error == E_TMOUT) 594 568 len = E_CLS; … … 601 575 case TFN_TCP_RCV_DAT: 602 576 603 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/577 /* 受信ウィンドバッファからデータを取り出す。*/ 604 578 len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len); 605 579 606 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/580 /* 異常切断等のエラーを設定する。*/ 607 581 if (cep->error == E_TMOUT) 608 582 len = E_CLS; … … 626 600 } 627 601 628 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/602 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 629 603 cep->rcv_tskid = TA_NULL; 630 604 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 636 610 637 611 case TFN_TCP_CON_CEP: 638 /* TCP é信端ç¹ãã TCP åä»å£ã解æ¾ããã*/612 /* TCP 通信端点から TCP 受付口を解放する。*/ 639 613 cep->rep = NULL; 640 614 … … 659 633 } 660 634 661 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/635 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 662 636 cep->snd_tskid = TA_NULL; 663 637 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 678 652 case TFN_TCP_ACP_CEP: 679 653 680 /* TCP é信端ç¹ããTCP åä»å£ã解æ¾ããã*/654 /* TCP 通信端点からTCP 受付口を解放する。*/ 681 655 cep->rep = NULL; 682 656 … … 685 659 #endif 686 660 687 /* æ¥ç¶ã¨ã©ã¼ãè¨å®ããã*/661 /* 接続エラーを設定する。*/ 688 662 len = E_CLS; 689 663 (*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len); … … 692 666 case TFN_TCP_RCV_BUF: 693 667 694 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/668 /* 受信ウィンドバッファの空アドレスを獲得する。*/ 695 669 len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf); 696 670 697 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/671 /* 異常切断等のエラーを設定する。*/ 698 672 if (cep->error == E_TMOUT) 699 673 len = E_CLS; … … 706 680 case TFN_TCP_RCV_DAT: 707 681 708 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/682 /* 受信ウィンドバッファからデータを取り出す。*/ 709 683 len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len); 710 684 711 /* ç°å¸¸åæçã®ã¨ã©ã¼ãè¨å®ããã*/685 /* 異常切断等のエラーを設定する。*/ 712 686 if (cep->error == E_TMOUT) 713 687 len = E_CLS; … … 731 705 } 732 706 733 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/707 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 734 708 cep->rcv_tskid = TA_NULL; 735 709 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 743 717 case TFN_TCP_CON_CEP: 744 718 745 /* TCP é信端ç¹ããTCP åä»å£ã解æ¾ããã*/719 /* TCP 通信端点からTCP 受付口を解放する。*/ 746 720 cep->rep = NULL; 747 721 … … 750 724 #endif 751 725 752 /* æ¥ç¶ã¨ã©ã¼ãè¨å®ããã*/726 /* 接続エラーを設定する。*/ 753 727 len = E_CLS; 754 728 (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len); … … 769 743 } 770 744 771 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/745 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 772 746 cep->snd_tskid = TA_NULL; 773 747 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 779 753 780 754 /* 781 * é信端ç¹ãããã¯ãã782 * éåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã755 * 通信端点をロックし、 756 * 送受信ウィンドバッファキューのネットワークバッファを解放する。 783 757 */ 784 758 syscall(wai_sem(cep->semid_lock)); … … 787 761 syscall(sig_sem(cep->semid_lock)); 788 762 789 /* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/763 /* 未使用になったことを知らせる。*/ 790 764 syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED)); 791 765 } 792 else { /* éãã³ããããã³ã°ã³ã¼ã«*/766 else { /* 非ノンブロッキングコール */ 793 767 794 768 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 795 769 796 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/770 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 797 771 cep->snd_tskid = cep->rcv_tskid = TA_NULL; 798 772 cep->snd_tfn = cep->rcv_tfn = TFN_TCP_UNDEF; 799 773 800 774 /* 801 * é信端ç¹ãããã¯ãã802 * éåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã775 * 通信端点をロックし、 776 * 送受信ウィンドバッファキューのネットワークバッファを解放する。 803 777 */ 804 778 syscall(wai_sem(cep->semid_lock)); … … 807 781 syscall(sig_sem(cep->semid_lock)); 808 782 809 /* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/783 /* 未使用になったことを知らせる。*/ 810 784 syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED)); 811 785 812 786 /* 813 * å 814 ¥åºåã¿ã¹ã¯ãèµ·åºãã¦ã 815 * éåä¿¡ä¸å¯ã«ãªã£ããã¨ãç¥ãããã 787 * 入出力タスクを起床して、 788 * 送受信不可になったことを知らせる。 816 789 */ 817 790 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); … … 828 801 829 802 /* 830 * tcp_drop -- TCP æ¥ç¶ãç ´æ£ããã803 * tcp_drop -- TCP 接続を破棄する。 831 804 */ 832 805 … … 846 819 cep->fsm_state = TCP_FSM_CLOSED; 847 820 848 /* éä¿¡ã¨ãéä¿¡å¾ã³ãã¯ã·ã§ã³ã®åæãæ示ããã*/821 /* 送信と、送信後コネクションの切断を指示する。*/ 849 822 cep->flags |= TCP_CEP_FLG_POST_OUTPUT | TCP_CEP_FLG_CLOSE_AFTER_OUTPUT; 850 823 sig_sem(SEM_TCP_POST_OUTPUT); … … 857 830 858 831 /* 859 * tcp_respond -- TCP ã®åä¸ã¡ãã»ã¼ã¸ãéä¿¡ããã832 * tcp_respond -- TCP の単一メッセージを送信する。 860 833 */ 861 834 … … 872 845 873 846 /* 874 * output ã NULL ã§ãªããã°ãããã¯å 875 ¥åããã»ã°ã¡ã³ãã® 876 * net_buf ã§ããã®ã¾ã¾åå©ç¨ããã 847 * output が NULL でなければ、これは入力したセグメントの 848 * net_buf で、そのまま再利用する。 877 849 */ 878 850 if (output != NULL) { … … 880 852 881 853 /* 882 * IPv4 ã§ã¯ãIP ãããã®ãªãã·ã§ã³ãåé¤ããã883 * IPv6 ã§ã¯ãæ¡å¼µããããåé¤ããã854 * IPv4 では、IP ヘッダのオプションを削除する。 855 * IPv6 では、拡張ヘッダを削除する。 884 856 */ 885 857 if (IP_REMOVE_OPTIONS(output) != E_OK) { … … 892 864 #if defined(_IP6_CFG) 893 865 894 /* ãã©ããã¯ã¯ã©ã¹ã¨ããã¼ã©ãã«ãã¯ãªã¢ããã*/866 /* トラヒッククラスとフローラベルをクリアする。*/ 895 867 SET_IP_CF(output, 0); 896 868 897 869 #endif /* of #if defined(_IP6_CFG) */ 898 870 899 /* TCP SDU é·ã 0 ã«ããã*/871 /* TCP SDU 長を 0 にする。*/ 900 872 SET_IP_SDU_SIZE(output, TCP_HDR_SIZE); 901 873 902 874 tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET(output)); 903 875 904 /* ãã¼ãçªå·ã交æããã*/876 /* ポート番号を交換する。*/ 905 877 portno = tcph->sport; 906 878 tcph->sport = tcph->dport; 907 879 tcph->dport = portno; 908 880 909 /* TCP ãããã«æ 910 å ±ãè¨å®ããã*/ 881 /* TCP ヘッダに情報を設定する。*/ 911 882 tcph->doff = TCP_MAKE_DATA_OFF(TCP_HDR_SIZE); 912 883 } 913 884 914 /* cep ã NULL ã§ããã°ãä½ãããªãã§çµäºããã*/885 /* cep が NULL であれば、何もしないで終了する。*/ 915 886 else if (cep == NULL) 916 887 return; … … 931 902 932 903 /* 933 * ãã§ãã¯ãµã ãè¨å®ããã904 * チェックサムを設定する。 934 905 */ 935 906 hdr_offset = IF_IP_TCP_HDR_OFFSET(output); … … 937 908 (uint_t)GET_TCP_HDR_SIZE(output, hdr_offset)); 938 909 939 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/910 /* ネットワークバッファ長を調整する。*/ 940 911 output->len = (uint16_t)GET_IF_IP_TCP_HDR_SIZE(output, hdr_offset); 941 912 … … 946 917 #endif /* of #ifdef TCP_CFG_TRACE */ 947 918 948 /* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/919 /* ネットワーク層 (IP) の出力関数を呼び出す。*/ 949 920 IP_OUTPUT(output, TMO_TCP_OUTPUT); 950 921 } 951 922 #if 0 952 923 /* 953 * tcp_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨å®ããã924 * tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。 954 925 * 955 * æ»ãå¤ ã¨ã©ã¼ã³ã¼ã956 * optlen ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½957 * maxlen æ大ã»ã°ã¡ã³ããµã¤ãºï¼IF/IP/TCP ããããµã¤ãºãå«ã¾ãªãï¼958 * len TCP SDU ãµã¤ãº926 * 戻り値 エラーコード 927 * optlen オプションサイズ、4 オクテット単位 928 * maxlen 最大セグメントサイズ(IF/IP/TCP ヘッダサイズを含まない) 929 * len TCP SDU サイズ 959 930 */ 960 931 … … 966 937 ER error; 967 938 968 /* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/939 /* IP データグラムを獲得する。*/ 969 940 if ((error = IN_GET_DATAGRAM(nbuf, 970 941 (uint_t)(TCP_HDR_SIZE + optlen + len), … … 978 949 } 979 950 980 /* TCP ãããã«æ 981 å ±ãè¨å®ããã*/ 982 983 /* TCP ãããã«æ 984 å ±ãè¨å®ããã*/ 951 /* TCP ヘッダに情報を設定する。*/ 952 953 /* TCP ヘッダに情報を設定する。*/ 985 954 tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf)); 986 955 tcph->sport = htons(cep->myaddr.portno); … … 993 962 #endif 994 963 /* 995 * tcpn_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨å®ããã964 * tcpn_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。 996 965 * 997 * æ»ãå¤ ã¨ã©ã¼ã³ã¼ã998 * optlen ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½999 * maxlen æ大ã»ã°ã¡ã³ããµã¤ãºï¼IF/IP/TCP ããããµã¤ãºãå«ãï¼1000 * len TCP SDU ãµã¤ãº966 * 戻り値 エラーコード 967 * optlen オプションサイズ、4 オクテット単位 968 * maxlen 最大セグメントサイズ(IF/IP/TCP ヘッダサイズを含む) 969 * len TCP SDU サイズ 1001 970 */ 1002 971 … … 1008 977 ER error; 1009 978 1010 /* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/979 /* IP データグラムを獲得する。*/ 1011 980 if ((error = IN_GET_DATAGRAM(nbuf, 1012 981 (uint_t)(TCP_HDR_SIZE + optlen + len), … … 1020 989 } 1021 990 1022 /* TCP ãããã«æ 1023 å ±ãè¨å®ããã*/ 1024 1025 /* TCP ãããã«æ 1026 å ±ãè¨å®ããã*/ 991 /* TCP ヘッダに情報を設定する。*/ 992 993 /* TCP ヘッダに情報を設定する。*/ 1027 994 tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf)); 1028 995 tcph->sport = htons(cep->myaddr.portno); … … 1035 1002 1036 1003 /* 1037 * tcp_can_send_more -- éä¿¡ã§ããããé信端ç¹ã®ç¶æ 1038 ãè¦ãã 1004 * tcp_can_send_more -- 送信できるか、通信端点の状態を見る。 1039 1005 */ 1040 1006 … … 1044 1010 ER error; 1045 1011 1046 /* éä¿¡ã§ããããCEP ã® FSM ç¶æ 1047 ãè¦ãã*/ 1012 /* 送信できるか、CEP の FSM 状態を見る。*/ 1048 1013 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) { 1049 1014 if ((error = cep->error) == E_OK) … … 1052 1017 #ifdef TCP_CFG_NON_BLOCKING 1053 1018 1054 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1055 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1019 /* タイムアウトをチェックする。*/ 1020 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1056 1021 1057 1022 if (!IS_PTR_DEFINED(cep->callback)) 1058 1023 error = E_OBJ; 1059 1024 else { 1060 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1025 /* コールバック関数を呼び出す。*/ 1061 1026 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1062 1027 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error); … … 1083 1048 #ifdef TCP_CFG_NON_BLOCKING 1084 1049 1085 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1086 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1050 /* タイムアウトをチェックする。*/ 1051 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1087 1052 if (!IS_PTR_DEFINED(cep->callback)) 1088 1053 error = E_OBJ; … … 1090 1055 error = E_OBJ; 1091 1056 1092 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1057 /* コールバック関数を呼び出す。*/ 1093 1058 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1094 1059 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error); … … 1116 1081 1117 1082 /* 1118 * tcp_can_recv_more -- åä¿¡ã§ããããé信端ç¹ã®ç¶æ 1119 ãè¦ãã 1083 * tcp_can_recv_more -- 受信できるか、通信端点の状態を見る。 1120 1084 * 1121 * 注æ: æ»ãå¤1085 * 注意: 戻り値 1122 1086 * 1123 * E_OK åä¿¡å¯è½1124 * E_OBJ ç¸æããåæãããããã¨ã©ã¼ãçºçããã1087 * E_OK 受信可能 1088 * E_OBJ 相手から切断されたか、エラーが発生した。 1125 1089 */ 1126 1090 … … 1129 1093 { 1130 1094 /* 1131 * åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãå ´åã¯1132 * é·ã 0ãã¾ãã¯ã¨ã©ã¼ãè¿ãã1095 * 受信できるか、fsm_state を見る。受信できない場合は 1096 * 長さ 0、またはエラーを返す。 1133 1097 */ 1134 1098 if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) && … … 1138 1102 #ifdef TCP_CFG_NON_BLOCKING 1139 1103 1140 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1141 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1104 /* タイムアウトをチェックする。*/ 1105 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1142 1106 1143 1107 if (!IS_PTR_DEFINED(cep->callback)) 1144 1108 *error = E_OBJ; 1145 1109 else { 1146 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1110 /* コールバック関数を呼び出す。*/ 1147 1111 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1148 1112 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error); … … 1157 1121 1158 1122 /* 1159 * é信端ç¹ãããã¯ãã¦ã1160 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã1123 * 通信端点をロックして、 1124 * 受信ウィンドバッファキューのネットワークバッファを解放する。 1161 1125 */ 1162 1126 syscall(wai_sem(cep->semid_lock)); … … 1174 1138 #ifdef TCP_CFG_NON_BLOCKING 1175 1139 1176 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1177 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1140 /* タイムアウトをチェックする。*/ 1141 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1178 1142 if (!IS_PTR_DEFINED(cep->callback)) 1179 1143 *error = E_OBJ; … … 1181 1145 *error = E_OBJ; 1182 1146 1183 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1147 /* コールバック関数を呼び出す。*/ 1184 1148 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1185 1149 (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error); … … 1206 1170 1207 1171 /* 1208 * tcp_wait_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå 1209 ¥ãã®ãå¾ 1210 ã¤ã 1172 * tcp_wait_rwbuf -- 受信ウィンドバッファにデータが入るのを待つ。 1211 1173 */ 1212 1174 … … 1218 1180 1219 1181 if (cep->rwbuf_count == 0) { 1220 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå 1221 ¥åãããã¾ã§å¾ 1222 ã¤ã*/ 1182 /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/ 1223 1183 while (cep->rwbuf_count == 0) { 1224 1184 if ((error = twai_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) { … … 1228 1188 1229 1189 /* 1230 * åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãç¶æ 1231 ã§ã 1232 * åä¿¡ã¦ã£ã³ããããã¡ã«æåããªãå ´åã¯çµäºããã 1190 * 受信できるか、fsm_state を見る。受信できない状態で、 1191 * 受信ウィンドバッファに文字がない場合は終了する。 1233 1192 */ 1234 1193 if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) && … … 1236 1195 1237 1196 /* 1238 * é信端ç¹ãããã¯ãã¦ã1239 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã1197 * 通信端点をロックして、 1198 * 受信ウィンドバッファキューのネットワークバッファを解放する。 1240 1199 */ 1241 1200 syscall(wai_sem(cep->semid_lock)); … … 1255 1214 1256 1215 /* 1257 * tcp_move_ra2rw -- åä¿¡åæ§æãã¥ã¼ã§åæ§æããã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã1216 * tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。 1258 1217 */ 1259 1218 … … 1265 1224 1266 1225 /* 1267 * åä¿¡ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ã¿ã1268 * rcv_nxt ãå®äºãã SEQ ã ãé²ããã1226 * 受信データを受信ウィンドバッファに書き込み、 1227 * rcv_nxt を完了した SEQ だけ進める。 1269 1228 */ 1270 1229 if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) { … … 1275 1234 break; 1276 1235 1277 /* 次ã®ã»ã°ã¡ã³ãã«é²ãã*/1236 /* 次のセグメントに進む。*/ 1278 1237 cep->reassq = qhdr->next; 1279 1238 1280 /* FIN ãã©ã°ã®ã¿æ®ãã*/1239 /* FIN フラグのみ残す。*/ 1281 1240 flags &= TCP_FLG_FIN; 1282 1241 1283 /* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/1242 /* データを受信ウィンドバッファに書き込む。*/ 1284 1243 TCP_WRITE_RWBUF(cep, q, (uint_t)(GET_IP_TCP_Q_HDR_OFFSET(q))); 1285 1244 } … … 1293 1252 1294 1253 /* 1295 * tcp_write_raque -- åä¿¡ã»ã°ã¡ã³ããåæ§æãã¦ãåä¿¡åæ§æãã¥ã¼ã«ç¹ãã1254 * tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。 1296 1255 */ 1297 1256 … … 1304 1263 int32_t len; 1305 1264 1306 /* TCP ãããã®ä½ç½®ãä¿åããã*/1265 /* TCP ヘッダの位置を保存する。*/ 1307 1266 SET_IP_TCP_Q_HDR_OFFSET(input, thoff); 1308 1267 1309 1268 /* 1310 * MAX_TCP_REALLOC_SIZE 以ä¸ã®å ´åã¯ãæ°ãã«ãããã¯ã¼ã¯ãããã¡ã1311 * å²å½ã¦ã¦ããã¼ã¿ãã³ãã¼ããã1312 * ãã®ã¨ããIP ã®ãªãã·ã§ã³ï¼æ¡å¼µãããï¼ã¨ TCP ã®ãªãã·ã§ã³ã¯åé¤ããã1269 * MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを 1270 * 割当てて、データをコピーする。 1271 * このとき、IP のオプション(拡張ヘッダ)と TCP のオプションは削除する。 1313 1272 */ 1314 1273 len = IF_IP_TCP_HDR_SIZE(input) + inqhdr->slen; … … 1317 1276 1318 1277 /* 1319 * ãããã¯ã¼ã¯ãããã¡ã確ä¿ã§ããªãã¨ãã¯å²å½ã¦ãªãã1278 * ネットワークバッファが確保できないときは割当てない。 1320 1279 */ 1321 1280 if (tget_net_buf(&new, (uint_t)len, TMO_TCP_GET_NET_BUF) != E_OK) … … 1342 1301 1343 1302 /* 1344 * ä»å追å ããã»ã°ã¡ã³ãããå(p)ã¨å¾(q)ã®ã»ã°ã¡ã³ããæ¢ãã1303 * 今回追加するセグメントより前(p)と後(q)のセグメントを探す。 1345 1304 * 1346 1305 * +-------------------------+ … … 1365 1324 1366 1325 /* 1367 * å(p)ã®ã»ã°ã¡ã³ããããã°ãæ¢ã«ãä»åã¨åãã»ã°ã¡ã³ãã 1368 * ãããã¨ãããããã®å ´åã¯ããã®é¨åã¾ãã¯å 1369 ¨ã¦ãç ´æ£ããã 1326 * 前(p)のセグメントがあれば、既に、今回と同じセグメントが 1327 * あることもある。その場合は、その部分または全てを破棄する。 1370 1328 * 1371 1329 * qhdr->seq … … 1389 1347 1390 1348 /* 1391 * len ãæ£ã§ããã°ãå(p) ã®ã»ã°ã¡ã³ãã¨ä»åã®1392 * ã»ã°ã¡ã³ããéãªã£ã¦ããã1349 * len が正であれば、前(p) のセグメントと今回の 1350 * セグメントが重なっている。 1393 1351 */ 1394 1352 if (len >= inqhdr->slen) { 1395 1353 1396 1354 /* 1397 * len ãä»åã®ã»ã°ã¡ã³ãã¨åããªã1398 * ã¾ã£ããåãã»ã°ã¡ã³ããªã®ã§ä½ãããªãã1355 * len が今回のセグメントと同じなら 1356 * まったく同じセグメントなので何もしない。 1399 1357 */ 1400 1358 if (new != NULL) { … … 1407 1365 1408 1366 /* 1409 * 追å ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã1367 * 追加するセグメントの SDU を len 分前に詰める。 1410 1368 */ 1411 1369 inqhdr->seq += len; … … 1416 1374 1417 1375 /* 1418 * ãã¥ã¼ã«ã¤ãªãåã«ãæ°ãããããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ã移ãã1419 * TCP ã®ãªãã·ã§ã³ã¯åé¤ããã1376 * キューにつなぐ前に、新しいネットワークバッファにデータを移す。 1377 * TCP のオプションは削除する。 1420 1378 */ 1421 1379 if (new != NULL) { … … 1430 1388 1431 1389 /* 1432 * éãªãå¾(q)ã®ã»ã°ã¡ã³ãã調æ´ããã1390 * 重なる後(q)のセグメントを調整する。 1433 1391 * 1434 1392 * inqhdr->seq … … 1450 1408 len = inqhdr->seq + inqhdr->slen - qhdr->seq; 1451 1409 if (len <= 0) 1452 /* len ãè² ãªãéãªã£ã¦ããªãã*/1410 /* len が負なら重なっていない。*/ 1453 1411 break; 1454 1412 else if (len < qhdr->slen) { 1455 1413 1456 1414 /* 1457 * å¾ãã§éãªã£ã¦ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã1415 * 後ろで重なっているセグメントの SDU を len 分前に詰める。 1458 1416 * 1459 1417 * inqhdr->seq … … 1499 1457 1500 1458 /* 1501 * tcp_rexmt_val -- åéã¿ã¤ã ã¢ã¦ãå¤ãè¿ãã1459 * tcp_rexmt_val -- 再送タイムアウト値を返す。 1502 1460 */ 1503 1461 … … 1515 1473 1516 1474 /* 1517 * tcp_init_cep -- é信端ç¹ãåæåããã1475 * tcp_init_cep -- 通信端点を初期化する。 1518 1476 */ 1519 1477 … … 1524 1482 #ifdef TCP_CFG_RWBUF_CSAVE 1525 1483 /* 1526 * åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããå ´åã 1527 * åä¿¡ã¦ã£ã³ããããã¡ãå 1528 ¨ã¦è§£æ¾ãããªããã¨ãããã®ã§ã 1529 * ããã§è§£æ¾ããã 1484 * 受信ウィンドバッファの省コピー機能を有効にした場合、 1485 * 受信ウィンドバッファが全て解放されないことがあるので、 1486 * ここで解放する。 1530 1487 */ 1531 1488 if (cep->rwbufq != NULL) { … … 1542 1499 cep->rbuf_rptr = cep->rbuf_wptr = cep->rbuf; 1543 1500 1544 cep->maxseg = DEF_TCP_SND_SEG; /* éä¿¡æ大ã»ã°ã¡ã³ããµã¤ãº*/1545 cep->srtt = TCP_TVAL_SRTT_BASE; /* æ»ãããªç§»åå¹³å*/1501 cep->maxseg = DEF_TCP_SND_SEG; /* 送信最大セグメントサイズ */ 1502 cep->srtt = TCP_TVAL_SRTT_BASE; /* 滑らかな移動平均 */ 1546 1503 cep->rttvar = ((TCP_TVAL_RTO_BASE - TCP_TVAL_SRTT_BASE) << TCP_RTTVAR_SHIFT) / 4; 1547 /* æ»ãããªåæ£*/1548 cep->rxtcur = TCP_TVAL_RTO_BASE; /* ç¾å¨ã®åéå¤*/1549 cep->snd_cwnd = MAX_TCP_WIN_SIZE; /* 輻輳ã¦ã£ã³ããµã¤ãº*/1550 cep->snd_ssthresh= MAX_TCP_WIN_SIZE; /* 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã® å¶éå¤*/1504 /* 滑らかな分散 */ 1505 cep->rxtcur = TCP_TVAL_RTO_BASE; /* 現在の再送値 */ 1506 cep->snd_cwnd = MAX_TCP_WIN_SIZE; /* 輻輳ウィンドサイズ */ 1507 cep->snd_ssthresh= MAX_TCP_WIN_SIZE; /* 輻輳ウィンドサイズ(snd_cwnd)の 制限値 */ 1551 1508 1552 1509 /* 1553 * 以ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã1554 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½1555 * ã»åçãªé信端ç¹ã®çæã»åé¤æ©è½1556 * ã»é信端ç¹ã®ãããã¯ã¼ã¯å±¤ãããã³ã«1510 * 以下に関係しないフラグをクリアーする。 1511 * ・送受信ウィンドバッファの省コピー機能 1512 * ・動的な通信端点の生成・削除機能 1513 * ・通信端点のネットワーク層プロトコル 1557 1514 */ 1558 1515 cep->flags &= TCP_CEP_FLG_NOT_CLEAR; 1559 1516 1560 /* ã»ããã©ãåæåããã*/1517 /* セマフォを初期化する。*/ 1561 1518 sig_sem(cep->semid_lock); 1562 1519 1563 /* ãã©ã°ãåæåããã*/1520 /* フラグを初期化する。*/ 1564 1521 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); 1565 1522 syscall(clr_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY)); … … 1567 1524 1568 1525 /* 1569 * tcp_notify -- ICMP ã¨ã©ã¼ã®å¦ç1526 * tcp_notify -- ICMP エラーの処理 1570 1527 */ 1571 1528 … … 1578 1535 1579 1536 /* 1580 * ã³ãã¯ã·ã§ã³éè¨æ¸ã§ããã¹ãå°éä¸è½ã¨ã©ã¼ã®å ´åã¯ã1581 * åéã«ããå¦çããã1537 * コネクション開設済で、ホスト到達不能エラーの場合は、 1538 * 再送により処理する。 1582 1539 */ 1583 1540 if (cep->fsm_state == TCP_FSM_ESTABLISHED && … … 1586 1543 1587 1544 /* 1588 * ã³ãã¯ã·ã§ã³éè¨ä¸ãåãã¨ã©ã¼ãä½åº¦ãåä¿¡ããå ´åã¯ã 1589 * å¾ 1590 ã¡ç¶æ 1591 ã解é¤ãã対å¿ããé¢æ°ã«ã¨ã©ã¼ãè¿ãããã 1545 * コネクション開設中、同じエラーを何度か受信した場合は、 1546 * 待ち状態を解除し、対応する関数にエラーを返させる。 1592 1547 */ 1593 1548 if (cep->fsm_state < TCP_FSM_ESTABLISHED && cep->rxtshift > 3 && cep->net_error != E_OK) { … … 1598 1553 cep->net_error = error; 1599 1554 1600 /* éä¿¡ãæ示ããã*/1555 /* 送信を指示する。*/ 1601 1556 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1602 1557 sig_sem(SEM_TCP_POST_OUTPUT); … … 1606 1561 1607 1562 /* 1608 * tcp_lock_cep -- TCP é信端ç¹ãããã¯ããã1563 * tcp_lock_cep -- TCP 通信端点をロックする。 1609 1564 */ 1610 1565 … … 1617 1572 *p_cep = NULL; 1618 1573 1619 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1574 /* TCP 通信端点 ID をチェックする。*/ 1620 1575 if (!VALID_TCP_CEPID(cepid)) 1621 1576 return E_ID; 1622 1577 1623 /* TCP é信端ç¹ãå¾ãã*/1578 /* TCP 通信端点を得る。*/ 1624 1579 cep = GET_TCP_CEP(cepid); 1625 1580 1626 /* TCP é信端ç¹ãããã¯ããã*/1581 /* TCP 通信端点をロックする。*/ 1627 1582 syscall(wai_sem(cep->semid_lock)); 1628 1583 1629 /* TCP é信端ç¹ããã§ãã¯ããã*/1584 /* TCP 通信端点をチェックする。*/ 1630 1585 if (!VALID_TCP_CEP(cep)) { 1631 1586 syscall(sig_sem(cep->semid_lock)); … … 1634 1589 1635 1590 /* 1636 * API æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1637 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1591 * API 機能コードとタスク識別子を記録する。 1592 * すでに記録されていれば、ペンディング中なのでエラー 1638 1593 */ 1639 1594 if (IS_TFN_TCP_RCV(tfn)) { … … 1657 1612 } 1658 1613 1659 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1614 /* 通信端点のロックを解除する。*/ 1660 1615 syscall(sig_sem(cep->semid_lock)); 1661 1616 … … 1667 1622 1668 1623 /* 1669 * ãã¬ã¼ã¹åºåã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·1624 * トレース出力に用いるシリアルポート番号 1670 1625 */ 1671 1626 … … 1675 1630 1676 1631 /* 1677 * ã³ãã¯ã·ã§ã³ã®ç¶æ 1678 1632 * コネクションの状態 1679 1633 */ 1680 1634 … … 1694 1648 1695 1649 /* 1696 * trace_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æååºå1650 * trace_putchar -- シリアルポートへの文字出力 1697 1651 */ 1698 1652 … … 1705 1659 1706 1660 /* 1707 * ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºåã©ã¤ãã©ãª1708 */ 1709 1710 /* 1711 * æ°å¤å¤æã®ããã®å¤æ表1661 * シリアルポートへの書式付文字列出力ライブラリ 1662 */ 1663 1664 /* 1665 * 数値変換のための変換表 1712 1666 */ 1713 1667 … … 1716 1670 1717 1671 /* 1718 * convert -- trace_printf ã®æ°å¤å¤æ1672 * convert -- trace_printf の数値変換 1719 1673 */ 1720 1674 … … 1753 1707 1754 1708 /* 1755 * trace_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æåååºå1709 * trace_printf -- シリアルポートへの書式付文字列出力 1756 1710 */ 1757 1711 … … 1766 1720 va_start(ap, fmt); 1767 1721 while ((ch = *fmt ++) != '\0') { 1768 if (ch != '%') { /* æ¸å¼æå®ä»¥å¤*/1722 if (ch != '%') { /* 書式指定以外 */ 1769 1723 trace_putchar(portid, (char)ch); 1770 1724 continue; … … 1773 1727 width = longflag = 0; 1774 1728 padchar = ' '; 1775 if ((ch = *fmt ++) == '0') { /* ä¸ä½æ¡ã®0 */1729 if ((ch = *fmt ++) == '0') { /* 上位桁の 0 */ 1776 1730 padchar = '0'; 1777 1731 ch = *fmt ++; 1778 1732 } 1779 1733 1780 while ('0' <= ch && ch <= '9') { /* åºåå¹ 1781 */ 1734 while ('0' <= ch && ch <= '9') { /* 出力幅 */ 1782 1735 width = width * 10 + ch - '0'; 1783 1736 ch = *fmt ++; 1784 1737 } 1785 1738 1786 while (ch == 'l') { /* long (long) ã®æå®*/1739 while (ch == 'l') { /* long (long) の指定 */ 1787 1740 longflag ++; 1788 1741 ch = *fmt ++; … … 1845 1798 1846 1799 /* 1847 * TCP ãã©ã°æåå1800 * TCP フラグ文字列 1848 1801 */ 1849 1802 … … 1864 1817 1865 1818 /* 1866 * éä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå1819 * 送信 TCP ヘッダのトレース出力 1867 1820 */ 1868 1821 … … 1925 1878 1926 1879 /* 1927 * åä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå1880 * 受信 TCP ヘッダのトレース出力 1928 1881 * 1929 * 注æ: TCP ãããå 1930 ã¯ããã§ã«ãã¹ããã¤ããªã¼ã 1882 * 注意: TCP ヘッダ内は、すでにホストバイトオーダ 1931 1883 */ 1932 1884 -
azure_iot_hub/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
r388 r389 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$ … … 134 122 135 123 /* 136 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å137 * ãã ããé信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ï¼cep->sbufï¼ã®å¤ã«ããã138 * TCP é信端ç¹æ¯ã«éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ãããã139 * 使ç¨ããªãããåãæ¿ããã140 */ 141 142 /* 143 * tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼é¸æï¼ã124 * TCP 通信端点の送信ウィンドバッファの省コピー機能が有効な場合 125 * ただし、通信端点の送信ウィンドバッファ(cep->sbuf)の値により、 126 * TCP 通信端点毎に送信ウィンドバッファの省コピー機能を使用するか、 127 * 使用しないかを切り替える。 128 */ 129 130 /* 131 * tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する(選択)。 144 132 */ 145 133 … … 154 142 155 143 /* 156 * tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼é¸æï¼ã144 * tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む(選択)。 157 145 */ 158 146 … … 167 155 168 156 /* 169 * tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèªã¿åºãï¼é¸æï¼ã157 * tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す(選択)。 170 158 */ 171 159 … … 178 166 179 167 /* 180 * tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾ 181 ã¤ï¼é¸æï¼ã 168 * tcp_wait_swbuf -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ(選択)。 182 169 */ 183 170 … … 192 179 193 180 /* 194 * tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼é¸æï¼ã181 * tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する(選択)。 195 182 */ 196 183 … … 205 192 206 193 /* 207 * tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼é¸æï¼ã194 * tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする(選択)。 208 195 */ 209 196 … … 218 205 219 206 /* 220 * tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®è§£æ¾ãæ示ããï¼é¸æï¼ã207 * tcp_free_swbufq -- 送信ウィンドバッファキューの解放を指示する(選択)。 221 208 */ 222 209 … … 229 216 230 217 /* 231 * tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããï¼é¸æï¼ã218 * tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(選択)。 232 219 */ 233 220 … … 240 227 241 228 /* 242 * tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼é¸æï¼ã229 * tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする(選択)。 243 230 */ 244 231 … … 255 242 256 243 /* 257 * tcp_drop_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼å°ç¨ï¼ã244 * tcp_drop_swbuf_cs -- 送信ウィンドバッファから指定されたオクテット分削除する(専用)。 258 245 */ 259 246 … … 262 249 { 263 250 264 /* éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã*/251 /*送信ウィンドバッファから指定されたオクテット分削除する。*/ 265 252 cep->swbuf_count -= (uint16_t)len; 266 253 267 /* éä¿¡æ¸ã¿ã§ãACKå¾ 268 ã¡ã®æã¯ãACKå®äºã«å¤æ´ããã*/ 254 /* 送信済みで、ACK待ちの時は、ACK完了に変更する。*/ 269 255 if (len > 0 && (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT) { 270 256 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED; … … 274 260 275 261 /* 276 * tcp_write_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼å°ç¨ï¼ã262 * tcp_write_swbuf_cs -- 送信ウィンドバッファにデータを書き込む(専用)。 277 263 */ 278 264 … … 283 269 uint_t hdr_size = IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr); 284 270 285 /* é信端ç¹ãããã¯ããã*/271 /* 通信端点をロックする。*/ 286 272 syscall(wai_sem(cep->semid_lock)); 287 273 … … 295 281 * <---------------- error ---------------> 296 282 * ^ 297 * net_buf 㧠4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã283 * net_buf で 4 オクテット境界にアラインされている。 298 284 * 299 * tcp_output 㨠ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã 300 * n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã 301 * ãããã£ã³ã°ããããã®åãèæ 302 ®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã® 303 * 空ããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã 285 * tcp_output と ip_output で、チェックサムを計算するとき、 286 * n が 4 オクテット境界になるように SDU の後ろに 0 を 287 * パッディングする。その分を考慮して送信ウィンドバッファの 288 * 空きサイズを 4 オクテット境界に調整する。 304 289 */ 305 290 error = (uint_t)(((error - hdr_size) >> 2 << 2) + hdr_size); … … 310 295 len = (uint_t)(error - hdr_size); 311 296 312 /* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºã調æ´ããã*/297 /* 送信ウインドサイズによりサイズを調整する。*/ 313 298 if (len > cep->snd_wnd) 314 299 len = cep->snd_wnd; … … 316 301 len = cep->snd_cwnd; 317 302 318 /* ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶ 319 ããªãããã«ããã*/ 303 /* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/ 320 304 if (len > cep->maxseg) 321 305 len = cep->maxseg; 322 306 323 /* ãã¼ã¿ã移ãã*/307 /* データを移す。*/ 324 308 memcpy(cep->sbuf_wptr, (void*)((uint8_t*)data), (size_t)len); 325 309 cep->sbuf_wptr += len; … … 327 311 error = len; 328 312 329 /* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨å®ããã*/313 /* ネットワークバッファ長と IP データグラム長を設定する。*/ 330 314 cep->swbufq->len = (uint16_t)(cep->swbuf_count + hdr_size); 331 315 SET_IP_SDU_SIZE(cep->swbufq, cep->swbuf_count + TCP_HDR_SIZE); 332 316 333 /* ãã©ã°ããéä¿¡å¯è½ã«è¨å®ããã*/317 /* フラグを、送信可能に設定する。*/ 334 318 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY; 335 319 } 336 320 337 else { /* éä¿¡ã¦ã¤ã³ããããã¡ãä¸æ£*/321 else { /* 送信ウインドバッファが不正 */ 338 322 syslog(LOG_WARNING, "[TCP] illegal window buff for send, CEP: %d, %4d < %4d.", 339 323 GET_TCP_CEPID(cep), error, hdr_size); 340 324 341 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/325 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 342 326 tcp_free_swbufq_cs(cep); 343 327 } 344 328 345 /* é信端ç¹ã®ããã¯ã解é¤ããã*/329 /* 通信端点のロックを解除する。*/ 346 330 syscall(sig_sem(cep->semid_lock)); 347 331 … … 350 334 351 335 /* 352 * tcp_wait_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾ 353 ã¤ï¼å°ç¨ï¼ã 336 * tcp_wait_swbuf_cs -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ(専用)。 354 337 */ 355 338 … … 362 345 int_t win; 363 346 364 /* éä¿¡ã¦ã£ã³ããããã¡ãå²å½ã¦æ¸ã¿ã§ã空ããããã°çµäºããã*/347 /* 送信ウィンドバッファが割当て済みで、空きがあれば終了する。*/ 365 348 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_READY && 366 349 (cep->swbuf_count + IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)) < net_buf_siz(cep->swbufq)) 367 350 return E_OK; 368 351 369 /* éä¿¡ä¸ã§ããã°ãçµäºããã¾ã§å¾ 370 æ©ããã*/ 352 /* 送信中であれば、終了するまで待機する。*/ 371 353 while ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) { 372 354 373 /* éä¿¡å¾ 374 ã¡ã®æéã tmout ããæ¸ããã*/ 355 /* 送信待ちの時間を tmout から減ずる。*/ 375 356 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) 376 357 syscall(get_tim(&before)); … … 381 362 syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY))); 382 363 383 /* éä¿¡å¾ 384 ã¡ã®æéã tmout ããæ¸ããã*/ 364 /* 送信待ちの時間を tmout から減ずる。*/ 385 365 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) { 386 366 syscall(get_tim(&after)); … … 391 371 392 372 /* 393 * éä¿¡ã§ããããCEP ã® FSM ç¶æ 394 ãè¦ãã 395 * éä¿¡ã¦ã¤ã³ããããã¡ã空ãã¾ã§å¾ 396 ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã 397 * ã³ãã¯ã·ã§ã³ãåæããããã¨ãæå³ãã¦ããã 373 * 送信できるか、CEP の FSM 状態を見る。 374 * 送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、 375 * コネクションが切断されたことを意味している。 398 376 */ 399 377 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) … … 401 379 } 402 380 403 /* ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾ 404 æ©ããã*/ 381 /* 相手の受信ウィンドが閉じている場合は、開くまで待機する。*/ 405 382 while (true) { 406 383 407 384 /* 408 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº409 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº385 * snd_wnd: 相手の受信可能ウィンドサイズ 386 * snd_cwnd: 輻輳ウィンドサイズ 410 387 * 411 * win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨å®ããã388 * win: どちらか小さいウィンドサイズに設定する。 412 389 */ 413 390 win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd; … … 415 392 break; 416 393 417 /* éãå¾ 418 ã¡ã®æéã tmout ããæ¸ããã*/ 394 /* 開き待ちの時間を tmout から減ずる。*/ 419 395 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) 420 396 syscall(get_tim(&before)); … … 425 401 syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY))); 426 402 427 /* éãå¾ 428 ã¡ã®æéã tmout ããæ¸ããã*/ 403 /* 開き待ちの時間を tmout から減ずる。*/ 429 404 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) { 430 405 syscall(get_tim(&after)); … … 435 410 436 411 /* 437 * éä¿¡ã§ããããCEP ã® FSM ç¶æ 438 ãè¦ãã 439 * éä¿¡ã¦ã¤ã³ããããã¡ã空ãã¾ã§å¾ 440 ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã 441 * ã³ãã¯ã·ã§ã³ãåæããããã¨ãæå³ãã¦ããã 412 * 送信できるか、CEP の FSM 状態を見る。 413 * 送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、 414 * コネクションが切断されたことを意味している。 442 415 */ 443 416 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) … … 445 418 } 446 419 447 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/420 /* ネットワークバッファを獲得する。*/ 448 421 if ((error = tcpn_get_segment(&cep->swbufq, cep, 0, 449 422 TCP_CFG_SWBUF_CSAVE_MIN_SIZE, … … 452 425 return error; 453 426 454 /* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/427 /* 送信ウィンドバッファを初期化する。*/ 455 428 tcp_init_swbuf(cep); 456 429 … … 459 432 460 433 /* 461 * tcp_get_swbuf_addr_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼å°ç¨ï¼ã434 * tcp_get_swbuf_addr_cs -- 送信ウィンドバッファの空きアドレスを獲得する(専用)。 462 435 */ 463 436 … … 467 440 ER_UINT error; 468 441 469 /* é信端ç¹ãããã¯ããã*/442 /* 通信端点をロックする。*/ 470 443 syscall(wai_sem(cep->semid_lock)); 471 444 … … 479 452 * <---------------- error ---------------> 480 453 * ^ 481 * net_buf 㧠4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã454 * net_buf で 4 オクテット境界にアラインされている。 482 455 * 483 * tcp_output 㨠ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã 484 * n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã 485 * ãããã£ã³ã°ããããã®åãèæ 486 ®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã® 487 * 空ããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã 456 * tcp_output と ip_output で、チェックサムを計算するとき、 457 * n が 4 オクテット境界になるように SDU の後ろに 0 を 458 * パッディングする。その分を考慮して送信ウィンドバッファの 459 * 空きサイズを 4 オクテット境界に調整する。 488 460 */ 489 461 error = (uint_t)(((error - IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)) >> 2 << 2) - cep->swbuf_count); 490 462 491 /* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºã調æ´ããã*/463 /* 送信ウインドサイズによりサイズを調整する。*/ 492 464 if (error > cep->snd_wnd) 493 465 error = cep->snd_wnd; … … 495 467 error = cep->snd_cwnd; 496 468 497 /* ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶ 498 ããªãããã«ããã*/ 469 /* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/ 499 470 if (error > cep->maxseg) 500 471 error = cep->maxseg; 501 472 502 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/473 /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/ 503 474 cep->get_buf_len = error; 504 475 505 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å 506 é ãè¨å®ããã*/ 476 /* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/ 507 477 *p_buf = cep->sbuf_wptr; 508 478 } 509 479 510 else { /* ãããã¯ã¼ã¯ãããã¡ãä¸æ£*/511 512 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/480 else { /* ネットワークバッファが不正 */ 481 482 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 513 483 tcp_free_swbufq_cs(cep); 514 484 } 515 485 516 /* é信端ç¹ã®ããã¯ã解é¤ããã*/486 /* 通信端点のロックを解除する。*/ 517 487 syscall(sig_sem(cep->semid_lock)); 518 488 … … 521 491 522 492 /* 523 * tcp_send_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼å°ç¨ï¼ã493 * tcp_send_swbuf_cs -- 送信ウィンドバッファのデータを送信可能にする(専用)。 524 494 */ 525 495 … … 527 497 tcp_send_swbuf_cs (T_TCP_CEP *cep, uint_t len) 528 498 { 529 /* é信端ç¹ãããã¯ããã*/499 /* 通信端点をロックする。*/ 530 500 syscall(wai_sem(cep->semid_lock)); 531 501 … … 533 503 cep->swbuf_count += len; 534 504 535 /* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨å®ããã*/505 /* ネットワークバッファ長と IP データグラム長を設定する。*/ 536 506 cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)); 537 507 SET_IP_SDU_SIZE(cep->swbufq, len + TCP_HDR_SIZE); 538 508 539 /* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/509 /* tcp_get_buf の割当て長をリセットする。*/ 540 510 cep->get_buf_len = 0; 541 511 542 /* é信端ç¹ã®ããã¯ã解é¤ããã*/512 /* 通信端点のロックを解除する。*/ 543 513 syscall(sig_sem(cep->semid_lock)); 544 514 545 /* ãã©ã°ããéä¿¡å¯è½ã«è¨å®ããå¼·å¶çã«éä¿¡ããã*/515 /* フラグを、送信可能に設定し、強制的に送信する。*/ 546 516 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY 547 517 | TCP_CEP_FLG_FORCE … … 551 521 552 522 /* 553 * tcp_free_swbufq_cs -- éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®è§£æ¾ãæ示ããï¼å°ç¨ï¼ã523 * tcp_free_swbufq_cs -- 送信ウィンドバッファキューの解放を指示する(専用)。 554 524 * 555 * 注æ: 556 * å¿ 557 è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãé信端ç¹ãããã¯ãã 558 * æ»ã£ãå¾ã解é¤ããå¿ 559 è¦ãããã 525 * 注意: 526 * 必要であれば、この関数を呼び出す前に、通信端点をロックし、 527 * 戻った後、解除する必要がある。 560 528 */ 561 529 … … 563 531 tcp_free_swbufq_cs (T_TCP_CEP *cep) 564 532 { 565 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾ 566 ã¡ãåãæ¶ãã*/ 533 /* 送信ウィンドバッファの空き待ちを取り消す。*/ 567 534 cep->flags &= ~TCP_CEP_FLG_WBCS_NBUF_REQ; 568 535 569 536 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) { 570 537 /* 571 * éä¿¡ã¦ã£ã³ããããã¡ãåé¤ããããã«ããã©ã°ã ACK å®äºã«è¨å®ãã572 * TCP åºåã¿ã¹ã¯ãèµ·åããã538 * 送信ウィンドバッファを削除するために、フラグを ACK 完了に設定し、 539 * TCP 出力タスクを起動する。 573 540 */ 574 541 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED; … … 578 545 579 546 /* 580 * tcp_alloc_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããï¼å°ç¨ï¼ã547 * tcp_alloc_swbuf_cs -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(専用)。 581 548 */ 582 549 … … 587 554 588 555 /* 589 * éä¿¡ã¦ã£ã³ããããã¡ãæªä½¿ç¨ã®å ´åã®ã¿ã590 * éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããã556 * 送信ウィンドバッファが未使用の場合のみ、 557 * 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。 591 558 */ 592 559 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_FREE) … … 595 562 596 563 /* 597 * tcp_is_swbuf_full_cs -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼å°ç¨ï¼ã564 * tcp_is_swbuf_full_cs -- 送信ウィンドバッファが満杯かチェックする(専用)。 598 565 */ 599 566 … … 606 573 607 574 /* 608 * tcp_init_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãåæåããï¼å°ç¨ï¼ã575 * tcp_init_swbuf -- 送信ウィンドバッファを初期化する(専用)。 609 576 * 610 * 注æ: tcp_get_segment ã§ãããã¯ã¼ã¯ãããã¡ãç²å¾ãã611 * ç´å¾ã«å¼ã³åºããã¨ã577 * 注意: tcp_get_segment でネットワークバッファを獲得した 578 * 直後に呼び出すこと。 612 579 */ 613 580 … … 615 582 tcp_init_swbuf (T_TCP_CEP *cep) 616 583 { 617 /* éä¿¡ã¦ã¤ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãºããªã»ããããã*/584 /* 送信ウインドバッファの使用中サイズをリセットする。*/ 618 585 cep->swbuf_count = 0; 619 586 620 /* éä¿¡ã¦ã¤ã³ããããã¡ã®ã¢ãã¬ã¹ãè¨å®ããã*/587 /* 送信ウインドバッファのアドレスを設定する。*/ 621 588 cep->sbuf_wptr = cep->sbuf_rptr = GET_TCP_SDU(cep->swbufq, IF_IP_TCP_NET_HDR_OFFSET(&cep->dstaddr.ipaddr)); 622 589 623 /* ãã©ã°ãããããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿ã«è¨å®ããã*/590 /* フラグを、ネットワークバッファ割当て済みに設定する。*/ 624 591 cep->flags = (cep->flags & ~(TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK)) 625 592 | TCP_CEP_FLG_WBCS_NBUF_READY; … … 627 594 628 595 /* 629 * tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããï¼å°ç¨ï¼ã596 * tcp_push_res_nbuf -- ネットワークバッファを予約する(専用)。 630 597 */ 631 598 … … 645 612 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_PEND) { 646 613 647 /* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/614 /* ネットワークバッファを予約する。*/ 648 615 cep->swbufq = nbuf; 649 616 nbuf = NULL; 650 617 651 /* ãã©ã°ãäºç´ã«è¨å®ããã*/618 /* フラグを予約に設定する。*/ 652 619 cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_RSVD; 653 620 sel_ix = ix; … … 664 631 665 632 /* 666 * tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãï¼å°ç¨ï¼ã633 * tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す(専用)。 667 634 */ 668 635 … … 676 643 if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_RSVD) { 677 644 678 /* äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡ãè¿ãã*/645 /* 予約してあるネットワークバッファを返す。*/ 679 646 nbuf = cep->swbufq; 680 647 cep->swbufq = NULL; 681 648 682 /* TCP åºåã¿ã¹ã¯ãèµ·åããã*/649 /* TCP 出力タスクを起動する。*/ 683 650 sig_sem(SEM_TCP_POST_OUTPUT); 684 651 } … … 698 665 699 666 /* 700 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å701 * ãã ããé信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ï¼cep->rbufï¼ã®å¤ã«ããã702 * TCP é信端ç¹æ¯ã«åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ãããã703 * 使ç¨ããªãããåãæ¿ããã704 */ 705 706 /* 707 * tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã667 * TCP 通信端点の受信ウィンドバッファの省コピー機能が有効な場合 668 * ただし、通信端点の受信ウィンドバッファ(cep->rbuf)の値により、 669 * TCP 通信端点毎に受信ウィンドバッファの省コピー機能を使用するか、 670 * 使用しないかを切り替える。 671 */ 672 673 /* 674 * tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。 708 675 */ 709 676 … … 718 685 719 686 /* 720 * tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèªã¿åºãã687 * tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。 721 688 */ 722 689 … … 731 698 732 699 /* 733 * tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã700 * tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。 734 701 */ 735 702 … … 744 711 745 712 /* 746 * tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã713 * tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。 747 714 */ 748 715 … … 755 722 756 723 /* 757 * tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã724 * tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。 758 725 */ 759 726 … … 770 737 771 738 /* 772 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹773 */ 774 775 /* 776 * tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã739 * TCP 通信端点の受信ウィンドバッファの省コピー機能が有効 740 */ 741 742 /* 743 * tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。 777 744 */ 778 745 … … 787 754 cep->rwbuf_count -= len; 788 755 789 /* ãããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç¡ããªã£ãã解æ¾ããã*/756 /* ネットワークバッファにデータが無くなったら解放する。*/ 790 757 if (len == qhdr->slen) { 791 758 T_NET_BUF *next; … … 809 776 810 777 /* 811 * tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèªã¿åºãã778 * tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。 812 779 */ 813 780 … … 819 786 uint8_t *buf = (uint8_t*)data; 820 787 821 /* é信端ç¹ãããã¯ããã*/788 /* 通信端点をロックする。*/ 822 789 syscall(wai_sem(cep->semid_lock)); 823 790 824 791 /* 825 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã«ãããã¯ã¼ã¯ãããã¡ãç¡ããªãã826 * len ã 0 ã«ãªãã¾ã§ç¶ããã792 * 受信ウィンドバッファキューにネットワークバッファが無くなるか 793 * len が 0 になるまで続ける。 827 794 */ 828 795 while (cep->rwbufq != NULL && len > 0) { … … 830 797 831 798 /* 832 * len ã¨åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®å 833 é ãããã¯ã¼ã¯ãããã¡ã® 834 * ãã¼ã¿æ°ã®å°ããæ¹ã移ããã¼ã¿æ°ã«ããã 799 * len と受信ウィンドバッファキューの先頭ネットワークバッファの 800 * データ数の小さい方を移すデータ数にする。 835 801 */ 836 802 if (len > qhdr->slen) … … 844 810 845 811 /* 846 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã«847 * ãã¼ã¿ãç¡ããªã£ãã解æ¾ããã812 * 受信ウィンドバッファキューのネットワークバッファに 813 * データが無くなったら解放する。 848 814 */ 849 815 tcp_drop_rwbuf_cs(cep, blen); … … 854 820 } 855 821 856 /* é信端ç¹ã®ããã¯ã解é¤ããã*/822 /* 通信端点のロックを解除する。*/ 857 823 syscall(sig_sem(cep->semid_lock)); 858 824 … … 861 827 862 828 /* 863 * tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã829 * tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。 864 830 */ 865 831 … … 870 836 uint_t len; 871 837 872 /* é信端ç¹ãããã¯ããã*/838 /* 通信端点をロックする。*/ 873 839 syscall(wai_sem(cep->semid_lock)); 874 840 875 841 if (cep->rwbufq == NULL) { 876 842 877 /* åä¿¡ã¦ã£ã³ããããã¡ãå 878 ¨ã¦éæ¾ããã¦ããã¨ãã*/ 843 /* 受信ウィンドバッファが全て開放されているとき。*/ 879 844 *p_buf = NULL; 880 845 len = 0; … … 882 847 else { 883 848 884 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å 885 é ãè¨å®ããã*/ 849 /* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/ 886 850 qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)); 887 851 *p_buf = GET_TCP_SDU(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)) + qhdr->soff; 888 852 889 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/853 /* 受信ウィンドバッファのデータ長を計算する。*/ 890 854 len = qhdr->slen; 891 855 } 892 856 893 /* é信端ç¹ã®ããã¯ã解é¤ããã*/857 /* 通信端点のロックを解除する。*/ 894 858 syscall(sig_sem(cep->semid_lock)); 895 859 896 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/860 /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/ 897 861 cep->rcv_buf_len = len; 898 862 return len; … … 900 864 901 865 /* 902 * tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã866 * tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。 903 867 * 904 * 注æ: 905 * å¿ 906 è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãé信端ç¹ãããã¯ãã 907 * æ»ã£ãå¾ã解é¤ããå¿ 908 è¦ãããã 868 * 注意: 869 * 必要であれば、この関数を呼び出す前に、通信端点をロックし、 870 * 戻った後、解除する必要がある。 909 871 */ 910 872 … … 928 890 } 929 891 930 /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãºããªã»ããããã*/892 /* 受信ウィンドバッファの使用中サイズをリセットする。*/ 931 893 cep->rwbuf_count = 0; 932 894 } … … 934 896 935 897 /* 936 * tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã898 * tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。 937 899 * 938 * 注æ: 939 * å 940 ¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã 941 * 並ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã 942 * 追å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã 900 * 注意: 901 * 入力 input は、T_TCP_Q_HDR によりリンクされ、 902 * 並べ替えが終了していなければならない。また、 903 * 追加するデータは、受信ウィンドバッファに収まること。 943 904 */ 944 905 … … 950 911 uint_t inlen, last; 951 912 952 /* é信端ç¹ãããã¯ããã*/913 /* 通信端点をロックする。*/ 953 914 syscall(wai_sem(cep->semid_lock)); 954 915 … … 963 924 964 925 /* 965 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã 966 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æ大ã¨ã³ããªæ°ãè¶ 967 ããã¨ãã¯ã 968 * åä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã 969 * ãã ããSDU é·ã 0 ã®ã»ã°ã¡ã³ã㨠FIN ã»ã°ã¡ã³ãã¯ç ´æ£ããªãã 970 * ãªããæ£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã 926 * TCP 通信端点の受信ウィンドバッファの省コピー機能の、 927 * 受信ウィンドバッファキューの最大エントリ数を超えるときは、 928 * 受信したセグメントを破棄する。 929 * ただし、SDU 長が 0 のセグメントと FIN セグメントは破棄しない。 930 * なお、正常に受信したセグメントも破棄するため、再送回数が増加する。 971 931 */ 972 932 syscall(rel_net_buf(input)); 973 933 974 /* é信端ç¹ã®ããã¯ã解é¤ããã*/934 /* 通信端点のロックを解除する。*/ 975 935 syscall(sig_sem(cep->semid_lock)); 976 936 return; … … 983 943 qhdr = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff); 984 944 985 /* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/945 /* 受信済みシーケンス番号を更新する。*/ 986 946 cep->rcv_nxt += inlen; 987 947 988 /* ç·æ¥ãã¼ã¿ã® SDU è£æ£ãè¡ãã*/948 /* 緊急データの SDU 補正を行う。*/ 989 949 if (qhdr->urp > 0 && inlen > 0) { 990 950 inlen -= qhdr->urp; … … 995 955 last = cep->rwbuf_count; 996 956 997 /* ãããã¯ã¼ã¯ãããã¡ãåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®æå¾ã«é£çµããã*/957 /* ネットワークバッファを受信ウィンドバッファキューの最後に連結する。*/ 998 958 qhdr->next = NULL; 999 959 nextp = &cep->rwbufq; … … 1003 963 1004 964 /* 1005 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã1006 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦1007 * ããªããã¨ãç¥ãããããã§ããã965 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 966 * これは、アプリケーションに、相手からこれ以上データが送られて 967 * こないことを知らせるためである。 1008 968 */ 1009 969 if (inlen > 0) { … … 1013 973 } 1014 974 1015 /* é信端ç¹ã®ããã¯ã解é¤ããã*/975 /* 通信端点のロックを解除する。*/ 1016 976 syscall(sig_sem(cep->semid_lock)); 1017 977 1018 978 #ifdef TCP_CFG_NON_BLOCKING 1019 979 1020 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ãã³ããããã³ã°ã³ã¼ã«*/980 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ノンブロッキングコール */ 1021 981 1022 982 int_t len; … … 1026 986 1027 987 /* 1028 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã1029 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦1030 * ããªããã¨ãç¥ãããããã§ããã988 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 989 * これは、アプリケーションに、相手からこれ以上データが送られて 990 * こないことを知らせるためである。 1031 991 */ 1032 992 if (len > 0 || inlen == 0) { 1033 993 1034 /* tcp_rcv_buf ã®å²å½ã¦é·ãè¨å®ããã*/994 /* tcp_rcv_buf の割当て長を設定する。*/ 1035 995 cep->rcv_buf_len = len; 1036 996 1037 /* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/997 /* 受信ウィンドバッファのアドレスを返す。*/ 1038 998 *cep->rcv_p_buf = GET_TCP_SDU(cep->rwbufq, 1039 999 GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)) + qhdr->soff; … … 1052 1012 1053 1013 /* 1054 * é信端ç¹ãããã¯ãã¦ã1055 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã1014 * 通信端点をロックして、 1015 * 受信ウィンドバッファキューのネットワークバッファを解放する。 1056 1016 */ 1057 1017 syscall(wai_sem(cep->semid_lock)); … … 1061 1021 } 1062 1022 1063 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/1023 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 1064 1024 cep->rcv_tskid = TA_NULL; 1065 1025 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; 1066 1026 } 1067 1027 1068 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ãã³ããããã³ã°ã³ã¼ã«*/1028 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ノンブロッキングコール */ 1069 1029 int_t len; 1070 1030 1071 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/1031 /* 受信ウィンドバッファからデータを取り出す。*/ 1072 1032 if ((len = tcp_read_rwbuf_cs(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) { 1073 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/1033 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 1074 1034 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1075 1035 sig_sem(SEM_TCP_POST_OUTPUT); … … 1077 1037 1078 1038 /* 1079 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã1080 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦1081 * ããªããã¨ãç¥ãããããã§ããã1039 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 1040 * これは、アプリケーションに、相手からこれ以上データが送られて 1041 * こないことを知らせるためである。 1082 1042 */ 1083 1043 if (len > 0 || inlen == 0) { … … 1094 1054 } 1095 1055 1096 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/1056 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 1097 1057 cep->rcv_tskid = TA_NULL; 1098 1058 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 1104 1064 if (inlen == 0 && cep->rwbuf_count == 0) { 1105 1065 /* 1106 * åä¿¡ã¦ã£ã³ããããã¡å 1107 ã®ãã¼ã¿æ°ã 0 ã§ã 1108 * ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã 1109 * é信端ç¹ãããã¯ãã¦ã 1110 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã 1066 * 受信ウィンドバッファ内のデータ数が 0 で、 1067 * 相手から FIN フラグが付いたセグメントを受信したときは、 1068 * 通信端点をロックして、 1069 * 受信ウィンドバッファキューのネットワークバッファを解放する。 1111 1070 */ 1112 1071 syscall(wai_sem(cep->semid_lock)); … … 1116 1075 1117 1076 /* 1118 * åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå 1119 ¥ããã inlen == 0 ã®æãå 1120 ¥åã¿ã¹ã¯ãèµ·åºããã 1121 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã 1122 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéãã㦠1123 * ããªããã¨ãç¥ãããããã§ããã 1077 * 受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。 1078 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 1079 * これは、アプリケーションに、相手からこれ以上データが送られて 1080 * こないことを知らせるためである。 1124 1081 */ 1125 1082 if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) { -
azure_iot_hub/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
r388 r389 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$ … … 130 118 131 119 /* 132 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹133 */ 134 135 /* 136 * tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèªã¿åºãã120 * TCP 通信端点の送信ウィンドバッファの省コピー機能が無効 121 */ 122 123 /* 124 * tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す。 137 125 */ 138 126 … … 144 132 uint_t hdr_offset = IF_IP_TCP_HDR_OFFSET(output); 145 133 146 /* SDU ã®å¤§ããããã§ãã¯ããã*/134 /* SDU の大きさをチェックする。*/ 147 135 if (sdu_size < GET_TCP_HDR_SIZE(output, hdr_offset) + len) { 148 136 syslog(LOG_INFO, "[TCP] shrink SUD len: %d -> %d", … … 153 141 wptr = GET_TCP_SDU(output, hdr_offset); 154 142 155 /* é信端ç¹ãããã¯ããã*/143 /* 通信端点をロックする。*/ 156 144 syscall(wai_sem(cep->semid_lock)); 157 145 … … 159 147 if (rptr - (uint8_t*)cep->sbuf > cep->sbufsz) { 160 148 161 /* 転ééå§ãéä¿¡ã¦ã£ã³ããããã¡ã®çµãããè¶ 162 ããã¨ãã®å¦çã*/ 149 /* 転送開始が送信ウィンドバッファの終わりを超えるときの処理 */ 163 150 rptr = (uint8_t*)cep->sbuf_rptr - (cep->sbufsz - doff); 164 151 } … … 166 153 uint_t sub; 167 154 168 /* 転éç¯å²ãã©ã¦ã³ãããã¨ãã®å¦ç*/155 /* 転送範囲がラウンドするときの処理 */ 169 156 sub = (uint_t)(cep->sbufsz - (rptr - (uint8_t*)cep->sbuf)); 170 157 memcpy((void*)wptr, rptr, (size_t)sub); … … 178 165 NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_DATA_OCTETS], len); 179 166 180 /* é信端ç¹ã®ããã¯ã解é¤ããã*/167 /* 通信端点のロックを解除する。*/ 181 168 syscall(sig_sem(cep->semid_lock)); 182 169 } 183 170 184 171 /* 185 * tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã172 * tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する。 186 173 */ 187 174 … … 191 178 uint_t last; 192 179 193 /* é信端ç¹ãããã¯ããã*/180 /* 通信端点をロックする。*/ 194 181 syscall(wai_sem(cep->semid_lock)); 195 182 … … 197 184 198 185 if (cep->sbuf_rptr + len > (uint8_t*)cep->sbuf + cep->sbufsz) 199 /* ã©ã¦ã³ãããã¨ãã®è¨ç®*/186 /* ラウンドするときの計算 */ 200 187 cep->sbuf_rptr -= cep->sbufsz - len; 201 188 else … … 203 190 cep->swbuf_count -= (uint16_t)len; 204 191 205 /* é信端ç¹ã®ããã¯ã解é¤ããã*/192 /* 通信端点のロックを解除する。*/ 206 193 syscall(sig_sem(cep->semid_lock)); 207 194 208 195 #ifdef TCP_CFG_NON_BLOCKING 209 196 210 if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) { /* ãã³ããããã³ã°ã³ã¼ã«*/211 212 /* é信端ç¹ãããã¯ããã*/197 if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) { /* ノンブロッキングコール */ 198 199 /* 通信端点をロックする。*/ 213 200 syscall(wai_sem(cep->semid_lock)); 214 201 215 /* éä¿¡ãã¼ã¿é·ãè¨ç®ããã*/202 /* 送信データ長を計算する。*/ 216 203 if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) 217 /* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/204 /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */ 218 205 len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)); 219 206 else 220 207 len = cep->sbufsz - cep->swbuf_count; 221 208 222 /* é信端ç¹ã®ããã¯ã解é¤ããã*/209 /* 通信端点のロックを解除する。*/ 223 210 syscall(sig_sem(cep->semid_lock)); 224 211 225 212 if (len > 0) { 226 213 227 /* tcp_get_buf ã®å²å½ã¦é·ãè¨å®ããã*/214 /* tcp_get_buf の割当て長を設定する。*/ 228 215 cep->get_buf_len = len; 229 216 230 /* éä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/217 /* 送信ウィンドバッファのアドレスを返す。*/ 231 218 *cep->snd_p_buf = cep->sbuf_wptr; 232 219 … … 241 228 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 242 229 243 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/230 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 244 231 cep->snd_tskid = TA_NULL; 245 232 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 250 237 251 238 else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT || 252 cep->snd_nblk_tfn == TFN_TCP_SND_OOB) { /* ãã³ããããã³ã°ã³ã¼ã«*/239 cep->snd_nblk_tfn == TFN_TCP_SND_OOB) { /* ノンブロッキングコール */ 253 240 254 241 #else /* of #ifdef TCP_CFG_EXTENTIONS */ 255 242 256 else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) { /* ãã³ããããã³ã°ã³ã¼ã«*/243 else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) { /* ノンブロッキングコール */ 257 244 258 245 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ … … 260 247 ER_UINT error; 261 248 262 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/249 /* 送信ウィンドバッファにデータを書き込む。*/ 263 250 error = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len); 264 251 265 252 #ifdef TCP_CFG_EXTENTIONS 266 253 267 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/254 /* 送信緊急ポインタを設定する。*/ 268 255 if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB) 269 256 cep->snd_up = cep->snd_una + error; … … 281 268 syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep)); 282 269 283 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/270 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 284 271 cep->snd_tskid = TA_NULL; 285 272 cep->snd_tfn = cep->snd_nblk_tfn = TFN_TCP_UNDEF; … … 289 276 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 290 277 291 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããåºæ¥ããåºåã¿ã¹ã¯ãèµ·åºããã*/278 /* 送信ウィンドバッファに空きが出来たら出力タスクを起床する。*/ 292 279 if (last == cep->sbufsz && cep->swbuf_count < cep->sbufsz) 293 280 syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY)); … … 300 287 301 288 if (cep->swbuf_count > 0) { 302 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°åºåããã¹ãããã*/289 /* 送信ウィンドバッファにデータがあれば出力をポストする。*/ 303 290 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 304 291 sig_sem(SEM_TCP_POST_OUTPUT); … … 307 294 308 295 /* 309 * tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã296 * tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む。 310 297 */ 311 298 … … 315 302 uint_t offset; 316 303 317 /* é信端ç¹ãããã¯ããã*/304 /* 通信端点をロックする。*/ 318 305 syscall(wai_sem(cep->semid_lock)); 319 306 320 /* len ã¨éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã®å°ããæ¹ã移ããã¼ã¿æ°ã«ããã*/307 /* len と送信ウィンドバッファの空きの小さい方を移すデータ数にする。*/ 321 308 if (len > (cep->sbufsz - cep->swbuf_count)) 322 309 len = cep->sbufsz - cep->swbuf_count; 323 310 324 /* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/311 /* 書き込みポインタがラウンドするときの処理 */ 325 312 if (len > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) { 326 313 offset = (uint_t)(cep->sbufsz - (cep->sbuf_wptr -(uint8_t*)cep->sbuf)); … … 336 323 cep->swbuf_count += len - offset; 337 324 338 /* é信端ç¹ã®ããã¯ã解é¤ããã*/325 /* 通信端点のロックを解除する。*/ 339 326 syscall(sig_sem(cep->semid_lock)); 340 327 … … 343 330 344 331 /* 345 * tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 346 ã¤ã 332 * tcp_wait_swbuf -- 送信ウィンドバッファが空くのを待つ。 347 333 */ 348 334 … … 355 341 while (cep->swbuf_count >= cep->sbufsz) { 356 342 /* 357 * éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãããªããã°ãåºåããã¹ããã¦ã 358 * éä¿¡ã¦ã£ã³ããããã¡ã空ãã¾ã§å¾ 359 ã¤ã 343 * 送信ウィンドバッファの空きがなければ、出力をポストして、 344 * 送信ウィンドバッファが空くまで待つ。 360 345 */ 361 346 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; … … 368 353 369 354 /* 370 * éä¿¡ã§ããããCEP ã® FSM ç¶æ 371 ãè¦ãã 372 * éä¿¡ã¦ã£ã³ããããã¡ã空ãã¾ã§å¾ 373 ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã 374 * ã³ãã¯ã·ã§ã³ãåæããããã¨ãæå³ãã¦ããã 355 * 送信できるか、CEP の FSM 状態を見る。 356 * 送信ウィンドバッファが空くまで待つ間に、送信不能になった場合は、 357 * コネクションが切断されたことを意味している。 375 358 */ 376 359 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) { … … 382 365 } 383 366 /* 384 * tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã367 * tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する。 385 368 */ 386 369 … … 390 373 uint_t len; 391 374 392 /* é信端ç¹ãããã¯ããã*/375 /* 通信端点をロックする。*/ 393 376 syscall(wai_sem(cep->semid_lock)); 394 377 395 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å 396 é ãè¨å®ããã*/ 378 /* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/ 397 379 *p_buf = cep->sbuf_wptr; 398 380 399 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããµã¤ãºãè¨ç®ããã*/381 /* 送信ウィンドバッファの空きサイズを計算する。*/ 400 382 if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) 401 /* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/383 /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */ 402 384 len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)); 403 385 else 404 386 len = cep->sbufsz - cep->swbuf_count; 405 387 406 /* é信端ç¹ã®ããã¯ã解é¤ããã*/388 /* 通信端点のロックを解除する。*/ 407 389 syscall(sig_sem(cep->semid_lock)); 408 390 409 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/391 /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/ 410 392 cep->get_buf_len = len; 411 393 return (ER_UINT)len; … … 413 395 414 396 /* 415 * tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã397 * tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする。 416 398 */ 417 399 … … 419 401 tcp_send_swbuf_ncs (T_TCP_CEP *cep, uint_t len) 420 402 { 421 /* é信端ç¹ãããã¯ããã*/403 /* 通信端点をロックする。*/ 422 404 syscall(wai_sem(cep->semid_lock)); 423 405 … … 425 407 cep->swbuf_count += len; 426 408 427 /* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/409 /* 書込みポインタがラウンドするときの処理 */ 428 410 if (cep->sbuf_wptr >= (uint8_t*)cep->sbuf + cep->sbufsz) 429 411 cep->sbuf_wptr = (uint8_t*)cep->sbuf; 430 412 431 /* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/413 /* tcp_get_buf の割当て長をリセットする。*/ 432 414 cep->get_buf_len = 0; 433 415 434 /* é信端ç¹ã®ããã¯ã解é¤ããã*/416 /* 通信端点のロックを解除する。*/ 435 417 syscall(sig_sem(cep->semid_lock)); 436 418 437 /* éä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/419 /* 送信ウィンドバッファがフルのときは強制的に送信する。*/ 438 420 if (cep->swbuf_count >= cep->sbufsz) 439 421 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR; … … 441 423 442 424 /* 443 * tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããã425 * tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする。 444 426 */ 445 427 … … 455 437 456 438 /* 457 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹458 */ 459 460 /* 461 * tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã439 * TCP 通信端点の受信ウィンドバッファの省コピー機能が無効 440 */ 441 442 /* 443 * tcp_drop_rwbuf -- 受信ウィンドバッファから指定されたオクテット分削除する。 462 444 */ 463 445 … … 468 450 cep->rbuf_rptr += len; 469 451 470 /* èªã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/452 /* 読み出しポインタがラウンドするときの処理 */ 471 453 if (cep->rbuf_rptr >= (uint8_t*)cep->rbuf + cep->rbufsz) 472 454 cep->rbuf_rptr = (uint8_t*)cep->rbuf; … … 474 456 475 457 /* 476 * tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèªã¿åºãã458 * tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。 477 459 */ 478 460 … … 482 464 uint_t offset; 483 465 484 /* é信端ç¹ãããã¯ããã*/466 /* 通信端点をロックする。*/ 485 467 syscall(wai_sem(cep->semid_lock)); 486 468 487 /* len ã¨åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿æ°ã®å°ããæ¹ãåãåºããã¼ã¿æ°ã«ããã*/469 /* len と受信ウィンドバッファのデータ数の小さい方を取り出すデータ数にする。*/ 488 470 if (len > cep->rwbuf_count) 489 471 len = cep->rwbuf_count; 490 472 491 /* èªã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/473 /* 読み出しポインタがラウンドするときの処理 */ 492 474 if (len > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) { 493 475 offset = (uint_t)(cep->rbufsz - (cep->rbuf_rptr -(uint8_t*)cep->rbuf)); … … 503 485 cep->rbuf_rptr += len - offset; 504 486 505 /* é信端ç¹ã®ããã¯ã解é¤ããã*/487 /* 通信端点のロックを解除する。*/ 506 488 syscall(sig_sem(cep->semid_lock)); 507 489 … … 510 492 511 493 /* 512 * tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã494 * tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。 513 495 */ 514 496 … … 518 500 uint_t len; 519 501 520 /* é信端ç¹ãããã¯ããã*/502 /* 通信端点をロックする。*/ 521 503 syscall(wai_sem(cep->semid_lock)); 522 504 523 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/505 /* 受信ウィンドバッファのデータ長を計算する。*/ 524 506 if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) 525 /* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/507 /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */ 526 508 len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)); 527 509 else 528 510 len = cep->rwbuf_count; 529 511 530 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å 531 é ãè¨å®ããã*/ 512 /* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/ 532 513 *p_buf = cep->rbuf_rptr; 533 514 534 /* é信端ç¹ã®ããã¯ã解é¤ããã*/515 /* 通信端点のロックを解除する。*/ 535 516 syscall(sig_sem(cep->semid_lock)); 536 517 537 /* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨å®ãããã®å¤ãè¿ãã*/518 /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/ 538 519 cep->rcv_buf_len = len; 539 520 return len; … … 541 522 542 523 /* 543 * tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã524 * tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。 544 525 * 545 * 注æ: 546 * å 547 ¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã 548 * 並ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã 549 * 追å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã 526 * 注意: 527 * 入力 input は、T_TCP_Q_HDR によりリンクされ、 528 * 並べ替えが終了していなければならない。また、 529 * 追加するデータは、受信ウィンドバッファに収まること。 550 530 */ 551 531 … … 556 536 uint_t offset, inlen, last; 557 537 558 /* é信端ç¹ãããã¯ããã*/538 /* 通信端点をロックする。*/ 559 539 syscall(wai_sem(cep->semid_lock)); 560 540 561 541 qhdr = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff); 562 542 563 /* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/543 /* 受信済みシーケンス番号を更新する。*/ 564 544 cep->rcv_nxt += qhdr->slen; 565 545 … … 567 547 inlen = qhdr->slen; 568 548 569 /* ç·æ¥ãã¼ã¿ã® SDU è£æ£ãè¡ãã*/549 /* 緊急データの SDU 補正を行う。*/ 570 550 if (qhdr->urp > 0 && inlen > 0) { 571 551 inlen -= qhdr->urp; … … 575 555 576 556 /* 577 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã578 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦579 * ããªããã¨ãç¥ãããããã§ããã557 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 558 * これは、アプリケーションに、相手からこれ以上データが送られて 559 * こないことを知らせるためである。 580 560 */ 581 561 if (inlen > 0) { 582 562 583 /* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç*/563 /* 書き込みポインタがラウンドするときの処理 */ 584 564 if (inlen > cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)) { 585 565 offset = (uint_t)(cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)); … … 604 584 #ifdef TCP_CFG_NON_BLOCKING 605 585 606 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ãã³ããããã³ã°ã³ã¼ã«*/586 if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) { /* ノンブロッキングコール */ 607 587 608 588 int_t len; 609 589 610 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨ç®ããã*/590 /* 受信ウィンドバッファの空きデータ長を計算する。*/ 611 591 if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) { 612 /* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§*/592 /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */ 613 593 len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)); 614 594 } … … 616 596 len = cep->rwbuf_count; 617 597 618 /* é信端ç¹ã®ããã¯ã解é¤ããã*/598 /* 通信端点のロックを解除する。*/ 619 599 syscall(sig_sem(cep->semid_lock)); 620 600 621 601 /* 622 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã623 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦624 * ããªããã¨ãç¥ãããããã§ããã602 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 603 * これは、アプリケーションに、相手からこれ以上データが送られて 604 * こないことを知らせるためである。 625 605 */ 626 606 if (len > 0 || inlen == 0) { 627 607 628 /* tcp_rcv_buf ã®å²å½ã¦é·ãè¨å®ããã*/608 /* tcp_rcv_buf の割当て長を設定する。*/ 629 609 cep->rcv_buf_len = len; 630 610 631 /* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/611 /* 受信ウィンドバッファのアドレスを返す。*/ 632 612 *cep->rcv_p_buf = cep->rbuf_rptr; 633 613 … … 646 626 647 627 /* 648 * é信端ç¹ãããã¯ãã¦ã649 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã628 * 通信端点をロックして、 629 * 受信ウィンドバッファキューのネットワークバッファを解放する。 650 630 */ 651 631 syscall(wai_sem(cep->semid_lock)); … … 655 635 } 656 636 657 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/637 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 658 638 cep->rcv_tskid = TA_NULL; 659 639 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; 660 640 } 661 641 662 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ãã³ããããã³ã°ã³ã¼ã«*/642 else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) { /* ノンブロッキングコール */ 663 643 ER_UINT len; 664 644 665 /* é信端ç¹ã®ããã¯ã解é¤ããã*/645 /* 通信端点のロックを解除する。*/ 666 646 syscall(sig_sem(cep->semid_lock)); 667 647 668 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/648 /* 受信ウィンドバッファからデータを取り出す。*/ 669 649 if ((len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) { 670 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/650 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 671 651 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 672 652 sig_sem(SEM_TCP_POST_OUTPUT); … … 674 654 675 655 /* 676 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã677 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéããã¦678 * ããªããã¨ãç¥ãããããã§ããã656 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 657 * これは、アプリケーションに、相手からこれ以上データが送られて 658 * こないことを知らせるためである。 679 659 */ 680 660 if (len > 0 || inlen == 0) { … … 691 671 } 692 672 693 /* è¨æ¶ããã¦ããã¿ã¹ã¯ ID 㨠API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/673 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/ 694 674 cep->rcv_tskid = TA_NULL; 695 675 cep->rcv_tfn = cep->rcv_nblk_tfn = TFN_TCP_UNDEF; … … 700 680 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 701 681 702 /* é信端ç¹ã®ããã¯ã解é¤ããã*/682 /* 通信端点のロックを解除する。*/ 703 683 syscall(sig_sem(cep->semid_lock)); 704 684 705 685 if (inlen == 0 && cep->rwbuf_count == 0) { 706 686 /* 707 * åä¿¡ã¦ã£ã³ããããã¡å 708 ã®ãã¼ã¿æ°ã 0 ã§ã 709 * ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã 710 * é信端ç¹ãããã¯ãã¦ã 711 * åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã 687 * 受信ウィンドバッファ内のデータ数が 0 で、 688 * 相手から FIN フラグが付いたセグメントを受信したときは、 689 * 通信端点をロックして、 690 * 受信ウィンドバッファキューのネットワークバッファを解放する。 712 691 */ 713 692 syscall(wai_sem(cep->semid_lock)); … … 717 696 718 697 /* 719 * åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå 720 ¥ããã inlen == 0 ã®æãå 721 ¥åã¿ã¹ã¯ãèµ·åºããã 722 * FIN ãã©ã°ãä»ããã»ã°ã¡ã³ã㯠inlen == 0 ã«ãªããã¨ãããã 723 * ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æãããã以ä¸ãã¼ã¿ãéãã㦠724 * ããªããã¨ãç¥ãããããã§ããã 698 * 受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。 699 * FIN フラグが付いたセグメントは inlen == 0 になることもある。 700 * これは、アプリケーションに、相手からこれ以上データが送られて 701 * こないことを知らせるためである。 725 702 */ 726 703 if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) -
azure_iot_hub/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
r388 r389 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$ … … 119 107 120 108 /* 121 * å±æé¢æ°109 * 局所関数 122 110 */ 123 111 … … 131 119 132 120 /* 133 * ããã¯ãªãæé121 * バックオフ時間 134 122 * 135 * åéãè¡ããã³ã«ãã¿ã¤ã ã¢ã¦ãã®æéã延é·ããã123 * 再送を行うたびに、タイムアウトの時間を延長する。 136 124 */ 137 125 … … 143 131 }; 144 132 145 #define TCP_TOTAL_BACK_OFF 511 /* ããã¯ãªãæéã®åè¨*/146 147 /* 148 * tcp_timers -- ã¿ã¤ã ã¢ã¦ãå¦ç133 #define TCP_TOTAL_BACK_OFF 511 /* バックオフ時間の合計 */ 134 135 /* 136 * tcp_timers -- タイムアウト処理 149 137 */ 150 138 … … 158 146 159 147 /* 160 * åéã¿ã¤ã148 * 再送タイマ 161 149 */ 162 150 case TCP_TIM_REXMT: 163 151 164 152 /* 165 * æ大åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ã«ãªã£ãã¨ãã¯ã166 * ã³ãã¯ã·ã§ã³ãåæããã153 * 最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) になったときは、 154 * コネクションを切断する。 167 155 */ 168 156 if (++ cep->rxtshift > TCP_MAX_REXMT_SHIFT) { … … 174 162 175 163 /* 176 * åéã¿ã¤ã ã¢ã¦ããè¨ç®ããã164 * 再送タイムアウトを計算する。 177 165 */ 178 166 cep->rxtcur = tcp_range_set((T_TCP_TIME)(tcp_rexmt_val(cep) * tcp_back_off[cep->rxtshift]), … … 182 170 183 171 /* 184 * srtt: å¹³æ»åãããRTT185 * rttvar: å¹³æ»åãããåæ£172 * srtt: 平滑化された RTT 173 * rttvar: 平滑化された分散 186 174 * 187 * åéåæ°ãæ大åéåæ°ã® 1/4 ã«ãªã£ãã¨ãã¯ã188 * å¹³æ»åãããåæ£ (rttvar) ã« srtt ãå ç®ãã189 * å¹³æ»åããã RTT ã 0 ã«ããã175 * 再送回数が最大再送回数の 1/4 になったときは、 176 * 平滑化された分散 (rttvar) に srtt を加算し、 177 * 平滑化された RTT を 0 にする。 190 178 * 191 179 */ … … 196 184 197 185 /* 198 * snd_nxt: 次ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ããSEQ199 * snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ ã¾ãã¯ã確èªãããæ大éä¿¡SEQ186 * snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ 187 * snd_una: 未確認の最小送信 SEQ または、確認された最大送信 SEQ 200 188 * 201 * ååéä¿¡ãã SEQ (snd_nxt) ã202 * 確èªãããæ大éä¿¡ SEQ (snd_una) ã¾ã§æ»ãã189 * 前回送信した SEQ (snd_nxt) を 190 * 確認された最大送信 SEQ (snd_una) まで戻す。 203 191 */ 204 192 cep->snd_nxt = cep->snd_una; … … 206 194 207 195 /* 208 * rtt: å¾å¾©æéã®è¨æ¸¬ãä¸æ¢ããã196 * rtt: 往復時間の計測を中止する。 209 197 */ 210 198 cep->rtt = 0; 211 199 212 200 /* 213 * éä¿¡ã¦ã¤ã³ãã®è¨å®201 * 送信ウインドの設定 214 202 * 215 * snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº216 * snd_cwnd: 輻輳ã¦ã£ã³ããµã¤ãº217 * maxseg : ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº203 * snd_wnd: 相手の受信可能ウィンドサイズ 204 * snd_cwnd: 輻輳ウィンドサイズ 205 * maxseg : 相手の最大受信セグメントサイズ 218 206 * 219 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ãã220 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã®221 * ã©ã¡ããå°ãããµã¤ãºã® 1/2 ããæ´ã«222 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã§å²ã£ãå¤ã223 * ãã ãã2 以ä¸207 * 相手の受信可能ウィンドサイズ (snd_wnd) か、 208 * 輻輳ウィンドサイズ (snd_cwnd) の 209 * どちらか小さいサイズの 1/2 を、更に 210 * 相手の最大受信セグメントサイズ (maxseg) で割った値。 211 * ただし、2 以上 224 212 */ 225 213 if (cep->snd_wnd < cep->snd_cwnd) … … 232 220 233 221 /* 234 * 輻輳ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã¯235 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã«ã236 * 輻輳ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ã¯237 * ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã® win åã«238 * è¨å®ããã222 * 輻輳ウィンドサイズ (snd_cwnd) は 223 * 相手の受信可能ウィンドサイズ (snd_wnd) に、 224 * 輻輳ウィンドサイズのしきい値 (snd_ssthresh) は 225 * 相手の受信可能ウィンドサイズ (snd_wnd) の win 倍に 226 * 設定する。 239 227 */ 240 228 cep->snd_cwnd = cep->maxseg; … … 242 230 cep->dupacks = 0; 243 231 244 /* åºåããã¹ãããã*/232 /* 出力をポストする。*/ 245 233 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 246 234 sig_sem(SEM_TCP_POST_OUTPUT); … … 248 236 249 237 /* 250 * æç¶ã¿ã¤ã238 * 持続タイマ 251 239 */ 252 240 case TCP_TIM_PERSIST: 253 241 254 242 /* 255 * æ大åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ãè¶ 256 ãã¦ãã¦ã 257 * ã¢ã¤ãã«æéããä¿çã¿ã¤ãã®æ¨æºå¤ (TCP_TVAL_KEEP_IDLEã 258 * æ¨æº 2 * 60 * 60 ç§) 以ä¸ãã 259 * åéã¿ã¤ã ã¢ã¦ãå¤ * ããã¯ãªãæéã®åè¨ä»¥ä¸ãªã 260 * ã³ãã¯ã·ã§ã³ãåæããã 243 * 最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) を超えていて、 244 * アイドル時間が、保留タイマの標準値 (TCP_TVAL_KEEP_IDLE、 245 * 標準 2 * 60 * 60 秒) 以上か、 246 * 再送タイムアウト値 * バックオフ時間の合計以上なら 247 * コネクションを切断する。 261 248 */ 262 249 if (cep->rxtshift > TCP_MAX_REXMT_SHIFT && … … 268 255 } 269 256 270 /* æç¶ã¿ã¤ããåè¨å®ããåºåããã¹ãããã*/257 /* 持続タイマを再設定し、出力をポストする。*/ 271 258 tcp_set_persist_timer(cep); 272 259 … … 276 263 277 264 /* 278 * ä¿ç (keep alive) ã¿ã¤ã265 * 保留 (keep alive) タイマ 279 266 */ 280 267 case TCP_TIM_KEEP: 281 268 282 269 /* 283 * ã³ãã¯ã·ã§ã³ãéè¨ãããã¾ã§ã«ã¿ã¤ã ã¢ã¦ãããã284 * ã³ãã¯ã·ã§ã³ã®éè¨ãä¸æ¢ããã270 * コネクションが開設されるまでにタイムアウトしたら 271 * コネクションの開設を中止する。 285 272 */ 286 273 if (cep->fsm_state < TCP_FSM_ESTABLISHED) { … … 316 303 317 304 /* 318 * 2MSL ã¿ã¤ã305 * 2MSL タイマ 319 306 */ 320 307 case TCP_TIM_2MSL: … … 332 319 333 320 /* 334 * tcp_cancel_timers -- å 335 ¨ã¦ã®ã¿ã¤ãããã£ã³ã»ã«ããã 321 * tcp_cancel_timers -- 全てのタイマをキャンセルする。 336 322 */ 337 323 … … 348 334 349 335 /* 350 * tcp_tw_timo -- Time Wait ç¨ TCP é信端ç¹ã®ã¿ã¤ã ã¢ã¦ãå¦ç336 * tcp_tw_timo -- Time Wait 用 TCP 通信端点のタイムアウト処理 351 337 */ 352 338 … … 360 346 361 347 /* 362 * Time Wait ç¨ TCP é信端ç¹ã§ã¿ã¤ã ã¢ã¦ãã®ã¨ã³ããªãæ¢ç´¢ãã363 * æ¢ç´¢ããã¨ã³ããªã空ãã«ããã348 * Time Wait 用 TCP 通信端点でタイムアウトのエントリを探索し、 349 * 探索したエントリを空きにする。 364 350 */ 365 351 frees = 0; … … 371 357 372 358 /* 373 * Time Wait ç¨ TCP é信端ç¹ã®ç©ºãã¨ã³ããªãçºçããã 374 * æ¨æº TCP é信端ç¹ã§ Time Wait ä¸ã® TCP é信端ç¹ãæ¢ç´¢ãã 375 * å¿ 376 è¦ãªæ 377 å ±ã Time Wait ç¨ TCP é信端ç¹ã«ç§»ãã¦ã 378 * æ¨æºã® TCP é信端ç¹ãéæ¾ããã 359 * Time Wait 用 TCP 通信端点の空きエントリが発生したら 360 * 標準 TCP 通信端点で Time Wait 中の TCP 通信端点を探索し、 361 * 必要な情報を Time Wait 用 TCP 通信端点に移して、 362 * 標準の TCP 通信端点を開放する。 379 363 */ 380 364 if (frees > 0) { … … 387 371 388 372 /* 389 * ãã£ã¨ãé·ãé Time Wait ãã¦ãã TCP é信端ç¹ãéæ¾ããã373 * もっとも長い間 Time Wait している TCP 通信端点を開放する。 390 374 */ 391 375 while (waits > 0) { … … 410 394 411 395 /* 412 * tcp_slow_timo -- 500 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°396 * tcp_slow_timo -- 500 [ms] 毎に呼出される TCP タイムアウト関数 413 397 */ 414 398 … … 452 436 453 437 /* 454 * tcp_fast_timo -- 200 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°438 * tcp_fast_timo -- 200 [ms] 毎に呼出される TCP タイムアウト関数 455 439 */ 456 440 … … 476 460 477 461 /* 478 * tcp_range_set -- æéãæå®ããç¯å²ã«è¨å®ããã462 * tcp_range_set -- 時間を指定した範囲に設定する。 479 463 */ 480 464 … … 491 475 492 476 /* 493 * tcp_set_persist_timer -- æç¶ã¿ã¤ãã®è¨å®477 * tcp_set_persist_timer -- 持続タイマの設定 494 478 */ 495 479 … … 500 484 501 485 /* 502 * srtt: å¹³æ»åãããRTT503 * rttvar: å¹³æ»åãããåæ£486 * srtt: 平滑化された RTT 487 * rttvar: 平滑化された分散 504 488 */ 505 489 time = ((cep->srtt >> 2) + cep->rttvar) >> 1; 506 490 507 491 /* 508 * åéã¿ã¤ããè¨å®ããã¦ããã°å復ä¸è½ã¨ã©ã¼492 * 再送タイマも設定されていれば回復不能エラー 509 493 */ 510 494 if (cep->timer[TCP_TIM_REXMT]) … … 512 496 513 497 /* 514 * æç¶ã¿ã¤ããè¨å®ããã498 * 持続タイマを設定する。 515 499 */ 516 500 cep->timer[TCP_TIM_PERSIST] = tcp_range_set((T_TCP_TIME)(time * tcp_back_off[cep->rxtshift]), … … 519 503 520 504 /* 521 * åéåæ°ãæ´æ°ããã505 * 再送回数を更新する。 522 506 */ 523 507 if (cep->rxtshift < TCP_MAX_REXMT_SHIFT) -
azure_iot_hub/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
r388 r389 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(1000000)/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 137 /* 151 * é¢æ°138 * 関数 152 139 */ 153 140 -
azure_iot_hub/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
r388 r389 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$ … … 130 118 131 119 /* 132 * TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå 133 ¨ã¦ã®æ©è½ã 134 * ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ããæå¹ã«ããã 120 * TINET をライブラリ化しない場合は、全ての機能を 121 * オブジェクトファイルに出力するため、マクロを有効にする。 135 122 */ 136 123 … … 160 147 161 148 /* 162 * IPv6 㨠IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«149 * IPv6 と IPv4 で引数が異なる関数のコンパイル 163 150 */ 164 151 … … 228 215 229 216 /* 230 * tcp_user_closed -- ã¦ã¼ã¶ããã®ã³ãã¯ã·ã§ã³ã®éæ¾217 * tcp_user_closed -- ユーザからのコネクションの開放 231 218 */ 232 219 … … 236 223 switch (cep->fsm_state) { 237 224 238 case TCP_FSM_CLOSED: /* ã¯ãã¼ãº*/239 case TCP_FSM_LISTEN: /* ååãªã¼ãã³*/225 case TCP_FSM_CLOSED: /* クローズ */ 226 case TCP_FSM_LISTEN: /* 受動オープン */ 240 227 cep->fsm_state = TCP_FSM_CLOSED; 241 228 cep = tcp_close(cep); 242 229 break; 243 230 244 case TCP_FSM_SYN_SENT: /* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿*/245 case TCP_FSM_SYN_RECVD: /* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿*/231 case TCP_FSM_SYN_SENT: /* 能動オープン、SYN 送信済み */ 232 case TCP_FSM_SYN_RECVD: /* SYN を受信し、SYN 送信済み */ 246 233 cep->flags |= TCP_CEP_FLG_NEED_FIN; 247 234 break; 248 235 249 case TCP_FSM_ESTABLISHED: /* ã³ãã¯ã·ã§ã³éè¨å®äº*/236 case TCP_FSM_ESTABLISHED: /* コネクション開設完了 */ 250 237 cep->fsm_state = TCP_FSM_FIN_WAIT_1; 251 238 break; 252 239 253 case TCP_FSM_CLOSE_WAIT: /* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾ 254 ã¡ */ 240 case TCP_FSM_CLOSE_WAIT: /* 相手から FIN 受信、APP の終了待ち */ 255 241 cep->fsm_state = TCP_FSM_LAST_ACK; 256 242 break; … … 263 249 264 250 /* 265 * tcp_cls_cep -- é信端ç¹ã®ã¯ãã¼ãºãæ¨æºæ©è½ã251 * tcp_cls_cep -- 通信端点のクローズ【標準機能】 266 252 */ 267 253 … … 275 261 #ifndef TCP_CFG_NON_BLOCKING 276 262 277 /* tmout ã TMO_NBLK ãªãã¨ã©ã¼*/263 /* tmout が TMO_NBLK ならエラー */ 278 264 if (tmout == TMO_NBLK) 279 265 return E_PAR; … … 282 268 283 269 /* 284 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã285 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼270 * CEP をロックし、API 機能コードとタスク識別子を記録する。 271 * すでに記録されていれば、ペンディング中なのでエラー 286 272 */ 287 273 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CLS_CEP)) != E_OK) … … 290 276 #ifdef TCP_CFG_NON_BLOCKING 291 277 292 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/293 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/278 /* タイムアウトをチェックする。*/ 279 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 294 280 295 281 if (!IS_PTR_DEFINED(cep->callback)) 296 282 error = E_OBJ; 297 else if (cep->fsm_state == TCP_FSM_CLOSED) { /* ãã§ã«ã¯ãã¼ãºããã¦ããã¨ã*/283 else if (cep->fsm_state == TCP_FSM_CLOSED) { /* すでにクローズされているとき */ 298 284 299 285 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 … … 313 299 } 314 300 else { 315 /* NBLK ã®API æ©è½ã³ã¼ããè¨å®ããã*/301 /* NBLK のAPI 機能コードを設定する。*/ 316 302 cep->rcv_nblk_tfn = TFN_TCP_CLS_CEP; 317 303 318 if ((cep = tcp_user_closed(cep)) != NULL) { /* ã³ãã¯ã·ã§ã³ãåæããã*/319 /* åæã»ã°ã¡ã³ãåºåããã¹ãããã*/304 if ((cep = tcp_user_closed(cep)) != NULL) { /* コネクションを切断する。*/ 305 /* 切断セグメント出力をポストする。*/ 320 306 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 321 307 sig_sem(SEM_TCP_POST_OUTPUT); 322 308 } 323 309 324 /* cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã325 * æ¢ã«ã³ãã¯ã·ã§ã³ãåæããã¦ãããã¨ãæå³ãã¦ããã326 * ã¾ãããã®å ´åã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¦ããã310 /* cep が NULL で戻ってきた場合は、 311 * 既にコネクションが切断されていることを意味している。 312 * また、この場合コールバック関数が呼び出されている。 327 313 */ 328 314 return E_WBLK; 329 315 } 330 316 } 331 else { /* éãã³ããããã³ã°ã³ã¼ã«*/332 333 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 334 335 if ((cep = tcp_user_closed(cep)) == NULL) { /* ã³ãã¯ã·ã§ã³ãåæããã*/336 337 /* cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã338 * æ¢ã«ã³ãã¯ã·ã§ã³ãåæããã¦ãããã¨ãæå³ãã¦ããã317 else { /* 非ノンブロッキングコール */ 318 319 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 320 321 if ((cep = tcp_user_closed(cep)) == NULL) { /* コネクションを切断する。*/ 322 323 /* cep が NULL で戻ってきた場合は、 324 * 既にコネクションが切断されていることを意味している。 339 325 */ 340 326 return error; 341 327 } 342 328 else { 343 /* åæã»ã°ã¡ã³ãåºåããã¹ãããã*/329 /* 切断セグメント出力をポストする。*/ 344 330 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 345 331 sig_sem(SEM_TCP_POST_OUTPUT); 346 332 347 /* ã¤ãã³ããã©ã°ã CLOSED ã«ãªãã¾ã§å¾ 348 ã¤ã*/ 333 /* イベントフラグが CLOSED になるまで待つ。*/ 349 334 error = twai_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED, TWF_ORW, &flag, tmout); 350 335 if (error == E_OK && cep->error != E_OK) … … 353 338 if (error != E_OK) { 354 339 if (error == E_RLWAI) { 355 /* tcp_cls_cep ããã£ã³ã»ã«ãããã¨ãã¯ãRST ãéä¿¡ããã*/340 /* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/ 356 341 tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1, 357 342 cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST); 358 343 } 359 344 360 /* ã¿ã¤ãã¼ãåæ¢ããã*/345 /* タイマーを停止する。*/ 361 346 tcp_cancel_timers(cep); 362 347 363 348 /* 364 * é信端ç¹ãããã¯ãã365 * åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã349 * 通信端点をロックし、 350 * 受信再構成キューのネットワークバッファを解放する。 366 351 */ 367 352 syscall(wai_sem(cep->semid_lock)); … … 369 354 syscall(sig_sem(cep->semid_lock)); 370 355 371 /* ç¶æ 372 ãæªä½¿ç¨ã«ããã*/ 356 /* 状態を未使用にする。*/ 373 357 cep->fsm_state = TCP_FSM_CLOSED; 374 358 375 359 /* 376 * 以ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã377 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½378 * ã»åçãªé信端ç¹ã®çæã»åé¤æ©è½360 * 以下に関係しないフラグをクリアーする。 361 * ・送受信ウィンドバッファの省コピー機能 362 * ・動的な通信端点の生成・削除機能 379 363 */ 380 364 cep->flags &= TCP_CEP_FLG_NOT_CLEAR; 381 365 382 366 /* 383 * é信端ç¹ãããã¯ãã384 * éåä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã367 * 通信端点をロックし、 368 * 送受信ウィンドバッファキューのネットワークバッファを解放する。 385 369 */ 386 370 cep->rwbuf_count = 0; … … 410 394 411 395 /* 412 * tcp_sht_cep -- ãã¼ã¿éä¿¡ã®çµäºãæ¨æºæ©è½ã396 * tcp_sht_cep -- データ送信の終了【標準機能】 413 397 */ 414 398 … … 420 404 421 405 /* 422 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã423 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼406 * CEP をロックし、API 機能コードとタスク識別子を記録する。 407 * すでに記録されていれば、ペンディング中なのでエラー 424 408 */ 425 409 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SHT_CEP)) != E_OK) 426 410 return error; 427 411 428 /* TCP é信端ç¹ã®ã³ãã¯ã·ã§ã³ã確ç«ç¶æ 429 ã§ãªããã°ã¨ã©ã¼ */ 412 /* TCP 通信端点のコネクションが確立状態でなければエラー */ 430 413 if (!TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) { 431 414 if ((error = cep->error) == E_OK) … … 433 416 } 434 417 435 else if ((cep = tcp_user_closed(cep)) != NULL) { /* ã³ãã¯ã·ã§ã³ãåæããã*/436 437 /* åæã»ã°ã¡ã³ãåºåããã¹ãããã*/418 else if ((cep = tcp_user_closed(cep)) != NULL) { /* コネクションを切断する。*/ 419 420 /* 切断セグメント出力をポストする。*/ 438 421 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 439 422 sig_sem(SEM_TCP_POST_OUTPUT); … … 450 433 451 434 /* 452 * tcp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã435 * tcp_snd_dat -- パケットの送信【標準機能】 453 436 */ 454 437 … … 461 444 #ifdef TCP_CFG_NON_BLOCKING 462 445 463 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/446 /* data が NULL か、len < 0 ならエラー */ 464 447 if (data == NULL || len < 0) 465 448 return E_PAR; … … 467 450 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 468 451 469 /* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/452 /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */ 470 453 if (data == NULL || len < 0 || tmout == TMO_NBLK) 471 454 return E_PAR; … … 474 457 475 458 /* 476 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã477 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼459 * CEP をロックし、API 機能コードとタスク識別子を記録する。 460 * すでに記録されていれば、ペンディング中なのでエラー 478 461 */ 479 462 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_DAT)) != E_OK) 480 463 return error; 481 464 482 /* éä¿¡ã§ããããé信端ç¹ã®ç¶æ 483 ãè¦ãã*/ 465 /* 送信できるか、通信端点の状態を見る。*/ 484 466 if ((error = tcp_can_send_more(cep, TFN_TCP_SND_DAT, tmout)) != E_OK) 485 467 goto err_ret; … … 487 469 #ifdef TCP_CFG_NON_BLOCKING 488 470 489 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/490 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/491 492 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/471 /* タイムアウトをチェックする。*/ 472 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 473 474 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/ 493 475 if (!TCP_IS_SWBUF_FULL(cep)) { 494 476 495 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/477 /* 送信ウィンドバッファにデータを書き込む。*/ 496 478 error = TCP_WRITE_SWBUF(cep, data, (uint_t)len); 497 479 498 /* åºåããã¹ãããã*/480 /* 出力をポストする。*/ 499 481 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 500 482 sig_sem(SEM_TCP_POST_OUTPUT); 501 483 502 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/484 /* コールバック関数を呼び出す。*/ 503 485 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 504 486 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)error); … … 518 500 } 519 501 } 520 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 521 522 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 523 524 /* éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 525 ã¤ã*/ 502 else { /* 非ノンブロッキングコール */ 503 504 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 505 506 /* 送信ウィンドバッファが空くのを待つ。*/ 526 507 if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK) 527 508 goto err_ret; 528 509 529 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/510 /* 送信ウィンドバッファにデータを書き込む。*/ 530 511 if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) { 531 512 532 /* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/513 /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/ 533 514 if (TCP_IS_SWBUF_FULL(cep)) 534 515 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR; 535 516 536 /* åºåããã¹ãããã*/517 /* 出力をポストする。*/ 537 518 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 538 519 sig_sem(SEM_TCP_POST_OUTPUT); … … 556 537 557 538 /* 558 * tcp_get_buf -- éä¿¡ç¨ãããã¡ã®ç²å¾ãæ¨æºæ©è½ã539 * tcp_get_buf -- 送信用バッファの獲得【標準機能】 559 540 */ 560 541 … … 567 548 #ifdef TCP_CFG_NON_BLOCKING 568 549 569 /* p_buf ã NULL ãªãã¨ã©ã¼*/550 /* p_buf が NULL ならエラー */ 570 551 if (p_buf == NULL) 571 552 return E_PAR; … … 573 554 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 574 555 575 /* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/556 /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */ 576 557 if (p_buf == NULL || tmout == TMO_NBLK) 577 558 return E_PAR; … … 580 561 581 562 /* 582 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã583 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼563 * CEP をロックし、API 機能コードとタスク識別子を記録する。 564 * すでに記録されていれば、ペンディング中なのでエラー 584 565 */ 585 566 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_GET_BUF)) != E_OK) 586 567 return error; 587 568 588 /* éä¿¡ã§ããããé信端ç¹ã®ç¶æ 589 ãè¦ãã*/ 569 /* 送信できるか、通信端点の状態を見る。*/ 590 570 if ((error = tcp_can_send_more(cep, TFN_TCP_GET_BUF, tmout)) != E_OK) 591 571 goto err_ret; … … 593 573 #ifdef TCP_CFG_NON_BLOCKING 594 574 595 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/596 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/575 /* タイムアウトをチェックする。*/ 576 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 597 577 598 578 if (!TCP_IS_SWBUF_FULL(cep)) { 599 579 600 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/580 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/ 601 581 error = TCP_GET_SWBUF_ADDR(cep, p_buf); 602 582 603 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/583 /* コールバック関数を呼び出す。*/ 604 584 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 605 585 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)error); … … 618 598 } 619 599 620 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 621 622 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 623 624 /* éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 625 ã¤ã*/ 600 else { /* 非ノンブロッキングコール */ 601 602 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 603 604 /* 送信ウィンドバッファが空くのを待つ。*/ 626 605 if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK) 627 606 goto err_ret; 628 607 629 /* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/608 /* 送信ウィンドバッファの空アドレスを獲得する。*/ 630 609 error = TCP_GET_SWBUF_ADDR(cep, p_buf); 631 610 … … 647 626 648 627 /* 649 * tcp_snd_buf -- ãããã¡å 650 ã®ãã¼ã¿ã®éä¿¡ãæ¨æºæ©è½ã 628 * tcp_snd_buf -- バッファ内のデータの送信【標準機能】 651 629 */ 652 630 … … 657 635 ER error; 658 636 659 /* éä¿¡ããé·ã len ããã§ãã¯ããã*/637 /* 送信する長さ len をチェックする。*/ 660 638 if (len < 0) 661 639 return E_PAR; 662 640 663 /* éä¿¡ããé·ãlen ã 0 ã§ããã°ãä½ãããªãã§æ»ãã*/641 /* 送信する長さlen が 0 であれば、何もしないで戻る。*/ 664 642 if (len == 0) 665 643 return E_OK; 666 644 667 645 /* 668 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã669 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼646 * CEP をロックし、API 機能コードとタスク識別子を記録する。 647 * すでに記録されていれば、ペンディング中なのでエラー 670 648 */ 671 649 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_BUF)) != E_OK) 672 650 return error; 673 651 674 /* éä¿¡ããé·ã len ããã§ãã¯ããã*/652 /* 送信する長さ len をチェックする。*/ 675 653 if (len > cep->get_buf_len) { 676 654 error = E_OBJ; … … 678 656 } 679 657 680 /* éä¿¡ã§ããããCEP ã® FSM ç¶æ 681 ãè¦ãã*/ 658 /* 送信できるか、CEP の FSM 状態を見る。*/ 682 659 if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) { 683 660 if ((error = cep->error) == E_OK) … … 686 663 } 687 664 688 /* éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã*/665 /* 送信ウィンドバッファのデータを送信可能にする。*/ 689 666 TCP_SEND_SWBUF(cep, (uint_t)len); 690 667 691 /* åºåããã¹ãããã*/668 /* 出力をポストする。*/ 692 669 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 693 670 sig_sem(SEM_TCP_POST_OUTPUT); … … 704 681 705 682 /* 706 * tcp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã683 * tcp_rcv_dat -- パケットの受信【標準機能】 707 684 */ 708 685 … … 715 692 #ifdef TCP_CFG_NON_BLOCKING 716 693 717 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/694 /* data が NULL か、len < 0 ならエラー */ 718 695 if (data == NULL || len < 0) 719 696 return E_PAR; … … 721 698 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 722 699 723 /* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/700 /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */ 724 701 if (data == NULL || len < 0 || tmout == TMO_NBLK) 725 702 return E_PAR; … … 728 705 729 706 /* 730 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã731 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼707 * CEP をロックし、API 機能コードとタスク識別子を記録する。 708 * すでに記録されていれば、ペンディング中なのでエラー 732 709 */ 733 710 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_DAT)) != E_OK) 734 711 return error; 735 712 736 /* åä¿¡ã§ããããé信端ç¹ã®ç¶æ 737 ãè¦ãã*/ 713 /* 受信できるか、通信端点の状態を見る。*/ 738 714 if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK) 739 715 goto err_ret; … … 741 717 #ifdef TCP_CFG_NON_BLOCKING 742 718 743 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/744 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/745 746 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/719 /* タイムアウトをチェックする。*/ 720 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 721 722 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/ 747 723 if (cep->rwbuf_count > 0) { 748 724 749 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/725 /* 受信ウィンドバッファからデータを取り出す。*/ 750 726 len = TCP_READ_RWBUF(cep, data, (uint_t)len); 751 727 752 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/728 /* コールバック関数を呼び出す。*/ 753 729 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 754 730 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_DAT, (void*)(uint32_t)len); … … 766 742 } 767 743 } 768 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 769 770 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 771 772 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå 773 ¥åãããã¾ã§å¾ 774 ã¤ã*/ 744 else { /* 非ノンブロッキングコール */ 745 746 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 747 748 /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/ 775 749 if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) 776 750 goto err_ret; 777 751 778 /* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/752 /* 受信ウィンドバッファからデータを取り出す。*/ 779 753 error = TCP_READ_RWBUF(cep, data, (uint_t)len); 780 754 781 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/755 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 782 756 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 783 757 sig_sem(SEM_TCP_POST_OUTPUT); … … 800 774 801 775 /* 802 * tcp_rcv_buf -- åä¿¡ãããã¼ã¿ã®å 803 ¥ã£ããããã¡ã®ç²å¾ãæ¨æºæ©è½ã 776 * tcp_rcv_buf -- 受信したデータの入ったバッファの獲得【標準機能】 804 777 */ 805 778 … … 812 785 #ifdef TCP_CFG_NON_BLOCKING 813 786 814 /* p_buf ã NULL ãªãã¨ã©ã¼*/787 /* p_buf が NULL ならエラー */ 815 788 if (p_buf == NULL) 816 789 return E_PAR; … … 818 791 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 819 792 820 /* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/793 /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */ 821 794 if (p_buf == NULL || tmout == TMO_NBLK) 822 795 return E_PAR; … … 825 798 826 799 /* 827 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã828 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼800 * CEP をロックし、API 機能コードとタスク識別子を記録する。 801 * すでに記録されていれば、ペンディング中なのでエラー 829 802 */ 830 803 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_BUF)) != E_OK) 831 804 return error; 832 805 833 /* åä¿¡ã§ããããé信端ç¹ã®ç¶æ 834 ãè¦ãã*/ 806 /* 受信できるか、通信端点の状態を見る。*/ 835 807 if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK) 836 808 goto err_ret; … … 838 810 #ifdef TCP_CFG_NON_BLOCKING 839 811 840 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/841 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/842 843 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/812 /* タイムアウトをチェックする。*/ 813 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 814 815 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/ 844 816 if (cep->rwbuf_count > 0) { 845 817 846 /* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/818 /* 受信ウィンドバッファの空アドレスを獲得する。*/ 847 819 error = TCP_GET_RWBUF_ADDR(cep, p_buf); 848 820 849 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/821 /* コールバック関数を呼び出す。*/ 850 822 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 851 823 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)error); … … 862 834 } 863 835 } 864 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 865 866 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 867 868 /* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå 869 ¥åãããã¾ã§å¾ 870 ã¤ã*/ 836 else { /* 非ノンブロッキングコール */ 837 838 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 839 840 /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/ 871 841 if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) { 872 842 cep->rwbuf_count = 0; … … 874 844 } 875 845 876 /* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãç²å¾ããã*/846 /* 受信ウィンドバッファのアドレスを獲得する。*/ 877 847 error = TCP_GET_RWBUF_ADDR(cep, p_buf); 878 848 … … 894 864 895 865 /* 896 * tcp_rel_buf -- åä¿¡ç¨ãããã¡ã®è§£æ¾ãæ¨æºæ©è½ã866 * tcp_rel_buf -- 受信用バッファの解放【標準機能】 897 867 */ 898 868 … … 903 873 ER error; 904 874 905 /* 解æ¾ããé·ã len ããã§ãã¯ããã*/875 /* 解放する長さ len をチェックする。*/ 906 876 if (len < 0) 907 877 return E_PAR; 908 878 909 879 /* 910 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã911 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼880 * CEP をロックし、API 機能コードとタスク識別子を記録する。 881 * すでに記録されていれば、ペンディング中なのでエラー 912 882 */ 913 883 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_REL_BUF)) != E_OK) 914 884 return error; 915 885 916 /* 解æ¾ããé·ã len ããã§ãã¯ããã*/886 /* 解放する長さ len をチェックする。*/ 917 887 if (len > cep->rcv_buf_len) { 918 888 error = E_OBJ; … … 920 890 } 921 891 922 /* é信端ç¹ãããã¯ããã*/892 /* 通信端点をロックする。*/ 923 893 syscall(wai_sem(cep->semid_lock)); 924 894 925 /* åä¿¡ã¦ã£ã³ããããã¡ããåä¿¡ãããªã¯ããããåé¤ããã*/895 /* 受信ウィンドバッファから受信したオクテットを削除する。*/ 926 896 TCP_DROP_RWBUF(cep, (uint_t)len); 927 897 928 /* tcp_rcv_buf ã®å²å½ã¦é·ããªã»ããããã*/898 /* tcp_rcv_buf の割当て長をリセットする。*/ 929 899 cep->rcv_buf_len -= len; 930 900 931 /* é信端ç¹ã®ããã¯ã解é¤ããã*/901 /* 通信端点のロックを解除する。*/ 932 902 syscall(sig_sem(cep->semid_lock)); 933 903 934 /* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/904 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/ 935 905 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 936 906 sig_sem(SEM_TCP_POST_OUTPUT); … … 947 917 948 918 /* 949 * tcp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ãã£ã³ã»ã«919 * tcp_can_snd -- ペンディングしている送信のキャンセル 950 920 */ 951 921 … … 955 925 ER error = E_OK; 956 926 957 /* é信端ç¹ãããã¯ããã*/927 /* 通信端点をロックする。*/ 958 928 syscall(wai_sem(cep->semid_lock)); 959 929 960 930 /* 961 * snd_tskid ã TA_NULL ãªãã962 * ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼931 * snd_tskid が TA_NULL なら、 932 * ペンディングしていないのでエラー 963 933 */ 964 934 if (cep->snd_tskid == TA_NULL) 965 935 error = EV_NOPND; 966 936 967 /* ãã³ãã£ã³ã°ä¸ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼*/937 /* ペンディング中の API 機能コードと一致しなければエラー */ 968 938 else if (fncd != TFN_TCP_ALL && fncd != cep->snd_tfn) 969 939 error = E_OBJ; 970 940 971 /* å¦çããã£ã³ã»ã«ããã*/941 /* 処理をキャンセルする。*/ 972 942 else { 973 943 974 /* åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/944 /* 受信再構成キューのネットワークバッファを解放する。*/ 975 945 tcp_free_reassq(cep); 976 946 977 /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/947 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/ 978 948 cep->rwbuf_count = 0; 979 949 TCP_FREE_RWBUFQ(cep); 980 950 981 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/951 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 982 952 TCP_FREE_SWBUFQ(cep); 983 953 984 954 #ifdef TCP_CFG_NON_BLOCKING 985 955 986 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) { /* ãã³ããããã³ã°ã³ã¼ã«*/956 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) { /* ノンブロッキングコール */ 987 957 988 958 switch (cep->snd_nblk_tfn) { … … 990 960 case TFN_TCP_CON_CEP: 991 961 /* 992 * é信端ç¹ããåä»å£ã解æ¾ãã993 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã962 * 通信端点から受付口を解放し、 963 * イベントフラグをクローズに設定する。 994 964 */ 995 965 cep->rep = NULL; … … 1038 1008 } 1039 1009 1040 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1010 /* 通信端点のロックを解除する。*/ 1041 1011 syscall(sig_sem(cep->semid_lock)); 1042 1012 … … 1045 1015 1046 1016 /* 1047 * tcp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ãã£ã³ã»ã«1017 * tcp_can_rcv -- ペンディングしている受信のキャンセル 1048 1018 */ 1049 1019 … … 1053 1023 ER error = E_OK; 1054 1024 1055 /* é信端ç¹ãããã¯ããã*/1025 /* 通信端点をロックする。*/ 1056 1026 syscall(wai_sem(cep->semid_lock)); 1057 1027 1058 1028 /* 1059 * rcv_tskid ã TA_NULL ãªãã1060 * ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼1029 * rcv_tskid が TA_NULL なら、 1030 * ペンディングしていないのでエラー 1061 1031 */ 1062 1032 if (cep->rcv_tskid == TA_NULL) 1063 1033 error = EV_NOPND; 1064 1034 1065 /* ãã³ãã£ã³ã°ä¸ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼*/1035 /* ペンディング中の API 機能コードと一致しなければエラー */ 1066 1036 else if (fncd != TFN_TCP_ALL && fncd != cep->rcv_tfn) 1067 1037 error = E_OBJ; 1068 1038 1069 /* å¦çããã£ã³ã»ã«ããã*/1039 /* 処理をキャンセルする。*/ 1070 1040 else { 1071 1041 1072 /* åä¿¡åæ§æãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1042 /* 受信再構成キューのネットワークバッファを解放する。*/ 1073 1043 tcp_free_reassq(cep); 1074 1044 1075 /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1045 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/ 1076 1046 cep->rwbuf_count = 0; 1077 1047 TCP_FREE_RWBUFQ(cep); 1078 1048 1079 /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã解æ¾ããã*/1049 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/ 1080 1050 TCP_FREE_SWBUFQ(cep); 1081 1051 1082 1052 #ifdef TCP_CFG_NON_BLOCKING 1083 1053 1084 if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) { /* ãã³ããããã³ã°ã³ã¼ã«*/1054 if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) { /* ノンブロッキングコール */ 1085 1055 1086 1056 switch (cep->rcv_nblk_tfn) { … … 1088 1058 case TFN_TCP_ACP_CEP: 1089 1059 /* 1090 * é信端ç¹ããåä»å£ã解æ¾ãã1091 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã1060 * 通信端点から受付口を解放し、 1061 * イベントフラグをクローズに設定する。 1092 1062 */ 1093 1063 cep->rep = NULL; … … 1142 1112 } 1143 1113 1144 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1114 /* 通信端点のロックを解除する。*/ 1145 1115 syscall(sig_sem(cep->semid_lock)); 1146 1116 … … 1149 1119 1150 1120 /* 1151 * tcp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ãã£ã³ã»ã«ãæ¨æºæ©è½ã1121 * tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】 1152 1122 */ 1153 1123 … … 1158 1128 ER error = E_OK, snd_err, rcv_err; 1159 1129 1160 /* API æ©è½ã³ã¼ãããã§ãã¯ããã*/1130 /* API 機能コードをチェックする。*/ 1161 1131 if (!VALID_TFN_TCP_CAN(fncd)) 1162 1132 return E_PAR; 1163 1133 1164 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1134 /* TCP 通信端点 ID をチェックする。*/ 1165 1135 if (!VALID_TCP_CEPID(cepid)) 1166 1136 return E_ID; 1167 1137 1168 /* TCP é信端ç¹ãå¾ãã*/1138 /* TCP 通信端点を得る。*/ 1169 1139 cep = GET_TCP_CEP(cepid); 1170 1140 1171 /* TCP é信端ç¹ããã§ãã¯ããã*/1141 /* TCP 通信端点をチェックする。*/ 1172 1142 if (!VALID_TCP_CEP(cep)) 1173 1143 return E_NOEXS; 1174 1144 1175 if (fncd == TFN_TCP_ALL) { /* TFN_TCP_ALL ã®å¦ç*/1145 if (fncd == TFN_TCP_ALL) { /* TFN_TCP_ALL の処理 */ 1176 1146 snd_err = tcp_can_snd(cep, fncd); 1177 1147 rcv_err = tcp_can_rcv(cep, fncd); 1178 1148 1179 1149 /* 1180 * snd_err 㨠rcv_err ã®ã©ã¡ããEV_NOPND1181 * ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼1150 * snd_err と rcv_err のどちらも EV_NOPND 1151 * なら、ペンディングしていないのでエラー 1182 1152 */ 1183 1153 if (snd_err == EV_NOPND && rcv_err == EV_NOPND) … … 1196 1166 } 1197 1167 1198 else if (IS_TFN_TCP_RCV(fncd)) { /* åä¿¡å¦çã®ãã£ã³ã»ã«*/1168 else if (IS_TFN_TCP_RCV(fncd)) { /* 受信処理のキャンセル */ 1199 1169 if ((error = tcp_can_rcv(cep, fncd)) == EV_NOPND) 1200 1170 error = E_OBJ; 1201 1171 } 1202 1172 1203 else { /* éä¿¡å¦çã®ãã£ã³ã»ã«*/1173 else { /* 送信処理のキャンセル */ 1204 1174 if ((error = tcp_can_snd(cep, fncd)) == EV_NOPND) 1205 1175 error = E_OBJ; … … 1216 1186 1217 1187 /* 1218 * tcp_cre_cep -- TCP é信端ç¹ã®çæãæ¡å¼µæ©è½ã1188 * tcp_cre_cep -- TCP 通信端点の生成【拡張機能】 1219 1189 */ 1220 1190 … … 1225 1195 ER error; 1226 1196 1227 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1197 /* TCP 通信端点 ID をチェックする。*/ 1228 1198 if (!VALID_TCP_CEPID(cepid)) 1229 1199 return E_ID; 1230 1200 1231 /* pk_ccep ã NULL ãªãã¨ã©ã¼*/1201 /* pk_ccep が NULL ならエラー */ 1232 1202 if (pk_ccep == NULL) 1233 1203 return E_PAR; 1234 1204 1235 /* TCP é信端ç¹ãå¾ãã*/1205 /* TCP 通信端点を得る。*/ 1236 1206 cep = GET_TCP_CEP(cepid); 1237 1207 1238 /* TCP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/1208 /* TCP 通信端点が、動的生成用でなければエラー */ 1239 1209 if (!DYNAMIC_TCP_CEP(cep)) 1240 1210 return E_ID; 1241 1211 1242 /* é信端ç¹ãããã¯ããã*/1212 /* 通信端点をロックする。*/ 1243 1213 syscall(wai_sem(cep->semid_lock)); 1244 1214 1245 1215 /* 1246 * TCP é信端ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼1216 * TCP 通信端点をチェックする。生成済みであればエラー 1247 1217 */ 1248 1218 if (VALID_TCP_CEP(cep)) … … 1250 1220 else { 1251 1221 1252 /* TCP é信端ç¹çææ 1253 å ±ãã³ãã¼ããã*/ 1254 cep->cepatr = pk_ccep->cepatr; /* é信端ç¹å±æ§ */ 1255 cep->sbuf = pk_ccep->sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ */ 1256 cep->sbufsz = pk_ccep->sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 1257 cep->rbuf = pk_ccep->rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ */ 1258 cep->rbufsz = pk_ccep->rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 1259 cep->callback = (void*)pk_ccep->callback; /* ã³ã¼ã«ãã㯠*/ 1260 1261 /* TCP é信端ç¹ãçææ¸ã¿ã«ããã*/ 1222 /* TCP 通信端点生成情報をコピーする。*/ 1223 cep->cepatr = pk_ccep->cepatr; /* 通信端点属性 */ 1224 cep->sbuf = pk_ccep->sbuf; /* 送信用ウィンドバッファ */ 1225 cep->sbufsz = pk_ccep->sbufsz; /* 送信用ウィンドバッファサイズ */ 1226 cep->rbuf = pk_ccep->rbuf; /* 受信用ウィンドバッファ */ 1227 cep->rbufsz = pk_ccep->rbufsz; /* 受信用ウィンドバッファサイズ */ 1228 cep->callback = (void*)pk_ccep->callback; /* コールバック */ 1229 1230 /* TCP 通信端点を生成済みにする。*/ 1262 1231 cep->flags |= TCP_CEP_FLG_VALID; 1263 1232 error = E_OK; 1264 1233 } 1265 1234 1266 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1235 /* 通信端点のロックを解除する。*/ 1267 1236 syscall(sig_sem(cep->semid_lock)); 1268 1237 … … 1273 1242 1274 1243 /* 1275 * tcp_del_cep -- TCP é信端ç¹ã®åé¤ãæ¡å¼µæ©è½ã1244 * tcp_del_cep -- TCP 通信端点の削除【拡張機能】 1276 1245 */ 1277 1246 … … 1284 1253 ER error; 1285 1254 1286 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1255 /* TCP 通信端点 ID をチェックする。*/ 1287 1256 if (!VALID_TCP_CEPID(cepid)) 1288 1257 return E_ID; 1289 1258 1290 /* TCP é信端ç¹ãå¾ãã*/1259 /* TCP 通信端点を得る。*/ 1291 1260 cep = GET_TCP_CEP(cepid); 1292 1261 1293 /* TCP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/1262 /* TCP 通信端点が、動的生成用でなければエラー */ 1294 1263 if (!DYNAMIC_TCP_CEP(cep)) 1295 1264 return E_ID; 1296 1265 1297 /* é信端ç¹ãããã¯ããã*/1266 /* 通信端点をロックする。*/ 1298 1267 syscall(wai_sem(cep->semid_lock)); 1299 1268 1300 1269 /* 1301 * TCP é信端ç¹ããã§ãã¯ããã以ä¸ã®å ´åã¯ã¨ã©ã¼1302 * ã»æªçæã1303 * ã»ä½¿ç¨ä¸ã1270 * TCP 通信端点をチェックする。以下の場合はエラー 1271 * ・未生成。 1272 * ・使用中。 1304 1273 */ 1305 1274 if (!VALID_TCP_CEP(cep)) … … 1309 1278 else { 1310 1279 1311 /* TCP é信端ç¹ãæªçæã«ããã*/1280 /* TCP 通信端点を未生成にする。*/ 1312 1281 cep->flags &= ~TCP_CEP_FLG_VALID; 1313 1282 error = E_OK; 1314 1283 } 1315 1284 1316 /* é信端ç¹ã®ããã¯ã解é¤ããã*/1285 /* 通信端点のロックを解除する。*/ 1317 1286 syscall(sig_sem(cep->semid_lock)); 1318 1287 … … 1325 1294 1326 1295 /* 1327 * tcp_snd_oob -- ç·æ¥ãã¼ã¿ã®éä¿¡ãæ¡å¼µæ©è½ã1296 * tcp_snd_oob -- 緊急データの送信【拡張機能】 1328 1297 */ 1329 1298 … … 1336 1305 #ifdef TCP_CFG_NON_BLOCKING 1337 1306 1338 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/1307 /* data が NULL か、len < 0 ならエラー */ 1339 1308 if (data == NULL || len < 0) 1340 1309 return E_PAR; … … 1342 1311 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 1343 1312 1344 /* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/1313 /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */ 1345 1314 if (data == NULL || len < 0 || tmout == TMO_NBLK) 1346 1315 return E_PAR; … … 1349 1318 1350 1319 /* 1351 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã1352 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼1320 * CEP をロックし、API 機能コードとタスク識別子を記録する。 1321 * すでに記録されていれば、ペンディング中なのでエラー 1353 1322 */ 1354 1323 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_OOB)) != E_OK) 1355 1324 return error; 1356 1325 1357 /* éä¿¡ã§ããããé信端ç¹ã®ç¶æ 1358 ãè¦ãã*/ 1326 /* 送信できるか、通信端点の状態を見る。*/ 1359 1327 if ((error = tcp_can_send_more(cep, TFN_TCP_SND_OOB, tmout)) != E_OK) 1360 1328 goto err_ret; … … 1362 1330 #ifdef TCP_CFG_NON_BLOCKING 1363 1331 1364 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/1365 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/1366 1367 /* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1332 /* タイムアウトをチェックする。*/ 1333 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 1334 1335 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/ 1368 1336 if (!TCP_IS_SWBUF_FULL(cep)) { 1369 1337 1370 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/1338 /* 送信ウィンドバッファにデータを書き込む。*/ 1371 1339 error = TCP_WRITE_SWBUF(cep, data, (uint_t)len); 1372 1340 1373 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/1341 /* 送信緊急ポインタを設定する。*/ 1374 1342 cep->snd_up = cep->snd_una + cep->swbuf_count; 1375 1343 1376 /* åºåããã¹ãããã*/1344 /* 出力をポストする。*/ 1377 1345 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1378 1346 sig_sem(SEM_TCP_POST_OUTPUT); 1379 1347 1380 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/1348 /* コールバック関数を呼び出す。*/ 1381 1349 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 1382 1350 (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)error); … … 1396 1364 } 1397 1365 } 1398 else { /* éãã³ããããã³ã°ã³ã¼ã« */ 1399 1400 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1401 1402 /* éä¿¡ã¦ã£ã³ããããã¡ã空ãã®ãå¾ 1403 ã¤ã*/ 1366 else { /* 非ノンブロッキングコール */ 1367 1368 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 1369 1370 /* 送信ウィンドバッファが空くのを待つ。*/ 1404 1371 if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK) 1405 1372 goto err_ret; 1406 1373 1407 /* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/1374 /* 送信ウィンドバッファにデータを書き込む。*/ 1408 1375 if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) { 1409 1376 1410 /* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨å®ããã*/1377 /* 送信緊急ポインタを設定する。*/ 1411 1378 cep->snd_up = cep->snd_una + cep->swbuf_count; 1412 1379 1413 /* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/1380 /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/ 1414 1381 if (TCP_IS_SWBUF_FULL(cep)) 1415 1382 cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR; 1416 1383 1417 /* åºåããã¹ãããã*/1384 /* 出力をポストする。*/ 1418 1385 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 1419 1386 sig_sem(SEM_TCP_POST_OUTPUT); … … 1437 1404 1438 1405 /* 1439 * tcp_rcv_oob -- ç·æ¥ãã¼ã¿ã®åä¿¡ãæ¡å¼µæ©è½ã1406 * tcp_rcv_oob -- 緊急データの受信【拡張機能】 1440 1407 * 1441 * 注æ: éä¿¡å´ãè¤æ°ãªã¯ãããã®ãã¼ã¿ãéä¿¡ãã¦ãã1442 * ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ã®ã¿åä¿¡ããã1408 * 注意: 送信側が複数オクテットのデータを送信しても、 1409 * 緊急ポインタが指す 1 オクテットのデータのみ受信する。 1443 1410 */ 1444 1411 … … 1449 1416 uint8_t *urg; 1450 1417 1451 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1418 /* TCP 通信端点 ID をチェックする。*/ 1452 1419 if (!VALID_TCP_CEPID(cepid)) 1453 1420 return E_ID; 1454 1421 1455 /* data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/1422 /* data が NULL か、len < 0 ならエラー */ 1456 1423 if (data == NULL || len < 0) 1457 1424 return E_PAR; 1458 1425 1459 /* TCP é信端ç¹ãå¾ãã*/1426 /* TCP 通信端点を得る。*/ 1460 1427 cep = GET_TCP_CEP(cepid); 1461 1428 1462 /* åä¿¡ã§ããããé信端ç¹ã®ç¶æ 1463 ãè¦ãã*/ 1464 /* åä¿¡ã§ããããfsm_state ãè¦ãã*/ 1429 /* 受信できるか、通信端点の状態を見る。*/ 1430 /* 受信できるか、fsm_state を見る。*/ 1465 1431 if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state)) 1466 1432 return E_OBJ; 1467 1433 1468 1434 /* 1469 * ç·æ¥ãã¼ã¿å 1470 ¥ãã®ã»ã°ã¡ã³ãã® TCP ãããã 1471 * è¨å®ããã¦ããªããã°ãç·æ¥ãã¼ã¿ãåä¿¡ãã¦ããªãã 1435 * 緊急データ入りのセグメントの TCP ヘッダが 1436 * 設定されていなければ、緊急データを受信していない。 1472 1437 */ 1473 1438 if (cep->urg_tcph == NULL) 1474 1439 return E_OBJ; 1475 1440 1476 /* len == 0 ãªããããã¡ãªã¼ãã¼ããã¼*/1441 /* len == 0 ならバッファオーバーフロー */ 1477 1442 if (len == 0) 1478 1443 return E_BOVR; 1479 1444 1480 /* ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ãèªã¿åãã*/1445 /* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/ 1481 1446 urg = (uint8_t*)cep->urg_tcph + TCP_DATA_OFF(cep->urg_tcph->doff) + cep->urg_tcph->urp + TCP_CFG_URG_OFFSET; 1482 1447 *(uint8_t*)data = *urg; 1483 1448 1484 /* èªã¿åã£ããã¼ã¿ããå¾ãã® SDU ãåã«è©°ããã*/1449 /* 読み取ったデータから後ろの SDU を前に詰める。*/ 1485 1450 memcpy(urg, urg + 1, cep->urg_tcph->sum - (cep->urg_tcph->urp + TCP_CFG_URG_OFFSET) - 1); 1486 1451 1487 /* tcp_rcv_oob() ãå¼åºããããã¨ç¥ãããããã«ãNULL ãè¨å®ããã*/1452 /* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/ 1488 1453 cep->urg_tcph = NULL; 1489 1454 … … 1500 1465 1501 1466 /* 1502 * tcp_del_rep -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ã1467 * tcp_del_rep -- TCP 受付口の削除【拡張機能】 1503 1468 */ 1504 1469 … … 1512 1477 1513 1478 /* 1514 * TCP åä»å£ ID ããã§ãã¯ããã1515 * IPv6 ç¨ TCP åä»å£ã§ããã°ã1516 * IPv6 ç¨ã®ãTCP åä»å£ã®åé¤é¢æ°ï¼æ¬ä½ï¼ããå¼åºãã1479 * TCP 受付口 ID をチェックする。 1480 * IPv6 用 TCP 受付口であれば、 1481 * IPv6 用の「TCP 受付口の削除関数(本体)」を呼出す。 1517 1482 */ 1518 1483 //NET_DEBUG_TCP3("tcp_del_rep1[r=%d,n=%d,x=%d]\n", … … 1524 1489 1525 1490 /* 1526 * TCP åä»å£ ID ããã§ãã¯ããã1527 * IPv4 ç¨ TCP åä»å£ã§ããã°ã1528 * IPv4 ç¨ã®ãTCP åä»å£ã®åé¤é¢æ°ï¼æ¬ä½ï¼ããå¼åºãã1491 * TCP 受付口 ID をチェックする。 1492 * IPv4 用 TCP 受付口であれば、 1493 * IPv4 用の「TCP 受付口の削除関数(本体)」を呼出す。 1529 1494 */ 1530 1495 else if (VALID_TCP4_REPID(repid)) … … 1541 1506 { 1542 1507 1543 /* TCP åä»å£ ID ããã§ãã¯ããã*/1508 /* TCP 受付口 ID をチェックする。*/ 1544 1509 if (VALID_TCP6_REPID(repid)) 1545 1510 return tcp6_del_rep_body(repid); … … 1557 1522 { 1558 1523 1559 /* TCP åä»å£ ID ããã§ãã¯ããã*/1524 /* TCP 受付口 ID をチェックする。*/ 1560 1525 if (VALID_TCP4_REPID(repid)) 1561 1526 return tcp4_del_rep_body(repid); … … 1570 1535 1571 1536 /* 1572 * tcp_set_opt -- TCP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãæ¡å¼µæ©è½ã1537 * tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】 1573 1538 * 1574 * 注æ: è¨å®å¯è½ãª TCP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã1539 * 注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。 1575 1540 */ 1576 1541 … … 1582 1547 T_TCP_CEP *cep; 1583 1548 1584 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1549 /* TCP 通信端点 ID をチェックする。*/ 1585 1550 if (!VALID_TCP_CEPID(cepid)) 1586 1551 return E_ID; 1587 1552 1588 /* TCP é信端ç¹ãå¾ãã*/1553 /* TCP 通信端点を得る。*/ 1589 1554 cep = GET_TCP_CEP(cepid); 1590 1555 1591 /* TCP é信端ç¹ããã§ãã¯ããã*/1556 /* TCP 通信端点をチェックする。*/ 1592 1557 if (!VALID_TCP_CEP(cep)) 1593 1558 return E_NOEXS; … … 1599 1564 1600 1565 /* 1601 * tcp_get_opt -- TCP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãæ¡å¼µæ©è½ã1566 * tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】 1602 1567 * 1603 * 注æ: è¨å®å¯è½ãª TCP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã1568 * 注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。 1604 1569 */ 1605 1570 … … 1611 1576 T_TCP_CEP *cep; 1612 1577 1613 /* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/1578 /* TCP 通信端点 ID をチェックする。*/ 1614 1579 if (!VALID_TCP_CEPID(cepid)) 1615 1580 return E_ID; 1616 1581 1617 /* TCP é信端ç¹ãå¾ãã*/1582 /* TCP 通信端点を得る。*/ 1618 1583 cep = GET_TCP_CEP(cepid); 1619 1584 1620 /* TCP é信端ç¹ããã§ãã¯ããã*/1585 /* TCP 通信端点をチェックする。*/ 1621 1586 if (!VALID_TCP_CEP(cep)) 1622 1587 return E_NOEXS; -
azure_iot_hub/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
r388 r389 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 … … 104 92 105 93 /* 106 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©94 * TINET 1.1 との互換性のための定義 107 95 */ 108 96 … … 117 105 118 106 /* 119 * TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©107 * TINET 1.3 との互換性のための定義 120 108 */ 121 109 … … 127 115 128 116 /* 129 * ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©117 * コールバック関数の定義 130 118 */ 131 119 … … 133 121 134 122 /* 135 * TCP ã§ä½¿ç¨ããå¤æ°ã®åã®å®ç¾©123 * TCP で使用する変数の型の定義 136 124 */ 137 125 … … 142 130 143 131 /* 144 * TCP ã¿ã¤ãå¤æ°145 */ 146 147 #define NUM_TCP_TIMERS 4 /* TCP ã®ã¿ã¤ãæ°*/148 149 /* 150 * TCP åä»å£151 */ 152 153 /* IPv6 ç¨ TCP åä»å£*/132 * TCP タイマ変数 133 */ 134 135 #define NUM_TCP_TIMERS 4 /* TCP のタイマ数 */ 136 137 /* 138 * TCP 受付口 139 */ 140 141 /* IPv6 用 TCP 受付口 */ 154 142 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 168 156 } T_TCP6_REP; 169 157 170 /* IPv4 ç¨ TCP åä»å£*/158 /* IPv4 用 TCP 受付口 */ 171 159 172 160 typedef struct t_tcp4_rep { 173 161 174 162 /* 175 * ITRON TCP/IP API ãTCP åä»å£ã¨åãã¡ã³ã163 * ITRON TCP/IP API、TCP 受付口と同じメンバ 176 164 */ 177 ATR repatr; /* åä»å£å±æ§*/178 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹*/165 ATR repatr; /* 受付口属性 */ 166 T_IPV4EP myaddr; /* 自分のアドレス */ 179 167 180 168 #ifdef TCP_CFG_EXTENTIONS 181 uint16_t flags; /* åä»å£ãã©ã°*/182 ID semid_lock; /* åä»å£ããã¯*/169 uint16_t flags; /* 受付口フラグ */ 170 ID semid_lock; /* 受付口ロック */ 183 171 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 184 172 … … 202 190 203 191 /* 204 * åä»å£ãã©ã°205 */ 206 207 #define TCP_REP_FLG_DYNAMIC UINT_C(0x0400) /* åççæã»åé¤å¯è½åä»å£ã*/208 #define TCP_REP_FLG_VALID UINT_C(0x0800) /* çææ¸ã¿ã§æå¹ãªåä»å£ã*/209 210 /* 211 * TCP é信端ç¹192 * 受付口フラグ 193 */ 194 195 #define TCP_REP_FLG_DYNAMIC UINT_C(0x0400) /* 動的生成・削除可能受付口。 */ 196 #define TCP_REP_FLG_VALID UINT_C(0x0800) /* 生成済みで有効な受付口。 */ 197 198 /* 199 * TCP 通信端点 212 200 */ 213 201 … … 223 211 224 212 /* 225 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã213 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 226 214 */ 227 ATR cepatr; /* é信端ç¹å±æ§*/228 void *sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡*/229 int_t sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/230 void *rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡*/231 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/232 t_tcp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/215 ATR cepatr; /* 通信端点属性 */ 216 void *sbuf; /* 送信用ウィンドバッファ */ 217 int_t sbufsz; /* 送信用ウィンドバッファサイズ */ 218 void *rbuf; /* 受信用ウィンドバッファ */ 219 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 220 t_tcp_callback callback; /* コールバック関数 */ 233 221 234 222 /* 235 * TINET ç¬èªã®ã¡ã³ã223 * TINET 独自のメンバ 236 224 */ 237 uint32_t flags; /* é信端ç¹ãã©ã° */ 238 ID semid_lock; /* é信端ç¹ãã㯠*/ 239 ID est_flgid; /* ã³ãã¯ã·ã§ã³ç¶æ 240 ã¤ãã³ããã©ã° */ 241 ID snd_flgid; /* éä¿¡ã¤ãã³ããã©ã° */ 242 ID rcv_flgid; /* åä¿¡ã¤ãã³ããã©ã° */ 243 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å */ 244 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å */ 245 uint8_t *sbuf_rptr; /* éä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 246 uint8_t *sbuf_wptr; /* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 247 uint8_t *rbuf_rptr; /* åä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 248 uint8_t *rbuf_wptr; /* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 249 T_TCP_SEQ snd_ssthresh; /* 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd) */ 250 /* ã®ãããå¤ */ 251 T_TCP_TIME rxtcur; /* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã */ 252 T_TCP_TIME srtt; /* å¹³æ»åããã RTT */ 253 T_TCP_TIME rttvar; /* å¹³æ»åãããåæ£ */ 254 T_TCP_WND snd_cwnd; /* 輻輳ã¦ã£ã³ããµã¤ãº */ 225 uint32_t flags; /* 通信端点フラグ */ 226 ID semid_lock; /* 通信端点ロック */ 227 ID est_flgid; /* コネクション状態イベントフラグ */ 228 ID snd_flgid; /* 送信イベントフラグ */ 229 ID rcv_flgid; /* 受信イベントフラグ */ 230 ID snd_tskid; /* 送信タスク識別子 */ 231 ID rcv_tskid; /* 受信タスク識別子 */ 232 uint8_t *sbuf_rptr; /* 送信用読み出しポインタ */ 233 uint8_t *sbuf_wptr; /* 送信用書き込みポインタ */ 234 uint8_t *rbuf_rptr; /* 受信用読み出しポインタ */ 235 uint8_t *rbuf_wptr; /* 受信用書き込みポインタ */ 236 T_TCP_SEQ snd_ssthresh; /* 輻輳ウィンドサイズ(snd_cwnd) */ 237 /* のしきい値 */ 238 T_TCP_TIME rxtcur; /* 現在の再送タイムアウト */ 239 T_TCP_TIME srtt; /* 平滑化された RTT */ 240 T_TCP_TIME rttvar; /* 平滑化された分散 */ 241 T_TCP_WND snd_cwnd; /* 輻輳ウィンドサイズ */ 255 242 256 243 /* 257 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº244 * 相手の最大受信セグメントサイズ 258 245 * 259 * ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxseg) ã¨ã 260 * ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxopd) ãå¥ã« 261 * ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã® 262 * ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã 263 * æ¬å®è£ 264 ã§ã¯ãæ大ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯ 265 * å®è£ 266 ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã 246 * オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、 247 * オプション付きのセグメントの最大サイズ (t_maxopd) が別に 248 * なっている。これは、現在のインターネットでは、オプション付きの 249 * セグメントのほうが多いからと説明されているためである。 250 * 本実装では、最大セグメントサイズオプション以外のオプションは 251 * 実装しないので、t_maxseg の使用する。 267 252 */ 268 253 T_TCP_SEG maxseg; 269 254 270 int16_t snd_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/271 int16_t rcv_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/255 int16_t snd_tfn; /* 送信動作中の API 機能コード */ 256 int16_t rcv_tfn; /* 受信動作中の API 機能コード */ 272 257 273 258 #ifdef TCP_CFG_NON_BLOCKING 274 259 275 T_IPEP *p_dstaddr; /* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/276 T_IPEP *p_myaddr; /* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/260 T_IPEP *p_dstaddr; /* 相手のアドレスへのポインタ */ 261 T_IPEP *p_myaddr; /* 自分のアドレスへのポインタ */ 277 262 278 263 #if defined(_IP6_CFG) && defined(_IP4_CFG) 279 T_IPV4EP *p_dstaddr4; /* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/280 T_IPV4EP *p_myaddr4; /* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/264 T_IPV4EP *p_dstaddr4; /* 相手のアドレスへのポインタ */ 265 T_IPV4EP *p_myaddr4; /* 自分のアドレスへのポインタ */ 281 266 #endif 282 267 283 int16_t snd_nblk_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 284 int16_t rcv_nblk_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 285 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 286 é ã¢ãã¬ã¹ */ 287 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 288 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 289 é ã¢ãã¬ã¹ */ 290 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 291 void **snd_p_buf; /* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 292 void **rcv_p_buf; /* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 268 int16_t snd_nblk_tfn; /* 送信動作中の API 機能コード */ 269 int16_t rcv_nblk_tfn; /* 受信動作中の API 機能コード */ 270 void *snd_data; /* 送信データ領域の先頭アドレス */ 271 int_t snd_len; /* 送信データ領域の長さ */ 272 void *rcv_data; /* 受信データ領域の先頭アドレス */ 273 int_t rcv_len; /* 受信データ領域の長さ */ 274 void **snd_p_buf; /* 送信バッファへのポインタ */ 275 void **rcv_p_buf; /* 受信バッファへのポインタ */ 293 276 294 277 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 295 278 296 279 #ifdef TCP_CFG_SWBUF_CSAVE 297 T_NET_BUF *swbufq; /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/280 T_NET_BUF *swbufq; /* 送信ウィンドバッファキュー */ 298 281 #endif 299 282 300 283 /* 301 * ãã以éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ãã¯ãªã¢ã¼ãããã284 * これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。 302 285 */ 303 286 304 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP ã®ã¿ã¤ã*/305 T_IPEP dstaddr; /* ç¸æã®ã¢ãã¬ã¹*/306 T_IPEP myaddr; /* èªåã®ã¢ãã¬ã¹*/307 T_NET_BUF *reassq; /* åä¿¡åæ§æãã¥ã¼*/287 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP のタイマ */ 288 T_IPEP dstaddr; /* 相手のアドレス */ 289 T_IPEP myaddr; /* 自分のアドレス */ 290 T_NET_BUF *reassq; /* 受信再構成キュー */ 308 291 309 292 #if defined(_IP6_CFG) … … 311 294 #if defined(_IP4_CFG) 312 295 313 T_TCP4_REP *rep4; /* IPv4 ç¨åä»å£*/296 T_TCP4_REP *rep4; /* IPv4 用受付口 */ 314 297 315 298 #endif /* of #if defined(_IP4_CFG) */ 316 299 317 T_TCP6_REP *rep; /* IPv6 ç¨åä»å£*/300 T_TCP6_REP *rep; /* IPv6 用受付口 */ 318 301 319 302 #else /* of #if defined(_IP6_CFG) */ … … 321 304 #if defined(_IP4_CFG) 322 305 323 T_TCP4_REP *rep; /* IPv4 ç¨åä»å£*/306 T_TCP4_REP *rep; /* IPv4 用受付口 */ 324 307 325 308 #endif /* of #if defined(_IP4_CFG) */ … … 329 312 330 313 #ifdef TCP_CFG_RWBUF_CSAVE 331 T_NET_BUF *rwbufq; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/314 T_NET_BUF *rwbufq; /* 受信ウィンドバッファキュー */ 332 315 #endif 333 316 334 317 #ifdef TCP_CFG_EXTENTIONS 335 T_TCP_HDR *urg_tcph; /* ç·æ¥ãã¼ã¿å 336 ¥ãã®ã»ã°ã¡ã³ãã® TCP ããã */ 337 T_TCP_SEQ snd_up; /* éä¿¡ããç·æ¥ãã¤ã³ã¿ */ 338 T_TCP_SEQ rcv_up; /* åä¿¡ããç·æ¥ãã¤ã³ã¿ */ 318 T_TCP_HDR *urg_tcph; /* 緊急データ入りのセグメントの TCP ヘッダ */ 319 T_TCP_SEQ snd_up; /* 送信した緊急ポインタ */ 320 T_TCP_SEQ rcv_up; /* 受信した緊急ポインタ */ 339 321 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 340 322 341 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 342 /* 確èªãããæ大éä¿¡ SEQ */ 343 T_TCP_SEQ snd_max; /* éä¿¡ããæ大 SEQ */ 344 T_TCP_SEQ snd_nxt; /* 次ã«éä¿¡ãã SEQ */ 345 T_TCP_SEQ snd_old_nxt; /* å 346 ã® snd_nxt */ 347 T_TCP_SEQ snd_wl1; /* ååã¦ã£ã³ããæ´æ°ãã SEQ */ 348 T_TCP_SEQ snd_wl2; /* ååã¦ã£ã³ããæ´æ°ãã ACK */ 349 T_TCP_SEQ iss; /* èªåã® SEQ ã®åæå¤ */ 350 T_TCP_SEQ irs; /* ç¸æã® SEQ ã®åæå¤ */ 351 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 352 ãã¦ããæå°ã® SEQ */ 353 T_TCP_SEQ rcv_adv; /* åä¿¡ãæå¾ 354 ãã¦ããæ大㮠SEQ */ 355 T_TCP_SEQ rcv_wnd; /* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº */ 356 T_TCP_SEQ rtseq; /* æéè¨æ¸¬ãå§ãã SEQ */ 357 T_TCP_SEQ last_ack_sent; /* æå¾ã«éä¿¡ãã ACK */ 358 T_TCP_TIME idle; /* ã¢ã¤ãã«æé */ 359 ER error; /* éåæã«çºçããã¨ã©ã¼ */ 360 ER net_error; /* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ 361 */ 362 T_TCP_WND snd_wnd; /* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº */ 363 T_TCP_WND max_sndwnd; /* ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãº */ 364 T_TCP_TIME rtt; /* å¾å¾©æé */ 365 uint16_t swbuf_count; /* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 366 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 367 uint16_t rcv_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 368 uint16_t get_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 369 uint8_t rxtshift; /* åéä¿¡åæ°ã® log(2) */ 370 uint8_t fsm_state; /* FSM ç¶æ 371 */ 372 uint8_t dupacks; /* åé ACK æ° */ 323 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 324 /* 確認された最大送信 SEQ */ 325 T_TCP_SEQ snd_max; /* 送信した最大 SEQ */ 326 T_TCP_SEQ snd_nxt; /* 次に送信する SEQ */ 327 T_TCP_SEQ snd_old_nxt; /* 元の snd_nxt */ 328 T_TCP_SEQ snd_wl1; /* 前回ウィンドを更新した SEQ */ 329 T_TCP_SEQ snd_wl2; /* 前回ウィンドを更新した ACK */ 330 T_TCP_SEQ iss; /* 自分の SEQ の初期値 */ 331 T_TCP_SEQ irs; /* 相手の SEQ の初期値 */ 332 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 333 T_TCP_SEQ rcv_adv; /* 受信を期待している最大の SEQ */ 334 T_TCP_SEQ rcv_wnd; /* 受信可能なウィンドサイズ */ 335 T_TCP_SEQ rtseq; /* 時間計測を始めた SEQ */ 336 T_TCP_SEQ last_ack_sent; /* 最後に送信した ACK */ 337 T_TCP_TIME idle; /* アイドル時間 */ 338 ER error; /* 非同期に発生したエラー */ 339 ER net_error; /* ネットワークのエラー状態 */ 340 T_TCP_WND snd_wnd; /* 相手の受信可能ウィンドサイズ */ 341 T_TCP_WND max_sndwnd; /* 今までの最大送信ウィンドサイズ */ 342 T_TCP_TIME rtt; /* 往復時間 */ 343 uint16_t swbuf_count; /* 送信ウィンドバッファの使用中サイズ */ 344 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 345 uint16_t rcv_buf_len; /* tcp_rcv_buf の割当て長 */ 346 uint16_t get_buf_len; /* tcp_rcv_buf の割当て長 */ 347 uint8_t rxtshift; /* 再送信回数の log(2) */ 348 uint8_t fsm_state; /* FSM 状態 */ 349 uint8_t dupacks; /* 再送 ACK 数 */ 373 350 374 351 #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES) 375 uint16_t rwbufq_entries; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ã¨ã³ããªæ°*/352 uint16_t rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数 */ 376 353 #endif 377 354 … … 382 359 383 360 /* 384 * Time Wait ç¨ TCP é信端ç¹361 * Time Wait 用 TCP 通信端点 385 362 */ 386 363 387 364 typedef struct t_tcp_twcep { 388 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 389 T_TCP_TIME timer_2msl; /* 2MSL ã¿ã¤ã */ 390 T_IPEP dstaddr; /* ç¸æã®ã¢ãã¬ã¹ */ 391 T_IPEP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 392 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 393 /* 確èªãããæ大éä¿¡ SEQ */ 394 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 395 ãã¦ããæå°ã® SEQ */ 396 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 397 uint8_t fsm_state; /* FSM ç¶æ 398 */ 399 uint8_t flags; /* é信端ç¹ãã©ã° */ 365 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 366 T_TCP_TIME timer_2msl; /* 2MSL タイマ */ 367 T_IPEP dstaddr; /* 相手のアドレス */ 368 T_IPEP myaddr; /* 自分のアドレス */ 369 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 370 /* 確認された最大送信 SEQ */ 371 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 372 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 373 uint8_t fsm_state; /* FSM 状態 */ 374 uint8_t flags; /* 通信端点フラグ */ 400 375 401 376 } T_TCP_TWCEP; … … 404 379 405 380 /* 406 * TCP é信端ç¹ã®ç¶æ 407 ãã©ã° 408 */ 409 410 #define TCP_CEP_FLG_IPV4 ULONG_C(0x00000001) /* IPv4 ç¨ã */ 411 #define TCP_CEP_FLG_ACK_NOW ULONG_C(0x00000100) /* ç´ã¡ã«ç¸æã« ACK ãéãã */ 412 #define TCP_CEP_FLG_DEL_ACK ULONG_C(0x00000200) /* ACK ãé 413 延ããã */ 414 #define TCP_CEP_FLG_SENT_FIN ULONG_C(0x00000400) /* FIN ãéã£ã¦ããã */ 415 #define TCP_CEP_FLG_NEED_SYN ULONG_C(0x00000800) /* SYN ãéä¿¡ããã */ 416 #define TCP_CEP_FLG_NEED_FIN ULONG_C(0x00001000) /* FIN ãéä¿¡ããã */ 417 #define TCP_CEP_FLG_FORCE ULONG_C(0x00002000) /* å¼·å¶éä¿¡ã */ 418 #define TCP_CEP_FLG_NO_PUSH ULONG_C(0x00004000) /* push ããªãã */ 419 #define TCP_CEP_FLG_NO_DELAY ULONG_C(0x00008000) /* é 420 延ããªãã */ 421 #define TCP_CEP_FLG_FORCE_CLEAR ULONG_C(0x00010000) /* å¼·å¶éä¿¡ããå¾ãã©ã°ãã¯ãªã¢ã¼ããã*/ 422 #define TCP_CEP_FLG_POST_OUTPUT ULONG_C(0x00020000) /* éä¿¡ãéå§ããã */ 423 #define TCP_CEP_FLG_RESERVE_OUTPUT ULONG_C(0x00040000) /* éä¿¡ãäºç´ããã */ 424 #define TCP_CEP_FLG_DYNAMIC ULONG_C(0x00100000) /* åççæã»åé¤å¯è½é信端ç¹ã */ 425 #define TCP_CEP_FLG_VALID ULONG_C(0x00200000) /* çææ¸ã¿ã§æå¹ãªé信端ç¹ã */ 426 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT ULONG_C(0x00400000) /* éä¿¡ããå¾ã³ãã¯ã·ã§ã³ãéããã*/ 427 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00800000) /* éä¿¡ããå¾ãsnd_nxt ãå 428 ã«æ»ãã*/ 429 430 /* éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ */ 431 #define TCP_CEP_FLG_WBCS_NBUF_REQ ULONG_C(0x80000000) /* ãããã¯ã¼ã¯ãããã¡å²å½ã¦è¦æ±*/ 432 #define TCP_CEP_FLG_WBCS_MASK ULONG_C(0x70000000) /* ãã¹ã¯ */ 433 #define TCP_CEP_FLG_WBCS_FREE ULONG_C(0x00000000) /* éä¿¡ã¦ã£ã³ããããã¡æªä½¿ç¨ */ 434 #define TCP_CEP_FLG_WBCS_WOPEN_PEND ULONG_C(0x10000000) /* ç¸æã®åä¿¡ã¦ã£ã³ãã®éãå¾ 435 ã¡ */ 436 #define TCP_CEP_FLG_WBCS_NBUF_PEND ULONG_C(0x20000000) /* ãããã¯ã¼ã¯ãããã¡äºç´å¾ 437 ã¡ */ 438 #define TCP_CEP_FLG_WBCS_NBUF_RSVD ULONG_C(0x30000000) /* ãããã¯ã¼ã¯ãããã¡äºç´æ¸ã¿ */ 439 #define TCP_CEP_FLG_WBCS_NBUF_READY ULONG_C(0x40000000) /* ãããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿*/ 440 #define TCP_CEP_FLG_WBCS_SEND_READY ULONG_C(0x50000000) /* éä¿¡å¯è½ */ 441 #define TCP_CEP_FLG_WBCS_SENT ULONG_C(0x60000000) /* éä¿¡æ¸ã¿ã§ãACKå¾ 442 ã¡ */ 443 #define TCP_CEP_FLG_WBCS_ACKED ULONG_C(0x70000000) /* éä¿¡æ¸ã¿ã§ãACKå®äº */ 444 445 /* åæåããé¤å¤ãããã©ã°ã®å®ç¾© */ 381 * TCP 通信端点の状態フラグ 382 */ 383 384 #define TCP_CEP_FLG_IPV4 ULONG_C(0x00000001) /* IPv4 用。 */ 385 #define TCP_CEP_FLG_ACK_NOW ULONG_C(0x00000100) /* 直ちに相手に ACK を送る。 */ 386 #define TCP_CEP_FLG_DEL_ACK ULONG_C(0x00000200) /* ACK を遅延する。 */ 387 #define TCP_CEP_FLG_SENT_FIN ULONG_C(0x00000400) /* FIN を送ってある。 */ 388 #define TCP_CEP_FLG_NEED_SYN ULONG_C(0x00000800) /* SYN を送信する。 */ 389 #define TCP_CEP_FLG_NEED_FIN ULONG_C(0x00001000) /* FIN を送信する。 */ 390 #define TCP_CEP_FLG_FORCE ULONG_C(0x00002000) /* 強制送信。 */ 391 #define TCP_CEP_FLG_NO_PUSH ULONG_C(0x00004000) /* push しない。 */ 392 #define TCP_CEP_FLG_NO_DELAY ULONG_C(0x00008000) /* 遅延しない。 */ 393 #define TCP_CEP_FLG_FORCE_CLEAR ULONG_C(0x00010000) /* 強制送信した後フラグをクリアーする。*/ 394 #define TCP_CEP_FLG_POST_OUTPUT ULONG_C(0x00020000) /* 送信を開始する。 */ 395 #define TCP_CEP_FLG_RESERVE_OUTPUT ULONG_C(0x00040000) /* 送信を予約する。 */ 396 #define TCP_CEP_FLG_DYNAMIC ULONG_C(0x00100000) /* 動的生成・削除可能通信端点。 */ 397 #define TCP_CEP_FLG_VALID ULONG_C(0x00200000) /* 生成済みで有効な通信端点。 */ 398 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT ULONG_C(0x00400000) /* 送信した後コネクションを閉じる。*/ 399 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00800000) /* 送信した後、snd_nxt を元に戻す。*/ 400 401 /* 送受信ウィンドバッファの省コピー機能 */ 402 #define TCP_CEP_FLG_WBCS_NBUF_REQ ULONG_C(0x80000000) /* ネットワークバッファ割当て要求*/ 403 #define TCP_CEP_FLG_WBCS_MASK ULONG_C(0x70000000) /* マスク */ 404 #define TCP_CEP_FLG_WBCS_FREE ULONG_C(0x00000000) /* 送信ウィンドバッファ未使用 */ 405 #define TCP_CEP_FLG_WBCS_WOPEN_PEND ULONG_C(0x10000000) /* 相手の受信ウィンドの開き待ち */ 406 #define TCP_CEP_FLG_WBCS_NBUF_PEND ULONG_C(0x20000000) /* ネットワークバッファ予約待ち */ 407 #define TCP_CEP_FLG_WBCS_NBUF_RSVD ULONG_C(0x30000000) /* ネットワークバッファ予約済み */ 408 #define TCP_CEP_FLG_WBCS_NBUF_READY ULONG_C(0x40000000) /* ネットワークバッファ割当て済み*/ 409 #define TCP_CEP_FLG_WBCS_SEND_READY ULONG_C(0x50000000) /* 送信可能 */ 410 #define TCP_CEP_FLG_WBCS_SENT ULONG_C(0x60000000) /* 送信済みで、ACK待ち */ 411 #define TCP_CEP_FLG_WBCS_ACKED ULONG_C(0x70000000) /* 送信済みで、ACK完了 */ 412 413 /* 初期化から除外するフラグの定義 */ 446 414 #define TCP_CEP_FLG_NOT_CLEAR (TCP_CEP_FLG_WBCS_NBUF_REQ|TCP_CEP_FLG_WBCS_MASK|\ 447 415 TCP_CEP_FLG_DYNAMIC|TCP_CEP_FLG_VALID|TCP_CEP_FLG_IPV4) 448 416 449 417 /* 450 * é信端ç¹ã¤ãã³ããã©ã° 451 */ 452 453 #define TCP_CEP_EVT_ESTABLISHED ULONG_C(0x00000001) /* ã³ãã¯ã·ã§ã³ç¢ºç« */ 454 #define TCP_CEP_EVT_CLOSED ULONG_C(0x00000002) /* æªä½¿ç¨ç¶æ 455 */ 456 #define TCP_CEP_EVT_SWBUF_READY ULONG_C(0x00000004) /* éä¿¡ã¦ã£ã³ããããã¡ç©ºã */ 457 #define TCP_CEP_EVT_RWBUF_READY ULONG_C(0x00000008) /* éä¿¡ã¦ã£ã³ããããã¡ãã¼ã¿ãã*/ 458 #define TCP_CEP_EVT_ALL ULONG_C(0xffffffff) /* å 459 ¨ã¤ãã³ã */ 460 461 /* 462 * 追å API æ©è½ã»äºè±¡ã³ã¼ã 463 */ 464 465 /* TCP é¢ä¿ */ 418 * 通信端点イベントフラグ 419 */ 420 421 #define TCP_CEP_EVT_ESTABLISHED ULONG_C(0x00000001) /* コネクション確立 */ 422 #define TCP_CEP_EVT_CLOSED ULONG_C(0x00000002) /* 未使用状態 */ 423 #define TCP_CEP_EVT_SWBUF_READY ULONG_C(0x00000004) /* 送信ウィンドバッファ空き */ 424 #define TCP_CEP_EVT_RWBUF_READY ULONG_C(0x00000008) /* 送信ウィンドバッファデータあり*/ 425 #define TCP_CEP_EVT_ALL ULONG_C(0xffffffff) /* 全イベント */ 426 427 /* 428 * 追加 API 機能・事象コード 429 */ 430 431 /* TCP 関係 */ 466 432 467 433 #define TFN_TCP_UNDEF (0) 468 434 469 435 /* 470 * srtt: å¹³æ»åãããRTT471 * rttvar: å¹³æ»åãããåæ£472 * rtt: 測å®ãããå¾å¾©æé436 * srtt: 平滑化された RTT 437 * rttvar: 平滑化された分散 438 * rtt: 測定された往復時間 473 439 * 474 * å¹³æ»åããã RTT (srtt) ã¨å¹³æ»åãããåæ£ (rttvar) ã475 * æ´æ°åã§è¨ç®ããããã«ãå·¦ã·ãããã¦ã¹ã±ã¼ã«ããã476 * srtt 㯠2 é²å°æ°ç¹ä»¥ä¸ 3 ãããã477 * rttvar 㯠2 é²å°æ°ç¹ä»¥ä¸ 2 ããããä¿æããã440 * 平滑化された RTT (srtt) と平滑化された分散 (rttvar) を 441 * 整数型で計算するために、左シフトしてスケールする。 442 * srtt は 2 進小数点以下 3 ビット、 443 * rttvar は 2 進小数点以下 2 ビットを保持する。 478 444 */ 479 445 480 446 #define TCP_DELTA_SHIFT 2 481 /* å·®å = rtt/8 + srtt*7/8 ã®è¨ç®ã®ããã®ã·ããå¤*/447 /* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値 */ 482 448 #define TCP_SRTT_SHIFT (TCP_DELTA_SHIFT + 3) 483 /* srtt ã®ã·ããå¤ã3(+2)ããã*/449 /* srtt のシフト値、3(+2)ビット */ 484 450 #define TCP_RTTVAR_SHIFT (TCP_DELTA_SHIFT + 2) 485 /* rttvar ã®ã·ããå¤ã2(+2)ããã*/451 /* rttvar のシフト値、2(+2)ビット */ 486 452 #define TCP_SRTT_SCALE (1<<TCP_SRTT_SHIFT) 487 453 #define TCP_RTTVAR_SCALE (1<<TCP_RTTVAR_SHIFT) 488 454 489 455 /* 490 * é«éå転éãéå§ããåé ACK æ°ã®ãããå¤456 * 高速再転送を開始する再送 ACK 数のしきい値 491 457 */ 492 458 … … 494 460 495 461 /* 496 * åä¿¡åæ§æãã¥ã¼ã§ã® TCP ããã462 * 受信再構成キューでの TCP ヘッダ 497 463 */ 498 464 499 465 typedef struct t_tcp_q_hdr { 500 uint16_t sport; /* éä¿¡å 501 ãã¼ãçªå· */ 502 uint16_t dport; /* å®å 503 ãã¼ãçªå· */ 504 505 uint32_t seq; /* SEQ çªå· */ 506 507 T_NET_BUF *next; /* 次ã®ã»ã°ã¡ã³ããå 508 㯠ACK çªå·(ack) */ 509 510 uint8_t doff; /* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã) */ 511 uint8_t flags; /* ãã©ã°(ä¸ä½6ããã) */ 512 uint16_t soff; /* SDU ãªãã»ãããå 513 ã¯ã¦ã£ã³ããµã¤ãº(win) */ 514 515 uint16_t slen; /* SDU é·ãå 516 ã¯ãã§ãã¯ãµã (sum) */ 517 uint16_t urp; /* ç·æ¥ãã¤ã³ã¿ï¼SDU é·è£æ£ï¼ */ 466 uint16_t sport; /* 送信元ポート番号 */ 467 uint16_t dport; /* 宛先ポート番号 */ 468 469 uint32_t seq; /* SEQ 番号 */ 470 471 T_NET_BUF *next; /* 次のセグメント、元は ACK 番号(ack) */ 472 473 uint8_t doff; /* データオフセット(上位4ビット) */ 474 uint8_t flags; /* フラグ(下位6ビット) */ 475 uint16_t soff; /* SDU オフセット、元はウィンドサイズ(win) */ 476 477 uint16_t slen; /* SDU 長、元はチェックサム(sum) */ 478 uint16_t urp; /* 緊急ポインタ(SDU 長補正) */ 518 479 } __attribute__((packed, aligned(2)))T_TCP_Q_HDR; 519 480 … … 521 482 522 483 /* 523 * ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©524 */ 525 526 #define TMIN_TCP_REPID 1 /* TCP åä»å£ ID ã®æå°å¤*/527 #define TMIN_TCP6_REPID 1 /* TCP/IPv6 åä»å£ ID ã®æå°å¤*/528 #define TMIN_TCP4_REPID (TNUM_TCP6_REPID+1) /* TCP/IPv4 åä»å£ ID ã®æå°å¤*/529 530 #define TMIN_TCP_CEPID 1 /* TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤*/531 #define TMIN_TCP6_CEPID 1 /* TCP/IPv6 éä¿¡ç«¯ç¹ ID ã®æå°å¤*/532 #define TMIN_TCP4_CEPID (TNUM_TCP6_CEPID+1) /* TCP/IPv4 éä¿¡ç«¯ç¹ ID ã®æå°å¤*/533 534 #define TMIN_TCP_TWCEPID 1 /* Time Wait ç¨ TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤*/535 536 /* 537 * å¶å¾¡ã»ã°ã¡ã³ãï¼ãã¼ã¿ãªãï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡484 * オブジェクト ID の最小値の定義 485 */ 486 487 #define TMIN_TCP_REPID 1 /* TCP 受付口 ID の最小値 */ 488 #define TMIN_TCP6_REPID 1 /* TCP/IPv6 受付口 ID の最小値 */ 489 #define TMIN_TCP4_REPID (TNUM_TCP6_REPID+1) /* TCP/IPv4 受付口 ID の最小値 */ 490 491 #define TMIN_TCP_CEPID 1 /* TCP 通信端点 ID の最小値 */ 492 #define TMIN_TCP6_CEPID 1 /* TCP/IPv6 通信端点 ID の最小値 */ 493 #define TMIN_TCP4_CEPID (TNUM_TCP6_CEPID+1) /* TCP/IPv4 通信端点 ID の最小値 */ 494 495 #define TMIN_TCP_TWCEPID 1 /* Time Wait 用 TCP 通信端点 ID の最小値 */ 496 497 /* 498 * 制御セグメント(データなし)サイズのネットワークバッファ 538 499 */ 539 500 … … 541 502 542 503 typedef struct t_net_buf_cseg { 543 uint16_t len; /* ãã¼ã¿ã®é·ã*/544 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/545 uint8_t flags; /* ãã©ã°*/504 uint16_t len; /* データの長さ */ 505 uint8_t idix; /* mpfid のインデックス */ 506 uint8_t flags; /* フラグ */ 546 507 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 547 508 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 551 512 #endif 552 513 uint8_t buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE]; 553 /* ãããã¡æ¬ä½*/514 /* バッファ本体 */ 554 515 } T_NET_BUF_CSEG; 555 516 … … 557 518 558 519 /* 559 * SNMP 㮠管çæ 560 å ±ãã¼ã¹ (MIB) 520 * SNMP の 管理情報ベース (MIB) 561 521 */ 562 522 … … 575 535 576 536 /* 577 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã578 */ 579 580 /* TCP åä»å£*/537 * 関数シミュレーションマクロ 538 */ 539 540 /* TCP 受付口 */ 581 541 582 542 #define VALID_TCP6_REPID(id) (TMIN_TCP6_REPID<=(id)&&(id)<=tmax_tcp6_repid) … … 604 564 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 605 565 606 /* TCP é信端ç¹*/566 /* TCP 通信端点 */ 607 567 608 568 #define VALID_TCP_CEPID(id) (TMIN_TCP_CEPID<=(id)&&(id)<=tmax_tcp_cepid) … … 634 594 635 595 /* 636 * å 637 ¨åå¤æ° 596 * 全域変数 638 597 */ 639 598 … … 642 601 extern T_TCP_STATS tcp_stats; 643 602 644 /* TCP åä»å£*/603 /* TCP 受付口 */ 645 604 646 605 extern T_TCP6_REP tcp6_rep[]; … … 663 622 #endif 664 623 665 /* TCP é信端ç¹*/624 /* TCP 通信端点 */ 666 625 667 626 extern T_TCP_CEP tcp_cep[]; … … 679 638 680 639 /* 681 * Inline é¢æ°640 * Inline 関数 682 641 */ 683 642 … … 685 644 686 645 /* 687 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã688 * ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°689 */ 690 691 /* 692 * tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã646 * TCP 通信端点の受信ウィンドバッファの省コピー機能が 647 * 無効の場合は何もしないためのダミーの関数 648 */ 649 650 /* 651 * tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。 693 652 */ 694 653 … … 703 662 704 663 /* 705 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿ã706 * æå¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°707 */ 708 709 /* 710 * tcp_read_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèªã¿åºãã664 * TCP 通信端点の送信ウィンドバッファの省コピー機能のみが 665 * 有効の場合は何もしないためのダミーの関数 666 */ 667 668 /* 669 * tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。 711 670 */ 712 671 … … 721 680 722 681 /* 723 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã724 * ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°725 */ 726 727 /* 728 * tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã682 * TCP 通信端点の送信ウィンドバッファの省コピー機能が 683 * 無効の場合は何もしないためのダミーの関数 684 */ 685 686 /* 687 * tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。 729 688 */ 730 689 … … 735 694 736 695 /* 737 * tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããã696 * tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。 738 697 */ 739 698 … … 744 703 745 704 /* 746 * tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããã705 * tcp_push_res_nbuf -- ネットワークバッファを予約する。 747 706 */ 748 707 … … 754 713 755 714 /* 756 * tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãã715 * tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。 757 716 */ 758 717 … … 766 725 767 726 /* 768 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã727 * TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ 769 728 */ 770 729 … … 800 759 801 760 /* 802 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã761 * TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ 803 762 */ 804 763 … … 851 810 852 811 /* 853 * é¢æ°812 * 関数 854 813 */ 855 814 … … 886 845 887 846 /* 888 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°889 */ 890 891 /* 892 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã893 * é¢æ°ã®é¸æã«ä½¿ç¨ããã847 * TCP 通信端点の受信ウィンドバッファ用関数 848 */ 849 850 /* 851 * TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、 852 * 関数の選択に使用する。 894 853 */ 895 854 … … 901 860 902 861 /* 903 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°862 * TCP 通信端点の受信ウィンドバッファの省コピー機能用関数 904 863 */ 905 864 … … 911 870 912 871 /* 913 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°872 * TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数 914 873 */ 915 874 … … 921 880 922 881 /* 923 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°924 */ 925 926 /* 927 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã928 * é¢æ°ã®é¸æã«ä½¿ç¨ããã882 * TCP 通信端点の送信ウィンドバッファ用関数 883 */ 884 885 /* 886 * TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、 887 * 関数の選択に使用する。 929 888 */ 930 889 … … 943 902 944 903 /* 945 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°904 * TCP 通信端点の送信ウィンドバッファの省コピー機能用関数 946 905 */ 947 906 … … 957 916 958 917 /* 959 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°918 * TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数 960 919 */ 961 920 … … 973 932 974 933 /* 975 * TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ç¨é¢æ°934 * TCP ヘッダのトレース出力機能用関数 976 935 */ 977 936 extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep); 978 937 extern void tcp_input_trace (T_NET_BUF *input, T_TCP_CEP *cep); 979 938 980 /* TCP åºåã¿ã¹ã¯*/939 /* TCP 出力タスク */ 981 940 982 941 extern void tcp_output_task(intptr_t exinf); -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcpn_usrreq.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 * tcp_cre_rep -- TCP åä»å£ã®çæãæ¡å¼µæ©è½ã75 * tcp_cre_rep -- TCP 受付口の生成【拡張機能】 88 76 */ 89 77 … … 96 84 ER error; 97 85 98 /* TCP åä»å£ ID ããã§ãã¯ããã*/86 /* TCP 受付口 ID をチェックする。*/ 99 87 if (!VALID_TCP_REPID(repid)) 100 88 return E_ID; 101 89 102 /* pk_crep ã NULL ãªãã¨ã©ã¼*/90 /* pk_crep が NULL ならエラー */ 103 91 if (pk_crep == NULL) 104 92 return E_PAR; … … 107 95 108 96 /* 109 * API ã IPv6 㧠IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã110 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼97 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、 98 * IPv4 射影アドレスが指定されたらエラー 111 99 */ 112 100 if (in6_is_addr_ipv4mapped(&pk_crep->myaddr.ipaddr)) … … 115 103 #endif /* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */ 116 104 117 /* TCP åä»å£ãå¾ãã*/105 /* TCP 受付口を得る。*/ 118 106 rep = GET_TCP_REP(repid); 119 107 120 /* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/108 /* TCP 受付口が、動的生成用でなければエラー */ 121 109 if (!DYNAMIC_TCP_REP(rep)) 122 110 return E_ID; 123 111 124 /* åä»å£ãããã¯ããã*/112 /* 受付口をロックする。*/ 125 113 syscall(wai_sem(rep->semid_lock)); 126 114 127 115 /* 128 * TCP åä»å£ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼116 * TCP 受付口をチェックする。生成済みであればエラー 129 117 */ 130 118 if (VALID_TCP_REP(rep)) … … 132 120 else { 133 121 134 /* TCP åä»å£çææ 135 å ±ãã³ãã¼ããã*/ 136 rep->repatr = pk_crep->repatr; /* åä»å£å±æ§ */ 137 rep->myaddr.ipaddr = pk_crep->myaddr.ipaddr; /* èªåã®ã¢ãã¬ã¹ */ 138 rep->myaddr.portno = pk_crep->myaddr.portno; /* èªåã®ã¢ãã¬ã¹ */ 139 140 /* TCP åä»å£ãçææ¸ã¿ã«ããã*/ 122 /* TCP 受付口生成情報をコピーする。*/ 123 rep->repatr = pk_crep->repatr; /* 受付口属性 */ 124 rep->myaddr.ipaddr = pk_crep->myaddr.ipaddr; /* 自分のアドレス */ 125 rep->myaddr.portno = pk_crep->myaddr.portno; /* 自分のアドレス */ 126 127 /* TCP 受付口を生成済みにする。*/ 141 128 rep->flags |= TCP_REP_FLG_VALID; 142 129 error = E_OK; 143 130 } 144 131 145 /* åä»å£ã®ããã¯ã解é¤ããã*/132 /* 受付口のロックを解除する。*/ 146 133 syscall(sig_sem(rep->semid_lock)); 147 134 … … 154 141 155 142 /* 156 * tcp_find_cep_rep -- TCP åä»å£ããªã³ã¯ãã¦ãã TCP é信端ç¹ãå¾ãã143 * tcp_find_cep_rep -- TCP 受付口をリンクしている TCP 通信端点を得る。 157 144 */ 158 145 … … 176 163 177 164 /* 178 * tcp_del_rep_body -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ãã®æ¬ä½165 * tcp_del_rep_body -- TCP 受付口の削除【拡張機能】の本体 179 166 */ 180 167 … … 186 173 ER error = E_OK; 187 174 188 /* TCP åä»å£ ID ã®ãã§ãã¯ã¯çµäºãã¦ããã*/189 190 /* TCP åä»å£ãå¾ãã*/175 /* TCP 受付口 ID のチェックは終了している。*/ 176 177 /* TCP 受付口を得る。*/ 191 178 rep = GET_TCP_REP(repid); 192 179 193 /* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/180 /* TCP 受付口が、動的生成用でなければエラー */ 194 181 if (!DYNAMIC_TCP_REP(rep)) 195 182 return E_ID; 196 183 197 /* åä»å£ãããã¯ããã*/184 /* 受付口をロックする。*/ 198 185 syscall(wai_sem(rep->semid_lock)); 199 186 200 /* TCP åä»å£ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼*/187 /* TCP 受付口をチェックする。未生成の場合はエラー */ 201 188 if (!VALID_TCP_REP(rep)) 202 189 error = E_NOEXS; … … 204 191 if ((cep = TCP_FIND_CEP_REP(rep)) != NULL) { 205 192 /* 206 * ãã§ã«ååãªã¼ãã³ãã¦ããã¨ã207 * ï¼tcp_acp_cep ãå¼ã°ãã¦ããã¨ãï¼ã¯ã208 * tcp_acp_cep ãçµäºãããã193 * すでに受動オープンしているとき 194 *(tcp_acp_cep が呼ばれているとき)は、 195 * tcp_acp_cep を終了させる。 209 196 */ 210 197 211 /* é信端ç¹ãããã¯ããã*/198 /* 通信端点をロックする。*/ 212 199 syscall(wai_sem(cep->semid_lock)); 213 200 214 201 /* 215 * é信端ç¹ããåä»å£ã解æ¾ãã216 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã202 * 通信端点から受付口を解放し、 203 * イベントフラグをクローズに設定する。 217 204 */ 218 205 cep->rep = NULL; … … 254 241 cep->rcv_tfn = TFN_TCP_UNDEF; 255 242 256 /* é信端ç¹ã®ããã¯ã解é¤ããã*/243 /* 通信端点のロックを解除する。*/ 257 244 syscall(sig_sem(cep->semid_lock)); 258 245 … … 261 248 error = E_OK; 262 249 263 /* TCP åä»å£ãæªçæã«ããã*/250 /* TCP 受付口を未生成にする。*/ 264 251 rep->flags &= ~TCP_REP_FLG_VALID; 265 252 } 266 253 267 /* åä»å£ã®ããã¯ã解é¤ããã*/254 /* 受付口のロックを解除する。*/ 268 255 syscall(sig_sem(rep->semid_lock)); 269 256 … … 280 267 281 268 /* 282 * tcp_acp_cep -- æ¥ç¶è¦æ±å¾ 283 ã¡ (ååãªã¼ãã³)ãæ¨æºæ©è½ã 269 * tcp_acp_cep -- 接続要求待ち (受動オープン)【標準機能】 284 270 */ 285 271 … … 297 283 298 284 /* 299 * API (tcp6_acp_cep 㨠tcp_acp_cep) ã¨ã300 * TCP é信端ç¹ã®ãããã³ã«ãçç¾ãã¦ããã°ã¨ã©ã¼285 * API (tcp6_acp_cep と tcp_acp_cep) と、 286 * TCP通信端点のプロトコルが矛盾していればエラー 301 287 */ 302 288 … … 317 303 #endif /* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */ 318 304 319 /* TCP åä»å£ããã§ãã¯ããã*/305 /* TCP 受付口をチェックする。*/ 320 306 if (!VALID_TCP_REPID(repid)) 321 307 return E_ID; … … 323 309 #ifdef TCP_CFG_NON_BLOCKING 324 310 325 /* p_dstaddr ã NULL ãªãã¨ã©ã¼*/311 /* p_dstaddr が NULL ならエラー */ 326 312 if (p_dstaddr == NULL) 327 313 return E_PAR; … … 329 315 #else /* of #ifdef TCP_CFG_NON_BLOCKING */ 330 316 331 /* p_dstaddr ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/317 /* p_dstaddr が NULL か、tmout が TMO_NBLK ならエラー */ 332 318 if (p_dstaddr == NULL || tmout == TMO_NBLK) 333 319 return E_PAR; … … 338 324 339 325 /* 340 * API ã IPv6 㧠IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã341 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼326 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、 327 * IPv4 射影アドレスが指定されたらエラー 342 328 */ 343 329 if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr)) … … 347 333 348 334 /* 349 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã350 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼335 * CEP をロックし、API 機能コードとタスク識別子を記録する。 336 * すでに記録されていれば、ペンディング中なのでエラー 351 337 */ 352 338 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_ACP_CEP)) != E_OK) 353 339 return error; 354 340 355 /* CEP ã® FSM ãã¯ãã¼ãºç¶æ 356 ã§ãªããã°ã¨ã©ã¼ã*/ 341 /* CEP の FSM がクローズ状態でなければエラー。*/ 357 342 if (cep->fsm_state != TCP_FSM_CLOSED) { 358 343 error = E_OBJ; … … 361 346 syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED))); 362 347 363 /* TCP é信端ç¹ãåæåããã*/348 /* TCP 通信端点を初期化する。*/ 364 349 tcp_init_cep(cep); 365 350 366 /* TCP åä»å£ãå¾ãã*/351 /* TCP 受付口を得る。*/ 367 352 368 353 rep = GET_TCP_REP(repid); … … 370 355 #ifdef TCP_CFG_EXTENTIONS 371 356 372 /* TCP åä»å£ãããã¯ããã*/357 /* TCP 受付口をロックする。*/ 373 358 syscall(wai_sem(rep->semid_lock)); 374 359 375 /* TCP åä»å£ããã§ãã¯ããã*/360 /* TCP 受付口をチェックする。*/ 376 361 if (!VALID_TCP_REP(rep)) { 377 362 syscall(sig_sem(rep->semid_lock)); … … 382 367 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 383 368 384 /* TCP é信端ç¹ã«TCPåä»å£ãè¨é²ããã*/369 /* TCP 通信端点にTCP受付口を記録する。*/ 385 370 386 371 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) … … 404 389 #ifdef TCP_CFG_EXTENTIONS 405 390 406 /* TCP åä»å£ã®ããã¯ã解é¤ããã*/391 /* TCP 受付口のロックを解除する。*/ 407 392 syscall(sig_sem(rep->semid_lock)); 408 393 409 394 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 410 395 411 /* TCP åä»å£ã®ã¢ãã¬ã¹ãã³ãã¼ããã*/396 /* TCP 受付口のアドレスをコピーする。*/ 412 397 413 398 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) … … 428 413 #if API_PROTO == API_PROTO_IPV4 429 414 430 /* TCP é信端ç¹ã®ãããã¯ã¼ã¯å±¤ãããã³ã«ãè¨å®ããã*/415 /* TCP 通信端点のネットワーク層プロトコルを設定する。*/ 431 416 cep->flags |= TCP_CEP_FLG_IPV4; 432 417 433 418 #endif /* of #if API_PROTO == API_PROTO_IPV4 */ 434 419 435 /* é信端ç¹ãè¨å®ããã*/420 /* 通信端点を設定する。*/ 436 421 cep->fsm_state = TCP_FSM_LISTEN; 437 422 438 423 #ifdef TCP_CFG_NON_BLOCKING 439 424 440 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/425 /* タイムアウトをチェックする。*/ 441 426 if (tmout == TMO_NBLK) { 442 /* ãã³ããããã³ã°ã³ã¼ã«*/427 /* ノンブロッキングコール */ 443 428 444 429 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) … … 470 455 471 456 /* 472 * FSM ã ESTABLISHED ã«ãªãã¾ã§å¾ 473 ã¤ã 474 * FSM ã CLOSED ã«ãªã£ãå ´åã¯ãã¨ã©ã¼ãçºçãããã¨ãæå³ãã¦ããã 457 * FSM が ESTABLISHED になるまで待つ。 458 * FSM が CLOSED になった場合は、エラーが発生したことを意味している。 475 459 */ 476 460 error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED | … … 486 470 487 471 if (error == E_OK) { 488 /* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/472 /* 相手のアドレスをコピーする。*/ 489 473 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) 490 474 p_dstaddr->ipaddr = ntohl(cep->dstaddr.ipaddr.s6_addr32[3]); … … 496 480 else { 497 481 /* 498 * é信端ç¹ããåä»å£ã解æ¾ãã499 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã482 * 通信端点から受付口を解放し、 483 * イベントフラグをクローズに設定する。 500 484 */ 501 485 cep->rep = NULL; … … 526 510 527 511 /* 528 * tcp_con_cep -- æ¥ç¶è¦æ± (è½åãªã¼ãã³)ãæ¨æºæ©è½ã512 * tcp_con_cep -- 接続要求 (能動オープン)【標準機能】 529 513 */ 530 514 … … 541 525 542 526 /* 543 * API (tcp6_acp_cep 㨠tcp_acp_cep) ã¨ã544 * TCP é信端ç¹ã®ãããã³ã«ãçç¾ãã¦ããã°ã¨ã©ã¼527 * API (tcp6_acp_cep と tcp_acp_cep) と、 528 * TCP通信端点のプロトコルが矛盾していればエラー 545 529 */ 546 530 … … 562 546 563 547 /* 564 * ãã¦å 565 ããã«ããã£ã¹ãã¢ãã¬ã¹ãªãã¨ã©ã¼ 548 * あて先がマルチキャストアドレスならエラー 566 549 */ 567 550 … … 581 564 582 565 /* 583 * API ã IPv6 㧠IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã584 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼566 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、 567 * IPv4 射影アドレスが指定されたらエラー 585 568 */ 586 569 if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr)) … … 592 575 593 576 /* 594 * p_dstaddr ã¾ã㯠p_myaddr ã NULL ãªãã¨ã©ã¼577 * p_dstaddr または p_myaddr が NULL ならエラー 595 578 */ 596 579 if (p_myaddr == NULL || p_dstaddr == NULL) … … 600 583 601 584 /* 602 * p_dstaddr ã¾ã㯠p_myaddr ã NULL ã603 * tmout ã TMO_NBLK ãªãã¨ã©ã¼585 * p_dstaddr または p_myaddr が NULL 、 586 * tmout が TMO_NBLK ならエラー 604 587 */ 605 588 if (p_myaddr == NULL || p_dstaddr == NULL || tmout == TMO_NBLK) … … 609 592 610 593 /* 611 * CEP ãããã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯èå¥åãè¨é²ããã612 * ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸ãªã®ã§ã¨ã©ã¼594 * CEP をロックし、API 機能コードとタスク識別子を記録する。 595 * すでに記録されていれば、ペンディング中なのでエラー 613 596 */ 614 597 if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CON_CEP)) != E_OK) 615 598 return error; 616 599 617 /* CEP ã® FSM ãã¯ãã¼ãºç¶æ 618 ã§ãªããã°ã¨ã©ã¼ã*/ 600 /* CEP の FSM がクローズ状態でなければエラー。*/ 619 601 if (cep->fsm_state != TCP_FSM_CLOSED) { 620 602 error = E_OBJ; … … 623 605 syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED))); 624 606 625 /* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/607 /* シーケンス番号を初期化する。*/ 626 608 if (tcp_iss == 0) 627 609 tcp_init_iss(); 628 610 629 /* é信端ç¹ãåæåããã*/611 /* 通信端点を初期化する。*/ 630 612 tcp_init_cep(cep); 631 613 632 614 /* 633 * IP ã¢ãã¬ã¹ãè¨å®ããã634 * p_myaddr ã NADR (-1) ã§ã¯ãªããèª IP ã¢ãã¬ã¹ã ANY ã§ãªããã°ã635 * æå®ããã IP ã¢ãã¬ã¹ãå²ãå½ã¦ãã615 * IP アドレスを設定する。 616 * p_myaddr が NADR (-1) ではなく、自 IP アドレスが ANY でなければ、 617 * 指定された IP アドレスを割り当てる。 636 618 */ 637 619 … … 663 645 #if API_PROTO == API_PROTO_IPV4 664 646 665 /* TCP é信端ç¹ã®ãããã¯ã¼ã¯å±¤ãããã³ã«ãè¨å®ããã*/647 /* TCP 通信端点のネットワーク層プロトコルを設定する。*/ 666 648 cep->flags |= TCP_CEP_FLG_IPV4; 667 649 668 650 #endif /* of #if API_PROTO == API_PROTO_IPV4 */ 669 651 670 /* é信端ç¹ãè¨å®ããã*/652 /* 通信端点を設定する。*/ 671 653 //NET_DEBUG_TCP5("tcp_con_cep3[c=%d,d=%lI.%d,s=%lI.%d]\n", 672 654 cep->fsm_state = TCP_FSM_SYN_SENT; … … 678 660 #ifdef TCP_CFG_NON_BLOCKING 679 661 680 /* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/662 /* タイムアウトをチェックする。*/ 681 663 if (tmout == TMO_NBLK) { 682 /* ãã³ããããã³ã°ã³ã¼ã«*/664 /* ノンブロッキングコール */ 683 665 684 666 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) … … 709 691 cep->snd_nblk_tfn = TFN_TCP_CON_CEP; 710 692 711 /* ã³ãã¯ã·ã§ã³ã®éè¨ããã¹ãããã*/693 /* コネクションの開設をポストする。*/ 712 694 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 713 695 sig_sem(SEM_TCP_POST_OUTPUT); … … 719 701 720 702 /* 721 * p_myaddr ã NADR (-1) ãã722 * èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã703 * p_myaddr が NADR (-1) か、 704 * 自ポート番号が TCP_PORTANY なら、自動で割り当てる。 723 705 */ 724 706 if (p_myaddr == NADR || p_myaddr->portno == TCP_PORTANY) … … 727 709 goto err_ret; 728 710 729 /* ã³ãã¯ã·ã§ã³ã®éè¨ããã¹ãããã*/711 /* コネクションの開設をポストする。*/ 730 712 cep->flags |= TCP_CEP_FLG_POST_OUTPUT; 731 713 sig_sem(SEM_TCP_POST_OUTPUT); 732 714 733 715 /* 734 * ã¤ãã³ãã ESTABLISHED ã«ãªãã¾ã§å¾ 735 ã¤ã 736 * ã¤ãã³ãã CLOSED ã«ãªã£ãå ´åã¯ãä½ããã®ã¨ã©ã¼ãçºçãããã 737 * æ¥ç¶è¦æ±ãæå¦ããããã¨ãæå³ãã¦ããã 716 * イベントが ESTABLISHED になるまで待つ。 717 * イベントが CLOSED になった場合は、何らかのエラーが発生したか、 718 * 接続要求が拒否されたことを意味している。 738 719 */ 739 720 error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED | … … 750 731 if (error != E_OK) { 751 732 /* 752 * é信端ç¹ããåä»å£ã解æ¾ãã753 * ã¤ãã³ããã©ã°ãã¯ãã¼ãºã«è¨å®ããã733 * 通信端点から受付口を解放し、 734 * イベントフラグをクローズに設定する。 754 735 */ 755 736 cep->rep = NULL; -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 }); -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 78 66 79 67 /* 80 * udp_reply_no_port -- éä¿¡å 81 ã«ãã¼ããå®ç¾©ããã¦ããªããã¨ãéç¥ããã 68 * udp_reply_no_port -- 送信元にポートが定義されていないことを通知する。 82 69 */ 83 70 … … 91 78 NET_COUNT_MIB(udp_stats.udpNoPorts, 1); 92 79 93 /* ãã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/80 /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/ 94 81 if (ntohl(GET_IP4_HDR(input)->dst) == IF_GET_IFNET()->in4_ifaddr.addr) { 95 82 syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport)); 96 83 97 84 icmp_error(ICMP4_UNREACH_PORT, input); 98 /* icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ä¸ã¸æããã*/85 /* icmp_error では、ネットワークバッファ input を返却しないので下へ抜ける。*/ 99 86 100 87 } -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 #ifdef ETHER_CFG_MULTICAST 87 75 /* 88 * udp4_is_dstaddr_accept -- UDP ã®ãã¦å 89 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 76 * udp4_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 90 77 * 91 * DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ã以ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã78 * DHCP_CFG が定義されているときは、以下のデータグラムを受信する。 92 79 * 93 * ã»ãã¦å 94 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 95 * ã»ãã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾© 80 * ・あて先アドレスがブロードキャスト 81 * ・ローカルアドレスが未定義 96 82 */ 97 83 … … 116 102 #else 117 103 /* 118 * udp4_is_dstaddr_accept -- UDP ã®ãã¦å 119 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 104 * udp4_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 120 105 * 121 * DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ã以ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã106 * DHCP_CFG が定義されているときは、以下のデータグラムを受信する。 122 107 * 123 * ã»ãã¦å 124 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 125 * ã»ãã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾© 108 * ・あて先アドレスがブロードキャスト 109 * ・ローカルアドレスが未定義 126 110 */ 127 111 … … 146 130 147 131 /* 148 * udp_dstaddr_accept -- UDP ã®ãã¦å 149 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 132 * udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 150 133 * 151 * 以ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã134 * 以下の場合もデータグラムを受信する。 152 135 * 153 * ã»ãã¦å 154 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 136 * ・あて先アドレスがブロードキャスト 155 137 */ 156 138 … … 176 158 177 159 /* 178 * udp4_is_dstaddr_accept -- UDP ã®ãã¦å 179 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 160 * udp4_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 180 161 * 181 * 以ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã162 * 以下の場合もデータグラムを受信する。 182 163 * 183 * ã»ãã¦å 184 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 164 * ・あて先アドレスがブロードキャスト 185 165 */ 186 166 -
azure_iot_hub/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
r388 r389 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 * SNMP 㮠管çæ 128 å ±ãã¼ã¹ (MIB) 115 * SNMP の 管理情報ベース (MIB) 129 116 */ 130 117 … … 134 121 135 122 /* 136 * IPv6 㨠IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«123 * IPv6 と IPv4 で引数が異なる関数のコンパイル 137 124 */ 138 125 -
azure_iot_hub/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
r388 r389 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$ … … 124 112 125 113 /* 126 * IPv6 㨠IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«114 * IPv6 と IPv4 で引数が異なる関数のコンパイル 127 115 */ 128 116 … … 166 154 167 155 /* 168 * UDP åºåã¿ã¹ã¯169 * ãã³ããããã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ã使ç¨ããã156 * UDP 出力タスク 157 * ノンブロッキングコールを組み込んだとき使用する。 170 158 */ 171 159 … … 182 170 #if defined(_IP6_CFG) && !defined(SUPPORT_TCP) 183 171 184 /* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ãå®è¡ããã*/172 /* IPv6 のステートレス・アドレス自動設定を実行する。*/ 185 173 in6_if_up(IF_GET_IFNET()); 186 174 … … 189 177 while (true) { 190 178 191 /* åºåããã¹ããããã¾ã§å¾ 192 ã¤ã*/ 179 /* 出力がポストされるまで待つ。*/ 193 180 syscall(wai_sem(SEM_UDP_POST_OUTPUT)); 194 181 -
azure_iot_hub/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
r388 r389 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 131 119 #if (defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0) || (defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0) 132 120 133 static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO; /* èªåå²ãå½ã¦çªå·*/121 static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO; /* 自動割り当て番号 */ 134 122 135 123 #endif /* of #if (defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0) || (defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0) */ 136 124 137 125 /* 138 * IPv6 㨠IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«126 * IPv6 と IPv4 で引数が異なる関数のコンパイル 139 127 */ 140 128 -
azure_iot_hub/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
r388 r389 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 … … 128 116 129 117 /* 130 * TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå 131 ¨ã¦ã®æ©è½ã 132 * ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ããæå¹ã«ããã 118 * TINET をライブラリ化しない場合は、全ての機能を 119 * オブジェクトファイルに出力するため、マクロを有効にする。 133 120 */ 134 121 … … 149 136 150 137 /* 151 * IPv6 㨠IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«138 * IPv6 と IPv4 で引数が異なる関数のコンパイル 152 139 */ 153 140 … … 252 239 253 240 /* 254 * udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ãã£ã³ã»ã«ãæ¨æºæ©è½ã241 * udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】 255 242 */ 256 243 … … 260 247 udp_can_cep (ID cepid, FN fncd) 261 248 { 262 /* IPv6 ç¨ã® UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/249 /* IPv6 用の UDP 通信端点 ID をチェックする。*/ 263 250 if (VALID_UDP6_CEPID(cepid)) { 264 251 265 /* UDP é信端ç¹ãå¾ã¦ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/252 /* UDP 通信端点を得てメイン関数を呼び出す。*/ 266 253 return udp6_cancel_cep(GET_UDP6_CEP(cepid), fncd); 267 254 } 268 255 269 /* IPv4 ç¨ã® UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/256 /* IPv4 用の UDP 通信端点 ID をチェックする。*/ 270 257 else if (VALID_UDP4_CEPID(cepid)) { 271 258 272 /* UDP é信端ç¹ãå¾ã¦ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/259 /* UDP 通信端点を得てメイン関数を呼び出す。*/ 273 260 return udp4_cancel_cep(GET_UDP4_CEP(cepid), fncd); 274 261 } -
azure_iot_hub/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
r388 r389 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 * TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå 128 ¨ã¦ã®æ©è½ã 129 * ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ããæå¹ã«ããã 115 * TINET をライブラリ化しない場合は、全ての機能を 116 * オブジェクトファイルに出力するため、マクロを有効にする。 130 117 */ 131 118 … … 142 129 143 130 /* 144 * IPv6 㨠IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«131 * IPv6 と IPv4 で引数が異なる関数のコンパイル 145 132 */ 146 133 -
azure_iot_hub/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
r388 r389 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 … … 95 83 96 84 /* 97 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©85 * TINET 1.1 との互換性のための定義 98 86 */ 99 87 … … 108 96 109 97 /* 110 * ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©98 * コールバック関数の定義 111 99 */ 112 100 … … 124 112 125 113 /* 126 * UDP é信端ç¹127 */ 128 129 /* IPv6 ç¨ UDP é信端ç¹*/114 * UDP 通信端点 115 */ 116 117 /* IPv6 用 UDP 通信端点 */ 130 118 131 119 typedef struct t_udp6_cep { 132 120 133 121 /* 134 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã122 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 135 123 */ 136 ATR cepatr; /* UDP é信端ç¹å±æ§*/137 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹*/138 t_udp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/124 ATR cepatr; /* UDP 通信端点属性 */ 125 T_IPV6EP myaddr; /* 自分のアドレス */ 126 t_udp_callback callback; /* コールバック関数 */ 139 127 140 128 /* 141 * TINET ç¬èªã®ã¡ã³ã129 * TINET 独自のメンバ 142 130 */ 143 uint16_t flags; /* é信端ç¹ãã©ã°*/144 ID semid_lock; /* é信端ç¹ããã¯*/145 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å*/146 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å*/147 ID rcvqid; /* éã³ã¼ã«ããã¯ç¨åä¿¡ãã¥ã¼èå¥å*/148 T_NET_BUF *cb_netbuf; /* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/131 uint16_t flags; /* 通信端点フラグ */ 132 ID semid_lock; /* 通信端点ロック */ 133 ID snd_tskid; /* 送信タスク識別子 */ 134 ID rcv_tskid; /* 受信タスク識別子 */ 135 ID rcvqid; /* 非コールバック用受信キュー識別子*/ 136 T_NET_BUF *cb_netbuf; /* コールバック用受信ネットワークバッファ*/ 149 137 150 138 #ifdef UDP_CFG_NON_BLOCKING 151 139 152 T_IPV6EP *snd_p_dstaddr; /* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 153 T_IPV6EP *rcv_p_dstaddr; /* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 154 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 155 é ã¢ãã¬ã¹ */ 156 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 157 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 158 é ã¢ãã¬ã¹ */ 159 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 140 T_IPV6EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/ 141 T_IPV6EP *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/ 142 void *snd_data; /* 送信データ領域の先頭アドレス */ 143 int_t snd_len; /* 送信データ領域の長さ */ 144 void *rcv_data; /* 受信データ領域の先頭アドレス */ 145 int_t rcv_len; /* 受信データ領域の長さ */ 160 146 161 147 #endif /* of #ifdef UDP_CFG_NON_BLOCKING */ 162 148 163 149 #ifdef UDP_CFG_EXTENTIONS 164 ER error; /* å¾ 165 ã¡ä¸ã«çºçããã¨ã©ã¼ */ 150 ER error; /* 待ち中に発生したエラー */ 166 151 #endif 167 152 … … 174 159 } T_UDP6_CEP; 175 160 176 /* IPv4 ç¨ UDP é信端ç¹*/161 /* IPv4 用 UDP 通信端点 */ 177 162 178 163 typedef struct t_udp4_cep { 179 164 180 165 /* 181 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã166 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 182 167 */ 183 ATR cepatr; /* UDP é信端ç¹å±æ§*/184 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹*/185 t_udp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/168 ATR cepatr; /* UDP 通信端点属性 */ 169 T_IPV4EP myaddr; /* 自分のアドレス */ 170 t_udp_callback callback; /* コールバック関数 */ 186 171 187 172 /* 188 * TINET ç¬èªã®ã¡ã³ã173 * TINET 独自のメンバ 189 174 */ 190 uint16_t flags; /* é信端ç¹ãã©ã°*/191 ID semid_lock; /* é信端ç¹ããã¯*/192 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å*/193 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å*/194 ID rcvqid; /* éã³ã¼ã«ããã¯ç¨åä¿¡ãã¥ã¼èå¥å*/195 T_NET_BUF *cb_netbuf; /* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/175 uint16_t flags; /* 通信端点フラグ */ 176 ID semid_lock; /* 通信端点ロック */ 177 ID snd_tskid; /* 送信タスク識別子 */ 178 ID rcv_tskid; /* 受信タスク識別子 */ 179 ID rcvqid; /* 非コールバック用受信キュー識別子*/ 180 T_NET_BUF *cb_netbuf; /* コールバック用受信ネットワークバッファ*/ 196 181 197 182 #ifdef UDP_CFG_NON_BLOCKING 198 183 199 T_IPV4EP *snd_p_dstaddr; /* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 200 T_IPV4EP *rcv_p_dstaddr; /* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/ 201 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 202 é ã¢ãã¬ã¹ */ 203 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 204 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 205 é ã¢ãã¬ã¹ */ 206 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 184 T_IPV4EP *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/ 185 T_IPV4EP *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/ 186 void *snd_data; /* 送信データ領域の先頭アドレス */ 187 int_t snd_len; /* 送信データ領域の長さ */ 188 void *rcv_data; /* 受信データ領域の先頭アドレス */ 189 int_t rcv_len; /* 受信データ領域の長さ */ 207 190 208 191 #endif /* of #ifdef UDP_CFG_NON_BLOCKING */ 209 192 210 193 #ifdef UDP_CFG_EXTENTIONS 211 ER error; /* å¾ 212 ã¡ä¸ã«çºçããã¨ã©ã¼ */ 194 ER error; /* 待ち中に発生したエラー */ 213 195 #endif 214 196 … … 236 218 237 219 /* 238 * UDP é信端ç¹ãã©ã° 239 */ 240 241 #define UDP_CEP_FLG_POST_OUTPUT UINT_C(0x0200) /* éä¿¡ãéå§ããã */ 242 #define UDP_CEP_FLG_DYNAMIC UINT_C(0x0400) /* åççæã»åé¤å¯è½é信端ç¹ã */ 243 #define UDP_CEP_FLG_VALID UINT_C(0x0800) /* çææ¸ã¿ã§æå¹ãªé信端ç¹ã */ 244 245 /* 246 * ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾© 247 */ 248 249 #define TMIN_UDP_CEPID 1 /* UDP éä¿¡ç«¯ç¹ ID ã®æå°å¤ */ 250 #define TMIN_UDP6_CEPID 1 /* UDP/IPv6 éä¿¡ç«¯ç¹ ID ã®æå°å¤ */ 251 #define TMIN_UDP4_CEPID (TNUM_UDP6_CEPID+1) /* UDP/IPv4 éä¿¡ç«¯ç¹ ID ã®æå°å¤ */ 252 253 /* 254 * SNMP 㮠管çæ 255 å ±ãã¼ã¹ (MIB) 220 * UDP 通信端点フラグ 221 */ 222 223 #define UDP_CEP_FLG_POST_OUTPUT UINT_C(0x0200) /* 送信を開始する。 */ 224 #define UDP_CEP_FLG_DYNAMIC UINT_C(0x0400) /* 動的生成・削除可能通信端点。 */ 225 #define UDP_CEP_FLG_VALID UINT_C(0x0800) /* 生成済みで有効な通信端点。 */ 226 227 /* 228 * オブジェクト ID の最小値の定義 229 */ 230 231 #define TMIN_UDP_CEPID 1 /* UDP 通信端点 ID の最小値 */ 232 #define TMIN_UDP6_CEPID 1 /* UDP/IPv6 通信端点 ID の最小値 */ 233 #define TMIN_UDP4_CEPID (TNUM_UDP6_CEPID+1) /* UDP/IPv4 通信端点 ID の最小値 */ 234 235 /* 236 * SNMP の 管理情報ベース (MIB) 256 237 */ 257 238 … … 264 245 265 246 /* 266 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã247 * 関数シミュレーションマクロ 267 248 */ 268 249 … … 286 267 287 268 /* 288 * å 289 ¨åå¤æ° 269 * 全域変数 290 270 */ 291 271 292 272 extern T_UDP_STATS udp_stats; 293 273 294 /* UDP é信端ç¹*/274 /* UDP 通信端点 */ 295 275 296 276 extern T_UDP6_CEP udp6_cep[]; … … 314 294 315 295 /* 316 * TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©296 * TINET 1.3 との互換性のための定義 317 297 */ 318 298 … … 321 301 322 302 /* 323 * é¢æ°303 * 関数 324 304 */ 325 305 … … 350 330 extern void udp4_input_select (T_UDP4_CEP *cep, T_NET_BUF *input, uint_t off); 351 331 352 /* ãã³ããããã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯*/332 /* ノンブロッキングコールを行う場合に組み込むタスク */ 353 333 354 334 extern void udp_output_task(intptr_t exinf); -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 80 68 81 69 /* 82 * udp_input_select -- UDP ã®å 83 ¥åå¦çã®é¸æ 70 * udp_input_select -- UDP の入力処理の選択 84 71 */ 85 72 … … 93 80 para.len = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE); 94 81 95 if (cep->rcv_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/82 if (cep->rcv_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 96 83 if (psnd_dtq(cep->rcvqid, (intptr_t)input) != E_OK) { 97 84 NET_COUNT_UDP(net_count_udp.in_err_packets, 1); … … 103 90 #ifdef UDP_CFG_NON_BLOCKING 104 91 105 else if (cep->rcv_p_dstaddr != NULL) { /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/106 107 /* p_dstaddr ãè¨å®ããã*/92 else if (cep->rcv_p_dstaddr != NULL) { /* ノンブロッキングコールでペンディング中 */ 93 94 /* p_dstaddr を設定する。*/ 108 95 cep->rcv_p_dstaddr->portno = ntohs(udph->sport); 109 96 IN_COPY_TO_HOST(&cep->rcv_p_dstaddr->ipaddr, input); 110 97 111 /* ãã¼ã¿ããããã¡ã«ç§»ãã*/98 /* データをバッファに移す。*/ 112 99 memcpy(cep->rcv_data, GET_UDP_SDU(input, off), 113 100 (size_t)(para.len < cep->rcv_len ? para.len : cep->rcv_len)); … … 130 117 else if (IS_PTR_DEFINED(cep->callback)) { 131 118 132 /* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/119 /* コールバック関数を呼び出す。*/ 133 120 cep->cb_netbuf = input; 134 121 … … 148 135 #endif 149 136 /* 150 * ãããã¯ã¼ã¯ãããã¡ããã®ã¾ã¾ã§ããã°ãã³ã¼ã«ããã¯é¢æ°å 151 㧠152 * ãã¼ã¿ãèªã¿åºããªãã£ããã¨ã«ãªãã®ã§ãæ¨ã¦ãã 137 * ネットワークバッファがそのままであれば、コールバック関数内で 138 * データを読み出さなかったことになるので、捨てる。 153 139 */ 154 140 if (cep->cb_netbuf != NULL) { … … 169 155 170 156 /* 171 * udp_input -- UDP ã®å 172 ¥åé¢æ° 157 * udp_input -- UDP の入力関数 173 158 */ 174 159 … … 191 176 NET_COUNT_MIB(udp_stats.udpInDatagrams, 1); 192 177 193 /* ãããé·ããã§ãã¯ããã*/178 /* ヘッダ長をチェックする。*/ 194 179 if (input->len < hlen + UDP_HDR_SIZE) 195 180 goto buf_rel; … … 197 182 udph = (T_UDP_HDR *)(input->buf + *offp); 198 183 199 /* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ãã*/184 /* データグラム長をチェックする */ 200 185 ulen = ntohs(udph->ulen); 201 186 if (ulen != input->len - hlen) 202 187 goto buf_rel; 203 188 204 /* å®å 205 ãã¼ãã 0 ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ãããRFC768 */ 189 /* 宛先ポートが 0 のデータグラムは破棄する。RFC768 */ 206 190 if (udph->dport == 0) 207 191 goto buf_rel; … … 209 193 #ifdef UDP_CFG_IN_CHECKSUM 210 194 211 /* ãã§ãã¯ãµã ããã§ãã¯ãã*/195 /* チェックサムをチェックする */ 212 196 if (udph->sum && IN_CKSUM(input, IPPROTO_UDP, *offp, ulen) != 0) 213 197 goto buf_rel; … … 219 203 #if TNUM_UDP4_CEPID > 0 220 204 221 /* UDP é信端ç¹ãå¾ãã*/205 /* UDP 通信端点を得る。*/ 222 206 cep = udp4_find_cep(input, *offp); 223 207 … … 233 217 #else /* of #if TNUM_UDP4_CEPID > 0 */ 234 218 235 cep = 0; /* warning åé¿ç¨ã®ããã¼*/219 cep = 0; /* warning 回避用のダミー */ 236 220 if ((cep6 = udp6_find_cep(input, *offp)) != NULL) 237 221 udp6_input_select(cep6, input, *offp); … … 245 229 #else /* of #if defined(_IP6_CFG) && defined(_IP4_CFG) && API_PROTO == API_PROTO_IPV4 */ 246 230 247 /* UDP é信端ç¹ãå¾ãã*/231 /* UDP 通信端点を得る。*/ 248 232 cep = UDP_FIND_CEP(input, *offp); 249 233 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_output.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 78 66 79 67 /* 80 * udp_output -- UDP ã®åºåé¢æ°81 * ãã³ããããã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ã使ç¨ããã68 * udp_output -- UDP の出力関数 69 * ノンブロッキングコールを組み込んだとき使用する。 82 70 */ 83 71 … … 93 81 #endif /* of #ifdef UDP_CFG_OUT_CHECKSUM */ 94 82 95 /* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/83 /* IP データグラムを割り当てる。*/ 96 84 if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + cep->snd_len), 0, 97 85 &cep->snd_p_dstaddr->ipaddr, … … 102 90 } 103 91 104 /* UDP ãããã«æ 105 å ±ãè¨å®ããã*/ 92 /* UDP ヘッダに情報を設定する。*/ 106 93 udph = GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET(output)); 107 94 udph->sport = htons(cep->myaddr.portno); … … 110 97 udph->sum = 0; 111 98 112 /* ãã¼ã¿ãã³ãã¼ããã*/99 /* データをコピーする。*/ 113 100 memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET(output)), 114 101 cep->snd_data, (size_t)cep->snd_len); … … 119 106 (uint_t)(UDP_HDR_SIZE + cep->snd_len)); 120 107 121 /* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå 122 ¥ããã*/ 108 /* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/ 123 109 if (sum == 0) 124 110 sum = UINT_C(0xffff); … … 127 113 #endif/* of #ifdef UDP_CFG_OUT_CHECKSUM */ 128 114 129 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/115 /* ネットワークバッファ長を調整する。*/ 130 116 output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE(output) + cep->snd_len); 131 117 132 /* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/118 /* ネットワーク層 (IP) の出力関数を呼び出す。*/ 133 119 if ((error = IP_OUTPUT(output, TMO_UDP_OUTPUT)) != E_OK) 134 120 goto err_ret; -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 78 66 79 67 /* 80 * udp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨å®ããã68 * udp_alloc_auto_port -- 自動割り当てポート番号を設定する。 81 69 */ 82 70 … … 114 102 115 103 /* 116 * udp_alloc_port -- æå®ããããã¼ãçªå·ãè¨å®ããã104 * udp_alloc_port -- 指定されたポート番号を設定する。 117 105 */ 118 106 … … 134 122 135 123 /* 136 * udp_find_cep -- ãã¼ãçªå·ãã UDP é信端ç¹ãå¾ãã124 * udp_find_cep -- ポート番号から UDP 通信端点を得る。 137 125 */ 138 126 … … 146 134 147 135 /* 148 * IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããé信端ç¹ãæ¢ç´¢ããã136 * IP アドレスとポート番号が一致する通信端点を探索する。 149 137 */ 150 138 for (cep = &UDP_CEP[TMAX_UDP_CEPID]; cep -- != UDP_CEP; ) { … … 159 147 160 148 /* 161 * udp_notify -- ICMP ã¨ã©ã¼ã®å¦ç149 * udp_notify -- ICMP エラーの処理 162 150 */ 163 151 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 83 71 84 72 /* 85 * udp_send_data -- ãã±ããéä¿¡ã®ä¸»è¦é¨73 * udp_send_data -- パケット送信の主要部 86 74 */ 87 75 … … 101 89 NET_COUNT_UDP(net_count_udp.out_packets, 1); 102 90 103 /* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/91 /* IP データグラム割り当ての時間を tmout から減ずる。*/ 104 92 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) 105 93 syscall(get_tim(&before)); 106 94 107 /* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/95 /* IP データグラムを割り当てる。*/ 108 96 if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + len), 0, 109 97 &p_dstaddr->ipaddr, … … 113 101 goto err_ret; 114 102 115 /* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/103 /* IP データグラム割り当ての時間を tmout から減ずる。*/ 116 104 if (!(tmout == TMO_POL || tmout == TMO_FEVR)) { 117 105 syscall(get_tim(&after)); … … 124 112 } 125 113 126 /* UDP ãããã«æ 127 å ±ãè¨å®ããã*/ 114 /* UDP ヘッダに情報を設定する。*/ 128 115 udph = GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET(output)); 129 116 udph->sport = htons(cep->myaddr.portno); … … 132 119 udph->sum = 0; 133 120 134 /* ãã¼ã¿ãã³ãã¼ããã*/121 /* データをコピーする。*/ 135 122 memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET(output)), data, (size_t)len); 136 123 … … 139 126 sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET(output), (uint_t)(UDP_HDR_SIZE + len)); 140 127 141 /* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå 142 ¥ããã*/ 128 /* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/ 143 129 if (sum == 0) 144 130 sum = 0xffff; … … 147 133 #endif /* of #ifdef UDP_CFG_OUT_CHECKSUM */ 148 134 149 /* ãããã¯ã¼ã¯ãããã¡é·ã調æ´ããã*/135 /* ネットワークバッファ長を調整する。*/ 150 136 output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE(output) + len); 151 137 152 /* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/138 /* ネットワーク層 (IP) の出力関数を呼び出す。*/ 153 139 if ((error = IP_OUTPUT(output, tmout)) == E_OK) { 154 140 NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1); … … 166 152 167 153 /* 168 * udp_cancel_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çããã£ã³ã»ã«ããã169 * 170 * udp_can_cep ããå¼åºãããã¡ã¤ã³é¢æ°154 * udp_cancel_cep -- ペンディングしている処理をキャンセルする。 155 * 156 * udp_can_cep から呼出されるメイン関数 171 157 */ 172 158 … … 178 164 ER error = E_OK, snd_err, rcv_err; 179 165 180 /* UDP é信端ç¹ããã§ãã¯ããã*/166 /* UDP 通信端点をチェックする。*/ 181 167 if (!VALID_UDP_CEP(cep)) 182 168 return E_NOEXS; 183 169 184 /* API æ©è½ã³ã¼ãããã§ãã¯ããã*/170 /* API 機能コードをチェックする。*/ 185 171 if (!VALID_TFN_UDP_CAN(fncd)) 186 172 return E_PAR; 187 173 188 /* é信端ç¹ãããã¯ããã*/174 /* 通信端点をロックする。*/ 189 175 syscall(wai_sem(cep->semid_lock)); 190 176 191 if (fncd == TFN_UDP_ALL) { /* TFN_UDP_ALL ã®å¦ç*/177 if (fncd == TFN_UDP_ALL) { /* TFN_UDP_ALL の処理 */ 192 178 193 179 snd_err = UDP_CAN_SND(cep, E_RLWAI); … … 195 181 196 182 /* 197 * snd_err 㨠rcv_err ã®ã©ã¡ããEV_NOPND198 * ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼183 * snd_err と rcv_err のどちらも EV_NOPND 184 * なら、ペンディングしていないのでエラー 199 185 */ 200 186 if (snd_err == EV_NOPND && rcv_err == EV_NOPND) … … 212 198 } 213 199 } 214 else if (fncd == TFN_UDP_SND_DAT) { /* éä¿¡å¦çã®ãã£ã³ã»ã«*/200 else if (fncd == TFN_UDP_SND_DAT) { /* 送信処理のキャンセル */ 215 201 if ((error = UDP_CAN_SND(cep, E_RLWAI)) == EV_NOPND) 216 202 error = E_OBJ; 217 203 } 218 else if (fncd == TFN_UDP_RCV_DAT) { /* åä¿¡å¦çã®ãã£ã³ã»ã«*/204 else if (fncd == TFN_UDP_RCV_DAT) { /* 受信処理のキャンセル */ 219 205 if ((error = UDP_CAN_RCV(cep, E_RLWAI)) == EV_NOPND) 220 206 error = E_OBJ; … … 223 209 error = E_PAR; 224 210 225 /* é信端ç¹ãããã¯ã解é¤ããã*/211 /* 通信端点をロックを解除する。*/ 226 212 syscall(sig_sem(cep->semid_lock)); 227 213 … … 236 222 237 223 /* 238 * udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ãã£ã³ã»ã«ãæ¨æºæ©è½ã224 * udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】 239 225 */ 240 226 … … 246 232 T_UDP_CEP *cep; 247 233 248 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/234 /* UDP 通信端点 ID をチェックする。*/ 249 235 if (!VALID_UDP_CEPID(cepid)) 250 236 return E_ID; 251 237 252 /* UDP é信端ç¹ãå¾ãã*/238 /* UDP 通信端点を得る。*/ 253 239 cep = GET_UDP_CEP(cepid); 254 240 255 /* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/241 /* メイン関数を呼び出す。*/ 256 242 return UDP_CANCEL_CEP(cep, fncd); 257 243 } … … 264 250 265 251 /* 266 * udp_cre_cep -- UDP é信端ç¹ã®çæãæ¡å¼µæ©è½ã252 * udp_cre_cep -- UDP 通信端点の生成【拡張機能】 267 253 */ 268 254 … … 275 261 ER error; 276 262 277 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/263 /* UDP 通信端点 ID をチェックする。*/ 278 264 if (!VALID_UDP_CEPID(cepid)) 279 265 return E_ID; 280 266 281 /* pk_ccep ã NULL ãªãã¨ã©ã¼*/267 /* pk_ccep が NULL ならエラー */ 282 268 if (pk_ccep == NULL) 283 269 return E_PAR; … … 286 272 287 273 /* 288 * API ã IPv6 㧠IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã289 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼274 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、 275 * IPv4 射影アドレスが指定されたらエラー 290 276 */ 291 277 if (in6_is_addr_ipv4mapped(&pk_ccep->myaddr.ipaddr)) … … 294 280 #endif /* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */ 295 281 296 /* UDP é信端ç¹ãå¾ãã*/282 /* UDP 通信端点を得る。*/ 297 283 cep = GET_UDP_CEP(cepid); 298 284 299 /* UDP é信端ç¹ããã§ãã¯ããã*/285 /* UDP 通信端点をチェックする。*/ 300 286 if (VALID_UDP_CEP(cep)) 301 287 return E_OBJ; 302 288 303 /* UDP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/289 /* UDP 通信端点が、動的生成用でなければエラー */ 304 290 if (!DYNAMIC_UDP_CEP(cep)) 305 291 return E_ID; 306 292 307 /* é信端ç¹ãããã¯ããã*/293 /* 通信端点をロックする。*/ 308 294 syscall(wai_sem(cep->semid_lock)); 309 295 310 296 /* 311 * UDP é信端ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼297 * UDP 通信端点をチェックする。生成済みであればエラー 312 298 */ 313 299 if (VALID_UDP_CEP(cep)) … … 316 302 317 303 /* 318 * èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã304 * 自ポート番号が UDP_PORTANY なら、自動で割り当てる。 319 305 */ 320 306 if (pk_ccep->myaddr.portno == UDP_PORTANY) … … 324 310 325 311 if (error == E_OK) { 326 /* UDP é信端ç¹çææ 327 å ±ãã³ãã¼ããã*/ 328 cep->cepatr = pk_ccep->cepatr; /* é信端ç¹å±æ§ */ 329 cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr; /* èªåã®ã¢ãã¬ã¹ */ 330 cep->callback = (void*)pk_ccep->callback; /* ã³ã¼ã«ãã㯠*/ 331 332 /* UDP é信端ç¹ãçææ¸ã¿ã«ããã*/ 312 /* UDP 通信端点生成情報をコピーする。*/ 313 cep->cepatr = pk_ccep->cepatr; /* 通信端点属性 */ 314 cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr; /* 自分のアドレス */ 315 cep->callback = (void*)pk_ccep->callback; /* コールバック */ 316 317 /* UDP 通信端点を生成済みにする。*/ 333 318 cep->flags |= UDP_CEP_FLG_VALID; 334 319 } 335 320 } 336 321 337 /* é信端ç¹ã®ããã¯ã解é¤ããã*/322 /* 通信端点のロックを解除する。*/ 338 323 syscall(sig_sem(cep->semid_lock)); 339 324 … … 346 331 347 332 /* 348 * udp_delete_cep -- UDP é信端ç¹ãåé¤ããã349 * 350 * udp_del_cep ããå¼åºãããã¡ã¤ã³é¢æ°333 * udp_delete_cep -- UDP 通信端点を削除する。 334 * 335 * udp_del_cep から呼出されるメイン関数 351 336 */ 352 337 … … 356 341 ER error; 357 342 358 /* UDP é信端ç¹ããã§ãã¯ããã*/343 /* UDP 通信端点をチェックする。*/ 359 344 if (!VALID_UDP_CEP(cep)) 360 345 return E_NOEXS; 361 346 362 /* UDP é信端ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼*/347 /* UDP 通信端点が、動的生成用でなければエラー */ 363 348 if (!DYNAMIC_UDP_CEP(cep)) 364 349 return E_ID; 365 350 366 /* é信端ç¹ãããã¯ããã*/351 /* 通信端点をロックする。*/ 367 352 syscall(wai_sem(cep->semid_lock)); 368 353 369 354 /* 370 * UDP é信端ç¹ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼371 * ã»æªçæã355 * UDP 通信端点をチェックする。未生成の場合はエラー 356 * ・未生成。 372 357 */ 373 358 if (!VALID_UDP_CEP(cep)) … … 377 362 UDP_CAN_RCV(cep, E_DLT); 378 363 379 /* UDP é信端ç¹ãæªçæã«ããã*/364 /* UDP 通信端点を未生成にする。*/ 380 365 cep->flags &= ~UDP_CEP_FLG_VALID; 381 366 error = E_OK; 382 367 } 383 368 384 /* é信端ç¹ã®ããã¯ã解é¤ããã*/369 /* 通信端点のロックを解除する。*/ 385 370 syscall(sig_sem(cep->semid_lock)); 386 371 … … 389 374 390 375 /* 391 * udp_del_cep -- UDP é信端ç¹ã®åé¤ãæ¡å¼µæ©è½ã376 * udp_del_cep -- UDP 通信端点の削除【拡張機能】 392 377 */ 393 378 … … 397 382 T_UDP_CEP *cep; 398 383 399 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/384 /* UDP 通信端点 ID をチェックする。*/ 400 385 if (!VALID_UDP_CEPID(cepid)) 401 386 return E_ID; 402 387 403 /* UDP é信端ç¹ãå¾ãã*/388 /* UDP 通信端点を得る。*/ 404 389 cep = GET_UDP_CEP(cepid); 405 390 406 /* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/391 /* メイン関数を呼び出す。*/ 407 392 return UDP_DELETE_CEP(cep); 408 393 } … … 413 398 414 399 /* 415 * udp_set_option -- UDP é信端ç¹ãªãã·ã§ã³ãè¨å®ããã416 * 417 * udp_set_opt ããå¼åºãããã¡ã¤ã³é¢æ°400 * udp_set_option -- UDP 通信端点オプションを設定する。 401 * 402 * udp_set_opt から呼出されるメイン関数 418 403 */ 419 404 … … 421 406 UDP_SET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen) 422 407 { 423 /* UDP é信端ç¹ããã§ãã¯ããã*/408 /* UDP 通信端点をチェックする。*/ 424 409 if (!VALID_UDP_CEP(cep)) 425 410 return E_NOEXS; … … 463 448 464 449 /* 465 * udp_set_opt -- UDP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãæ¡å¼µæ©è½ã466 * 467 * 注æ: è¨å®å¯è½ãª UDP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã450 * udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】 451 * 452 * 注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。 468 453 */ 469 454 … … 473 458 T_UDP_CEP *cep; 474 459 475 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/460 /* UDP 通信端点 ID をチェックする。*/ 476 461 if (!VALID_UDP_CEPID(cepid)) 477 462 return E_ID; 478 463 479 /* UDP é信端ç¹ãå¾ãã*/464 /* UDP 通信端点を得る。*/ 480 465 cep = GET_UDP_CEP(cepid); 481 466 482 /* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/467 /* メイン関数を呼び出す。*/ 483 468 return UDP_SET_OPTION(cep, optname, optval, optlen); 484 469 } … … 489 474 490 475 /* 491 * udp_get_option -- UDP é信端ç¹ãªãã·ã§ã³ãç²å¾ããã492 * 493 * udp_get_opt ããå¼åºãããã¡ã¤ã³é¢æ°476 * udp_get_option -- UDP 通信端点オプションを獲得する。 477 * 478 * udp_get_opt から呼出されるメイン関数 494 479 */ 495 480 … … 497 482 UDP_GET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen) 498 483 { 499 /* UDP é信端ç¹ããã§ãã¯ããã*/484 /* UDP 通信端点をチェックする。*/ 500 485 if (!VALID_UDP_CEP(cep)) 501 486 return E_NOEXS; … … 529 514 530 515 /* 531 * udp_get_opt -- UDP é信端ç¹ãªãã·ã§ã³ã®ç²å¾ãæ¡å¼µæ©è½ã532 * 533 * 注æ: è¨å®å¯è½ãª UDP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã516 * udp_get_opt -- UDP 通信端点オプションの獲得【拡張機能】 517 * 518 * 注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。 534 519 */ 535 520 … … 539 524 T_UDP_CEP *cep; 540 525 541 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/526 /* UDP 通信端点 ID をチェックする。*/ 542 527 if (!VALID_UDP_CEPID(cepid)) 543 528 return E_ID; 544 529 545 /* UDP é信端ç¹ãå¾ãã*/530 /* UDP 通信端点を得る。*/ 546 531 cep = GET_UDP_CEP(cepid); 547 532 548 /* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/533 /* メイン関数を呼び出す。*/ 549 534 return UDP_GET_OPTION(cep, optname, optval, optlen); 550 535 } … … 561 546 562 547 /* 563 * udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ãã£ã³ã»ã«548 * udp_can_snd -- ペンディングしている送信のキャンセル 564 549 */ 565 550 … … 567 552 UDP_CAN_SND (T_UDP_CEP *cep, ER error) 568 553 { 569 if (cep->snd_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/554 if (cep->snd_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 570 555 571 556 #ifdef UDP_CFG_EXTENTIONS 572 557 573 /* å¾ 574 ã¡ä¸ã«çºçããã¨ã©ã¼æ 575 å ±ãè¨å®ããã*/ 558 /* 待ち中に発生したエラー情報を設定する。*/ 576 559 cep->error = error; 577 560 … … 581 564 cep->snd_tskid = TA_NULL; 582 565 } 583 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/566 else /* どちらでもないならペンディングしていない */ 584 567 error = EV_NOPND; 585 568 … … 592 575 593 576 /* 594 * udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ãã£ã³ã»ã«577 * udp_can_rcv -- ペンディングしている受信のキャンセル 595 578 */ 596 579 … … 598 581 UDP_CAN_RCV (T_UDP_CEP *cep, ER error) 599 582 { 600 if (cep->rcv_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/583 if (cep->rcv_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 601 584 602 585 #ifdef UDP_CFG_EXTENTIONS 603 586 604 /* å¾ 605 ã¡ä¸ã«çºçããã¨ã©ã¼æ 606 å ±ãè¨å®ããã*/ 587 /* 待ち中に発生したエラー情報を設定する。*/ 607 588 cep->error = error; 608 589 … … 612 593 cep->rcv_tskid = TA_NULL; 613 594 } 614 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/595 else /* どちらでもないならペンディングしていない */ 615 596 error = EV_NOPND; 616 597 … … 623 604 624 605 /* 625 * udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã606 * udp_snd_dat -- パケットの送信【標準機能】 626 607 */ 627 608 … … 632 613 ER error; 633 614 634 /* p_dstaddr ã¾ã㯠data ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/615 /* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */ 635 616 if (p_dstaddr == NULL || data == NULL || tmout == TMO_NBLK) 636 617 return E_PAR; 637 618 638 /* ãã¼ã¿é·ããã§ãã¯ããã*/619 /* データ長をチェックする。*/ 639 620 if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU) 640 621 return E_PAR; … … 643 624 644 625 /* 645 * API ã IPv6 㧠IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã646 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼626 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、 627 * IPv4 射影アドレスが指定されたらエラー 647 628 */ 648 629 if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr)) … … 651 632 #endif /* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */ 652 633 653 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/634 /* UDP 通信端点 ID をチェックする。*/ 654 635 if (!VALID_UDP_CEPID(cepid)) 655 636 return E_ID; 656 637 657 /* UDP é信端ç¹ãå¾ãã*/638 /* UDP 通信端点を得る。*/ 658 639 cep = GET_UDP_CEP(cepid); 659 640 660 /* UDP é信端ç¹ããã§ãã¯ããã*/641 /* UDP 通信端点をチェックする。*/ 661 642 if (!VALID_UDP_CEP(cep)) 662 643 return E_NOEXS; 663 644 664 645 /* 665 * èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã646 * 自ポート番号が UDP_PORTANY なら、自動で割り当てる。 666 647 */ 667 648 if (cep->myaddr.portno == UDP_PORTANY) { … … 670 651 } 671 652 672 /* é信端ç¹ãããã¯ããã*/653 /* 通信端点をロックする。*/ 673 654 syscall(wai_sem(cep->semid_lock)); 674 655 675 656 if (cep->snd_tskid != TA_NULL) { 676 657 677 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/658 /* 非ノンブロッキングコールでペンディング中 */ 678 659 error = E_QOVR; 679 660 680 /* é信端ç¹ãããã¯ã解é¤ããã*/661 /* 通信端点をロックを解除する。*/ 681 662 syscall(sig_sem(cep->semid_lock)); 682 663 } 683 664 else { 684 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/665 /* 現在のタスク識別子を記録する。*/ 685 666 get_tid(&(cep->snd_tskid)); 686 667 687 668 #ifdef UDP_CFG_EXTENTIONS 688 669 689 /* å¾ 690 ã¡ä¸ã«çºçããã¨ã©ã¼æ 691 å ±ããªã»ããããã*/ 670 /* 待ち中に発生したエラー情報をリセットする。*/ 692 671 cep->error = E_OK; 693 672 694 673 #endif /* of #ifdef UDP_CFG_EXTENTIONS */ 695 674 696 /* é信端ç¹ãããã¯ã解é¤ããã*/675 /* 通信端点をロックを解除する。*/ 697 676 syscall(sig_sem(cep->semid_lock)); 698 677 699 /* ãã±ãããéä¿¡ããã*/678 /* パケットを送信する。*/ 700 679 error = UDP_SEND_DATA(cep, p_dstaddr, data, len, tmout); 701 680 702 681 #ifdef UDP_CFG_EXTENTIONS 703 682 704 /* å¾ 705 ã¡ä¸ã«çºçããã¨ã©ã¼æ 706 å ±ãè¿ãã*/ 683 /* 待ち中に発生したエラー情報を返す。*/ 707 684 if (error == E_RLWAI) 708 685 error = cep->error; … … 719 696 720 697 /* 721 * udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã698 * udp_rcv_dat -- パケットの受信【標準機能】 722 699 */ 723 700 … … 731 708 uint_t ulen, uhoff; 732 709 733 /* p_dstaddr ã¾ã㯠data ã NULL ãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼*/710 /* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */ 734 711 if (p_dstaddr == NULL || data == NULL || len < 0 || tmout == TMO_NBLK) 735 712 return E_PAR; 736 713 737 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/714 /* UDP 通信端点 ID をチェックする。*/ 738 715 if (!VALID_UDP_CEPID(cepid)) 739 716 return E_ID; 740 717 741 /* UDP é信端ç¹ãå¾ãã*/718 /* UDP 通信端点を得る。*/ 742 719 cep = GET_UDP_CEP(cepid); 743 720 744 /* UDP é信端ç¹ããã§ãã¯ããã*/721 /* UDP 通信端点をチェックする。*/ 745 722 if (!VALID_UDP_CEP(cep)) 746 723 return E_NOEXS; 747 724 748 /* é信端ç¹ãããã¯ããã*/725 /* 通信端点をロックする。*/ 749 726 syscall(wai_sem(cep->semid_lock)); 750 727 751 728 if (cep->rcv_tskid != TA_NULL) { 752 729 753 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/730 /* 非ノンブロッキングコールでペンディング中 */ 754 731 error = E_QOVR; 755 732 756 /* é信端ç¹ãããã¯ã解é¤ããã*/733 /* 通信端点をロックを解除する。*/ 757 734 syscall(sig_sem(cep->semid_lock)); 758 735 } 759 736 else { 760 737 761 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/738 /* 現在のタスク識別子を記録する。*/ 762 739 get_tid(&(cep->rcv_tskid)); 763 740 764 741 #ifdef UDP_CFG_EXTENTIONS 765 742 766 /* å¾ 767 ã¡ä¸ã«çºçããã¨ã©ã¼æ 768 å ±ããªã»ããããã*/ 743 /* 待ち中に発生したエラー情報をリセットする。*/ 769 744 cep->error = E_OK; 770 745 771 746 #endif /* of #ifdef UDP_CFG_EXTENTIONS */ 772 747 773 /* é信端ç¹ãããã¯ã解é¤ããã*/748 /* 通信端点をロックを解除する。*/ 774 749 syscall(sig_sem(cep->semid_lock)); 775 750 776 /* å 777 ¥åãããã¾ã§å¾ 778 ã¤ã*/ 751 /* 入力があるまで待つ。*/ 779 752 if (cep->cb_netbuf != NULL) { 780 753 781 754 /* 782 * ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸ãã 783 * udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã 784 * ãã§ã«å 785 ¥åæ¸ã¿ã§ããã 755 * ここにくる場合は、コールバック関数の中から 756 * udp_rcv_dat を呼び出していることになり、 757 * すでに入力済みである。 786 758 */ 787 759 input = cep->cb_netbuf; … … 792 764 #ifdef UDP_CFG_EXTENTIONS 793 765 794 /* å¾ 795 ã¡ä¸ã«çºçããã¨ã©ã¼æ 796 å ±ãè¿ãã*/ 766 /* 待ち中に発生したエラー情報を返す。*/ 797 767 if (error == E_RLWAI) 798 768 error = cep->error; … … 804 774 } 805 775 806 /* p_dstaddr ãè¨å®ããã*/776 /* p_dstaddr を設定する。*/ 807 777 uhoff = (uint_t)GET_UDP_HDR_OFFSET(input); 808 778 udph = GET_UDP_HDR(input, uhoff); … … 810 780 IN_COPY_TO_HOST(&p_dstaddr->ipaddr, input); 811 781 812 /* ãã¼ã¿ããããã¡ã«ç§»ãã*/782 /* データをバッファに移す。*/ 813 783 ulen = ntohs(udph->ulen); 814 784 if (ulen - UDP_HDR_SIZE > len) -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 * udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ãã£ã³ã»ã«73 * udp_can_snd -- ペンディングしている送信のキャンセル 86 74 */ 87 75 … … 89 77 UDP_CAN_SND (T_UDP_CEP *cep, ER error) 90 78 { 91 if (cep->snd_p_dstaddr != NULL) { /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/79 if (cep->snd_p_dstaddr != NULL) { /* ノンブロッキングコールでペンディング中 */ 92 80 if (IS_PTR_DEFINED(cep->callback)) 93 81 … … 101 89 cep->snd_p_dstaddr = NULL; 102 90 } 103 else if (cep->snd_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/91 else if (cep->snd_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 104 92 105 93 #ifdef UDP_CFG_EXTENTIONS 106 94 107 /* å¾ 108 ã¡ä¸ã«çºçããã¨ã©ã¼æ 109 å ±ãè¨å®ããã*/ 95 /* 待ち中に発生したエラー情報を設定する。*/ 110 96 cep->error = error; 111 97 … … 115 101 cep->snd_tskid = TA_NULL; 116 102 } 117 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/103 else /* どちらでもないならペンディングしていない */ 118 104 error = EV_NOPND; 119 105 … … 126 112 127 113 /* 128 * udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ãã£ã³ã»ã«114 * udp_can_rcv -- ペンディングしている受信のキャンセル 129 115 */ 130 116 … … 132 118 UDP_CAN_RCV (T_UDP_CEP *cep, ER error) 133 119 { 134 if (cep->rcv_p_dstaddr != NULL) { /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/120 if (cep->rcv_p_dstaddr != NULL) { /* ノンブロッキングコールでペンディング中 */ 135 121 if (IS_PTR_DEFINED(cep->callback)) 136 122 … … 144 130 cep->rcv_p_dstaddr = NULL; 145 131 } 146 else if (cep->rcv_tskid != TA_NULL) { /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/132 else if (cep->rcv_tskid != TA_NULL) { /* 非ノンブロッキングコールでペンディング中 */ 147 133 148 134 #ifdef UDP_CFG_EXTENTIONS 149 135 150 /* å¾ 151 ã¡ä¸ã«çºçããã¨ã©ã¼æ 152 å ±ãè¨å®ããã*/ 136 /* 待ち中に発生したエラー情報を設定する。*/ 153 137 cep->error = error; 154 138 … … 158 142 cep->rcv_tskid = TA_NULL; 159 143 } 160 else /* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã*/144 else /* どちらでもないならペンディングしていない */ 161 145 error = EV_NOPND; 162 146 … … 169 153 170 154 /* 171 * udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã155 * udp_snd_dat -- パケットの送信【標準機能】 172 156 */ 173 157 … … 178 162 ER error; 179 163 180 /* p_dstaddr ã¾ã㯠data ã NULL ãªãã¨ã©ã¼*/164 /* p_dstaddr または data が NULL ならエラー */ 181 165 if (p_dstaddr == NULL || data == NULL) 182 166 return E_PAR; 183 167 184 /* ãã¼ã¿é·ããã§ãã¯ããã*/168 /* データ長をチェックする。*/ 185 169 if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU) 186 170 return E_PAR; … … 189 173 190 174 /* 191 * API ã IPv6 㧠IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã192 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼175 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、 176 * IPv4 射影アドレスが指定されたらエラー 193 177 */ 194 178 if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr)) … … 197 181 #endif /* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */ 198 182 199 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/183 /* UDP 通信端点 ID をチェックする。*/ 200 184 if (!VALID_UDP_CEPID(cepid)) 201 185 return E_ID; 202 186 203 /* UDP é信端ç¹ãå¾ãã*/187 /* UDP 通信端点を得る。*/ 204 188 cep = GET_UDP_CEP(cepid); 205 189 206 /* UDP é信端ç¹ããã§ãã¯ããã*/190 /* UDP 通信端点をチェックする。*/ 207 191 if (!VALID_UDP_CEP(cep)) 208 192 return E_NOEXS; 209 193 210 194 /* 211 * èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã195 * 自ポート番号が UDP_PORTANY なら、自動で割り当てる。 212 196 */ 213 197 if (cep->myaddr.portno == UDP_PORTANY) { … … 217 201 218 202 /* 219 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã203 * タイムアウトをチェックする。 220 204 */ 221 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/222 223 /* é信端ç¹ãããã¯ããã*/205 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 206 207 /* 通信端点をロックする。*/ 224 208 syscall(wai_sem(cep->semid_lock)); 225 209 226 210 if (cep->snd_p_dstaddr != NULL) { 227 211 228 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/212 /* ノンブロッキングコールでペンディング中 */ 229 213 error = E_QOVR; 230 214 231 /* é信端ç¹ãããã¯ã解é¤ããã*/215 /* 通信端点をロックを解除する。*/ 232 216 syscall(sig_sem(cep->semid_lock)); 233 217 } 234 218 else if (cep->snd_tskid != TA_NULL) { 235 219 236 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/237 error = E_OBJ; 238 239 /* é信端ç¹ãããã¯ã解é¤ããã*/220 /* 非ノンブロッキングコールでペンディング中 */ 221 error = E_OBJ; 222 223 /* 通信端点をロックを解除する。*/ 240 224 syscall(sig_sem(cep->semid_lock)); 241 225 } … … 246 230 cep->snd_len = len; 247 231 248 /* é信端ç¹ãããã¯ã解é¤ããã*/232 /* 通信端点をロックを解除する。*/ 249 233 syscall(sig_sem(cep->semid_lock)); 250 234 … … 254 238 } 255 239 } 256 else { /* éãã³ããããã³ã°ã³ã¼ã«*/240 else { /* 非ノンブロッキングコール */ 257 241 258 /* é信端ç¹ãããã¯ããã*/242 /* 通信端点をロックする。*/ 259 243 syscall(wai_sem(cep->semid_lock)); 260 244 261 245 if (cep->snd_p_dstaddr != NULL) { 262 246 263 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/264 error = E_OBJ; 265 266 /* é信端ç¹ãããã¯ã解é¤ããã*/247 /* ノンブロッキングコールでペンディング中 */ 248 error = E_OBJ; 249 250 /* 通信端点をロックを解除する。*/ 267 251 syscall(sig_sem(cep->semid_lock)); 268 252 } 269 253 else if (cep->snd_tskid != TA_NULL) { 270 254 271 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/255 /* 非ノンブロッキングコールでペンディング中 */ 272 256 error = E_QOVR; 273 257 274 /* é信端ç¹ãããã¯ã解é¤ããã*/258 /* 通信端点をロックを解除する。*/ 275 259 syscall(sig_sem(cep->semid_lock)); 276 260 } 277 261 else { 278 262 279 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/263 /* 現在のタスク識別子を記録する。*/ 280 264 get_tid(&(cep->snd_tskid)); 281 265 282 /* é信端ç¹ãããã¯ã解é¤ããã*/283 syscall(sig_sem(cep->semid_lock)); 284 285 /* ãã±ãããéä¿¡ããã*/266 /* 通信端点をロックを解除する。*/ 267 syscall(sig_sem(cep->semid_lock)); 268 269 /* パケットを送信する。*/ 286 270 error = UDP_SEND_DATA(cep, p_dstaddr, data, len, tmout); 287 271 } … … 296 280 297 281 /* 298 * udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã282 * udp_rcv_dat -- パケットの受信【標準機能】 299 283 */ 300 284 … … 308 292 uint_t ulen, uhoff; 309 293 310 /* p_dstaddr ã¾ã㯠data ã NULL ããlen < 0 ãªãã¨ã©ã¼*/294 /* p_dstaddr または data が NULL か、len < 0 ならエラー */ 311 295 if (p_dstaddr == NULL || data == NULL || len < 0) 312 296 return E_PAR; 313 297 314 /* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/298 /* UDP 通信端点 ID をチェックする。*/ 315 299 if (!VALID_UDP_CEPID(cepid)) 316 300 return E_ID; 317 301 318 /* UDP é信端ç¹ãå¾ãã*/302 /* UDP 通信端点を得る。*/ 319 303 cep = GET_UDP_CEP(cepid); 320 304 321 /* UDP é信端ç¹ããã§ãã¯ããã*/305 /* UDP 通信端点をチェックする。*/ 322 306 if (!VALID_UDP_CEP(cep)) 323 307 return E_NOEXS; 324 308 325 309 /* 326 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã310 * タイムアウトをチェックする。 327 311 */ 328 312 329 if (tmout == TMO_NBLK) { /* ãã³ããããã³ã°ã³ã¼ã«*/330 331 /* é信端ç¹ãããã¯ããã*/313 if (tmout == TMO_NBLK) { /* ノンブロッキングコール */ 314 315 /* 通信端点をロックする。*/ 332 316 syscall(wai_sem(cep->semid_lock)); 333 317 334 318 if (cep->rcv_p_dstaddr != NULL) 335 319 336 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/320 /* ノンブロッキングコールでペンディング中 */ 337 321 error = E_QOVR; 338 322 339 323 else if (cep->rcv_tskid != TA_NULL) 340 324 341 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/325 /* 非ノンブロッキングコールでペンディング中 */ 342 326 error = E_OBJ; 343 327 else { … … 348 332 } 349 333 350 /* é信端ç¹ãããã¯ã解é¤ããã*/334 /* 通信端点をロックを解除する。*/ 351 335 syscall(sig_sem(cep->semid_lock)); 352 336 return error; 353 337 } 354 else { /* éãã³ããããã³ã°ã³ã¼ã«*/355 356 /* é信端ç¹ãããã¯ããã*/338 else { /* 非ノンブロッキングコール */ 339 340 /* 通信端点をロックする。*/ 357 341 syscall(wai_sem(cep->semid_lock)); 358 342 359 343 if (cep->rcv_p_dstaddr != NULL) { 360 344 361 /* ãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/362 error = E_OBJ; 363 364 /* é信端ç¹ãããã¯ã解é¤ããã*/345 /* ノンブロッキングコールでペンディング中 */ 346 error = E_OBJ; 347 348 /* 通信端点をロックを解除する。*/ 365 349 syscall(sig_sem(cep->semid_lock)); 366 350 } 367 351 else if (cep->rcv_tskid != TA_NULL) { 368 352 369 /* éãã³ããããã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸*/353 /* 非ノンブロッキングコールでペンディング中 */ 370 354 error = E_QOVR; 371 355 372 /* é信端ç¹ãããã¯ã解é¤ããã*/356 /* 通信端点をロックを解除する。*/ 373 357 syscall(sig_sem(cep->semid_lock)); 374 358 } 375 359 else { 376 360 377 /* ç¾å¨ã®ã¿ã¹ã¯èå¥åãè¨é²ããã*/361 /* 現在のタスク識別子を記録する。*/ 378 362 get_tid(&(cep->rcv_tskid)); 379 363 380 /* é信端ç¹ãããã¯ã解é¤ããã*/ 381 syscall(sig_sem(cep->semid_lock)); 382 383 /* å 384 ¥åãããã¾ã§å¾ 385 ã¤ã*/ 364 /* 通信端点をロックを解除する。*/ 365 syscall(sig_sem(cep->semid_lock)); 366 367 /* 入力があるまで待つ。*/ 386 368 if (cep->cb_netbuf != NULL) { 387 369 388 370 /* 389 * ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸ãã 390 * udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã 391 * ãã§ã«å 392 ¥åæ¸ã¿ã§ããã 371 * ここにくる場合は、コールバック関数の中から 372 * udp_rcv_dat を呼び出していることになり、 373 * すでに入力済みである。 393 374 */ 394 375 input = cep->cb_netbuf; … … 400 381 } 401 382 402 /* p_dstaddr ãè¨å®ããã*/383 /* p_dstaddr を設定する。*/ 403 384 uhoff = (uint_t)GET_UDP_HDR_OFFSET(input); 404 385 udph = GET_UDP_HDR(input, uhoff); … … 406 387 IN_COPY_TO_HOST(&p_dstaddr->ipaddr, input); 407 388 408 /* ãã¼ã¿ããããã¡ã«ç§»ãã*/389 /* データをバッファに移す。*/ 409 390 ulen = ntohs(udph->ulen); 410 391 if (ulen - UDP_HDR_SIZE > len) -
azure_iot_hub/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
r388 r389 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 * RFC2402 èªè¨¼ããã70 * RFC2402 認証ヘッダ 83 71 */ 84 72 … … 86 74 uint8_t next; /* Next Header */ 87 75 uint8_t len; 88 /* 4 ãªã¯ãããåä½ã®é·ãããã ãããã¼ã¿é· + 1 ãå 89 ¥ãã */ 76 /* 4 オクテット単位の長さ。ただし、データ長 + 1 が入る。 */ 90 77 uint16_t reserved; 91 78 uint32_t spi; /* Security Parameter Index (SPI) */ 92 uint32_t seq; /* ã·ã¼ã±ã³ã¹çªå·*/79 uint32_t seq; /* シーケンス番号 */ 93 80 } __attribute__((packed, aligned(2))) T_IP6_AH_HDR; 94 81 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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; -
azure_iot_hub/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
r388 r389 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$ … … 81 69 82 70 /* 83 * RFC2406 æå·åããã71 * RFC2406 暗号化ヘッダ 84 72 */ 85 73 86 74 typedef struct t_esp_hdr { 87 75 int32_t spi; /* Security Parameter Index (SPI) */ 88 int32_t seq; /* ã·ã¼ã±ã³ã¹çªå·*/76 int32_t seq; /* シーケンス番号 */ 89 77 } __attribute__((packed, aligned(2)))T_ESP_HDR; 90 78 91 79 typedef struct t_esp_tail { 92 int8_t padlen; /* ããã£ã³ã°é·*/80 int8_t padlen; /* パディング長 */ 93 81 int8_t next; /* Next Header */ 94 82 } __attribute__((packed, aligned(2)))T_ESP_TAIL; … … 125 113 126 114 /* 127 * é¢æ°115 * 関数 128 116 */ 129 117 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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)); -
azure_iot_hub/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
r388 r389 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 memcpy(&ip6h->dst, &ip6_frag_dest[ip6fq - ip6_frag_queue], sizeof(T_IN6_ADDR)); 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) { -
azure_iot_hub/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
r388 r389 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$ … … 157 145 158 146 /* 159 * å¤æ°147 * 変数 160 148 */ 161 149 … … 163 151 164 152 /* 165 * SNMP 㮠管çæ 166 å ±ãã¼ã¹ (MIB) 153 * SNMP の 管理情報ベース (MIB) 167 154 */ 168 155 … … 172 159 173 160 /* 174 * icmp6_output -- ICMP6 ãã±ãããéä¿¡ããã161 * icmp6_output -- ICMP6 パケットを送信する。 175 162 */ 176 163 … … 184 171 185 172 /* 186 * å®å 187 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 188 ã¢ãã¬ã¹ãã 189 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 173 * 宛先アドレスにふさわしい送信元アドレスを、 174 * ネットワークインタフェースから探索して利用する。 190 175 */ 191 176 ip6h = GET_IP6_HDR(output); … … 199 184 icmp6h = GET_ICMP6_HDR(output, off); 200 185 201 /* ãã§ãã¯ãµã ãè¨ç®ããã*/186 /* チェックサムを計算する。*/ 202 187 icmp6h->sum = 0; 203 188 icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)icmp6h - output->buf, 204 189 ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE)); 205 190 206 /* éä¿¡ããã*/191 /* 送信する。*/ 207 192 NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS], 208 193 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 213 198 214 199 /* 215 * icmp6_echo_request -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç200 * icmp6_echo_request -- エコー要求を受信したときの処理 216 201 */ 217 202 … … 231 216 232 217 /* 233 * IPv6 ããã㨠ICMPv6 ãããéã®æ¡å¼µããããé¤å»ããã218 * IPv6 ヘッダと ICMPv6 ヘッダ間の拡張ヘッダを除去する。 234 219 */ 235 220 diff = off - IF_IP6_HDR_SIZE; 236 221 if (diff > 0) { 237 /* ICMPv6 ããããåã«è©°ããã*/222 /* ICMPv6 ヘッダを前に詰める。*/ 238 223 memmove(input->buf + IF_IP6_HDR_SIZE, input->buf + off, input->len - off); 239 224 off = IF_IP6_HDR_SIZE; 240 225 241 /* ãã¤ãã¼ãé·ã調æ´ããã*/226 /* ペイロード長を調整する。*/ 242 227 ip6h->plen = htons(ntohs(ip6h->plen) - diff); 243 228 input->len -= diff; … … 252 237 253 238 /* 254 * ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (128) ãã255 * ã¨ã³ã¼å¿ç (129) ã«å¤æ´ãã¦éãè¿ãã239 * メッセージの型をエコー要求 (128) から 240 * エコー応答 (129) に変更して送り返す。 256 241 */ 257 242 icmp6h->type = ICMP6_ECHO_REPLY; 258 243 259 /* IPv6 ãããã®çºä¿¡å 260 ã¢ãã¬ã¹ã¨å®å 261 ã¢ãã¬ã¹ãå 262 ¥æ¿ããã*/ 244 /* IPv6 ヘッダの発信元アドレスと宛先アドレスを入替える。*/ 263 245 memcpy(&dst, &ip6h->dst, sizeof(T_IN6_ADDR)); 264 246 memcpy(&ip6h->dst, &ip6h->src, sizeof(T_IN6_ADDR)); … … 266 248 267 249 /* 268 * å 269 ã®å®å 270 ã¢ãã¬ã¹ããã«ããã£ã¹ãã®å ´åã¯ã 271 * å®å 272 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 273 ã¢ãã¬ã¹ãã 274 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 250 * 元の宛先アドレスがマルチキャストの場合は、 251 * 宛先アドレスにふさわしい送信元アドレスを、 252 * ネットワークインタフェースから探索して利用する。 275 253 */ 276 254 if (IN6_IS_ADDR_MULTICAST(&dst)) { … … 283 261 } 284 262 285 /* 次ãããã¨ããããªããããè¨å®ããã*/263 /* 次ヘッダとホップリミットを設定する。*/ 286 264 ip6h->next = IPPROTO_ICMPV6; 287 265 ip6h->hlim = IP6_DEFTTL; 288 266 289 /* ãã§ãã¯ãµã ãè¨ç®ããã*/267 /* チェックサムを計算する。*/ 290 268 icmp6h->sum = 0; 291 269 icmp6h->sum = in6_cksum(input, IPPROTO_ICMPV6, (uint8_t*)icmp6h - input->buf, 292 270 ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE)); 293 271 294 /* éä¿¡ããã*/272 /* 送信する。*/ 295 273 NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS], 296 274 input->len - GET_IF_IP6_HDR_SIZE(input)); … … 302 280 303 281 /* 304 * icmp6_notify_error -- ã¨ã©ã¼ãéç¥ããã282 * icmp6_notify_error -- エラーを通知する。 305 283 */ 306 284 … … 314 292 len = input->len - poff; 315 293 316 /* ãã¼ã¿ã°ã©ã é·ã ICMP6 ãããé· + IP6 ãããé·ä»¥ä¸ãªãä½ãããªãã*/294 /* データグラム長が ICMP6 ヘッダ長 + IP6 ヘッダ長以下なら何もしない。*/ 317 295 if (len < ICMP6_HDR_SIZE + IP6_HDR_SIZE) 318 296 return; … … 320 298 icmp6h = GET_ICMP6_HDR(input, poff); 321 299 322 /* æçµããããæ¢ç´¢ããã*/300 /* 最終ヘッダを探索する。*/ 323 301 loff = ip6_lasthdr(input, poff + ICMP6_HDR_SIZE, IPPROTO_IPV6, &next); 324 302 325 /* æçµãããã TCP/UDP ã®ã¿å¯¾å¿ããã*/303 /* 最終ヘッダが TCP/UDP のみ対応する。*/ 326 304 if (loff >= 0 && (next == IPPROTO_TCP || next == IPPROTO_UDP)) { 327 305 … … 354 332 355 333 /* 356 * icmp6_mtudisc_update -- Path MTU ãæ´æ°ããã334 * icmp6_mtudisc_update -- Path MTU を更新する。 357 335 */ 358 336 … … 379 357 380 358 /* 381 * icmp6_redirect_input -- åãç´ãã¡ãã»ã¼ã¸ã®å¦ç359 * icmp6_redirect_input -- 向け直しメッセージの処理 382 360 */ 383 361 … … 398 376 399 377 /* 400 * IP ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã401 * ã»ãªã³ã¯ãã¼ã«ã«ä»¥å¤ããéããã¦ããã¡ãã»ã¼ã¸402 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤378 * IP ヘッダのチェック、以下の場合は破棄する。 379 * ・リンクローカル以外から送られてきたメッセージ 380 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 403 381 */ 404 382 if (!IN6_IS_ADDR_LINKLOCAL(&ip6h->src) || ip6h->hlim != IPV6_MAXHLIM) … … 407 385 rdh = (T_ND_REDIRECT_HDR *)(input->buf + off); 408 386 409 /* åãç´ãã®çµç¹ã¢ãã¬ã¹ããã«ããã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯ç ´æ£ããã*/387 /* 向け直しの終点アドレスがマルチキャストアドレスの場合は破棄する。*/ 410 388 if (IN6_IS_ADDR_MULTICAST(&rdh->dst)) 411 389 goto err_ret; 412 390 413 /* ã¿ã¼ã²ããã¢ãã¬ã¹ãçµè·¯è¡¨ã«ç»é²ããã¦ããããã§ãã¯ããã*/391 /* ターゲットアドレスが経路表に登録されているかチェックする。*/ 414 392 if ((gw = in6_rtalloc(ifp, &rdh->dst)) != NULL) { 415 /* GW ã¢ãã¬ã¹ã¨éä¿¡å 416 ã¢ãã¬ã¹ãç°ãªã£ã¦ããã°ç ´æ£ããã*/ 393 /* GW アドレスと送信元アドレスが異なっていれば破棄する。*/ 417 394 if (!IN6_ARE_ADDR_EQUAL(gw, &ip6h->src)) 418 395 goto err_ret; 419 396 } 420 else /* çµè·¯è¡¨ã«ãªããã°ç ´æ£ããã*/397 else /* 経路表になければ破棄する。*/ 421 398 goto err_ret; 422 399 … … 424 401 425 402 /* 426 * ã¿ã¼ã²ããã¢ãã¬ã¹ããªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã§ããã°ã427 * ã¿ã¼ã²ããã¯ã«ã¼ã¿403 * ターゲットアドレスがリンクローカルアドレスであれば、 404 * ターゲットはルータ 428 405 */ 429 406 if (IN6_IS_ADDR_LINKLOCAL(&rdh->target)) … … 431 408 432 409 /* 433 * ã¿ã¼ã²ããã¢ãã¬ã¹ã¨çµç¹ã¢ãã¬ã¹ãåä¸ã§ããã°ããªã³ãªã³ã¯410 * ターゲットアドレスと終点アドレスが同一であれば、オンリンク 434 411 */ 435 412 if (IN6_ARE_ADDR_EQUAL(&rdh->target, &rdh->dst)) … … 437 414 438 415 /* 439 * ã«ã¼ã¿ã§ãããªã³ãªã³ã¯ã§ããªããã°ã¨ã©ã¼416 * ルータでも、オンリンクでもなければエラー 440 417 */ 441 418 if (!router && !onlink) 442 419 goto err_ret; 443 420 444 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/421 /* 近隣探索オプションのオフセットを記録する。*/ 445 422 if (nd6_options(nd_opt_off, input->buf + off + ND_REDIRECT_HDR_SIZE, 446 423 input->len - (off + ND_REDIRECT_HDR_SIZE)) != E_OK) 447 424 goto err_ret; 448 425 449 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ (åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹) */426 /* 近隣探索オプション (向け直しのルータのリンクアドレス) */ 450 427 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) { 451 428 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ND_REDIRECT_HDR_SIZE) + 452 429 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8); 453 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 454 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 430 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 455 431 lladdr = (uint8_t *)(opth + 1); 456 432 lladdr_len = (opth->len << 3); … … 458 434 459 435 /* 460 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼436 * ネットワークインタフェースのアドレス長が一致しなければエラー 461 437 */ 462 438 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) 463 439 goto err_ret; 464 440 465 /* åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ãã£ãã·ã¥ã«ç»é²ããã*/441 /* 向け直しのルータのリンクアドレスを近隣キャッシュに登録する。*/ 466 442 nd6_cache_lladdr(ifp, &rdh->target, (T_IF_ADDR *)lladdr, ND_REDIRECT, 467 443 onlink ? ND_REDIRECT_ONLINK : ND_REDIRECT_ROUTER); 468 444 469 /* ã«ã¼ãã£ã³ã°è¡¨ã«ç»é²ããã*/445 /* ルーティング表に登録する。*/ 470 446 in6_rtredirect(&rdh->target, &rdh->dst, 128, IN_RTF_REDIRECT, TMO_IN_REDIRECT); 471 447 … … 482 458 483 459 /* 484 * icmp6_input -- ICMP6 ã®å 485 ¥åé¢æ° 460 * icmp6_input -- ICMP6 の入力関数 486 461 */ 487 462 … … 500 475 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInMsgs, 1); 501 476 502 /* ICMP6 ãããã®é·ãããã§ãã¯ããã*/477 /* ICMP6 ヘッダの長さをチェックする。*/ 503 478 len = input->len - off; 504 479 if (len < ICMP6_HDR_SIZE) { … … 511 486 icmp6h = GET_ICMP6_HDR(input, off); 512 487 513 /* ãã§ãã¯ãµã ãè¨ç®ããã*/488 /* チェックサムを計算する。*/ 514 489 if ((in6_cksum(input, IPPROTO_ICMPV6, off, ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE)) & 0xffff) != 0) { 515 490 NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1); … … 520 495 code = icmp6h->code; 521 496 522 /* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/497 /* メッセージの型により分岐する。*/ 523 498 switch (icmp6h->type) { 524 499 525 case ICMP6_DST_UNREACH: /* å®å 526 å°éä¸å¯è½ */ 500 case ICMP6_DST_UNREACH: /* 宛先到達不可能 */ 527 501 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInDestUnreachs, 1); 528 502 icmp6_notify_error(input, off); 529 503 break; 530 504 531 case ICMP6_ECHO_REQUEST: /* ã¨ã³ã¼è¦æ±*/505 case ICMP6_ECHO_REQUEST: /* エコー要求 */ 532 506 icmp6_echo_request(input, off); 533 507 return IPPROTO_DONE; 534 508 break; 535 509 536 case ICMP6_ECHO_REPLY: /* ã¨ã³ã¼å¿ç*/510 case ICMP6_ECHO_REPLY: /* エコー応答 */ 537 511 538 512 #ifdef ICMP_CFG_CALLBACK_ECHO_REPLY … … 544 518 break; 545 519 546 case ND_ROUTER_ADVERT: /* ã«ã¼ã¿éç¥*/520 case ND_ROUTER_ADVERT: /* ルータ通知 */ 547 521 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRouterAdvertisements, 1); 548 522 if (code != 0 || len < ROUTER_ADVERT_HDR_SIZE) … … 552 526 break; 553 527 554 case ND_NEIGHBOR_SOLICIT: /* è¿é£è¦è«*/528 case ND_NEIGHBOR_SOLICIT: /* 近隣要請 */ 555 529 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborSolicits, 1); 556 530 if (code != 0 || len < NEIGHBOR_SOLICIT_HDR_SIZE) … … 560 534 break; 561 535 562 case ND_NEIGHBOR_ADVERT: /* è¿é£éç¥*/536 case ND_NEIGHBOR_ADVERT: /* 近隣通知 */ 563 537 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborAdvertisements, 1); 564 538 if (code != 0 || len < NEIGHBOR_ADVERT_HDR_SIZE) … … 568 542 break; 569 543 570 case ND_REDIRECT: /* åãç´ã*/544 case ND_REDIRECT: /* 向け直し */ 571 545 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRedirects, 1); 572 546 … … 592 566 break; 593 567 594 case ICMP6_PACKET_TOO_BIG: /* ãã±ããã大ããããã*/568 case ICMP6_PACKET_TOO_BIG: /* パケットが大きすぎる。 */ 595 569 596 570 #if NUM_IN6_HOSTCACHE_ENTRY > 0 … … 603 577 break; 604 578 605 case ICMP6_TIME_EXCEEDED: /* TTL ãè¶ 606 éããã */ 579 case ICMP6_TIME_EXCEEDED: /* TTL を超過した。 */ 607 580 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInTimeExcds, 1); 608 581 break; 609 582 610 case ICMP6_PARAM_PROB: /* IPv6 ããããä¸æ£ã*/583 case ICMP6_PARAM_PROB: /* IPv6 ヘッダが不正。 */ 611 584 NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInParmProblems, 1); 612 585 break; 613 586 614 case MLD_LISTENER_QUERY: /* ãã«ããã£ã¹ãåä¿¡è 615 ç 616 §ä¼ */ 617 case MLD_LISTENER_REPORT: /* ãã«ããã£ã¹ãåä¿¡è 618 å ±å */ 619 case MLD_LISTENER_DONE: /* ãã«ããã£ã¹ãåä¿¡è 620 çµäº */ 621 case ND_ROUTER_SOLICIT: /* ã«ã¼ã¿è¦è« */ 622 case ICMP6_ROUTER_RENUMBERING: /* ã«ã¼ã¿çªå·åè¨å® */ 623 case ICMP6_FQDN_QUERY: /* FQDN ç 624 §ä¼ */ 625 case ICMP6_FQDN_REPLY: /* FQDN å¿ç */ 587 case MLD_LISTENER_QUERY: /* マルチキャスト受信者照会 */ 588 case MLD_LISTENER_REPORT: /* マルチキャスト受信者報告 */ 589 case MLD_LISTENER_DONE: /* マルチキャスト受信者終了 */ 590 case ND_ROUTER_SOLICIT: /* ルータ要請 */ 591 case ICMP6_ROUTER_RENUMBERING: /* ルータ番号再設定 */ 592 case ICMP6_FQDN_QUERY: /* FQDN 照会 */ 593 case ICMP6_FQDN_REPLY: /* FQDN 応答 */ 626 594 syslog(LOG_INFO, "[ICMP6] unsupported type: %d.", icmp6h->type); 627 595 break; … … 640 608 641 609 /* 642 * icmp6_error -- ICMP6 ã¨ã©ã¼éä¿¡é¢æ°610 * icmp6_error -- ICMP6 エラー送信関数 643 611 */ 644 612 … … 655 623 656 624 /* 657 * å®å 658 ã¢ãã¬ã¹ãããã«ããã£ã¹ãã®å ´åã¯ã 659 * 以ä¸ã®æ¡ä»¶ä»¥å¤ã®ã¨ãã¯å¦çãè¡ããªãã 625 * 宛先アドレスが、マルチキャストの場合は、 626 * 以下の条件以外のときは処理を行わない。 660 627 * 661 * ã»ãã¼ã¿ã°ã©ã ã大ããããã662 * ã»IPv6 ãããã®ä¸æ£ã§ããªãã·ã§ã³ãèªèã§ããªãã628 * ・データグラムが大きすぎる。 629 * ・IPv6 ヘッダの不正で、オプションが認識できない。 663 630 */ 664 631 if (IN6_IS_ADDR_MULTICAST(&ip6h->dst) && … … 668 635 669 636 /* 670 * å§ç¹ã¢ãã¬ã¹ãã以ä¸ã®å ´åã¯å¦çãè¡ããªãã637 * 始点アドレスが、以下の場合は処理を行わない。 671 638 * 672 * ã»ç¡æå®673 * ã»ãã«ããã£ã¹ã639 * ・無指定 640 * ・マルチキャスト 674 641 */ 675 642 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) || … … 677 644 goto buf_rel; 678 645 679 /* æå¾ã®ããããæ¢ç´¢ããã*/646 /* 最後のヘッダを探索する。*/ 680 647 off = ip6_lasthdr(input, 0, IPPROTO_IPV6, &next); 681 648 682 649 /* 683 * ã¿ã¤ãããã¨ã©ã¼ãåãç´ãã® ICMP6 ãã±ããã®ã¨ã©ã¼ã«ã¯è¿çããªãã650 * タイプが、エラーか向け直しの ICMP6 パケットのエラーには返答しない。 684 651 */ 685 652 if (off >= 0 && next == IPPROTO_ICMPV6) { … … 695 662 } 696 663 697 /* DoS æ»æã«å¯¾ããé²å¾¡ã¯æªå®è£ 698 */ 699 700 /* 701 * éãè¿ãã¡ãã»ã¼ã¸é·ããICMPv6 ã®æ大ãã¤ãã¼ãé·ã«èª¿æ´ããã 664 /* DoS 攻撃に対する防御は未実装 */ 665 666 /* 667 * 送り返すメッセージ長を、ICMPv6 の最大ペイロード長に調整する。 702 668 * IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE) 703 669 */ … … 707 673 len = input->len - IF_HDR_SIZE; 708 674 709 /* éä¿¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/675 /* 送信用のネットワークバッファを獲得する。*/ 710 676 if (in6_get_datagram(&output, len + ICMP6_HDR_SIZE, 0, 711 677 &ip6h->src, &in6_addr_unspecified, … … 714 680 goto buf_rel; 715 681 716 /* ICMP6 ããããè¨å®ããã*/682 /* ICMP6 ヘッダを設定する。*/ 717 683 icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET); 718 684 icmp6h->type = type; … … 720 686 icmp6h->icmp6_pptr = htonl(param); 721 687 722 /* ã¨ã©ã¼ãã¼ã¿ãè¨å®ããã*/688 /* エラーデータを設定する。*/ 723 689 memcpy(GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET), (uint8_t *)ip6h, len); 724 690 … … 741 707 #endif /* of #ifdef SUPPORT_MIB */ 742 708 743 /* éä¿¡ããã*/709 /* 送信する。*/ 744 710 icmp6_output(output, IF_IP6_HDR_SIZE); 745 711 -
azure_iot_hub/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
r388 r389 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$ … … 117 105 118 106 /* 119 * ether_map_ipv6_multicast -- IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ããã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ107 * ether_map_ipv6_multicast -- IPv6 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換 120 108 */ 121 109 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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$ … … 156 144 157 145 /* 158 * å 159 ¨åå¤æ° 146 * 全域変数 160 147 */ 161 148 … … 170 157 171 158 /* 172 * in6_addmulti -- ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã159 * in6_addmulti -- マルチキャストアドレスを登録する。 173 160 */ 174 161 … … 185 172 186 173 /* 187 * in6_ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹æ 188 å ±ãè¨å®ããåæåããã 174 * in6_ifinit -- インタフェースにアドレス情報を設定し、初期化する。 189 175 */ 190 176 … … 192 178 in6_ifinit (T_IFNET *ifp, T_IN6_IFADDR *ia, const T_IN6_ADDR *addr, uint_t prefix_len) 193 179 { 194 /* ã¢ãã¬ã¹ã¨ãã¬ãã£ãã¯ã¹é·ãè¨å®ããã*/180 /* アドレスとプレフィックス長を設定する。*/ 195 181 ia->addr = *addr; 196 182 ia->prefix_len = prefix_len; 197 183 198 /* ãã©ã°ãåæåããã*/184 /* フラグを初期化する。*/ 199 185 ia->flags = 0; 200 186 201 187 /* 202 * åãã¦ã¢ãã¬ã¹ãè¨å®ãããã¨ããã¤ã³ã¿ãã§ã¼ã¹ç¬èªã®åæåãè¡ãã188 * 初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。 203 189 */ 204 190 … … 207 193 208 194 /* 209 * in6_ifainit -- ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½ã®åæå195 * in6_ifainit -- インタフェースアドレス構造体の初期化 210 196 */ 211 197 … … 226 212 227 213 /* 228 * in6_if2idlen -- ã¤ã³ã¿ãã§ã¼ã¹ ID é·ãè¿ãã214 * in6_if2idlen -- インタフェース ID 長を返す。 229 215 */ 230 216 … … 240 226 241 227 /* 242 * in6_addr2ifaix -- ã¢ãã¬ã¹ããã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ 243 å ±ã®ã¤ã³ããã¯ã¹ã«å¤æããã 228 * in6_addr2ifaix -- アドレスからインタフェースアドレス情報のインデックスに変換する。 244 229 */ 245 230 … … 262 247 263 248 /* 264 * in6_addr2maix -- ã¢ãã¬ã¹ãããã«ããã£ã¹ãã¢ãã¬ã¹ã®ã¤ã³ããã¯ã¹ã«å¤æããã249 * in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。 265 250 */ 266 251 … … 283 268 284 269 /* 285 * in6_update_ifa -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ 286 å ±ãæ´æ°ããã 270 * in6_update_ifa -- インタフェースのアドレス情報を更新する。 287 271 */ 288 272 … … 296 280 SYSTIM now; 297 281 298 /* å¼æ°ããã§ãã¯ããã*/282 /* 引数をチェックする。*/ 299 283 if (addr == NULL) 300 284 return E_PAR; 301 285 302 286 /* 303 * æå¹æéããã§ãã¯ããã304 * vltime ( æå¹æé) 㨠pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã287 * 有効時間をチェックする。 288 * vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。 305 289 */ 306 290 syscall(get_tim(&now)); … … 313 297 return E_PAR; 314 298 315 /* ã¤ã³ã¿ãã§ã¼ã¹ãåæåããã*/299 /* インタフェースを初期化する。*/ 316 300 if ((error = in6_ifinit(ifp, ia, addr, prefix_len)) != E_OK) 317 301 return error; … … 319 303 if (IN6_IS_ADDR_LINKLOCAL(addr)) { 320 304 321 /* è¦è«ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/305 /* 要請マルチキャストアドレスを登録する。*/ 322 306 llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL; 323 307 llsol.s6_addr32[1] = 0x00000000; … … 328 312 return error; 329 313 330 /* å 331 ¨ãã¼ãã»ãªã³ã¯ãã¼ã«ã«ã»ãã«ããã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/ 314 /* 全ノード・リンクローカル・マルチキャストアドレスを登録する。*/ 332 315 llsol.s6_addr32[2] = 0x00000000; 333 316 llsol.s6_addr32[3] = IPV6_ADDR_INT32_ONE; … … 337 320 } 338 321 339 /* ã«ã¼ã¿ã¤ã³ããã¯ã¹ãè¨å®ããã*/322 /* ルータインデックスを設定する。*/ 340 323 ia->router_index = router_index; 341 324 342 /* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹ãè¨å®ããã*/325 /* プレフィックスインデックスを設定する。*/ 343 326 ia->prefix_index = prefix_index; 344 327 345 /* ãã©ã°ãè¨å®ããã*/328 /* フラグを設定する。*/ 346 329 ia->flags = flags & ~(IN6_IFF_DUPLICATED | IN6_IFF_NODAD); 347 330 ia->flags |= IN6_IFF_DEFINED; 348 331 349 332 /* 350 * ã¢ãã¬ã¹æå¹æéãè¨å®ããã351 * vltime ( æå¹æé) 㨠pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã333 * アドレス有効時間を設定する。 334 * vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。 352 335 */ 353 336 syscall(get_tim(&now)); … … 366 349 ia->lifetime.preferred = 0; 367 350 368 /* è¿é£æ¢ç´¢ã®åæè¨å®ãè¡ãã*/351 /* 近隣探索の初期設定を行う。*/ 369 352 nd6_ifattach(ifp); 370 353 371 /* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/354 /* 重複アドレス検出を行う。*/ 372 355 if ((flags & IN6_IFF_NODAD) == 0) { 373 356 ia->flags |= IN6_IFF_TENTATIVE; … … 379 362 380 363 /* 381 * in6ifa_ifpwithix -- ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«382 * å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã364 * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに 365 * 割り当てられているアドレスを探索する。 383 366 */ 384 367 … … 390 373 391 374 /* 392 * in6ifa_ifpwithrtrix -- ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«393 * å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã375 * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに 376 * 割り当てられているアドレスを探索する。 394 377 */ 395 378 … … 406 389 407 390 /* 408 * in6_ifawithifp -- å®å 409 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 410 ã¢ãã¬ã¹æ 411 å ±ãã 412 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã 391 * in6_ifawithifp -- 宛先アドレスにふさわしい送信元アドレス情報を、 392 * ネットワークインタフェースから探索する。 413 393 */ 414 394 … … 419 399 int_t ix; 420 400 421 /* å®å 422 ã¢ãã¬ã¹ã¨åãã¹ã³ã¼ãã®ã¢ãã¬ã¹ãè¿ãã*/ 401 /* 宛先アドレスと同じスコープのアドレスを返す。*/ 423 402 if ((ix = in6_addr2ifaix(dst)) != IPV6_IFADDR_IX_INVALID) 424 403 return &ifp->in6_ifaddrs[ix]; … … 440 419 441 420 /* 442 * in6_addrwithifp -- å®å 443 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 444 ã¢ãã¬ã¹ãã 445 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã 421 * in6_addrwithifp -- 宛先アドレスにふさわしい送信元アドレスを、 422 * ネットワークインタフェースから探索する。 446 423 */ 447 424 … … 460 437 461 438 /* 462 * in6_if_up -- ã¤ã³ã¿ãã§ã¼ã¹èµ·åå¾ã®éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã439 * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。 463 440 */ 464 441 … … 466 443 in6_if_up (T_IFNET *ifp) 467 444 { 468 #if 0 /* ä¿ç*/445 #if 0 /* 保留 */ 469 446 int_t dad_delay, ix; 470 447 #endif /* of #if 0 */ … … 472 449 in6_ifattach(ifp); 473 450 474 #if 0 /* ä¿ç*/475 /* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/451 #if 0 /* 保留 */ 452 /* 重複アドレス検出を行う。*/ 476 453 dad_delay = 0; 477 454 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) … … 483 460 #if NUM_ND6_RTR_SOL_RETRY > 0 484 461 485 /* ã«ã¼ã¿è¦è«ãåºåããã*/462 /* ルータ要請を出力する。*/ 486 463 nd6_rtrsol_ctl(); 487 464 … … 490 467 491 468 /* 492 * in6_are_prefix_equal -- ãã¬ãã£ãã¯ã¹ãåä¸ã調ã¹ãã469 * in6_are_prefix_equal -- プレフィックスが同一か調べる。 493 470 */ 494 471 … … 511 488 512 489 /* 513 * in6_ifaddr_timer -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®ç®¡çã¿ã¤ãã¼490 * in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー 514 491 */ 515 492 … … 530 507 531 508 /* 532 * æå¹æéãéããã®ã§åé¤ããã509 * 有効時間を過ぎたので削除する。 533 510 */ 534 511 ia->flags &= ~IN6_IFF_DEFINED; … … 538 515 539 516 /* 540 * æ¨å¥¨æå¹æéãéããã®ã§éæ¨å¥¨ã«ããã517 * 推奨有効時間を過ぎたので非推奨にする。 541 518 */ 542 519 ia->flags |= IN6_IFF_DEPRECATED; -
azure_iot_hub/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
r388 r389 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 ã¢ãã¬ã¹æ§é118 * 119 * RFC4291 ï¼RFC1884ãRFC2373ãRFC3513 ã®ã¢ãããã¼ãï¼120 */ 121 122 /* 123 * IPv6 ã¢ãã¬ã¹105 * IPv6 アドレス構造 106 * 107 * RFC4291(RFC1884、RFC2373、RFC3513 のアップデート) 108 */ 109 110 /* 111 * IPv6 アドレス 124 112 */ 125 113 … … 146 134 147 135 /* 148 * IPv6 ã¢ãã¬ã¹ã®åæåãã¼ã¿136 * IPv6 アドレスの初期化データ 149 137 */ 150 138 … … 168 156 169 157 /* 170 * ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯171 */ 172 173 /* ç¡æå®*/158 * 特別なアドレスのチェック 159 */ 160 161 /* 無指定 */ 174 162 175 163 #define IN6_IS_ADDR_UNSPECIFIED(a) \ 176 164 (memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR)) == 0) 177 165 178 /* ã«ã¼ãããã¯*/166 /* ループバック */ 179 167 180 168 #define IN6_IS_ADDR_LOOPBACK(a) \ … … 183 171 184 172 /* 185 * ã¹ã³ã¼ãID173 * スコープ ID 186 174 */ 187 175 … … 193 181 194 182 /* 195 * ã¦ããã£ã¹ãã»ã¹ã³ã¼ã 196 * 197 * 注æ: ä¸ä½ 10 ãããã®ã¿ãã§ãã¯ããªããã°ãªããªããRFC2373 åç 198 § 199 */ 200 201 /* ãªã³ã¯ãã¼ã«ã« */ 183 * ユニキャスト・スコープ 184 * 185 * 注意: 上位 10 ビットのみチェックしなければならない。RFC2373 参照 186 */ 187 188 /* リンクローカル */ 202 189 203 190 #define IN6_IS_ADDR_LINKLOCAL(a) \ 204 191 (((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0x80))) 205 192 206 /* ãµã¤ããã¼ã«ã«*/193 /* サイトローカル */ 207 194 208 195 #define IN6_IS_ADDR_SITELOCAL(a) \ 209 196 (((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0xc0))) 210 197 211 /* éç´å¯è½ã¦ããã£ã¹ã (ã°ãã¼ãã«) */198 /* 集約可能ユニキャスト (グローバル) */ 212 199 213 200 #define IN6_IS_ADDR_AGGREGATE_UNICAST(a) \ … … 215 202 216 203 /* 217 * ãã«ããã£ã¹ã204 * マルチキャスト 218 205 */ 219 206 … … 221 208 222 209 /* 223 * åä¸ã®ãã§ãã¯210 * 同一のチェック 224 211 */ 225 212 … … 227 214 228 215 /* 229 * çµè·¯å¶å¾¡ç¨å®ç¾©230 */ 231 232 #define IPV6_RTHDR_TYPE_0 UINT_C(0) /* IPv6 çµè·¯å¶å¾¡ãããã¿ã¤ã0 */233 234 /* 235 * è¦å®å¤ã¨å¶éå¤236 */ 237 238 #define IPV6_DEFAULT_MULTICAST_HOPS 1 /* ãã«ããã£ã¹ãæã®ããããªãããã®è¦å®å¤*/239 #define ND6_INFINITE_LIFETIME 0xffffffff /* ã¢ãã¬ã¹ã®ç¡å¶éæå¹æé*/240 241 /* 242 * ITRON TCP/IPv6 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©216 * 経路制御用定義 217 */ 218 219 #define IPV6_RTHDR_TYPE_0 UINT_C(0) /* IPv6 経路制御ヘッダタイプ 0 */ 220 221 /* 222 * 規定値と制限値 223 */ 224 225 #define IPV6_DEFAULT_MULTICAST_HOPS 1 /* マルチキャスト時のホップリミットの規定値 */ 226 #define ND6_INFINITE_LIFETIME 0xffffffff /* アドレスの無制限有効時間 */ 227 228 /* 229 * ITRON TCP/IPv6 アドレス/ポート番号の定義 243 230 */ 244 231 245 232 typedef struct t_ipv6ep { 246 T_IN6_ADDR ipaddr; /* IPv6 ã¢ãã¬ã¹*/247 uint16_t portno; /* ãã¼ãçªå·*/233 T_IN6_ADDR ipaddr; /* IPv6 アドレス */ 234 uint16_t portno; /* ポート番号 */ 248 235 } T_IPV6EP; 249 236 … … 251 238 252 239 /* 253 * ITRON/TCP/IP ç¨ IP ã¢ãã¬ã¹ã®å®ç¾©240 * ITRON/TCP/IP 用 IP アドレスの定義 254 241 */ 255 242 … … 257 244 258 245 /* 259 * åççæç¨ IPv6 TCP åä»å£246 * 動的生成用 IPv6 TCP 受付口 260 247 */ 261 248 262 249 typedef struct t_tcp6_crep { 263 /* æ¨æº */ 264 ATR repatr; /* åä»å£å±æ§ */ 265 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 266 /* å®è£ 267 ä¾å */ 250 /* 標準 */ 251 ATR repatr; /* 受付口属性 */ 252 T_IPV6EP myaddr; /* 自分のアドレス */ 253 /* 実装依存 */ 268 254 } T_TCP6_CREP; 269 255 270 256 /* 271 * åççæç¨ IPv6 UDP é信端ç¹257 * 動的生成用 IPv6 UDP 通信端点 272 258 */ 273 259 274 260 typedef struct t_udp6_ccep { 275 /* æ¨æº */ 276 ATR cepatr; /* UDP é信端ç¹å±æ§ */ 277 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 278 FP callback; /* ã³ã¼ã«ããã¯é¢æ° */ 279 /* å®è£ 280 ä¾å */ 261 /* 標準 */ 262 ATR cepatr; /* UDP 通信端点属性 */ 263 T_IPV6EP myaddr; /* 自分のアドレス */ 264 FP callback; /* コールバック関数 */ 265 /* 実装依存 */ 281 266 } T_UDP6_CCEP; 282 267 283 268 /* 284 * åæ¹åç 285 § 269 * 前方参照 286 270 */ 287 271 … … 295 279 296 280 /* 297 * å 298 ¨åå¤æ° 281 * 全域変数 299 282 */ 300 283 … … 306 289 307 290 /* 308 * TINET ç¬èªAPI291 * TINET 独自 API 309 292 */ 310 293 -
azure_iot_hub/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
r388 r389 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$ … … 114 102 115 103 /* 116 * EUI64 ã®å®ç¾©104 * EUI64 の定義 117 105 */ 118 106 … … 122 110 123 111 /* 124 * get_mac6_ifid -- MAC (6 ãªã¯ããã) ã¢ãã¬ã¹ã§ãã¤ã³ã¿ãã§ã¼ã¹èå¥åãè¨å®ããã112 * get_mac6_ifid -- MAC (6 オクテット) アドレスで、インタフェース識別子を設定する。 125 113 */ 126 114 … … 145 133 146 134 /* 147 * get_rand_ifid -- ä¹±æ°ã«ãããã¤ã³ã¿ãã§ã¼ã¹èå¥åãè¨å®ããã135 * get_rand_ifid -- 乱数により、インタフェース識別子を設定する。 148 136 */ 149 137 … … 159 147 160 148 /* 161 * in6_ifattach_linklocal -- ã¤ã³ã¿ãã§ã¼ã¹ã«ãªã³ã¯ãã¼ã«ã«ã»ã¢ãã¬ã¹ãå²ãå½ã¦ãã149 * in6_ifattach_linklocal -- インタフェースにリンクローカル・アドレスを割り当てる。 162 150 */ 163 151 … … 169 157 170 158 /* 171 * ãªã³ã¯ãã¼ã«ã«ã»ãã¬ãã£ãã¯ã¹ fe80::/64 ãè¨å®ããã159 * リンクローカル・プレフィックス fe80::/64 を設定する。 172 160 */ 173 161 addr.s6_addr32[0] = IPV6_ADDR_INT32_ULL; 174 162 addr.s6_addr32[1] = ULONG_C(0); 175 163 176 /* ã¤ã³ã¿ãã§ã¼ã¹èå¥åãè¨å®ããã*/164 /* インタフェース識別子を設定する。*/ 177 165 if ((error = IF_IN6_IFID(ifp, &addr)) != E_OK) 178 166 return error; 179 167 180 /* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ 181 å ±ãæ´æ°ããã*/ 168 /* インタフェースのアドレス情報を更新する。*/ 182 169 if ((error = in6_update_ifa(ifp, &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL], 183 170 &addr, 64, ND6_INFINITE_LIFETIME, … … 192 179 193 180 /* 194 * in6_ifattach -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãå²ãå½ã¦ãã181 * in6_ifattach -- インタフェースにアドレスを割り当てる。 195 182 */ 196 183 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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$ … … 150 138 151 139 /* 152 * in6_make_ipv4mapped -- IPv4 å°å½±ã¢ãã¬ã¹ãçæããã153 * 154 * 注æ:155 * src ã¯ãã¹ããã¤ããªã¼ãã¼140 * in6_make_ipv4mapped -- IPv4 射影アドレスを生成する。 141 * 142 * 注意: 143 * src はホストバイトオーダー 156 144 * 157 145 */ … … 173 161 174 162 /* 175 * in6_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã163 * in6_rtinit -- ルーティング表を初期化する。 176 164 */ 177 165 … … 189 177 190 178 /* 191 * in6_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã179 * in6_rtnewentry -- 新しいエントリを獲得する。 192 180 */ 193 181 … … 199 187 int_t ix; 200 188 201 /* 空ãã¨ã³ããªãæ¢ãã*/189 /* 空きエントリを探す。*/ 202 190 for (ix = NUM_IN6_STATIC_ROUTE_ENTRY; ix < NUM_IN6_ROUTE_ENTRY; ix ++) { 203 191 rt = &routing6_tbl[ix]; … … 208 196 } 209 197 210 /* expire ã®åä½ã¯ [s]ã*/198 /* expire の単位は [s]。*/ 211 199 syscall(get_tim(&now)); 212 200 now /= SYSTIM_HZ; 213 201 214 202 if (frt == NULL) { 215 /* 空ãããªããã°ãæå¹æéããã£ã¨ãçãã¨ã³ããªã空ãã«ããã*/203 /* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/ 216 204 T_IN6_RTENTRY *srt = NULL; 217 205 int_t diff, sdiff = INT_MAX; … … 222 210 diff = (int_t)(rt->expire - now); 223 211 if (diff <= 0) { /* rt->expire <= now */ 224 /* æ¢ã«ãæå¹æéãéãã¦ããã*/212 /* 既に、有効時間が過ぎている。*/ 225 213 frt = rt; 226 214 break; … … 243 231 244 232 /* 245 * in6_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼233 * in6_rttimer -- ルーティング表の管理タイマー 246 234 */ 247 235 … … 252 240 int_t ix; 253 241 254 /* expire ã®åä½ã¯ [s]ã*/242 /* expire の単位は [s]。*/ 255 243 syscall(get_tim(&now)); 256 244 now /= SYSTIM_HZ; … … 269 257 270 258 /* 271 * ãã¹ããã£ãã·ã¥259 * ホストキャッシュ 272 260 */ 273 261 … … 277 265 278 266 /* 279 * in6_lookup_ifaddr -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã267 * in6_lookup_ifaddr -- ネットワークインタフェースに割り当てられているアドレスを探索する。 280 268 */ 281 269 … … 294 282 295 283 /* 296 * in6_lookup_multi -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ããã£ã¹ãã¢ãã¬ã¹ãæ¤ç´¢ããã284 * in6_lookup_multi -- ネットワークインタフェースのマルチキャストアドレスを検索する。 297 285 */ 298 286 … … 309 297 310 298 /* 311 * in6_set_header -- IPv6 ããããè¨å®ããã299 * in6_set_header -- IPv6 ヘッダを設定する。 312 300 */ 313 301 … … 322 310 323 311 /* 324 * å®å 325 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 326 ã¢ãã¬ã¹ãã 327 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 312 * 宛先アドレスにふさわしい送信元アドレスを、 313 * ネットワークインタフェースから探索して利用する。 328 314 */ 329 315 if (srcaddr == NULL || !IN6_IS_ADDR_UNSPECIFIED(srcaddr)) … … 334 320 srcaddr = &ia->addr; 335 321 336 /* IPv6 ããããè¨å®ããã*/322 /* IPv6 ヘッダを設定する。*/ 337 323 ip6h = GET_IP6_HDR(nbuf); 338 324 ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0)); … … 355 341 356 342 /* 357 * in6_get_datagram -- IPv6 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨å®ããã343 * in6_get_datagram -- IPv6 データグラムを獲得し、ヘッダを設定する。 358 344 */ 359 345 … … 366 352 uint_t align; 367 353 368 /* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/354 /* データ長は 4 オクテット境界に調整する。 */ 369 355 align = (len + 3) >> 2 << 2; 370 356 371 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/357 /* ネットワークバッファを獲得する。 */ 372 358 if ((error = tget_net_buf_ex(nbuf, IF_IP6_HDR_SIZE + align, 373 359 IF_IP6_HDR_SIZE + maxlen, nbatr, tmout)) != E_OK) … … 375 361 376 362 /* 377 * ãã大ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ãã調æ´ããã378 * ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®379 * çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã363 * より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。 364 * より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの 365 * 省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。 380 366 */ 381 367 if ((nbatr & NBA_SEARCH_ASCENT) != 0) 382 368 (*nbuf)->len = IF_IP6_HDR_SIZE + len; 383 369 384 /* IPv6 ããããè¨å®ããã*/370 /* IPv6 ヘッダを設定する。*/ 385 371 if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK) { 386 372 syscall(rel_net_buf(*nbuf)); … … 389 375 } 390 376 391 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/377 /* 4 オクテット境界までパディングで埋める。*/ 392 378 if (align > len) 393 379 memset(GET_IP6_SDU(*nbuf) + len, 0, align - len); … … 397 383 398 384 /* 399 * in6_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®å¯è½ãªæ大ã¢ãã¬ã¹æ°ãè¿ãã385 * in6_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。 400 386 */ 401 387 … … 407 393 408 394 /* 409 * in6_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ããã¢ãã¬ã¹ãè¿ãã395 * in6_get_ifaddr -- インタフェースに設定されているアドレスを返す。 410 396 */ 411 397 … … 423 409 424 410 /* 425 * ipv62str -- IPv6 ã¢ãã¬ã¹ãæååã«å¤æããã411 * ipv62str -- IPv6 アドレスを文字列に変換する。 426 412 */ 427 413 … … 493 479 494 480 /* 495 * in6_cksum -- IPv6 ã®ãã©ã³ã¹ãã¼ã層ãããã®ãã§ãã¯ãµã ãè¨ç®ããã496 * 497 * 注æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã481 * in6_cksum -- IPv6 のトランスポート層ヘッダのチェックサムを計算する。 482 * 483 * 注意: 戻り値はネットワークバイトオーダ 498 484 */ 499 485 … … 504 490 uint_t align; 505 491 506 /* 4 ãªã¯ãããå¢çã®ãã¼ã¿é·*/492 /* 4 オクテット境界のデータ長 */ 507 493 align = (len + 3) >> 2 << 2; 508 494 509 /* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/495 /* 4 オクテット境界までパディングで埋める。*/ 510 496 if (align > len) 511 497 memset((uint8_t*)nbuf->buf + off + len, 0, align - len); … … 520 506 521 507 /* 522 * get_ip6_hdr_size -- æ¡å¼µããããå«ãã IPv6 ãããé·ãè¿ãã508 * get_ip6_hdr_size -- 拡張ヘッダも含めた IPv6 ヘッダ長を返す。 523 509 */ 524 510 … … 533 519 while (1) { 534 520 next = *hdr; 535 if (curr ==IPPROTO_NONE) /* 次ãããç¡ã*/521 if (curr ==IPPROTO_NONE) /* 次ヘッダ無し */ 536 522 break; 537 else if (curr == IPPROTO_FRAGMENT) /* æçå*/523 else if (curr == IPPROTO_FRAGMENT) /* 断片化 */ 538 524 hsize = sizeof(T_IP6_FRAG_HDR); 539 else if (curr == IPPROTO_AH) /* IPv6 èªè¨¼*/525 else if (curr == IPPROTO_AH) /* IPv6 認証 */ 540 526 hsize = (((T_IP6_AH_HDR *)hdr)->len + 2) * 4; 541 else if (curr == IPPROTO_HOPOPTS || /* ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³*/542 curr == IPPROTO_DSTOPTS || /* IPv6 çµç¹ãªãã·ã§ã³*/543 curr == IPPROTO_ROUTING) /* çµè·¯å¶å¾¡*/527 else if (curr == IPPROTO_HOPOPTS || /* 中継点 (Hop-by-Hop) オプション */ 528 curr == IPPROTO_DSTOPTS || /* IPv6 終点オプション */ 529 curr == IPPROTO_ROUTING) /* 経路制御 */ 544 530 hsize = (((T_IP6_EXT_HDR *)hdr)->len + 1) * 8; 545 531 else … … 553 539 554 540 /* 555 * in6_plen2pmask -- ãã¬ãã£ãã¯ã¹é·ãããã¹ã¯ãçæããã541 * in6_plen2pmask -- プレフィックス長からマスクを生成する。 556 542 */ 557 543 … … 571 557 572 558 /* 573 * in6_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã559 * in6_rtalloc -- ルーティング表を探索する。 574 560 */ 575 561 … … 585 571 586 572 /* 587 * ãµã¤ããã¼ã«ã«ã¢ãã¬ã¹ãéç´å¯è½ï¼ã°ãã¼ãã«ï¼ã¢ãã¬ã¹ã®å ´åã¯ã 588 * åä¸ãªã³ã¯å 589 ã®ãã¼ãã§ãããããã§ãã¯ããã 573 * サイトローカルアドレスか集約可能(グローバル)アドレスの場合は、 574 * 同一リンク内のノードであるかをチェックする。 590 575 */ 591 576 … … 593 578 now /= SYSTIM_HZ; 594 579 595 /* æ¨å¥¨æå¹æéå 596 ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/ 580 /* 推奨有効時間内のアドレスを探索する。*/ 597 581 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { 598 582 ia = &ifp->in6_ifaddrs[ix]; … … 605 589 } 606 590 607 /* æå¹æéå 608 ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/ 591 /* 有効時間内のアドレスを探索する。*/ 609 592 for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) { 610 593 ia = &ifp->in6_ifaddrs[ix]; … … 617 600 618 601 /* 619 * ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã602 * プレフィックスを探索する。 620 603 */ 621 604 if (nd6_onlink_prefix_lookup (dst) != NULL) … … 623 606 624 607 /* 625 * éççµè·¯è¡¨ãæ¢ç´¢ããã608 * 静的経路表を探索する。 626 609 */ 627 610 … … 635 618 636 619 /* 637 * åãç´ãã«ããã¨ã³ããªã¯ãæå¹æéãåããæå»ã延é·ããã638 * expire ã®åä½ã¯ [s]ã639 * TMO_IN_REDIRECT ã®åä½ã¯ [ms]ã620 * 向け直しによるエントリは、有効時間が切れる時刻を延長する。 621 * expire の単位は [s]。 622 * TMO_IN_REDIRECT の単位は [ms]。 640 623 */ 641 624 if (ix > NUM_IN6_STATIC_ROUTE_ENTRY) { … … 655 638 656 639 /* 657 * ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã640 * ディフォルトルータ・リストを探索する。 658 641 */ 659 642 return nd6_router_lookup(); … … 664 647 665 648 /* 666 * in6_gateway_lookup -- ã«ã¼ãã£ã³ã°è¡¨ã®ã«ã¼ã¿ãæ¢ç´¢ããã649 * in6_gateway_lookup -- ルーティング表のルータを探索する。 667 650 */ 668 651 … … 680 663 681 664 /* 682 * in6_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã683 * 684 * 注æ: å¼æ° tmo ã®åä½ã¯ [us]ã665 * in6_rtredirect -- ルーティング表にエントリを登録する。 666 * 667 * 注意: 引数 tmo の単位は [us]。 685 668 */ 686 669 … … 701 684 702 685 /* 703 * in6_hostcache_lookup -- IPv6 ãã¹ããã£ãã·ã¥ãæ¢ç´¢ããã686 * in6_hostcache_lookup -- IPv6 ホストキャッシュを探索する。 704 687 */ 705 688 … … 717 700 718 701 /* 719 * in6_hostcache_update -- IPv6 ãã¹ããã£ãã·ã¥ãæ´æ°ããã702 * in6_hostcache_update -- IPv6 ホストキャッシュを更新する。 720 703 */ 721 704 … … 729 712 syscall(get_tim(&now)); 730 713 731 /* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/714 /* 既に登録されているか探索する。*/ 732 715 if ((hc = in6_hostcache_lookup (dst)) == NULL) { 733 716 734 /* 空ãã®ãã¹ããã£ãã·ã¥ãæ¢ãã*/717 /* 空きのホストキャッシュを探す。*/ 735 718 for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) { 736 719 if (IN6_IS_HOSTCACHE_FREE(&in6_hostcache[ix])) … … 740 723 if (ix < 0) { 741 724 /* 742 * 空ããç¡ãæã¯ãæå¹æéã®åããæéãã743 * æãçããã¹ããã£ãã·ã¥ãç½®æããã725 * 空きが無い時は、有効時間の切れる時間が、 726 * 最も短いホストキャッシュを置換する。 744 727 */ 745 728 old = now - 1; … … 761 744 762 745 /* 763 * æ¢ã«ç»é²ããã¦ãã¦ãæ°ãã MTU ããç»é²ããã¦ãã MTU ãã大ããã¨ãã764 * IN6_HOSTCACHE_INCREASE ï¼æ¨å¥¨ 10 åï¼éã¯æ´æ°ããªãã746 * 既に登録されていて、新しい MTU が、登録されている MTU より大きいとき、 747 * IN6_HOSTCACHE_INCREASE(推奨 10 分)間は更新しない。 765 748 */ 766 749 return; … … 772 755 773 756 /* 774 * in6_hostcache_getmtu -- IPv6 ãã¹ããã£ãã·ã¥ããã MTU ãåå¾ããã775 * 776 * æ»ãå¤ã 0 ã§ããã°ããã¹ããã£ãã·ã¥ã«ç»é²ããã¦ããªãã757 * in6_hostcache_getmtu -- IPv6 ホストキャッシュをから MTU を取得する。 758 * 759 * 戻り値が 0 であれば、ホストキャッシュに登録されていない。 777 760 */ 778 761 … … 782 765 T_IN6_HOSTCACHE_ENTRY *hc; 783 766 784 /* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/767 /* 既に登録されているか探索する。*/ 785 768 if ((hc = in6_hostcache_lookup(dst)) == NULL) 786 769 return 0; … … 790 773 791 774 /* 792 * in6_hostcache_timer -- IPv6 ãã¹ããã£ãã·ã¥æ´æ°ã¿ã¤ãã¼793 * 794 * 1 ç§å¨æã§èµ·åãããã775 * in6_hostcache_timer -- IPv6 ホストキャッシュ更新タイマー 776 * 777 * 1秒周期で起動される。 795 778 */ 796 779 … … 812 795 813 796 /* 814 * in6_timer -- IPv6 å 815 ±éã¿ã¤ãã¼ 816 * 817 * 1ç§å¨æã§èµ·åãããã 797 * in6_timer -- IPv6 共通タイマー 798 * 799 * 1秒周期で起動される。 818 800 */ 819 801 … … 843 825 844 826 /* 845 * in6_init -- IPv6 å 846 ±éæ©è½ãåæåããã 827 * in6_init -- IPv6 共通機能を初期化する。 847 828 */ 848 829 … … 861 842 862 843 /* 863 * in6_is_dstaddr_accept -- å®å 864 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ãã¯ããã 844 * in6_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。 865 845 */ 866 846 … … 877 857 878 858 /* 879 * in6_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv6 ã¢ãã¬ã¹ãè¨å®ããã880 * 881 * vltime 㨠pltime ã®åä½ã¯[s]859 * in6_add_ifaddr -- インタフェースに IPv6 アドレスを設定する。 860 * 861 * vltime と pltime の単位は[s] 882 862 */ 883 863 … … 890 870 int_t ix; 891 871 892 /* 空ãã®ã¨ã³ããªã¼ãæ¢ãã*/872 /* 空きのエントリーを探す。*/ 893 873 ix = 0; 894 874 while (true) { 895 875 ia = in6ifa_ifpwithix(ifp, ix ++); 896 876 897 /* 空ããç¡ããã°ã¨ã©ã¼*/877 /* 空きが無ければエラー */ 898 878 if (ia == NULL) 899 879 return E_OBJ; … … 903 883 } 904 884 905 /* ç»é²ããã*/885 /* 登録する。*/ 906 886 return in6_update_ifa(ifp, ia, addr, prefix_len, vltime, pltime, 907 887 IN6_RTR_IX_UNREACH, ND6_PREFIX_IX_INVALID, 0); … … 909 889 910 890 /* 911 * in6_upd_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãæ´æ°ããã912 * 913 * ç»é²ããã¦ããªããã°ã追å ããã914 * vltime 㨠pltime ã®åä½ã¯[s]891 * in6_upd_ifaddr -- インタフェースに設定されている IPv6 アドレスを更新する。 892 * 893 * 登録されていなければ、追加する。 894 * vltime と pltime の単位は[s] 915 895 */ 916 896 … … 924 904 925 905 /* 926 * ã¢ãã¬ã¹ãä¸è´ããã¨ã³ããªã¼ãæ¢ãã927 * ç¡ããã°ç»é²ããã906 * アドレスが一致するエントリーを探す。 907 * 無ければ登録する。 928 908 */ 929 909 if ((ix = in6_addr2ifaix(addr)) == IPV6_IFADDR_IX_INVALID) … … 931 911 932 912 /* 933 * ã¤ã³ããã¯ã¹çªå·ãããã¨ã³ããªã¼ã«å¤æããã934 * ã¨ã©ã¼ã«ãªããªãã¯ãã§ãããã確èªããã913 * インデックス番号から、エントリーに変換する。 914 * エラーにならないはずであるが、確認する。 935 915 */ 936 916 if ((ia = in6ifa_ifpwithix (ifp, ix)) == NULL) 937 917 return E_OBJ; 938 918 939 /* æ´æ°ããã*/919 /* 更新する。*/ 940 920 return in6_update_ifa(ifp, ia, addr, prefix_len, vltime, pltime, 941 921 IN6_RTR_IX_UNREACH, ND6_PREFIX_IX_INVALID, 0); … … 943 923 944 924 /* 945 * in6_del_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãåé¤ããã925 * in6_del_ifaddr -- インタフェースに設定されている IPv6 アドレスを削除する。 946 926 */ 947 927 … … 952 932 int_t ix; 953 933 954 /* ã¢ãã¬ã¹ãä¸è´ããã¨ã³ããªã¼ãæ¢ãã*/934 /* アドレスが一致するエントリーを探す。*/ 955 935 if ((ix = in6_addr2ifaix(addr)) != IPV6_IFADDR_IX_INVALID) { 956 936 957 /* ã¨ã³ããªã¼ãç¡å¹ã«ããã*/937 /* エントリーを無効にする。*/ 958 938 ifp->in6_ifaddrs[ix].flags &= ~IN6_IFF_DEFINED; 959 939 return E_OK; -
azure_iot_hub/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
r388 r389 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 * ã¢ãã¬ã¹ã®å®ç¾©105 * アドレスの定義 118 106 */ 119 107 … … 149 137 150 138 /* 151 * ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯152 */ 153 154 /* IPv4 äºæ*/139 * 特別なアドレスのチェック 140 */ 141 142 /* IPv4 互換 */ 155 143 156 144 #ifdef _NET_CFG_BYTE_ORDER … … 160 148 #endif 161 149 162 /* IPv4 å°å½±*/150 /* IPv4 射影 */ 163 151 164 152 #ifdef _NET_CFG_BYTE_ORDER … … 169 157 #endif 170 158 171 /* è¦è«ãã«ããã£ã¹ã*/159 /* 要請マルチキャスト */ 172 160 173 161 #ifdef _NET_CFG_BYTE_ORDER … … 182 170 183 171 /* 184 * ã¢ãã¬ã¹æå¹æéæ§é ä½172 * アドレス有効時間構造体 185 173 */ 186 174 … … 188 176 189 177 /* 190 * expire 㨠perferred ã¯ãã·ã¹ãã ãèµ·åãã¦ããã®çµéæé178 * expire と perferred は、システムが起動してからの経過時間 191 179 */ 192 uint32_t expire; /* æå¹æéãåããæå»[s] */193 uint32_t preferred; /* æ¨å¥¨æå¹æéãåããæå»[s] */180 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 181 uint32_t preferred; /* 推奨有効時間が切れる時刻 [s] */ 194 182 195 183 /* 196 * vltime 㨠pltime ã¯ã追å /å¤æ´ãã¦ããã®ç¸å¯¾æé184 * vltime と pltime は、追加/変更してからの相対時間 197 185 */ 198 uint32_t vltime; /* æå¹æé[us] */199 uint32_t pltime; /* æ¨å¥¨æå¹æé[us] */186 uint32_t vltime; /* 有効時間 [us] */ 187 uint32_t pltime; /* 推奨有効時間 [us] */ 200 188 } __attribute__((packed, aligned(2)))T_IN6_ADDR_LIFETIME; 201 189 202 190 /* 203 * ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½191 * インタフェースアドレス構造体 204 192 */ 205 193 206 194 typedef struct t_in6_ifaddr { 207 T_IN6_ADDR addr; /* IPv6 ã¢ãã¬ã¹ */ 208 T_IN6_ADDR_LIFETIME lifetime; /* æå¹æé */ 209 uint8_t flags; /* ãã©ã° */ 210 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é· */ 211 uint8_t router_index; /* ã«ã¼ã¿ã¤ã³ããã¯ã¹ */ 212 uint8_t prefix_index; /* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹ */ 213 uint8_t na_icount; /* éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥ã®å 214 ¥ååæ° */ 215 uint8_t ns_icount; /* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®å 216 ¥ååæ° */ 217 uint8_t ns_ocount; /* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®åºååæ° */ 195 T_IN6_ADDR addr; /* IPv6 アドレス */ 196 T_IN6_ADDR_LIFETIME lifetime; /* 有効時間 */ 197 uint8_t flags; /* フラグ */ 198 uint8_t prefix_len; /* プレフィックス長 */ 199 uint8_t router_index; /* ルータインデックス */ 200 uint8_t prefix_index; /* プレフィックスインデックス */ 201 uint8_t na_icount; /* 重複アドレス検出 (DAD) 通知の入力回数 */ 202 uint8_t ns_icount; /* 重複アドレス検出 (DAD) 要請の入力回数 */ 203 uint8_t ns_ocount; /* 重複アドレス検出 (DAD) 要請の出力回数 */ 218 204 } __attribute__((packed, aligned(2)))T_IN6_IFADDR; 219 205 220 206 /* 221 * ã¢ãã¬ã¹ç¶æ 222 ãã©ã° 223 */ 224 225 #define IN6_IFF_ANYCAST UINT_C(0x01) /* ã¨ãã¼ãã£ã¹ã */ 226 #define IN6_IFF_DEFINED UINT_C(0x02) /* å®ç¾©æ¸ã¿ */ 227 #define IN6_IFF_TENTATIVE UINT_C(0x04) /* éè¤æ¤åºä¸ */ 228 #define IN6_IFF_DUPLICATED UINT_C(0x08) /* éè¤ãæ¤åºãã */ 229 #define IN6_IFF_DEPRECATED UINT_C(0x10) /* éæ¨å¥¨ */ 230 #define IN6_IFF_NODAD UINT_C(0x20) /* éè¤æ¤åºä¸è¦ */ 231 #define IN6_IFF_AUTOCONF UINT_C(0x40) /* èªåè¨å®ããã */ 232 #define IN6_IFF_DETACHED UINT_C(0x80) /* éä½¿ç¨ */ 233 234 /* 235 * ã¢ãã¬ã¹ã®æå¹æ§ãã§ã㯠207 * アドレス状態フラグ 208 */ 209 210 #define IN6_IFF_ANYCAST UINT_C(0x01) /* エニーキャスト */ 211 #define IN6_IFF_DEFINED UINT_C(0x02) /* 定義済み */ 212 #define IN6_IFF_TENTATIVE UINT_C(0x04) /* 重複検出中 */ 213 #define IN6_IFF_DUPLICATED UINT_C(0x08) /* 重複を検出した */ 214 #define IN6_IFF_DEPRECATED UINT_C(0x10) /* 非推奨 */ 215 #define IN6_IFF_NODAD UINT_C(0x20) /* 重複検出不要 */ 216 #define IN6_IFF_AUTOCONF UINT_C(0x40) /* 自動設定された */ 217 #define IN6_IFF_DETACHED UINT_C(0x80) /* 非使用 */ 218 219 /* 220 * アドレスの有効性チェック 236 221 */ 237 222 … … 248 233 249 234 /* 250 * ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹235 * ルータのインデックス 251 236 */ 252 237 … … 254 239 255 240 /* 256 * å¶éå¤ 257 */ 258 259 #define IP6_HDR_NEST_LIMIT 50 /* IPv6 ãããã®ãã¹ãå¶éå¤ */ 260 261 /* 262 * ã¢ãã¬ã¹æ 263 å ±é 264 åã®ã¤ã³ããã¯ã¹ 241 * 制限値 242 */ 243 244 #define IP6_HDR_NEST_LIMIT 50 /* IPv6 ヘッダのネスト制限値 */ 245 246 /* 247 * アドレス情報配列のインデックス 265 248 */ 266 249 … … 269 252 270 253 /* 271 * IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹é 272 åã®ã¤ã³ããã¯ã¹ 273 */ 274 275 #define IPV6_MADDR_IX_SOL_NODE 0 /* è¦è«ãã«ããã£ã¹ãã»ã¢ãã¬ã¹ */ 276 #define IPV6_MADDR_IX_LL_ALL_NODE 1 /* å 277 ¨ãã¼ãã»ãªã³ã¯ãã¼ã«ã«ã»ãã«ããã£ã¹ãã¢ãã¬ã¹ */ 254 * IPv6 マルチキャストアドレス配列のインデックス 255 */ 256 257 #define IPV6_MADDR_IX_SOL_NODE 0 /* 要請マルチキャスト・アドレス */ 258 #define IPV6_MADDR_IX_LL_ALL_NODE 1 /* 全ノード・リンクローカル・マルチキャストアドレス */ 278 259 #define IPV6_MADDR_IX_EXTRA 2 279 260 280 261 #define MAX_IN6_MADDR_CNT MAX_IF_MADDR_CNT 281 /* IPv6 ãã«ããã£ã¹ãã¢ãã¬ã¹é 282 åã®æ大ãµã¤ãº */ 283 284 /* ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ */ 262 /* IPv6 マルチキャストアドレス配列の最大サイズ */ 263 264 /* ルーティング表エントリ構造体 */ 285 265 286 266 typedef struct t_in6_rtentry { 287 T_IN6_ADDR target; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹*/288 T_IN6_ADDR gateway; /* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹*/289 uint32_t expire; /* æå¹æéãåããæå»[s] */290 uint8_t flags; /* ãã©ã°*/291 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é·*/267 T_IN6_ADDR target; /* 目標ネットワークアドレス */ 268 T_IN6_ADDR gateway; /* ゲートウェイの IP アドレス */ 269 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 270 uint8_t flags; /* フラグ */ 271 uint8_t prefix_len; /* プレフィックス長 */ 292 272 } __attribute__((packed, aligned(2)))T_IN6_RTENTRY; 293 273 294 274 /* 295 * ãã¹ããã£ãã·ã¥296 */ 297 298 /* ãã¹ããã£ãã·ã¥æ§é ä½*/275 * ホストキャッシュ 276 */ 277 278 /* ホストキャッシュ構造体 */ 299 279 300 280 typedef struct t_in6_hostcache_entry { 301 T_IN6_ADDR dst; /* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹*/302 uint32_t expire; /* æå¹æéãåããæå»[s] */281 T_IN6_ADDR dst; /* 目標ネットワークアドレス */ 282 uint32_t expire; /* 有効時間が切れる時刻 [s] */ 303 283 uint32_t mtu; /* Path MTU */ 304 284 } __attribute__((packed, aligned(2)))T_IN6_HOSTCACHE_ENTRY; 305 285 306 #define IN6_HOSTCACHE_EXPIRE (60*60*SYSTIM_HZ) /* æå¹æé*/307 #define IN6_HOSTCACHE_PRUNE (5*60*SYSTIM_HZ) /* æ´æ°éé*/308 #define IN6_HOSTCACHE_INCREASE (10*60*SYSTIM_HZ) /* å¢å ããå ´åã®ä¿è·æé*/286 #define IN6_HOSTCACHE_EXPIRE (60*60*SYSTIM_HZ) /* 有効時間 */ 287 #define IN6_HOSTCACHE_PRUNE (5*60*SYSTIM_HZ) /* 更新間隔 */ 288 #define IN6_HOSTCACHE_INCREASE (10*60*SYSTIM_HZ) /* 増加する場合の保護時間 */ 309 289 310 290 #define IN6_IS_HOSTCACHE_FREE(e) IN6_IS_ADDR_UNSPECIFIED(&((e)->dst)) … … 312 292 313 293 /* 314 * ã«ã¼ãã£ã³ã°è¡¨294 * ルーティング表 315 295 */ 316 296 … … 318 298 319 299 /* 320 * åæ¹åç 321 § 300 * 前方参照 322 301 */ 323 302 … … 331 310 332 311 /* 333 * å¤æ°312 * 変数 334 313 */ 335 314 … … 337 316 338 317 /* 339 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã318 * 関数シミュレーションマクロ 340 319 */ 341 320 … … 345 324 346 325 /* 347 * é¢æ°326 * 関数 348 327 */ 349 328 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 _IP6_CFG 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_IN6_ROUTE_ENTRY > 0 73 61 74 /* ã«ã¼ãã£ã³ã°è¡¨*/62 /* ルーティング表 */ 75 63 76 64 CRE_SEM(SEM_IN6_ROUTING_TBL, { TA_TPRI, 1, 1 }); -
azure_iot_hub/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
r388 r389 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$ … … 161 149 162 150 /* 163 * é¢æ°151 * 関数 164 152 */ 165 153 … … 167 155 168 156 /* 169 * ä¸ä½ãããã³ã«é¸ææ§é ä½157 * 上位プロトコル選択構造体 170 158 */ 171 159 172 160 typedef struct t_proto_switch { 173 uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *); /* å 174 ¥åé¢æ° */ 175 uint_t proto; /* ãããã³ã«çªå· */ 161 uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *); /* 入力関数 */ 162 uint_t proto; /* プロトコル番号 */ 176 163 } T_PROTO_SWITCH; 177 164 178 165 static const T_PROTO_SWITCH proto_switch[] = { 179 { esp6_input, IPPROTO_ESP }, /* IPv6 æå·åããã*/180 { ah6_input, IPPROTO_AH }, /* IPv6 èªè¨¼ããã*/181 { frag6_input, IPPROTO_FRAGMENT }, /* æçããã*/182 { route6_input, IPPROTO_ROUTING }, /* çµè·¯å¶å¾¡ããã*/183 { dest6_input, IPPROTO_DSTOPTS }, /* IPv6 çµç¹ãªãã·ã§ã³*/166 { esp6_input, IPPROTO_ESP }, /* IPv6 暗号化ヘッダ */ 167 { ah6_input, IPPROTO_AH }, /* IPv6 認証ヘッダ */ 168 { frag6_input, IPPROTO_FRAGMENT }, /* 断片ヘッダ */ 169 { route6_input, IPPROTO_ROUTING }, /* 経路制御ヘッダ */ 170 { dest6_input, IPPROTO_DSTOPTS }, /* IPv6 終点オプション */ 184 171 { ip6_no_header_input, 185 IPPROTO_NONE }, /* 次ãããç¡ã*/172 IPPROTO_NONE }, /* 次ヘッダ無し */ 186 173 { icmp6_input, IPPROTO_ICMPV6 }, 187 174 … … 207 194 208 195 /* 209 * get_upper_proto -- ä¸ä½ãããã³ã«å¦çé¢æ°ãè¿ãã196 * get_upper_proto -- 上位プロトコル処理関数を返す。 210 197 */ 211 198 … … 222 209 223 210 /* 224 * ip6_no_header_input -- 次ããããç¡ãã®å ´åã®å 225 ¥åå¦ç 211 * ip6_no_header_input -- 次ヘッダが無しの場合の入力処理 226 212 */ 227 213 … … 234 220 235 221 /* 236 * ip6_hopopts_input -- ä¸ç¶ç¹ãªãã·ã§ã³å 237 ¥åå¦ç 238 * 239 * æ¬å®è£ 240 ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå 241 ¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã 242 * 243 * æ»ãå¤: 244 * 245 * 0 ä»¥ä¸ æ£å¸¸ 246 * IP6_OPT_RET_ERR (-1) ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã 247 * IP6_OPT_RET_REL (-2) ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã 222 * ip6_hopopts_input -- 中継点オプション入力処理 223 * 224 * 本実装では、パディング以外のオプションを全て未知オプションとして処理する。 225 * 226 * 戻り値: 227 * 228 * 0 以上 正常 229 * IP6_OPT_RET_ERR (-1) エラー、呼出側でネットワークバッファを開放する。 230 * IP6_OPT_RET_REL (-2) エラー、ネットワークバッファは開放されている。 248 231 */ 249 232 … … 293 276 294 277 /* 295 * ip6_get_prev_hdr -- ç´åã®æ¡å¼µãããã® next ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãè¿ãã296 * 297 * 注æ: off ã«ã¯ IF_HDR_SIZE ãå«ã¾ãã¦ããã278 * ip6_get_prev_hdr -- 直前の拡張ヘッダの next フィールドのアドレスを返す。 279 * 280 * 注意: off には IF_HDR_SIZE も含まれている。 298 281 */ 299 282 … … 339 322 340 323 /* 341 * ip6_init -- IPv6 ã®åæåé¢æ°324 * ip6_init -- IPv6 の初期化関数 342 325 */ 343 326 … … 350 333 351 334 /* 352 * ip6_input -- IPv6 ã®å 353 ¥åé¢æ° 335 * ip6_input -- IPv6 の入力関数 354 336 */ 355 337 … … 368 350 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInReceives, 1); 369 351 370 /* IP ãããã®é·ãããã§ãã¯ããã*/352 /* IP ヘッダの長さをチェックする。*/ 371 353 if (input->len < IF_IP6_HDR_SIZE) { 372 354 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1); … … 377 359 ip6h = GET_IP6_HDR(input); 378 360 379 /* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/361 /* バージョンをチェックする。*/ 380 362 if (IP6_VCF_V(ntohl(ip6h->vcf)) != IPV6_VERSION) { 381 363 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_VER], 1); … … 385 367 386 368 /* 387 * 次ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã369 * 次のデータグラムは破棄する。 388 370 * 389 * ã»å§ç¹ã¢ãã¬ã¹ããã«ããã£ã¹ã390 * ã»çµç¹ã¢ãã¬ã¹ãæªå®ç¾©371 * ・始点アドレスがマルチキャスト 372 * ・終点アドレスが未定義 391 373 * 392 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã«ã¼ãããã¯ã§ãªãã¨ãã393 * 次ã®ãã¼ã¿ã°ã©ã ãç ´æ£ããã374 * ネットワークインタフェースがループバックでないとき、 375 * 次のデータグラムも破棄する。 394 376 * 395 * ã»å§ç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯396 * ã»çµç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯377 * ・始点アドレスがループバック 378 * ・終点アドレスがループバック 397 379 * 398 * æªæã®ããã¦ã¼ã¶ã TCP/UDP ã¹ã¿ãã¯ã®æ··ä¹±ã399 * ã»ãã¥ãªãã£ãã§ãã¯ããã¤ãã¹ãããããIPv4400 * ãããã¢ãã¬ã¹ãæªç¨ãããã¨ãé²ããã401 * 以ä¸ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã380 * 悪意のあるユーザが TCP/UDP スタックの混乱や 381 * セキュリティチェックをバイパスするため、IPv4 382 * マップアドレスを悪用することを防ぐため 383 * 以下のデータグラムは破棄する。 402 384 * 403 * ã»å§ç¹ã¢ãã¬ã¹ã::ffff:127.0.0.1404 * ã»çµç¹ã¢ãã¬ã¹ã::ffff:127.0.0.1385 * ・始点アドレスが ::ffff:127.0.0.1 386 * ・終点アドレスが ::ffff:127.0.0.1 405 387 */ 406 388 … … 435 417 436 418 if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) { 437 /* å®å 438 ããã«ããã£ã¹ãã®å ´åã®å¦ç */ 419 /* 宛先がマルチキャストの場合の処理 */ 439 420 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInMcastPkts, 1); 440 421 if (!in6_lookup_multi(ifp, &ip6h->dst)) { … … 451 432 } 452 433 453 /* ã¢ãã¬ã¹ãæªè§£æ±ºã®å ´åã¯ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/434 /* アドレスが未解決の場合はデータグラムを破棄する。*/ 454 435 if (IFA6_IS_NOTREADY(ia6)) { 455 436 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1); … … 459 440 } 460 441 461 /* ãªãã»ãããè¨å®ããã*/442 /* オフセットを設定する。*/ 462 443 offp = GET_IP6_NEXT_HDR(input) - input->buf; 463 444 464 /* ãã¤ãã¼ãé·ãåãåºãã*/445 /* ペイロード長を取り出す。*/ 465 446 plen = ntohs(ip6h->plen); 466 447 467 448 468 /* 次ãããã®ä½ç½®ãåæåããã*/449 /* 次ヘッダの位置を初期化する。*/ 469 450 nextp = offsetof(T_IP6_HDR, next); 470 451 471 452 /* 472 * ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ãããã®ãã§ãã¯453 * 中継点 (Hop-by-Hop) オプションヘッダのチェック 473 454 */ 474 455 if (ip6h->next == IPPROTO_HOPOPTS) { 475 456 476 /* ä¸ç¶ç¹ãããã®é·ãããã§ãã¯ããã*/457 /* 中継点ヘッダの長さをチェックする。*/ 477 458 if (plen < sizeof(T_IP6_HBH_HDR)) { 478 459 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1); … … 495 476 496 477 /* 497 * ãã¤ãã¼ãé·ã 0 ã§ãä¸ç¶ç¹ãªãã·ã§ã³ãããã¨ãã¯ã 498 * 巨大ãã¤ãã¼ãã»ãªãã·ã§ã³ãå«ã¾ããªããã°ãªããªãã 499 * ãã®ã¨ãã巨大ãã¤ãã¼ãã»ãªãã·ã§ã³ã«ãã 500 * ãã¤ãã¼ãé·ããã§ãã¯ããå¿ 501 è¦ãããããæ¬å®è£ 502 ã§ã¯ã 503 * 巨大ãã¤ãã¼ãã»ãªãã·ã§ã³ãæªç¥ã®ãªãã·ã§ã³ã¨ã㦠504 * æ±ãã®ã§ãä½ãããªãã 478 * ペイロード長が 0 で、中継点オプションがあるときは、 479 * 巨大ペイロード・オプションが含まれなければならない。 480 * このとき、巨大ペイロード・オプションにある 481 * ペイロード長をチェックする必要があるが、本実装では、 482 * 巨大ペイロード・オプションを未知のオプションとして 483 * 扱うので、何もしない。 505 484 */ 506 485 next = ((T_IP6_HBH_HDR *)(ip6h + 1))->next; … … 509 488 next = ip6h->next; 510 489 511 /* IPv6 ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/490 /* IPv6 データグラム長をチェックする。*/ 512 491 if (input->len - IF_IP6_HDR_SIZE < plen) { 513 492 NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1); … … 518 497 input->len = IF_IP6_HDR_SIZE + plen; 519 498 520 /* ä¸ä½ãããã³ã«å¦çé¢æ°ãå¼ã³åºãã*/499 /* 上位プロトコル処理関数を呼び出す。*/ 521 500 nest = 0; 522 501 while (next != IPPROTO_DONE) { … … 531 510 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInUnknownProtos, 1); 532 511 533 /* icmp6_error ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã*/512 /* icmp6_error でネットワークバッファを開放する。*/ 534 513 icmp6_error(input, ICMP6_PARAM_PROB, 535 514 ICMP6_PARAMPROB_NEXT_HEADER, nextp); … … 548 527 549 528 /* 550 * ip6_nexthdr -- 次ã®ãããã®ãªãã»ãããè¿ãã551 * 552 * æ»ãå¤ == -1 : æå¾ã®ããããã¾ãã¯ã¨ã©ã¼ã553 * æ»ãå¤ > 0 : ããã«ããããç¶ãã529 * ip6_nexthdr -- 次のヘッダのオフセットを返す。 530 * 531 * 戻り値 == -1 : 最後のヘッダ、またはエラー。 532 * 戻り値 > 0 : さらにヘッダが続く。 554 533 */ 555 534 … … 569 548 break; 570 549 571 case IPPROTO_FRAGMENT: /* æçããã*/550 case IPPROTO_FRAGMENT: /* 断片ヘッダ */ 572 551 if (nbuf->len < off + sizeof(T_IP6_FRAG_HDR)) 573 552 return (ER_UINT)-1; 574 553 575 /* ä¸éã®ãã©ã°ã¡ã³ãã®å ´åã¯å¦çããããã*/554 /* 中間のフラグメントの場合は処理をやめる。*/ 576 555 ip6fh = (T_IP6_FRAG_HDR *)(nbuf->buf + off); 577 556 if (ntohs(ip6fh->off_flag) & IP6F_MORE_FRAG) … … 582 561 break; 583 562 584 case IPPROTO_AH: /* IPv6 èªè¨¼ããã*/585 case IPPROTO_HOPOPTS: /* IPv6 ä¸ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³*/586 case IPPROTO_ROUTING: /* çµè·¯å¶å¾¡ããã*/587 case IPPROTO_DSTOPTS: /* IPv6 çµç¹ãªãã·ã§ã³*/563 case IPPROTO_AH: /* IPv6 認証ヘッダ */ 564 case IPPROTO_HOPOPTS: /* IPv6 中継点 (Hop-by-Hop) オプション */ 565 case IPPROTO_ROUTING: /* 経路制御ヘッダ */ 566 case IPPROTO_DSTOPTS: /* IPv6 終点オプション */ 588 567 if (nbuf->len < off + sizeof(T_IP6_EXT_HDR)) 589 568 return (ER_UINT)-1; … … 602 581 603 582 /* 604 * ip6_lasthdr -- æå¾ã®ãããã®ãªãã»ãããè¿ãã583 * ip6_lasthdr -- 最後のヘッダのオフセットを返す。 605 584 */ 606 585 … … 621 600 622 601 /* 623 * ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç624 * 625 * æ»ãå¤:626 * 627 * 0 ä»¥ä¸ æ£å¸¸ããªãã·ã§ã³é·ã628 * IP6_OPT_RET_ERR (-1) ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã629 * IP6_OPT_RET_REL (-2) ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã602 * ip6_unknown_opt -- 未知のオプションの処理 603 * 604 * 戻り値: 605 * 606 * 0 以上 正常、オプション長。 607 * IP6_OPT_RET_ERR (-1) エラー、呼出側でネットワークバッファを開放する。 608 * IP6_OPT_RET_REL (-2) エラー、ネットワークバッファは開放されている。 630 609 */ 631 610 … … 634 613 { 635 614 switch (IP6OPT_TYPE(*opt)) { 636 case IP6OPT_TYPE_SKIP: /* ç¡è¦ããã*/615 case IP6OPT_TYPE_SKIP: /* 無視する。 */ 637 616 return *(opt + 1); 638 617 break; 639 case IP6OPT_TYPE_ICMP: /* ç ´æ£ãã¦ããã«ããã£ã¹ãã§ãªããã° ICMP ãè¿éããã*/618 case IP6OPT_TYPE_ICMP: /* 破棄して、マルチキャストでなければ ICMP を返送する。 */ 640 619 if (IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) 641 620 return IP6_OPT_RET_ERR; 642 621 /* no break; */ 643 case IP6OPT_TYPE_FORCEICMP: /* ç ´æ£ãã¦ãICMP ãè¿éããã*/622 case IP6OPT_TYPE_FORCEICMP: /* 破棄して、ICMP を返送する。 */ 644 623 icmp6_error(input, ICMP6_PARAM_PROB, 645 624 ICMP6_PARAMPROB_OPTION, … … 647 626 return IP6_OPT_RET_REL; 648 627 break; 649 /*case IP6OPT_TYPE_DISCARD: ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/628 /*case IP6OPT_TYPE_DISCARD: データグラムを破棄する。 */ 650 629 } 651 630 … … 654 633 655 634 /* 656 * ip6_remove_exthdrs -- IPv6 æ¡å¼µããããåé¤ãã以éãåã«è©°ããã635 * ip6_remove_exthdrs -- IPv6 拡張ヘッダを削除し、以降を前に詰める。 657 636 */ 658 637 … … 663 642 uint_t next; 664 643 665 /* éå§ãªãã»ããã IP ãããã«è¨å®ããã*/644 /* 開始オフセットを IP ヘッダに設定する。*/ 666 645 off = ((uint8_t *)GET_IP6_HDR(nbuf)) - nbuf->buf; 667 646 668 /* æçµããããæ¢ç´¢ããã*/647 /* 最終ヘッダを探索する。*/ 669 648 off = ip6_lasthdr(nbuf, off, IPPROTO_IPV6, &next); 670 649 -
azure_iot_hub/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
r388 r389 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$ … … 154 142 155 143 /* 156 * å 157 ¨åå¤æ° 158 */ 159 160 /* ãªã³ã¯ MTU */ 144 * 全域変数 145 */ 146 147 /* リンク MTU */ 161 148 162 149 uint32_t linkmtu = IF_MTU; 163 150 164 151 /* 165 * å±æå¤æ°152 * 局所変数 166 153 */ 167 154 … … 173 160 174 161 /* 175 * ip6_output -- IPv6 ã®åºåé¢æ°162 * ip6_output -- IPv6 の出力関数 176 163 */ 177 164 … … 204 191 205 192 /* 206 * éè¤ã¢ãã¬ã¹æ¤åºè¦è«ä»¥å¤ã«ã¯ãéä¿¡å 207 ã¢ãã¬ã¹ã« 208 * ç¡æå®ãæå®ã§ããªãã 193 * 重複アドレス検出要請以外には、送信元アドレスに 194 * 無指定を指定できない。 209 195 */ 210 196 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) && (flags & IPV6_OUT_FLG_DAD) == 0) { … … 213 199 } 214 200 215 /* éä¿¡å 216 ã¢ãã¬ã¹ã«ã¯ãã«ããã£ã¹ãã¢ãã¬ã¹ãæå®ã§ããªãã*/ 201 /* 送信元アドレスにはマルチキャストアドレスを指定できない。*/ 217 202 if (IN6_IS_ADDR_MULTICAST(&ip6h->src)) { 218 203 error = E_PAR; … … 221 206 222 207 /* 223 * çµè·¯é¸æãè¡ãã208 * 経路選択を行う。 224 209 */ 225 210 if ((gw = in6_rtalloc(ifp, &ip6h->dst)) == NULL) { … … 229 214 230 215 if (!IN6_IS_ADDR_MULTICAST(&ip6h->dst)) { 231 /* ã¦ããã£ã¹ãã¢ãã¬ã¹ã®å¦ç*/216 /* ユニキャストアドレスの処理 */ 232 217 } 233 218 else { 234 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã®å¦ç*/219 /* マルチキャストアドレスの処理 */ 235 220 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutMcastPkts, 1); 236 221 if (flags & IPV6_OUT_FLG_HOP_LIMIT) … … 240 225 } 241 226 242 /* Traffic Class 㨠Flow Label ããµãã¼ãããªãã®ã§ 0 ã«è¨å®ããã*/227 /* Traffic Class と Flow Label をサポートしないので 0 に設定する。*/ 243 228 ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0)); 244 229 … … 253 238 254 239 /* 255 * Path MTU ãç»é²ããã¦ããå ´åã256 * MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ã®å ´åã¯ã257 * MTU ã IPv6 MMTU ã«è¨å®ãåå²ãã¦éä¿¡ããã240 * Path MTU が登録されている場合、 241 * MTU が IPv6 MMTU(1280 オクテット)以下の場合は、 242 * MTU を IPv6 MMTU に設定し分割して送信する。 258 243 */ 259 244 mtu = IPV6_MMTU; … … 272 257 if (plen + IP6_HDR_SIZE <= mtu && !alwaysfrag) { 273 258 274 /* åå²ããå¿ 275 è¦ããªãã¨ãã®å¦ç */ 259 /* 分割する必要がないときの処理 */ 276 260 if ((error = nd6_output(ifp, output, gw, NULL, tmout)) != E_OK) { 277 261 NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1); … … 281 265 else { 282 266 283 /* æç ID ãè¨å®ããã*/267 /* 断片 ID を設定する。*/ 284 268 id = ip6_id ++; 285 269 286 /* MTU ã IPv6 ã®æ大ãã±ãããµã¤ãºãè¶ 287 ããªãããã«ããã*/ 270 /* MTU が IPv6 の最大パケットサイズを超えないようにする。*/ 288 271 if (mtu > IPV6_MAXPACKET) 289 272 mtu = IPV6_MAXPACKET; 290 273 291 274 /* 292 * MTU ãããåå²ä¸è½é¨åï¼TINET-1.4 ã§ã¯ãåå²ããã以å¤ã® 293 * æ¡å¼µãããã®åºåã¯æªå®è£ 294 ã®ãã 0 ãªã¯ãããï¼ 295 * ã¨æçãããã®ãµã¤ãºãå¼ããã¨ãã8 ãªã¯ããã以ä¸ãªããã° 296 * åå²ãã¦éä¿¡ã§ããªãããã¨ã©ã¼ã«ããã 275 * MTU から、分割不能部分(TINET-1.4 では、分割ヘッダ以外の 276 * 拡張ヘッダの出力は未実装のため 0 オクテット) 277 * と断片ヘッダのサイズを引いたとき、8 オクテット以上なければ 278 * 分割して送信できないためエラーにする。 297 279 */ 298 280 if (((mtu - sizeof(T_IP6_FRAG_HDR)) & ~7) < 8) { … … 302 284 303 285 /* 304 * IPv6 ãããã® next ãã£ã¼ã«ãã«è¨å®ããå¤ã¯ãæçãããã 305 * æçãããã® next ãã£ã¼ã«ãã«è¨å®ããå¤ã¯ã 306 * å 307 ã®ãã¼ã¿ã°ã©ã ã® next ãã£ã¼ã«ãã®å¤ã 286 * IPv6 ヘッダの next フィールドに設定する値は、断片ヘッダ。 287 * 断片ヘッダの next フィールドに設定する値は、 288 * 元のデータグラムの next フィールドの値。 308 289 */ 309 290 nextproto = ip6h->next; 310 291 ip6h->next = IPPROTO_FRAGMENT; 311 292 312 /* åå²ãã¦éä¿¡ããã*/293 /* 分割して送信する。*/ 313 294 NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT], 1); 314 295 for (foff = 0; foff < plen; foff += flen) { 315 296 316 /* æçã®é·ããè¨ç®ãã8 ãªã¯ãããå¢çã«èª¿æ´ããã*/297 /* 断片の長さを計算し、8 オクテット境界に調整する。*/ 317 298 if (foff + (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) < plen) 318 299 flen = (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) >> 3 << 3; … … 320 301 flen = plen - foff; 321 302 322 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/303 /* ネットワークバッファを獲得する。*/ 323 304 if (tget_net_buf(&frag, flen + IF_IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR), TMO_IP6_FRAG_GET_NET_BUF) == E_OK) { 324 305 325 /* IPv6 ããããã³ãã¼ããã*/306 /* IPv6 ヘッダをコピーする。*/ 326 307 fip6h = GET_IP6_HDR(frag); 327 308 *fip6h = *ip6h; 328 309 329 /* IPv6 ããããåããã*/310 /* IPv6 ヘッダを埋める。*/ 330 311 fip6h->plen = htons(flen + sizeof(T_IP6_FRAG_HDR)); 331 312 332 /* æçããããåããã*/313 /* 断片ヘッダを埋める。*/ 333 314 fip6f = (T_IP6_FRAG_HDR *)GET_IP6_NEXT_HDR(frag); 334 315 fip6f->off_flag = htons((uint16_t)(foff & ~7)); … … 339 320 fip6f->next = nextproto; 340 321 341 /* SDU ãã³ãã¼ããã*/322 /* SDU をコピーする。*/ 342 323 memcpy((uint8_t*)(fip6f + 1), GET_IP6_NEXT_HDR(output) + foff, flen); 343 324 NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT_FRAGS], 1); 344 325 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragCreates, 1); 345 326 346 /* éä¿¡ããã*/327 /* 送信する。*/ 347 328 if ((error = nd6_output(ifp, frag, gw, NULL, tmout)) != E_OK) { 348 329 NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragFails, 1); … … 351 332 } 352 333 else { 353 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ã§ããªããã°ãéä¿¡ããããããã*/334 /* ネットワークバッファが獲得できなければ、送信をあきらめる。*/ 354 335 error = E_NOMEM; 355 336 goto drop; … … 357 338 } 358 339 359 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/340 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 360 341 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 361 342 syscall(rel_net_buf(output)); … … 379 360 380 361 drop: 381 /* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/362 /* IF でネットワークバッファを開放しないフラグをチェックする。*/ 382 363 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 383 364 syscall(rel_net_buf(output)); -
azure_iot_hub/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
r388 r389 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 … … 131 119 #define SET_IP6_SDU_SIZE(nbuf,slen) (GET_IP6_HDR(nbuf)->plen=htons(slen)) 132 120 133 /* ip6_output ã®ãã©ã°*/134 135 #define IPV6_OUT_FLG_DAD 0x0100 /* éè¤ã¢ãã¬ã¹æ¤åº*/136 #define IPV6_OUT_FLG_HOP_LIMIT 0x0200 /* ããããªãããæå®*/137 138 /* ããããªããããã©ã°ãä»ãæãããããªãããå¤ãæä½ãããã¯ã*/121 /* ip6_output のフラグ */ 122 123 #define IPV6_OUT_FLG_DAD 0x0100 /* 重複アドレス検出 */ 124 #define IPV6_OUT_FLG_HOP_LIMIT 0x0200 /* ホップリミット指定 */ 125 126 /* ホップリミットフラグが付く時、ホップリミット値を操作するマクロ */ 139 127 140 128 #define IPV6_OUT_GET_HOP_LIMIT(f) ((f)&0x00ff) … … 142 130 143 131 /* 144 * ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç145 * 146 * æ»ãå¤:147 * 148 * 0 ä»¥ä¸ æ£å¸¸ããªãã·ã§ã³é·ã149 * IP6_OPT_RET_ERR (-1) ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã150 * IP6_OPT_RET_REL (-2) ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã132 * ip6_unknown_opt -- 未知のオプションの処理 133 * 134 * 戻り値: 135 * 136 * 0 以上 正常、オプション長。 137 * IP6_OPT_RET_ERR (-1) エラー、呼出側でネットワークバッファを開放する。 138 * IP6_OPT_RET_REL (-2) エラー、ネットワークバッファは開放されている。 151 139 */ 152 140 … … 155 143 156 144 /* 157 * IPv6 ã® MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡145 * IPv6 の MMTU サイズのネットワークバッファ 158 146 */ 159 147 … … 161 149 162 150 typedef struct t_net_buf_ipv6_mmtu { 163 uint16_t len; /* ãã¼ã¿ã®é·ã*/164 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/165 uint8_t unit; /* ã¤ã³ã¿ãã§ã¼ã¹çªå·*/151 uint16_t len; /* データの長さ */ 152 uint8_t idix; /* mpfid のインデックス */ 153 uint8_t unit; /* インタフェース番号 */ 166 154 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 167 155 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 171 159 #endif 172 160 uint8_t buf[IF_HDR_SIZE + IPV6_MMTU]; 173 /* ãããã¡æ¬ä½*/161 /* バッファ本体 */ 174 162 } T_NET_BUF_IPV6_MMTU; 175 163 … … 177 165 178 166 /* 179 * 65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡167 * 65536 オクテットサイズのネットワークバッファ 180 168 */ 181 169 182 170 typedef struct t_net_buf6_65536 { 183 uint16_t len; /* ãã¼ã¿ã®é·ã*/184 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/185 uint8_t flags; /* ãã©ã°*/171 uint16_t len; /* データの長さ */ 172 uint8_t idix; /* mpfid のインデックス */ 173 uint8_t flags; /* フラグ */ 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_IP6_HDR_SIZE + 65536]; 193 /* ãããã¡æ¬ä½*/181 /* バッファ本体 */ 194 182 #if defined(IF_PDU_HDR_PADDING) 195 183 uint8_t padding[IF_PDU_HDR_PADDING]; 196 #endif /* ãããã®ä½å*/184 #endif /* ヘッダの余分 */ 197 185 } T_NET_BUF6_65536; 198 186 … … 200 188 201 189 /* 202 * åæ§æãã¥ã¼ç¨ IPv6 ãããã®å®ç¾©190 * 再構成キュー用 IPv6 ヘッダの定義 203 191 */ 204 192 … … 211 199 uint8_t hlim; /* Hop Limit */ 212 200 T_IN6_ADDR src; /* Source Address */ 213 T_NET_BUF *next_frag; /* 次㮠IPv6 ãã©ã°ã¡ã³ã*/214 uint16_t foff; /* æçãããã®ãªãã»ãã*/215 uint16_t flen; /* æçé·*/216 uint16_t ftim; /* åæ§æã¿ã¤ã ã¢ã¦ã*/201 T_NET_BUF *next_frag; /* 次の IPv6 フラグメント */ 202 uint16_t foff; /* 断片ヘッダのオフセット */ 203 uint16_t flen; /* 断片長 */ 204 uint16_t ftim; /* 再構成タイムアウト */ 217 205 uint16_t dummy1; 218 206 uint8_t dummy2[sizeof(T_IN6_ADDR) - (sizeof(T_NET_BUF*) + sizeof(uint16_t) * 4)]; … … 229 217 230 218 /* 231 * ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡219 * データグラム再構成用ネットワークバッファ 232 220 */ 233 221 234 222 typedef struct t_net_buf6_reassm { 235 uint16_t len; /* ãã¼ã¿ã®é·ã*/236 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/237 uint8_t flags; /* ãã©ã°*/223 uint16_t len; /* データの長さ */ 224 uint8_t idix; /* mpfid のインデックス */ 225 uint8_t flags; /* フラグ */ 238 226 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 239 227 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 243 231 #endif 244 232 uint8_t buf[IP6_CFG_FRAG_REASSM_SIZE]; 245 /* ãããã¡æ¬ä½*/233 /* バッファ本体 */ 246 234 } T_NET_BUF6_REASSM; 247 235 … … 249 237 250 238 /* 251 * TCP ã®åæ§æãã¥ã¼ã«ããã IPv6 ãããã®å®ç¾©239 * TCP の再構成キューにおける IPv6 ヘッダの定義 252 240 */ 253 241 … … 256 244 uint8_t cf; /* Traffic Class: 8 bit */ 257 245 /* Flow Label: 4 bit (20 bit) */ 258 uint16_t thoff; /* TCP ãããã®ãªãã»ãã*/246 uint16_t thoff; /* TCP ヘッダのオフセット */ 259 247 uint16_t plen; /* Payload Length */ 260 248 uint8_t next; /* Next Header */ … … 267 255 268 256 /* 269 * SNMP 㮠管çæ 270 å ±ãã¼ã¹ (MIB) 257 * SNMP の 管理情報ベース (MIB) 271 258 */ 272 259 … … 299 286 300 287 /* 301 * å¤æ°288 * 変数 302 289 */ 303 290 … … 305 292 306 293 /* 307 * é¢æ°294 * 関数 308 295 */ 309 296 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 -
azure_iot_hub/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
r388 r389 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; … … 388 367 389 368 /* 390 * nd6_cache_lladdr -- è¿é£æ¢ç´¢ãã£ãã·ã¥ã«ç»é²ããã369 * nd6_cache_lladdr -- 近隣探索キャッシュに登録する。 391 370 */ 392 371 … … 400 379 int_t newstate = ND6_LLINFO_INCOMPLETE; 401 380 402 /* ã¢ãã¬ã¹ãç¡æå®ãªãä½ãããªãã*/381 /* アドレスが無指定なら何もしない。*/ 403 382 if (IN6_IS_ADDR_UNSPECIFIED(from)) 404 383 return NULL; 405 384 406 /* è¿é£ãã£ãã·ã¥ã«ç»é²ããã*/385 /* 近隣キャッシュに登録する。*/ 407 386 syscall(wai_sem(SEM_ND6_CACHE)); 408 387 if ((ln = nd6_lookup(from, false)) == NULL) { … … 422 401 423 402 /* 424 * ç¶æ 425 é·ç§»è¡¨ 403 * 状態遷移表 426 404 * 427 405 * nd_na_flags 428 * newnetry olladdr lladdr llchange å¦ç (L: lladdr ãç»é²ãã)406 * newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する) 429 407 * 430 408 * F F N - (1) … … 437 415 */ 438 416 439 /* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/417 /* データリンク層のアドレスが通知されていれば更新する。*/ 440 418 if (lladdr != NULL) { 441 419 ln->ifaddr = *(T_IF_ADDR *)lladdr; … … 459 437 } 460 438 461 /* è¿é£ãã£ãã·ã¥ã¨ã³ããªãæ´æ°ããã*/439 /* 近隣キャッシュエントリを更新する。*/ 462 440 if (doupdate) { 463 441 ln->state = newstate; … … 467 445 ln->expire = now + ND6_GCOLLECTION_TIME; 468 446 469 /* ã¢ãã¬ã¹è§£æ±ºå¾ 470 ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/ 447 /* アドレス解決待ちのデータグラムがあれば送信する。*/ 471 448 nd6_output_hold(ifp, ln); 472 449 } … … 477 454 478 455 479 /* ã«ã¼ã¿éç¥ã®å¦ç*/456 /* ルータ通知の処理 */ 480 457 switch (type) { 481 458 … … 507 484 508 485 /* 509 * nd6_is_addr_neighbor -- æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããããã§ãã¯ããã486 * nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。 510 487 */ 511 488 … … 526 503 527 504 /* 528 * nd6_output -- è¿é£æ¢ç´¢ã®åºåé¢æ° 529 * 530 * 注æ: ã»ããã© SEM_ND6_CACHE ã«ããããã¯ç¶æ 531 ã§å¼åºããã¨ã 505 * nd6_output -- 近隣探索の出力関数 506 * 507 * 注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。 532 508 */ 533 509 … … 539 515 540 516 /* 541 * ãã¦å 542 ã¢ãã¬ã¹ããã«ããã£ã¹ãããè¿é£ãã£ãã·ã¥ã 543 * ä¸è¦ã®å ´åã¯ç´ã¡ã«éä¿¡ããã 517 * あて先アドレスがマルチキャストか、近隣キャッシュが 518 * 不要の場合は直ちに送信する。 544 519 */ 545 520 if (!(IN6_IS_ADDR_MULTICAST(dst) || !IF_IN6_NEED_CACHE(ifp))) { 546 521 if (ln == NULL) { 547 /* è¿é£ãã£ãã·ã¥ãæªå®ç¾©ã®å ´å*/522 /* 近隣キャッシュが未定義の場合 */ 548 523 if (nd6_is_addr_neighbor(ifp, dst)) { 549 524 /* 550 * æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããæã¯ã551 * è¿é£ãã£ãã·ã¥ãæ¢ç´¢ããæªå®ç¾©ã®å ´åã¯ç»é²ããã525 * 指定されたアドレスのノードが同一リンクにある時は、 526 * 近隣キャッシュを探索し、未定義の場合は登録する。 552 527 */ 553 528 ln = nd6_lookup(dst, true); … … 560 535 561 536 /* 562 * è¿é£ãã£ãã·ã¥ã®ç¶æ 563 ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãåãã£ã¦ãã¦ãã 564 * å°éå¯è½æ§ã確èªããã¦ããªãã¨ãã¯ãå°éä¸è½éç¥ãéå§ããã 537 * 近隣キャッシュの状態が、データリンク層のアドレスが分かっていても、 538 * 到達可能性が確認されていないときは、到達不能通知を開始する。 565 539 */ 566 540 if (ln->state == ND6_LLINFO_STALE) { … … 572 546 573 547 /* 574 * è¿é£ãã£ãã·ã¥ã®ç¶æ 575 ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´å㯠576 * è¿é£æ¢ç´¢ãè¡ãã 548 * 近隣キャッシュの状態が、データリンク層のアドレス未解決の場合は 549 * 近隣探索を行う。 577 550 */ 578 551 if (ln->state <= ND6_LLINFO_INCOMPLETE) { 579 552 580 /* ã¿ã¤ã ã¢ã¦ãã®æå®ããã¼ãªã³ã°ãªãã¿ã¤ã ã¢ã¦ãã§çµäºããã*/553 /* タイムアウトの指定がポーリングならタイムアウトで終了する。*/ 581 554 if (tmout == TMO_POL) { 582 555 error = E_TMOUT; … … 587 560 ln->state = ND6_LLINFO_INCOMPLETE; 588 561 589 /* ãã§ã«ãæªè§£æ±ºã®ãããã¯ã¼ã¯ãããã¡ãããã°ãéæ¾ããã*/562 /* すでに、未解決のネットワークバッファがあれば、開放する。*/ 590 563 if (ln->hold != NULL) { 591 564 syscall(rel_net_buf(ln->hold)); … … 594 567 595 568 /* 596 * éä¿¡ããã³ãã£ã³ã°ããã597 * IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨å®ããã¦ããã¨ãã¯ã598 * éä¿¡ããã³ãã£ã³ã°ããªãã569 * 送信をペンディングする。 570 * IF でネットワークバッファを開放しないフラグが設定されているときは、 571 * 送信をペンディングしない。 599 572 */ 600 573 if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) { 601 574 ln->hold = output; 602 575 603 /* ã¿ã¤ã ã¢ã¦ãã®è¨å®*/576 /* タイムアウトの設定 */ 604 577 if (tmout == TMO_FEVR) 605 578 ln->tmout = tmout; … … 620 593 if ((int32_t)(ln->expire - now) < 0) { 621 594 /* ln->expire < now */ 622 ln->expire += ND6_RETRANS_TIME; /* è¿é£æ¢ç´¢éä¿¡éé*/595 ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */ 623 596 ln->asked ++; 624 597 nd6_ns_output(ifp, &in6_addr_unspecified, dst, ln, false); … … 631 604 632 605 /* 633 * éè¤ãæ¤åºãããã¤ã³ã¿ãã§ã¼ã¹ã«ã¯åºåããªãã606 * 重複が検出されたインタフェースには出力しない。 634 607 */ 635 608 if ((ifp->flags & ND6_IFF_IFDISABLED) != 0) { … … 647 620 648 621 /* 649 * nd6_storelladdr -- åºåãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿ãã622 * nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。 650 623 */ 651 624 … … 664 637 665 638 /* 666 * nd6_option -- è¿é£æ¢ç´¢ãªãã·ã§ã³ã®å¦ç 667 * 668 * 注æ: ãªãã·ã§ã³ãªãã»ããé 669 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã 639 * nd6_option -- 近隣探索オプションの処理 640 * 641 * 注意: オプションオフセット配列には、オフセット + 8 が設定されている。 670 642 */ 671 643 … … 675 647 T_ND_OPT_HDR *opth; 676 648 ER error = E_OK; 677 int_t pi_count = 0; /* ãã¬ãã£ãã¯ã¹æ 678 å ±ã®åæ° */ 649 int_t pi_count = 0; /* プレフィックス情報の個数 */ 679 650 680 651 opth = (T_ND_OPT_HDR *)nh; … … 683 654 while (error == E_OK && ((uint8_t *)opth - (uint8_t *)nh) < (256 - 8) && len > 0) { 684 655 685 /* ãªãã·ã§ã³é·ã 0 ã®æã¯ãä¸æ£ãªãªãã·ã§ã³ã¨ãã¦å¦çããã*/656 /* オプション長が 0 の時は、不正なオプションとして処理する。*/ 686 657 if (opth->len == 0) { 687 658 error = E_PAR; … … 689 660 } 690 661 691 /* ãªãã·ã§ã³ã®ã¿ã¤ãã«ããåå²ããã*/662 /* オプションのタイプにより分岐する。*/ 692 663 switch (opth->type) { 693 case ND_OPT_SOURCE_LINKADDR: /* éä¿¡å 694 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 695 case ND_OPT_TARGET_LINKADDR: /* 対象ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ */ 696 case ND_OPT_REDIRECTED_HEADER: /* ãªãã¤ã¬ã¯ãã»ããã */ 664 case ND_OPT_SOURCE_LINKADDR: /* 送信先ネットワークインタフェースのアドレス */ 665 case ND_OPT_TARGET_LINKADDR: /* 対象ネットワークインタフェースのアドレス */ 666 case ND_OPT_REDIRECTED_HEADER: /* リダイレクト・ヘッダ */ 697 667 case ND_OPT_MTU: /* MTU */ 698 668 if (opt[ND_OPT_OFF_ARRAY_IX(opth->type)]) { 699 /* ãã¬ãã£ãã¯ã¹æ 700 å ±ä»¥å¤ã®åããªãã·ã§ã³ãè¤æ°æå®ããã¦ããã*/ 669 /* プレフィックス情報以外の同じオプションが複数指定されている。*/ 701 670 error = E_PAR; 702 671 } … … 705 674 } 706 675 break; 707 case ND_OPT_PREFIX_INFORMATION: /* ãã¬ãã£ãã¯ã¹æ 708 å ± */ 676 case ND_OPT_PREFIX_INFORMATION: /* プレフィックス情報 */ 709 677 if (!opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)]) { 710 678 /* 711 * ãã¬ãã£ãã¯ã¹æ 712 å ±ã¯æåã«ç¾ãããªãã»ããã®ã¿è¨é²ããã 679 * プレフィックス情報は最初に現れたオフセットのみ記録する。 713 680 */ 714 681 opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8; … … 718 685 default: 719 686 /* 720 * å°æ¥å®ç¾©ããããããã³ã«ã¸ã®æ¡å¼µã«å¯¾å¿ããããã721 * èªèã§ããªããªãã·ã§ã³ã¯åã«ç¡è¦ããå¦çãç¶è¡ããã687 * 将来定義されるプロトコルへの拡張に対応するため、 688 * 認識できないオプションは単に無視し、処理を続行する。 722 689 */ 723 690 break; 724 691 } 725 len -= opth->len << 3; /* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã*/692 len -= opth->len << 3; /* オプション長の単位は 8 バイト */ 726 693 opth = (T_ND_OPT_HDR *)((uint8_t *)opth + (opth->len << 3)); 727 694 } -
azure_iot_hub/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
r388 r389 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$ … … 80 68 81 69 /* 82 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ï¼T_IFNETï¼ã®ãã©ã°83 */ 84 85 #define ND6_IFF_IFDISABLED UINT_C(0x01) /* ã¤ã³ã¿ãã§ã¼ã¹ãç¡å¹ã«ããã*/86 87 /* 88 * è¿é£ãã£ãã·ã¥70 * ネットワークインタフェース構造体(T_IFNET)のフラグ 71 */ 72 73 #define ND6_IFF_IFDISABLED UINT_C(0x01) /* インタフェースを無効にする。*/ 74 75 /* 76 * 近隣キャッシュ 89 77 */ 90 78 … … 93 81 T_NET_BUF *hold; 94 82 TMO tmout; 95 SYSTIM expire; /* [us] æå¹æéãåããæå»*/83 SYSTIM expire; /* [us] 有効時間が切れる時刻 */ 96 84 T_IF_ADDR ifaddr; 97 85 uint8_t state; … … 100 88 } T_LLINFO_ND6; 101 89 102 /* è¿é£ãã£ãã·ã¥ã®ç¶æ 103 */ 104 105 #define ND6_LLINFO_FREE 0 /* æªä½¿ç¨ */ 106 #define ND6_LLINFO_NO_STATE 1 /* ç¶æ 107 æªå®ç¾© */ 108 #define ND6_LLINFO_INCOMPLETE 2 /* æªè§£æ±º */ 109 #define ND6_LLINFO_REACHABLE 3 /* å°éå¯è½ */ 110 #define ND6_LLINFO_STALE 4 /* å°éå¯è½æ§ã¯æªç¢ºèª */ 111 #define ND6_LLINFO_DELAY 5 /* å°éå¯è½æ§ã®ç¢ºèªå¾ 112 æ© */ 113 #define ND6_LLINFO_PROBE 6 /* å°éå¯è½æ§ã確èªä¸ */ 90 /* 近隣キャッシュの状態 */ 91 92 #define ND6_LLINFO_FREE 0 /* 未使用 */ 93 #define ND6_LLINFO_NO_STATE 1 /* 状態未定義 */ 94 #define ND6_LLINFO_INCOMPLETE 2 /* 未解決 */ 95 #define ND6_LLINFO_REACHABLE 3 /* 到達可能 */ 96 #define ND6_LLINFO_STALE 4 /* 到達可能性は未確認 */ 97 #define ND6_LLINFO_DELAY 5 /* 到達可能性の確認待機 */ 98 #define ND6_LLINFO_PROBE 6 /* 到達可能性を確認中 */ 114 99 115 100 #define ND6_IS_LLINFO_PROBREACH(n) ((n)->state > ND6_LLINFO_INCOMPLETE) 116 101 117 /* è¿é£ãã£ãã·ã¥ã®å¶å¾¡ããã */ 118 119 #define ND6_LLIF_ROUTER UINT_C(0x80) /* ã«ã¼ã¿ */ 120 #define ND6_LLIF_ASKED UINT_C(0x40) /* éç¥æ¸ã¿ */ 121 #define ND6_LLIF_STATE_MASK UINT_C(0x07) /* ç¶æ 122 ãã¹ã¯ */ 123 124 /* è¿é£æ¢ç´¢ãã£ãã·ã¥ãæå¹æéã®å®ç¾© */ 102 /* 近隣キャッシュの制御ビット */ 103 104 #define ND6_LLIF_ROUTER UINT_C(0x80) /* ルータ */ 105 #define ND6_LLIF_ASKED UINT_C(0x40) /* 通知済み */ 106 #define ND6_LLIF_STATE_MASK UINT_C(0x07) /* 状態マスク */ 107 108 /* 近隣探索キャッシュ、有効時間の定義 */ 125 109 126 110 #define ND6_SLOW_TMO ((60*60*1000)/NET_TIMER_HZ) 127 /* 1 [ æé] */128 /* è¿é£æ¢ç´¢ãã£ãã·ã¥æ´æ°ã¿ã¤ã ã¢ã¦ã*/129 130 #define ND6_MAX_DAD_TRY 15 /* éè¤ã¢ãã¬ã¹æ¤åºã®åéåæ°*/131 #define ND6_MAX_MCAST_QUERY 3 /* ãã«ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°*/132 #define ND6_MAX_UCAST_QUERY 3 /* ã¦ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°*/111 /* 1 [時間] */ 112 /* 近隣探索キャッシュ更新タイムアウト */ 113 114 #define ND6_MAX_DAD_TRY 15 /* 重複アドレス検出の再送回数 */ 115 #define ND6_MAX_MCAST_QUERY 3 /* マルチキャストアドレス要請の再送回数 */ 116 #define ND6_MAX_UCAST_QUERY 3 /* ユニキャストアドレス要請の再送回数 */ 133 117 134 118 #define ND6_GCOLLECTION_TIME (60*60*24*SYSTIM_HZ) 135 /* ã´ãæ¾ãå¨æã1 æ¥ */ 136 #define ND6_DELAY_TIME (5*SYSTIM_HZ) /* 確èªå¾ 137 æ©é 138 延 */ 139 #define ND6_FIRST_DAD_DELAY_TIME (1*SYSTIM_HZ) /* æåã®éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é 140 延 */ 119 /* ゴミ拾い周期、1 日 */ 120 #define ND6_DELAY_TIME (5*SYSTIM_HZ) /* 確認待機遅延 */ 121 #define ND6_FIRST_DAD_DELAY_TIME (1*SYSTIM_HZ) /* 最初の重複アドレス検出送信遅延 */ 141 122 #define ND6_DAD_DELAY_TIME (5*SYSTIM_HZ/10) 142 /* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é 143 延 */ 144 145 /* è¿é£æ¢ç´¢ç¨ã¿ã¤ãã®è¨å® */ 146 147 #define ND6_TIMER_TMO ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] éé */ 148 149 /* 150 * å°éå¯è½ç¶æ 151 ã®æå¹æé 152 */ 153 154 #define ND6_DEF_REACHABLE_TIME (30*SYSTIM_HZ) /* å°éå¯è½ç¶æ 155 ã®æå¹æéã®æ¢å®å¤ */ 123 /* 重複アドレス検出送信遅延 */ 124 125 /* 近隣探索用タイマの設定 */ 126 127 #define ND6_TIMER_TMO ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] 間隔 */ 128 129 /* 130 * 到達可能状態の有効時間 131 */ 132 133 #define ND6_DEF_REACHABLE_TIME (30*SYSTIM_HZ) /* 到達可能状態の有効時間の既定値 */ 156 134 #define ND6_MAX_REACHABLE_TIME (60*60*SYSTIM_HZ) 157 /* å°éå¯è½ç¶æ 158 ã®æå¹æéã®æ¢å®å¤ */ 135 /* 到達可能状態の有効時間の既定値 */ 159 136 #define ND6_RECALC_REACHTM_INTERVAL (60*60*2*SYSTIM_HZ) 160 /* å°éå¯è½ç¶æ 161 ã®æå¹æéåè¨ç®éé */ 162 163 #define ND6_MIN_REACHTM_RAND_FACTOR 512 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 0.5 */ 164 165 #if 1 /* ã¿ã¤ãã¼ã®èµ·åééãèæ 166 ®ããè¦å®ããçãè¨å® */ 167 #define ND6_MAX_REACHTM_RAND_FACTOR 1484 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 1.45 */ 137 /* 到達可能状態の有効時間再計算間隔 */ 138 139 #define ND6_MIN_REACHTM_RAND_FACTOR 512 /* 最小乱数補正値、1,024 * 0.5 */ 140 141 #if 1 /* タイマーの起動間隔を考慮し、規定より短く設定 */ 142 #define ND6_MAX_REACHTM_RAND_FACTOR 1484 /* 最小乱数補正値、1,024 * 1.45 */ 168 143 #else 169 #define ND6_MAX_REACHTM_RAND_FACTOR 1536 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 1.5 */144 #define ND6_MAX_REACHTM_RAND_FACTOR 1536 /* 最小乱数補正値、1,024 * 1.5 */ 170 145 #endif 171 146 172 /* å°éå¯è½ç¶æ 173 ã®æå¹æéã®è¨ç®ãã¯ã */ 147 /* 到達可能状態の有効時間の計算マクロ */ 174 148 175 149 #define ND6_CALC_REACH_TIME(b) \ … … 178 152 179 153 /* 180 * è¿é£æ¢ç´¢ã®éä¿¡éé154 * 近隣探索の送信間隔 181 155 */ 182 156 … … 184 158 185 159 /* 186 * ã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ãããå¤160 * ルータ通知により変更されることがある値 187 161 */ 188 162 189 163 #if NUM_ND6_DEF_RTR_ENTRY > 0 190 164 191 /* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤*/165 /* ルータ通知を受信する場合は、通知された値 */ 192 166 193 167 #define ND6_REACHABLE_TIME nd6_reachable_time … … 196 170 #else /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */ 197 171 198 /* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤*/172 /* ルータ通知を受信しない場合の値は既定値 */ 199 173 200 174 #define ND6_REACHABLE_TIME ND6_DEF_REACHABLE_TIME … … 204 178 205 179 /* 206 * ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã180 * ディフォルトルータ・リスト 207 181 */ 208 182 209 183 typedef struct t_def_router { 210 184 T_IN6_ADDR addr; 211 SYSTIM expire; /* [us] æå¹æéãåããæå»*/212 uint32_t lifetime; /* [us] æå¹æé*/213 uint16_t plistmap; /* ãã¬ãã£ãã¯ã¹ããã*/214 uint8_t flags; /* ã«ã¼ã¿éç¥ã®ãã©ã°*/185 SYSTIM expire; /* [us] 有効時間が切れる時刻 */ 186 uint32_t lifetime; /* [us] 有効時間 */ 187 uint16_t plistmap; /* プレフィックスマップ */ 188 uint8_t flags; /* ルータ通知のフラグ */ 215 189 uint8_t state; 216 190 } T_DEF_ROUTER; 217 191 218 /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç¶æ 219 */ 220 221 #define ND6_DEF_RTR_BUSY 0xff /* 使ç¨ä¸ */ 222 223 /* ãã¬ãã£ãã¯ã¹ã®ã¤ã³ããã¯ã¹ */ 192 /* ディフォルトルータ・リストの状態 */ 193 194 #define ND6_DEF_RTR_BUSY 0xff /* 使用中 */ 195 196 /* プレフィックスのインデックス */ 224 197 225 198 #define ND6_PREFIX_IX_INVALID 0xff 226 199 227 200 /* 228 * ãã¬ãã£ãã¯ã¹ã»ãªã¹ã201 * プレフィックス・リスト 229 202 */ 230 203 231 204 typedef struct t_nd6_prefix { 232 T_IN6_ADDR prefix; /* ãã¬ãã£ãã¯ã¹*/233 uint32_t expire; /* [s] æå¹æéãåããæå»*/234 uint32_t preferred; /* [s] æ¨å¥¨æå¹æéãåããæå»*/235 uint32_t vltime; /* [s] æå¹æé*/236 uint32_t pltime; /* [s] æ¨å¥¨æå¹æé*/237 uint16_t routermap; /* ã«ã¼ã¿ããã*/238 uint8_t flags; /* ãã©ã°*/239 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é·*/205 T_IN6_ADDR prefix; /* プレフィックス */ 206 uint32_t expire; /* [s] 有効時間が切れる時刻 */ 207 uint32_t preferred; /* [s] 推奨有効時間が切れる時刻 */ 208 uint32_t vltime; /* [s] 有効時間 */ 209 uint32_t pltime; /* [s] 推奨有効時間 */ 210 uint16_t routermap; /* ルータマップ */ 211 uint8_t flags; /* フラグ */ 212 uint8_t prefix_len; /* プレフィックス長 */ 240 213 } T_ND6_PREFIX; 241 214 242 /* ãã©ã° */ 243 244 #define ND6_PREFIX_FLAG_ONLINK UINT_C(0x80) /* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹ */ 245 #define ND6_PREFIX_FLAG_AUTO UINT_C(0x40) /* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®*/ 246 247 #define ND6_PREFIX_STATE_BUSY UINT_C(0x01) /* 使ç¨ä¸ */ 248 #define ND6_PREFIX_STATE_ONLINK UINT_C(0x02) /* ãªã³ãªã³ã¯ç¶æ 249 */ 250 #define ND6_PREFIX_STATE_DETACHED UINT_C(0x04) /* é使ç¨ç¶æ 251 */ 252 253 /* 254 * å¤æ° 215 /* フラグ */ 216 217 #define ND6_PREFIX_FLAG_ONLINK UINT_C(0x80) /* オンリンクプレフィックス */ 218 #define ND6_PREFIX_FLAG_AUTO UINT_C(0x40) /* ステートレス・アドレス自動設定*/ 219 220 #define ND6_PREFIX_STATE_BUSY UINT_C(0x01) /* 使用中 */ 221 #define ND6_PREFIX_STATE_ONLINK UINT_C(0x02) /* オンリンク状態 */ 222 #define ND6_PREFIX_STATE_DETACHED UINT_C(0x04) /* 非使用状態 */ 223 224 /* 225 * 変数 255 226 */ 256 227 … … 261 232 262 233 /* 263 * é¢æ°234 * 関数 264 235 */ 265 236 -
azure_iot_hub/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
r388 r389 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$ … … 124 112 125 113 /* 126 * å±æé¢æ°114 * 局所関数 127 115 */ 128 116 … … 134 122 135 123 /* 136 * nd6_dad_duplicated -- éè¤ã¢ãã¬ã¹ãæ¤åºããæã®å¦ç124 * nd6_dad_duplicated -- 重複アドレスを検出した時の処理 137 125 */ 138 126 … … 147 135 ifa->flags |= IN6_IFF_DUPLICATED; 148 136 149 /* ã¿ã¤ãã¼ãåæ¢ããã*/137 /* タイマーを停止する。*/ 150 138 untimeout((callout_func)nd6_dad_timer, ifa); 151 139 152 140 /* 153 * ãã IPv6 ã¢ãã¬ã¹ããã¦ãã¼ã¯ã«å²ãå½ã¦ãã154 * ï¼ã¤ã¼ãµãããç¨ã® EUI-64ï¼ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ããã¼ã¹ã¨ãã155 * ã¤ã³ã¿ãã§ã¼ã¹ ID ã§çæãããã®ã§ããã°ã156 * ãã®ã¤ã³ã¿ãã§ã¼ã¹ã§ã® IPv6 ã®åä½ã¯ç¡å¹ã«ãã¹ãã§ãã157 * ï¼RFC2462bis-03 ã»ã¯ã·ã§ã³ 5.4.5ï¼ã141 * もし IPv6 アドレスが、ユニークに割り当てらた 142 * (イーサネット用の EUI-64)ハードウェアアドレスをベースとした 143 * インタフェース ID で生成されたのであれば、 144 * このインタフェースでの IPv6 の動作は無効にすべきである 145 * (RFC2462bis-03 セクション 5.4.5)。 158 146 */ 159 147 if (IN6_IS_ADDR_LINKLOCAL(&ifa->addr)) … … 163 151 164 152 /* 165 * nd6_dad_ns_output -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ãåºåããã153 * nd6_dad_ns_output -- 重複アドレス検出 (DAD) 要請を出力する。 166 154 */ 167 155 … … 176 164 177 165 /* 178 * nd6_dad_ns_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«å 179 ¥å 166 * nd6_dad_ns_input -- 重複アドレス検出 (DAD) 要請入力 180 167 */ 181 168 … … 186 173 187 174 /* 188 * ã¾ã ãéè¤ã¢ãã¬ã¹æ¤åºè¦è«ãåºåãã¦ããªãå ´å175 * まだ、重複アドレス検出要請を出力していない場合 189 176 */ 190 177 if (ifa->ns_ocount == 0) … … 195 182 196 183 /* 197 * nd6_dad_na_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥å 198 ¥å 184 * nd6_dad_na_input -- 重複アドレス検出 (DAD) 通知入力 199 185 */ 200 186 … … 208 194 209 195 /* 210 * nd6_dad_timer -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ã¿ã¤ãã¼196 * nd6_dad_timer -- 重複アドレス検出 (DAD) タイマー 211 197 */ 212 198 … … 229 215 nd6_dad_ns_output(ifp, ifa); 230 216 231 /* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨å®ããã*/217 /* タイムアウトを近隣探索の送信間隔に設定する。*/ 232 218 timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ); 233 219 } … … 241 227 242 228 /* 243 * nd6_ns_input -- è¿é£è¦è«ã®å 244 ¥åå¦çã 229 * nd6_ns_input -- 近隣要請の入力処理。 245 230 */ 246 231 … … 264 249 265 250 /* 266 * ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã267 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤268 * ã»ãããé·ãçã251 * ヘッダのチェック、以下の場合は破棄する。 252 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 253 * ・ヘッダ長が短い 269 254 */ 270 255 if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_SOLICIT_HDR_SIZE) … … 275 260 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) { 276 261 /* 277 * å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéè¤ã¢ãã¬ã¹æ¤åº 278 * ãã¦å 279 ã¢ãã¬ã¹ã¯ãè¦è«ãã«ããã£ã¹ãã§ãªããã°ãªããªãã 262 * 始点アドレスが無指定なら、重複アドレス検出 263 * あて先アドレスは、要請マルチキャストでなければならない。 280 264 */ 281 265 if (!IN6_IS_ADDR_NS_MULTICAST(&ip6h->dst)) … … 283 267 } 284 268 285 /* ç®çã¢ãã¬ã¹ããã«ããã£ã¹ããªãã¨ã©ã¼*/269 /* 目的アドレスがマルチキャストならエラー */ 286 270 if (IN6_IS_ADDR_MULTICAST(&nsh->target)) 287 271 goto err_ret; 288 272 289 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/273 /* 近隣探索オプションのオフセットを記録する。*/ 290 274 if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_SOLICIT_HDR_SIZE), 291 275 input->len - (off + NEIGHBOR_SOLICIT_HDR_SIZE)) != E_OK) 292 276 goto err_ret; 293 277 294 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ (å§ç¹ãªã³ã¯ã¢ãã¬ã¹) */278 /* 近隣探索オプション (始点リンクアドレス) */ 295 279 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) { 296 280 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_SOLICIT_HDR_SIZE) + 297 281 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8); 298 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 299 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 282 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 300 283 lladdr = (uint8_t *)(opth + 1); 301 284 lladdr_len = (opth->len << 3); … … 305 288 goto err_ret; 306 289 307 /* å®å 308 ã¢ãã¬ã¹ããã«ããã£ã¹ããªãè¿é£éç¥ã«ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãä»ããã*/ 290 /* 宛先アドレスがマルチキャストなら近隣通知にデータリンク層のアドレスを付ける。*/ 309 291 if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) 310 292 tlladdr = true; … … 313 295 314 296 /* 315 * ç®çã¢ãã¬ã¹ããèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« 316 * å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ã調ã¹ãã 317 * ãªãã代çãµã¼ãã¹ã¯å®è£ 318 ãã¦ããªãã 297 * 目的アドレスが、自分のネットワークインタフェースに 298 * 割り当てられているアドレスか調べる。 299 * なお、代理サービスは実装していない。 319 300 */ 320 301 ifa = in6_lookup_ifaddr(ifp, &nsh->target); … … 323 304 goto free_ret; 324 305 325 /* æ¢ç´¢çµæã¢ãã¬ã¹ãéè¤ãã¦ããã°å¿çããªãã§çµäºããã*/306 /* 探索結果アドレスが重複していれば応答しないで終了する。*/ 326 307 if (ifa->flags & IN6_IFF_DUPLICATED) 327 308 goto err_ret; 328 309 329 310 /* 330 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼311 * ネットワークインタフェースのアドレス長が一致しなければエラー 331 312 */ 332 313 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) … … 334 315 335 316 /* 336 * å§ç¹ã¢ãã¬ã¹ãèªåã®ã¢ãã¬ã¹ã¨ä¸è´ããã°éè¤ãã¦ããã317 * 始点アドレスが自分のアドレスと一致すれば重複している。 337 318 */ 338 319 if (IN6_ARE_ADDR_EQUAL(&ifa->addr, &ip6h->src)) 339 320 goto free_ret; 340 321 341 /* éè¤æ¤åºä¸ã«ãè¿é£è¦è«ãåä¿¡ããã¨ãã®å¦ç*/322 /* 重複検出中に、近隣要請を受信したときの処理 */ 342 323 if (ifa->flags & IN6_IFF_TENTATIVE) { 343 324 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) … … 352 333 353 334 /* 354 * å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéä¿¡ç¸æã¯éè¤ã¢ãã¬ã¹æ¤åºä¸ã§ã 355 * ç´æ¥éä¿¡ãããã¨ã¯ã§ããªãã®ã§ãå 356 ¨ãã¼ããã«ããã£ã¹ã 357 * ã¢ãã¬ã¹ã«éä¿¡ããã 335 * 始点アドレスが無指定なら、送信相手は重複アドレス検出中で、 336 * 直接送信することはできないので、全ノードマルチキャスト 337 * アドレスに送信する。 358 338 */ 359 339 if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) { … … 362 342 } 363 343 364 /* è¿é£ãã£ãã·ã¥ã«ç»é²ããã*/344 /* 近隣キャッシュに登録する。*/ 365 345 nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_NEIGHBOR_SOLICIT, 0); 366 346 … … 377 357 378 358 /* 379 * nd6_ns_output -- è¿é£è¦è«ãåºåããã359 * nd6_ns_output -- 近隣要請を出力する。 380 360 */ 381 361 … … 396 376 return; 397 377 398 /* è¿é£è¦è«ãã¤ãã¼ãé·ãè¨ç®ããã*/378 /* 近隣要請ペイロード長を計算する。*/ 399 379 if (!dad && IF_SOFTC_TO_IFADDR(ifp->ic)) 400 380 len = (NEIGHBOR_SOLICIT_HDR_SIZE + ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3; … … 403 383 404 384 /* 405 * è¦è«ãã«ããã£ã¹ãã»ã¢ãã¬ã¹å®ã®è¿é£æ¢ç´¢ã§ã¯ã406 * ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã407 * æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨å®ããã385 * 要請マルチキャスト・アドレス宛の近隣探索では、 386 * 他のリンクからの偽造されたデータグラムを 387 * 排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。 408 388 */ 409 389 if (IN6_IS_ADDR_UNSPECIFIED(daddr) || IN6_IS_ADDR_MULTICAST(daddr)) 410 390 ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM); 411 391 412 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨å®ããã*/392 /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/ 413 393 if (in6_get_datagram(&output, len, 0, daddr, NULL, 414 394 IPPROTO_ICMPV6, IPV6_MAXHLIM, … … 420 400 if (IN6_IS_ADDR_UNSPECIFIED(daddr)) { 421 401 422 /* å®å 423 ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ãè¦è«ãã«ããã£ã¹ãã¢ãã¬ã¹ãè¨å®ããã*/ 402 /* 宛先アドレスが無指定の場合は、要請マルチキャストアドレスを設定する。*/ 424 403 ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL; 425 404 ip6h->dst.s6_addr32[2] = IPV6_ADDR_INT32_ONE; … … 428 407 } 429 408 430 /* éä¿¡å 431 ã¢ãã¬ã¹ã®è¨å® */ 409 /* 送信元アドレスの設定 */ 432 410 if (!dad) { 433 411 434 /* éè¤ã¢ãã¬ã¹æ¤åºã§ã¯ãªãæã®éä¿¡å 435 ã¢ãã¬ã¹æ±ºå®å¦çã*/ 412 /* 重複アドレス検出ではない時の送信元アドレス決定処理。*/ 436 413 T_IN6_ADDR *saddr; 437 414 438 415 if (ln && ln->hold) { 439 416 /* 440 * éä¿¡ããã³ãã£ã³ã°ããã¦ãããã¼ã¿ã°ã©ã ã® 441 * éä¿¡å 442 ã¢ãã¬ã¹ãå©ç¨ããã 417 * 送信がペンディングされているデータグラムの 418 * 送信元アドレスを利用する。 443 419 */ 444 420 if (ln->hold->len > IF_IP6_HDR_SIZE) … … 454 430 else { 455 431 /* 456 * å®å 457 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 458 ã¢ãã¬ã¹ãã 459 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 432 * 宛先アドレスにふさわしい送信元アドレスを、 433 * ネットワークインタフェースから探索して利用する。 460 434 */ 461 435 T_IN6_IFADDR *ifa; … … 470 444 else { 471 445 472 /* éè¤ã¢ãã¬ã¹æ¤åºæã®éä¿¡å 473 ã¢ãã¬ã¹ã¯ç¡æå®ã*/ 446 /* 重複アドレス検出時の送信元アドレスは無指定。*/ 474 447 memset(&ip6h->src, 0, sizeof(T_IN6_ADDR)); 475 448 } 476 449 477 /* è¿é£è¦è«ããããè¨å®ããã*/450 /* 近隣要請ヘッダを設定する。*/ 478 451 nsh = GET_NEIGHBOR_SOLICIT_HDR(output, IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET); 479 452 nsh->hdr.type = ND_NEIGHBOR_SOLICIT; … … 484 457 if (!dad && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) { 485 458 486 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¨ãã¦ãæ¢ç´¢ç®æ¨ã® MAC ã¢ãã¬ã¹ãè¨å®ããã*/459 /* 近隣探索オプションとして、探索目標の MAC アドレスを設定する。*/ 487 460 T_ND_OPT_HDR *opth; 488 461 uint_t optlen; … … 496 469 } 497 470 498 /* ãã§ãã¯ãµã ãè¨ç®ããã*/471 /* チェックサムを計算する。*/ 499 472 nsh->hdr.sum = 0; 500 473 nsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nsh - output->buf, len); 501 474 502 /* éä¿¡ããã*/475 /* 送信する。*/ 503 476 NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS], 504 477 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 510 483 511 484 /* 512 * nd6_na_input -- è¿é£éç¥ã®å 513 ¥åå¦çã 485 * nd6_na_input -- 近隣通知の入力処理。 514 486 */ 515 487 … … 534 506 535 507 /* 536 * ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã537 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤538 * ã»ãããé·ãçã508 * ヘッダのチェック、以下の場合は破棄する。 509 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 510 * ・ヘッダ長が短い 539 511 */ 540 512 if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_ADVERT_HDR_SIZE) … … 543 515 nah = (T_NEIGHBOR_ADVERT_HDR *)(input->buf + off); 544 516 545 /* ç®çã¢ãã¬ã¹ããã«ããã£ã¹ããªãã¨ã©ã¼*/517 /* 目的アドレスがマルチキャストならエラー */ 546 518 if (IN6_IS_ADDR_MULTICAST(&nah->target)) 547 519 goto err_ret; 548 520 549 /* è¿é£è¦è«ã¸ã®å¿çã§ãå®å 550 ã¢ãã¬ã¹ããã«ããã£ã¹ããªãã¨ã©ã¼ */ 521 /* 近隣要請への応答で、宛先アドレスがマルチキャストならエラー */ 551 522 if ((nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) && 552 523 IN6_IS_ADDR_MULTICAST(&ip6h->dst)) 553 524 goto err_ret; 554 525 555 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/526 /* 近隣探索オプションのオフセットを記録する。*/ 556 527 if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_ADVERT_HDR_SIZE), 557 528 input->len - (off + NEIGHBOR_ADVERT_HDR_SIZE)) != E_OK) 558 529 goto err_ret; 559 530 560 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ (ç®çãªã³ã¯ã¢ãã¬ã¹) */531 /* 近隣探索オプション (目的リンクアドレス) */ 561 532 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) { 562 533 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_ADVERT_HDR_SIZE) + 563 534 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8); 564 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 565 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 535 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 566 536 lladdr = (uint8_t *)(opth + 1); 567 537 lladdr_len = (opth->len << 3); … … 571 541 572 542 /* 573 * ç®çã¢ãã¬ã¹ãèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ã®574 * ããããã«ä¸è´ããã¨ãã¯ãéè¤ãã¦ãããã¨ãæå³ãã¦ããã543 * 目的アドレスが自分のネットワークインタフェースに割り当てられているアドレスの 544 * いずれかに一致したときは、重複していることを意味している。 575 545 */ 576 546 if (ifa) { … … 583 553 584 554 /* 585 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼555 * ネットワークインタフェースのアドレス長が一致しなければエラー 586 556 */ 587 557 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) 588 558 goto err_ret; 589 559 590 /* è¿é£ãã£ãã·ã¥ãæ¢ç´¢ããã*/560 /* 近隣キャッシュを探索する。*/ 591 561 syscall(wai_sem(SEM_ND6_CACHE)); 592 562 if ((ln = nd6_lookup(&nah->target, false)) == NULL) 593 563 goto free_ret; 594 564 595 /* è¿é£ãã£ãã·ã¥ã®ç¶æ 596 ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´å */ 565 /* 近隣キャッシュの状態が、データリンク層のアドレス未解決の場合 */ 597 566 if (ln->state == ND6_LLINFO_INCOMPLETE) { 598 /* éç¥ããããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ã®é·ãã 0 ã®å ´å*/567 /* 通知されたデータリンク層のアドレスの長さが 0 の場合 */ 599 568 if (lladdr == NULL) 600 569 goto free_ret; … … 631 600 632 601 /* 633 * ç¶æ 634 é·ç§»è¡¨ 602 * 状態遷移表 635 603 * 636 604 * nd_na_flags_reserved 637 * OVERRIDE SOLICTED lladdr llchange å¦ç (L: lladdr ãç»é²ãã)605 * OVERRIDE SOLICTED lladdr llchange 処理 (L: lladdr を登録する) 638 606 * 639 607 * F F N - (2c) … … 651 619 */ 652 620 if ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) == 0 && (lladdr != NULL && llchange)) { /* (1) */ 653 /* ç¶æ 654 ã REACHABLE ãªã STALE ã«é·ç§»ããã*/ 621 /* 状態が REACHABLE なら STALE に遷移する。*/ 655 622 if (ln->state == ND6_LLINFO_REACHABLE) { 656 623 syscall(get_tim(&now)); … … 664 631 lladdr == NULL) { /* (2c) */ 665 632 666 /* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/633 /* データリンク層のアドレスが通知されていれば更新する。*/ 667 634 if (lladdr != NULL) 668 635 ln->ifaddr = *(T_IF_ADDR *)lladdr; 669 636 670 /* è¿é£è¦è«ã¸ã®å¿çãªã REACHABLE ã«é·ç§»ããã*/637 /* 近隣要請への応答なら REACHABLE に遷移する。*/ 671 638 if (nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) { 672 639 ln->state = ND6_LLINFO_REACHABLE; … … 678 645 } 679 646 /* 680 * ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã681 * ç°ãªãã¢ãã¬ã¹ãªãæ´æ°ããã647 * データリンク層のアドレスが通知され、 648 * 異なるアドレスなら更新する。 682 649 */ 683 650 else if (lladdr != NULL && llchange) { … … 688 655 } 689 656 690 /* ã«ã¼ã¿éç¥ãã©ã°ã®å¦ç*/657 /* ルータ通知フラグの処理 */ 691 658 if ((ln->flags & ND6_LLIF_ROUTER ) != 0 && 692 659 (nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) == 0) { 693 660 /* 694 * éä¿¡ç¸æãã«ã¼ã¿éç¥ãã©ã°ãç¡å¹ã«ããå ´åã695 * ãã£ãã©ã«ãã»ã«ã¼ã¿ãªã¹ããã対象ã®ã«ã¼ã¿ãåé¤ãã696 * è¿é£æ¢ç´¢ãã£ãã·ã¥ãæ´æ°ããã661 * 送信相手がルータ通知フラグを無効にした場合。 662 * ディフォルト・ルータリストから対象のルータを削除し、 663 * 近隣探索キャッシュを更新する。 697 664 */ 698 665 T_DEF_ROUTER *dr = NULL; … … 712 679 ln->asked = 0; 713 680 714 /* ã¢ãã¬ã¹è§£æ±ºå¾ 715 ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/ 681 /* アドレス解決待ちのデータグラムがあれば送信する。*/ 716 682 nd6_output_hold(ifp, ln); 717 683 … … 727 693 728 694 /* 729 * nd6_na_output -- è¿é£éç¥ãåºåããã695 * nd6_na_output -- 近隣通知を出力する。 730 696 */ 731 697 … … 745 711 746 712 /* 747 * è¿é£éç¥ãã¤ãã¼ãé·ãè¨ç®ããã748 * tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã追å ããã713 * 近隣通知ペイロード長を計算する。 714 * tlladdr が真ならネットワークインタフェースのアドレスを追加する。 749 715 */ 750 716 if (tlladdr && IF_SOFTC_TO_IFADDR(ifp->ic)) … … 754 720 755 721 /* 756 * ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã757 * æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨å®ããã722 * 他のリンクからの偽造されたデータグラムを 723 * 排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。 758 724 */ 759 725 ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM); 760 726 761 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨å®ããã*/727 /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/ 762 728 if (in6_get_datagram(&output, len, 0, daddr, NULL, 763 729 IPPROTO_ICMPV6, IPV6_MAXHLIM, … … 769 735 if (IN6_IS_ADDR_UNSPECIFIED(daddr)) { 770 736 /* 771 * å®å 772 ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ã 773 * ãªã³ã¯ãã¼ã«ã«å 774 ¨ãã¼ãã»ãã«ããã£ã¹ãã¢ãã¬ã¹ãè¨å®ããã 737 * 宛先アドレスが無指定の場合は、 738 * リンクローカル全ノード・マルチキャストアドレスを設定する。 775 739 */ 776 740 ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL; … … 784 748 785 749 /* 786 * å®å 787 ã¢ãã¬ã¹ã«ãµããããéä¿¡å 788 ã¢ãã¬ã¹ãã 789 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã 750 * 宛先アドレスにふさわしい送信元アドレスを、 751 * ネットワークインタフェースから探索して利用する。 790 752 */ 791 753 if ((ifa = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) { … … 795 757 memcpy(&ip6h->src, &ifa->addr, sizeof(T_IN6_ADDR)); 796 758 797 /* è¿é£éç¥ããããè¨å®ããã*/759 /* 近隣通知ヘッダを設定する。*/ 798 760 nah = GET_NEIGHBOR_ADVERT_HDR(output, IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET); 799 761 nah->hdr.type = ND_NEIGHBOR_ADVERT; … … 801 763 memcpy(&nah->target, taddr, sizeof(T_IN6_ADDR)); 802 764 803 /* tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã追å ããã*/765 /* tlladdr が真ならネットワークインタフェースのアドレスを追加する。*/ 804 766 if (tlladdr && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) { 805 767 … … 819 781 nah->nd_na_flags_reserved = flags; 820 782 821 /* ãã§ãã¯ãµã ãè¨ç®ããã*/783 /* チェックサムを計算する。*/ 822 784 nah->hdr.sum = 0; 823 785 nah->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nah - output->buf, len); 824 786 825 /* éä¿¡ããã*/787 /* 送信する。*/ 826 788 NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS], 827 789 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 833 795 834 796 /* 835 * nd6_dad_start -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ãéå§ããã797 * nd6_dad_start -- 重複アドレス検出 (DAD) を開始する。 836 798 * 837 * 第3å¼æ°ã®tick ã¯ãã¤ã³ã¿ãã§ã¼ã¹ãèµ·åããã¦ãããéè¤æ¤åºã 838 * éä¿¡ããã¾ã§ã®æå°é 839 延å¤ã§ããã 799 * 第3引数のtick は、インタフェースが起動されてから、重複検出を 800 * 送信するまでの最小遅延値である。 840 801 */ 841 802 … … 843 804 nd6_dad_start (T_IFNET *ifp, T_IN6_IFADDR *ifa, int_t *tick) 844 805 { 845 /* ãã©ã°ããã§ãã¯ããã*/806 /* フラグをチェックする。*/ 846 807 if (!(ifa->flags & IN6_IFF_TENTATIVE)) 847 808 return; … … 860 821 return; 861 822 862 /* éè¤ã¢ãã¬ã¹æ¤åºã«ã¦ã³ã¿ããªã»ããããã*/823 /* 重複アドレス検出カウンタをリセットする。*/ 863 824 ifa->ns_icount = ifa->na_icount = ifa->ns_ocount = 0; 864 825 865 826 /* 866 * éè¤ã¢ãã¬ã¹æ¤åºè¦è«ãéä¿¡ããããã ããã¤ã³ã¿ãã§ã¼ã¹ã 867 * åæåããç´å¾ã«ãæåã«éä¿¡ããå ´åã¯ãã©ã³ãã ãªé 868 延ãè¡ãã 827 * 重複アドレス検出要請を送信する。ただし、インタフェースを 828 * 初期化した直後に、最初に送信する場合は、ランダムな遅延を行う。 869 829 */ 870 830 if (tick == NULL) { 871 831 nd6_dad_ns_output(ifp, ifa); 872 832 873 /* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨å®ããã*/833 /* タイムアウトを近隣探索の送信間隔に設定する。*/ 874 834 timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ); 875 835 } … … 877 837 int_t ntick; 878 838 879 if (*tick == 0) /* æåã®éä¿¡*/839 if (*tick == 0) /* 最初の送信 */ 880 840 ntick = net_rand() % (ND6_FIRST_DAD_DELAY_TIME * NET_TIMER_HZ / SYSTIM_HZ); 881 841 else -
azure_iot_hub/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
r388 r389 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 memcpy(&fdr->addr, src, sizeof(T_IN6_ADDR)); 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->in6_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 … … 724 693 int_t ix; 725 694 726 /* ãã¬ãã£ãã¯ã¹ãªã¹ããã空ãã®ãã¬ãã£ãã¯ã¹ã¨ã³ããªãæ¢ç´¢ããã*/695 /* プレフィックスリストから空きのプレフィックスエントリを探索する。*/ 727 696 for (ix = NUM_ND6_PREFIX_ENTRY; ix --; ) { 728 697 pr = &nd6_prefix[ix]; … … 731 700 } 732 701 733 /* ãã¬ãã£ãã¯ã¹ãªã¹ãã«ç©ºãããªããã°ã¨ã©ã¼*/702 /* プレフィックスリストに空きがなければエラー */ 734 703 if (ix < 0) 735 704 return NULL; … … 737 706 pr->flags |= ND6_PREFIX_STATE_BUSY; 738 707 739 /* ãã¬ãã£ãã¯ã¹ã追å ããã*/708 /* プレフィックスを追加する。*/ 740 709 pr->prefix = pi->prefix; 741 710 pr->prefix_len = pi->prefix_len; 742 711 743 /* ãã©ã°ãè¨å®ããã*/712 /* フラグを設定する。*/ 744 713 if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) 745 714 pr->flags |= ND6_PREFIX_FLAG_ONLINK; … … 747 716 pr->flags |= ND6_PREFIX_FLAG_AUTO; 748 717 749 /* ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨å®ããã*/718 /* プレフィックスの有効時間を設定する。*/ 750 719 pr->vltime = ntohl(pi->valid); 751 720 pr->pltime = ntohl(pi->preferred); … … 757 726 } 758 727 759 /* ã«ã¼ã¿ããããåæåããã*/728 /* ルータマップを初期化する。*/ 760 729 pr->routermap = 0; 761 730 762 /* ã«ã¼ã¿ã追å ããã*/731 /* ルータを追加する。*/ 763 732 pfxrtr_add(pr - nd6_prefix, rtr_index); 764 733 … … 767 736 768 737 /* 769 * prelist_update -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã738 * prelist_update -- プレフィックス・リストを更新する。 770 739 */ 771 740 … … 781 750 if ((pr = nd6_prefix_lookup(&pi->prefix, pi->prefix_len)) != NULL) { 782 751 /* 783 * ç»é²æ¸ã¿ã®å ´åã¯ããã¬ãã£ãã¯ã¹ãªã¹ããæ´æ°ããã752 * 登録済みの場合は、プレフィックスリストを更新する。 784 753 */ 785 754 786 755 /* 787 * ãã©ã°ã®æ´æ°ã®æ³¨æ:788 * on-link ããã㨠autonomous ãããã¯789 * 1 ãã 0 ã«å¤æ´ãã¦ã¯ãªããªãã756 * フラグの更新の注意: 757 * on-link ビットと autonomous ビットは 758 * 1 から 0 に変更してはならない。 790 759 */ 791 760 … … 797 766 if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) { 798 767 /* 799 * éç¥ããããã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã®æã¯ã800 * æå¹æéãæ´æ°ããã768 * 通知されたプレフィックスがオンリンクの時は、 769 * 有効時間を更新する。 801 770 */ 802 771 pr->vltime = ntohl(pi->valid); … … 808 777 (pr->flags & ND6_PREFIX_STATE_ONLINK) == 0) { 809 778 /* 810 * ãªããªã³ã¯ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«ãªã£ãæã®å¦çãå®è¡ããã779 * オフリンクのプレフィックスがオンリンクになった時の処理を実行する。 811 780 */ 812 781 if (nd6_prefix_onlink(pr) != E_OK) { … … 820 789 pfxrtr_add(pr - nd6_prefix, router_index); 821 790 } 822 else { /* æªç»é²ã®å ´å*/823 824 /* æå¹æé 0 ã®ãã¬ãã£ãã¯ã¹ã¯è¿½å ããªãã*/791 else { /* 未登録の場合 */ 792 793 /* 有効時間 0 のプレフィックスは追加しない。*/ 825 794 if (pi->valid == 0) { 826 795 syscall(sig_sem(SEM_ND6_DEFRTRLIST)); … … 828 797 } 829 798 830 /* ãªããªã³ã¯ã§ã¢ãã¬ã¹èªåè¨å®ã«ä½¿ç¨ããªããã°è¿½å ããªãã*/799 /* オフリンクでアドレス自動設定に使用しなければ追加しない。*/ 831 800 if ((pi->flags & (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) != 832 801 (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) { … … 835 804 } 836 805 837 /* ãã¬ãã£ãã¯ã¹ã追å ããã*/806 /* プレフィックスを追加する。*/ 838 807 if ((pr = nd6_prelist_add(pi, router_index)) == NULL) { 839 808 syslog(LOG_ERROR, "[ND6 RTR] prefix add failed."); … … 842 811 } 843 812 844 #if 1 /* ãã¬ãã£ãã¯ã¹ãæªç»é²ã®å ´åã ã表示ããã*/813 #if 1 /* プレフィックスが未登録の場合だけ表示する。*/ 845 814 syslog(LOG_NOTICE, "[ND6 RTR] add prefix: flags[MOH]: %02x, addr: %s\n" 846 815 " from: %s.", … … 851 820 if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0) { 852 821 /* 853 * ãªããªã³ã¯ã»ãã¬ãã£ãã¯ã¹ã®å ´åã¯ãæå¹æéã 0 ã«è¨å®ããã854 * ãã¨ã§æå¹æéåãã¨ãªãããªã¹ãããåé¤ãããã822 * オフリンク・プレフィックスの場合は、有効時間を 0 に設定する。 823 * あとで有効期限切れとなり、リストから削除される。 855 824 */ 856 825 pr->vltime = 0; … … 861 830 862 831 /* 863 * ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ãè¡ãã832 * ステートレス・アドレス自動設定を行う。 864 833 */ 865 834 if ((pr->flags & ND6_PREFIX_FLAG_AUTO) == 0) { … … 869 838 870 839 /* 871 * éç¥ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã® 872 * ã¢ãã¬ã¹æ 873 å ±ãæ¢ãã 840 * 通知されたプレフィックスが割り当てられているインタフェースの 841 * アドレス情報を探す。 874 842 */ 875 843 for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) { … … 881 849 } 882 850 883 if (ix >= 0) { /* ç»é²æ¸ã¿ã®ã¨ã*/851 if (ix >= 0) { /* 登録済みのとき */ 884 852 if ((ia->flags & IN6_IFF_AUTOCONF) == 0) { 885 853 /* 886 * ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®ã«ãã887 * è¨å®ããã¦ããªããã°æ´æ°ããªãã854 * ステートレス・アドレス自動設定により 855 * 設定されていなければ更新しない。 888 856 */ 889 857 ; … … 891 859 else if (ia->flags & IN6_IFF_TENTATIVE) { 892 860 /* 893 * éè¤æ¤åºä¸ãªãæ´æ°ããªãã861 * 重複検出中なら更新しない。 894 862 */ 895 863 ; … … 902 870 int_t ix; 903 871 904 /* æå¹æéãè¨å®ããã*/872 /* 有効時間を設定する。*/ 905 873 syscall(get_tim(&now)); 906 874 … … 914 882 if (pr->vltime > (2 * 60 * 60) || pr->vltime > vltime) { 915 883 /* 916 * lifetime.expire ãpi->valid (æå¹æé) ã¨917 * pi->preferred ( æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã918 * éç¥ãããæå¹æéã 2 æé以ä¸ããç¾å¨ã®æ®ãæéãã919 * é·ããã°ãæ°ããæå¹æéã«ã¯ãéç¥ãããæå¹æéãè¨å®ããã884 * lifetime.expire、pi->valid (有効時間) と 885 * pi->preferred (推奨有効時間) の単位は [s]。 886 * 通知された有効時間が 2 時間以上か、現在の残り時間より 887 * 長ければ、新しい有効時間には、通知された有効時間を設定する。 920 888 */ 921 889 vltime = pr->vltime; … … 925 893 else { 926 894 /* 927 * IPsec ã¯æªå®è£ 928 ã®ããã2 æéãè¨å®ããã 895 * IPsec は未実装のため、2 時間を設定する。 929 896 */ 930 897 vltime = 2 * 60 * 60; … … 933 900 lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL]; 934 901 935 /* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/902 /* プレフィックスマスクを生成する。*/ 936 903 in6_plen2pmask(&mask, pr->prefix_len); 937 904 938 /* ã¢ãã¬ã¹ãçæããã*/905 /* アドレスを生成する。*/ 939 906 for (ix = 0; ix < 4; ix ++) 940 907 addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] & mask.s6_addr32[ix]) … … 947 914 } 948 915 949 else { /* æªç»é²ã®ã¨ã*/916 else { /* 未登録のとき */ 950 917 951 918 /* 952 * ãã¬ãã£ãã¯ã¹é·ããã§ãã¯ããã 953 * ããããã¬ãã£ãã¯ã¹é·ã¨ã¤ã³ã¿ãã§ã¼ã¹ ID ã®åè¨ã 954 * 128 ãããã«ä¸è´ããªãæã¯ããã¬ãã£ãã¯ã¹æ 955 å ±ãç¡è¦ããã 919 * プレフィックス長をチェックする。 920 * もし、プレフィックス長とインタフェース ID の合計が 921 * 128 ビットに一致しない時は、プレフィックス情報を無視する。 956 922 */ 957 923 if ((ifidlen = in6_if2idlen(ifp)) < 0) … … 978 944 979 945 /* 980 * nd6_prelist_timer -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼946 * nd6_prelist_timer -- プレフィックス・リストの管理タイマー 981 947 */ 982 948 … … 989 955 990 956 syscall(get_tim(&now)); 991 now /= SYSTIM_HZ; /* æå¹æéã®åä½ã¯[s] */957 now /= SYSTIM_HZ; /* 有効時間の単位は [s] */ 992 958 993 959 syscall(wai_sem(SEM_ND6_DEFRTRLIST)); … … 1002 968 1003 969 /* 1004 * nd6_rs_output -- ã«ã¼ã¿è¦è«ãåºåããã970 * nd6_rs_output -- ルータ要請を出力する。 1005 971 */ 1006 972 … … 1017 983 1018 984 /* 1019 * éä¿¡å 1020 ã¢ãã¬ã¹ã«ã¯ããªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ãè¨å®ãããã 1021 * ã¾ã è¨å®ããããªããã°ãç¡æå®ãè¨å®ããã 985 * 送信元アドレスには、リンクローカルアドレスを設定するが、 986 * まだ設定されいなければ、無指定を設定する。 1022 987 */ 1023 988 if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) != NULL && !IFA6_IS_NOTREADY(ifa)) … … 1028 993 len = (ROUTER_SOLICIT_HDR_SIZE + 7) >> 3 << 3; 1029 994 1030 /* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨å®ããã*/995 /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/ 1031 996 if (in6_get_datagram(&output, len, 0, &in6_addr_linklocal_allrouters, 1032 997 saddr, IPPROTO_ICMPV6, … … 1034 999 return; 1035 1000 1036 /* ã«ã¼ã¿è¦è«ããããè¨å®ããã*/1001 /* ルータ要請ヘッダを設定する。*/ 1037 1002 rsh = GET_ROUTER_SOLICIT_HDR(output, IF_IP6_ROUTER_SOLICIT_HDR_OFFSET); 1038 1003 rsh->hdr.type = ND_ROUTER_SOLICIT; … … 1040 1005 rsh->nd_rs_reserved = 0; 1041 1006 1042 /* ãã§ãã¯ãµã ãè¨ç®ããã*/1007 /* チェックサムを計算する。*/ 1043 1008 rsh->hdr.sum = 0; 1044 1009 rsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)rsh - output->buf, len); 1045 1010 1046 /* éä¿¡ããã*/1011 /* 送信する。*/ 1047 1012 NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS], 1048 1013 output->len - GET_IF_IP6_HDR_SIZE(output)); … … 1054 1019 1055 1020 /* 1056 * nd6_defrtrlist_lookup -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã1021 * nd6_defrtrlist_lookup -- ディフォルトルータ・リストを探索する。 1057 1022 */ 1058 1023 … … 1073 1038 1074 1039 /* 1075 * nd6_router_lookup -- ã«ã¼ã¿ã®ã¢ãã¬ã¹ãè¿ãã1040 * nd6_router_lookup -- ルータのアドレスを返す。 1076 1041 * 1077 1042 */ … … 1087 1052 1088 1053 /* 1089 * nd6_defrtrlist_del -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã1054 * nd6_defrtrlist_del -- ディフォルトルータ・リストからルータを削除する。 1090 1055 * 1091 * 注æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã1092 * ããã¯ãã¦ããå¼ã³åºããã¨ã1056 * 注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、 1057 * ロックしてから呼び出すこと。 1093 1058 */ 1094 1059 … … 1104 1069 if ((ia = in6ifa_ifpwithrtrix(ifp, rtrix)) != NULL) { 1105 1070 /* 1106 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã¬ãã£ãã¯ã¹ãéç¥ãã1107 * ã«ã¼ã¿ãå°éä¸è½ã«ããã1071 * ネットワークインタフェースのプレフィックスを通知した 1072 * ルータを到達不能にする。 1108 1073 */ 1109 1074 ia->router_index = IN6_RTR_IX_UNREACH; 1110 1075 } 1111 1076 1112 /* ãã¬ãã£ãã¯ã¹ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/1077 /* プレフィックスリストからルータを削除する。*/ 1113 1078 mask = make_mask(rtrix); 1114 1079 for (pix = NUM_ND6_PREFIX_ENTRY; pix --; ) 1115 1080 nd6_prefix[pix].routermap &= ~mask; 1116 1081 1117 /* åé¤ããã«ã¼ã¿ä»¥éãåã«è©°ããã*/1082 /* 削除したルータ以降を前に詰める。*/ 1118 1083 for (rix = rtrix + 1; rix < def_router_count; rix ++) 1119 1084 nd6_def_router[rix - 1] = nd6_def_router[rix]; 1120 1085 1121 /* ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã«ã¼ã¿ãæ´æ°ããã*/1086 /* プレフィックスリストのルータも更新する。*/ 1122 1087 if (dr != nd6_def_router) { 1123 1088 1124 /* ãã¹ã¯ãçæããã*/1089 /* マスクを生成する。*/ 1125 1090 mask = 1; 1126 1091 for (ix = rtrix - 1; ix -- > 0; ) … … 1134 1099 def_router_count --; 1135 1100 1136 /* ãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ 1137 ã確èªããã*/ 1101 /* プレフィックスのオンリンク状態を確認する。*/ 1138 1102 pfxlist_onlink_check(); 1139 1103 1140 1104 /* 1141 * åé¤ããã«ã¼ã¿ãåªå 1142 ãã£ãã©ã«ãã«ã¼ã¿ã®å ´åã¯ã 1143 * åªå 1144 ãã£ãã©ã«ãã«ã¼ã¿ãé¸æããªããã 1105 * 削除するルータが優先ディフォルトルータの場合は、 1106 * 優先ディフォルトルータを選択しなおす。 1145 1107 */ 1146 1108 if (rtrix == 0) … … 1149 1111 1150 1112 /* 1151 * nd6_defrtrlist_timer -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼1113 * nd6_defrtrlist_timer -- ディフォルトルータ・リストの管理タイマー 1152 1114 */ 1153 1115 … … 1173 1135 1174 1136 /* 1175 * nd6_get_drl -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããç²å¾ããã1137 * nd6_get_drl -- ディフォルトルータ・リストを獲得する。 1176 1138 */ 1177 1139 … … 1184 1146 1185 1147 /* 1186 * nd6_get_prl -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããç²å¾ããã1148 * nd6_get_prl -- プレフィックス・リストを獲得する。 1187 1149 */ 1188 1150 … … 1196 1158 1197 1159 /* 1198 * nd6_ra_input -- ã«ã¼ã¿éç¥ã®å 1199 ¥åå¦çã 1160 * nd6_ra_input -- ルータ通知の入力処理。 1200 1161 */ 1201 1162 … … 1221 1182 1222 1183 /* 1223 * ãããã®ãã§ãã¯ã以ä¸ã®å ´åã¯ç ´æ£ããã1224 * ã»ããããªãããã IPV6_MAXHLIM (255) 以å¤1225 * ã»ãããé·ãçã1226 * ã»å§ç¹ã¢ãã¬ã¹ãããªã³ã¯ãã¼ã«ã«ã§ã¯ãªã(RFC2461)1184 * ヘッダのチェック、以下の場合は破棄する。 1185 * ・ホップリミットが IPV6_MAXHLIM (255) 以外 1186 * ・ヘッダ長が短い 1187 * ・始点アドレスが、リンクローカルではない (RFC2461) 1227 1188 */ 1228 1189 if (ip6h->hlim != IPV6_MAXHLIM || … … 1233 1194 rah = GET_ROUTER_ADVERT_HDR(input, off); 1234 1195 1235 /* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/1196 /* 近隣探索オプションのオフセットを記録する。*/ 1236 1197 if (nd6_options(nd_opt_off, input->buf + (off + ROUTER_ADVERT_HDR_SIZE), 1237 1198 input->len - (off + ROUTER_ADVERT_HDR_SIZE)) != E_OK) 1238 1199 goto err_ret; 1239 1200 /* 1240 * å°éå¯è½ç¶æ 1241 ã®æå¹æéã®æ´æ° 1201 * 到達可能状態の有効時間の更新 1242 1202 1243 1203 */ 1244 1204 if (rah->reachable) { 1245 advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000; /* rah->reachable ã®åä½ã¯ms */1205 advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000; /* rah->reachable の単位は ms */ 1246 1206 if (advrea <= ND6_MAX_REACHABLE_TIME && 1247 1207 advrea != nd6_base_reachable_time) { … … 1255 1215 } 1256 1216 1257 /* è¿é£æ¢ç´¢ã®éä¿¡ééã®æ´æ°*/1217 /* 近隣探索の送信間隔の更新 */ 1258 1218 if (rah->retransmit) { 1259 1219 nd6_retrans_time = ntohl(rah->retransmit) * SYSTIM_HZ / 1000; 1260 /* rah->retransmit ã®åä½ã¯ms */1261 } 1262 1263 /* ããããªãããã®è¦å®å¤ã®æ´æ°*/1220 /* rah->retransmit の単位は ms */ 1221 } 1222 1223 /* ホップリミットの規定値の更新 */ 1264 1224 if (rah->nd_ra_current_hoplimit) { 1265 1225 ip6_defhlim = rah->nd_ra_current_hoplimit; 1266 1226 } 1267 1227 1268 /* ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®æ´æ°*/1228 /* ディフォルトルータリストの更新 */ 1269 1229 rix = defrtrlist_update(&ip6h->src, 1270 1230 ntohs(rah->nd_ra_router_lifetime), 1271 rah->nd_ra_flags); /* rah->nd_ra_router_lifetime ã®åä½ã¯ç§*/1272 1273 /* ãã¬ãã£ãã¯ã¹ãªã¹ãã®æ´æ°*/1231 rah->nd_ra_flags); /* rah->nd_ra_router_lifetime の単位は秒 */ 1232 1233 /* プレフィックスリストの更新 */ 1274 1234 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)]) { 1275 1235 T_ND_OPT_PREFIX_INFO *pi; … … 1279 1239 pi_off = off + ROUTER_ADVERT_HDR_SIZE 1280 1240 + nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)] - 8; 1281 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 1282 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 1241 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 1283 1242 while (pi_count -- > 0) { 1284 1243 pi = (T_ND_OPT_PREFIX_INFO*)(input->buf + pi_off); 1285 1244 if (pi->type != ND_OPT_PREFIX_INFORMATION) 1286 /* ãªãã·ã§ã³ã¿ã¤ãããã¬ãã£ãã¯ã¹æ 1287 å ±ã§ãªããã°ä½ãããªãã*/ 1245 /* オプションタイプがプレフィックス情報でなければ何もしない。*/ 1288 1246 ; 1289 1247 else if (pi->len != 4) 1290 /* ãã¬ãã£ãã¯ã¹æ 1291 å ±ã®é·ãã 32 (8Ã4) ã§ãªããã°ä¸æ£ */ 1248 /* プレフィックス情報の長さが 32 (8×4) でなければ不正 */ 1292 1249 syslog(LOG_NOTICE, "[ND6 RTR] prefix opt len: %d.", pi->len); 1293 1250 else if (pi->prefix_len > 128) 1294 /* ãã¬ãã£ãã¯ã¹é·ã¯ 128 ããã以ä¸*/1251 /* プレフィックス長は 128 ビット以下 */ 1295 1252 syslog(LOG_NOTICE, "[ND6 RTR] prefix len: %d.", pi->prefix_len); 1296 1253 else if (IN6_IS_ADDR_MULTICAST(&pi->prefix) || 1297 1254 IN6_IS_ADDR_LINKLOCAL(&pi->prefix)) 1298 /* ãã«ããã£ã¹ãã¨ãªã³ã¯ãã¼ã«ã«ã¯ä¸æ£*/1255 /* マルチキャストとリンクローカルは不正 */ 1299 1256 syslog(LOG_NOTICE, "[ND6 RTR] invalid addr: %s from %s.", 1300 1257 ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src)); 1301 #if 0 /* FreeBSD 6.3 ã§åé¤ããã¦ããã*/1258 #if 0 /* FreeBSD 6.3 で削除されている。*/ 1302 1259 else if (IN6_IS_ADDR_AGGREGATE_UNICAST(&pi->prefix) && 1303 1260 (pi->prefix_len != 64) ) 1304 /* éç´å¯è½ã¦ããã£ã¹ãã§ããã¬ãã£ãã¯ã¹é·ã 64 ããã以å¤ã¯ä¸æ£*/1261 /* 集約可能ユニキャストで、プレフィックス長が 64 ビット以外は不正 */ 1305 1262 syslog(LOG_NOTICE, "[ND6 RTR] invalid prefix len for global: %d.", pi->prefix_len); 1306 1263 #endif 1307 1264 else if (ntohl(pi->preferred) > ntohl(pi->valid)) 1308 /* æ¨å¥¨æå¹æéãæå¹æéããé·ããã°ä¸æ£*/1265 /* 推奨有効時間が有効時間より長ければ不正 */ 1309 1266 syslog(LOG_NOTICE, "[ND6 RTR] preferred(%d) > valid time(%d).", ntohl(pi->preferred), ntohl(pi->valid)); 1310 1267 else { 1311 #if 0 /* ãã¬ãã£ãã¯ã¹ãæªç»é²ã®å ´åã ã表示ããã*/1268 #if 0 /* プレフィックスが未登録の場合だけ表示する。*/ 1312 1269 syslog(LOG_NOTICE, "[ND6 RTR] update prefix: flags[MOH]: %02x, addr: %s\n" 1313 1270 " from: %s.", … … 1316 1273 if (rix >= 0) { 1317 1274 /* 1318 * defrtrlist_update ã®æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã1319 * ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã1275 * defrtrlist_update の戻り値は、ルータのインデックス。 1276 * ただし、値が -1 なら、プレフィックス・リストは更新しない。 1320 1277 */ 1321 prelist_update(pi, rix); /* ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã*/1278 prelist_update(pi, rix); /* プレフィックス・リストを更新する。*/ 1322 1279 } 1323 1280 } 1324 pi_off += pi->len << 3; /* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã*/1325 } 1326 } 1327 1328 /* MTU ã®æ´æ°*/1281 pi_off += pi->len << 3; /* オプション長の単位は 8 バイト */ 1282 } 1283 } 1284 1285 /* MTU の更新 */ 1329 1286 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_MTU)]) { 1330 1287 T_ND_OPT_MTU_HDR *optmtuh; … … 1335 1292 1336 1293 /* 1337 * å¤ã®ãã§ãã¯1294 * 値のチェック 1338 1295 * 1339 * ãªãã·ã§ã³é·: 11340 * äºç´: 01296 * オプション長: 1 1297 * 予約: 0 1341 1298 */ 1342 1299 if (optmtuh->len != 1 || optmtuh->reserved != 0) 1343 1300 goto err_ret; 1344 1301 1345 /* MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ãªãç¡è¦ããã*/1302 /* MTU が IPv6 MMTU(1280 オクテット)以下なら無視する。*/ 1346 1303 mtu = ntohl(optmtuh->mtu); 1347 1304 if (mtu >= IPV6_MMTU) { … … 1352 1309 1353 1310 /* 1354 * ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ãã£ãã·ã¥ã«ç»é²ããã1311 * ルータの始点リンクアドレスを近隣キャッシュに登録する。 1355 1312 */ 1356 1313 if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) { 1357 1314 opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ROUTER_ADVERT_HDR_SIZE) + 1358 1315 nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8); 1359 /* 注æ: ãªãã·ã§ã³ãªãã»ããé 1360 åã«ã¯ããªãã»ãã + 8 ãè¨å®ããã¦ããã*/ 1316 /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/ 1361 1317 lladdr = (uint8_t *)(opth + 1); 1362 1318 lladdr_len = (opth->len << 3); … … 1364 1320 1365 1321 /* 1366 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼1322 * ネットワークインタフェースのアドレス長が一致しなければエラー 1367 1323 */ 1368 1324 if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7)) 1369 1325 goto err_ret; 1370 1326 1371 /* è¿é£ãã£ãã·ã¥ã«ç»é²ããã*/1327 /* 近隣キャッシュに登録する。*/ 1372 1328 nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_ROUTER_ADVERT, 0); 1373 1329 1374 1330 /* 1375 * ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ãã£ãã·ã¥ã«ç»é²ããã®ã§ã 1376 * ãªã³ãªã³ã¯ç¶æ 1377 ãå¤åããå¯è½æ§ããããããããããã§ãã¯ããã 1331 * ルータの始点リンクアドレスを近隣キャッシュに登録したので、 1332 * オンリンク状態が変化する可能性があるため、それをチェックする。 1378 1333 */ 1379 1334 pfxlist_onlink_check(); … … 1389 1344 1390 1345 /* 1391 * ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã¯ãç ´æ£ãã¦çµäºããã1346 * ルータ通知を受信しない場合は、破棄して終了する。 1392 1347 */ 1393 1348 NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RA_IN_PACKETS], 1); … … 1400 1355 1401 1356 /* 1402 * nd6_rtrsol_ctl -- ã«ã¼ã¿è¦è«åºåã®å¶å¾¡1357 * nd6_rtrsol_ctl -- ルータ要請出力の制御 1403 1358 */ 1404 1359 … … 1409 1364 int_t try; 1410 1365 1411 /* ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®ã¢ãã¬ã¹æ 1412 å ±ãå¾ãã*/ 1366 /* リンクローカルアドレスのアドレス情報を得る。*/ 1413 1367 if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) == NULL) 1414 1368 return; 1415 1369 1416 /* ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºãå¾ 1417 ã¤ã*/ 1370 /* リンクローカルアドレスの重複検出終了を待つ。*/ 1418 1371 do { 1419 /* ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºå¾ 1420 ã¡æéãè¨å®ããã*/ 1372 /* リンクローカルアドレスの重複検出終了待ち時間を設定する。*/ 1421 1373 syscall(dly_tsk(net_rand() % TMO_ND6_RTR_SOL_DELAY)); 1422 1374 1423 /* å¾ 1424 ã£ã¦ããéã«éè¤ãæ¤åºããããçµäºããã*/ 1375 /* 待っている間に重複が検出されたら終了する。*/ 1425 1376 if (ifa->flags & IN6_IFF_DUPLICATED) 1426 1377 return; … … 1430 1381 for (try = 0; try < NUM_ND6_RTR_SOL_RETRY; try ++) { 1431 1382 1432 /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã«ã¨ã³ããªãããã°çµäº*/1383 /* ディフォルトルータ・リストにエントリがあれば終了 */ 1433 1384 if (def_router_count > 0) 1434 1385 return; 1435 1386 1436 /* ã«ã¼ã¿è¦è«ãåºåããã*/1387 /* ルータ要請を出力する。*/ 1437 1388 nd6_rs_output(); 1438 1389 1439 /* åºåã® 2 åç®ä»¥éã®é 1440 延æéãè¨å®ããã*/ 1390 /* 出力の 2 回目以降の遅延時間を設定する。*/ 1441 1391 syscall(dly_tsk(TMO_ND6_RTR_SOL_INTERVAL)); 1442 1392 } … … 1446 1396 1447 1397 /* 1448 * nd6_onlink_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã1398 * nd6_onlink_prefix_lookup -- プレフィックスを探索する。 1449 1399 */ 1450 1400 … … 1459 1409 now /= SYSTIM_HZ; 1460 1410 1461 /* æ¨å¥¨æå¹æéå 1462 ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/ 1411 /* 推奨有効時間内のプレフィックスを探索する。*/ 1463 1412 for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) { 1464 1413 pr = &nd6_prefix[ix]; … … 1472 1421 } 1473 1422 1474 /* æå¹æéå 1475 ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/ 1423 /* 有効時間内のプレフィックスを探索する。*/ 1476 1424 for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) { 1477 1425 pr = &nd6_prefix[ix]; -
azure_iot_hub/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
r388 r389 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 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã 119 */ 120 121 /* 122 * ip6_rthdr0 -- ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å 123 ¥åé¢æ° 105 * 通信帯域を食いつぶす攻撃への対応のため、 106 * タイプ 0 経路制御ヘッダの処理を行わない。 107 */ 108 109 /* 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, -
azure_iot_hub/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
r388 r389 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$ … … 147 135 148 136 /* 149 * in6_addrscope -- ã¢ãã¬ã¹ã®ã¹ã³ã¼ã ID ãè¿ãã137 * in6_addrscope -- アドレスのスコープ ID を返す。 150 138 */ 151 139 -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_input.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 78 66 79 67 /* 80 * udp_reply_no_port -- éä¿¡å 81 ã«ãã¼ããå®ç¾©ããã¦ããªããã¨ãéç¥ããã 68 * udp_reply_no_port -- 送信元にポートが定義されていないことを通知する。 82 69 */ 83 70 … … 93 80 if (GET_IP_VER(input)==IPV6_VERSION) { 94 81 95 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã 㯠ICMP ã¨ã©ã¼ãéç¥ããªãã*/82 /* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/ 96 83 if (!IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) { 97 84 syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport)); 98 85 99 /* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/86 /* icmp6_error で、ネットワークバッファ input を返却する。*/ 100 87 icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0); 101 88 } … … 105 92 else /*if (GET_IP_VER(input)==IPV4_VERSION)*/ { 106 93 107 /* ãã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/94 /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/ 108 95 if (ntohl(GET_IP4_HDR(input)->dst) == IF_GET_IFNET()->in4_ifaddr.addr) { 109 96 syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport)); 110 97 111 98 icmp_error(ICMP4_UNREACH_PORT, input); 112 /* icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ä¸ã¸æããã*/99 /* icmp_error では、ネットワークバッファ input を返却しないので下へ抜ける。*/ 113 100 } 114 101 syscall(rel_net_buf(input)); … … 119 106 NET_COUNT_MIB(udp_stats.udpNoPorts, 1); 120 107 121 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã 㯠ICMP ã¨ã©ã¼ãéç¥ããªãã*/108 /* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/ 122 109 if (!IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) { 123 110 syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport)); 124 111 125 /* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/112 /* icmp6_error で、ネットワークバッファ input を返却する。*/ 126 113 icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0); 127 114 } -
azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_subr.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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$ … … 78 66 79 67 /* 80 * udp6_is_dstaddr_accept -- UDP ã®ãã¦å 81 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 68 * udp6_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 82 69 * 83 * 以ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã70 * 以下の場合もデータグラムを受信する。 84 71 * 85 * ã»ãã¦å 86 ã¢ãã¬ã¹ããã«ããã£ã¹ã 72 * ・あて先アドレスがマルチキャスト 87 73 */ 88 74 … … 105 91 106 92 /* 107 * udpn_is_dstaddr_accept -- UDP ã®ãã¦å 108 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 93 * udpn_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 109 94 * 110 * DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ã以ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã95 * DHCP_CFG が定義されているときは、以下のデータグラムを受信する。 111 96 * 112 * ã»ãã¦å 113 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 114 * ã»ãã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾© 97 * ・あて先アドレスがブロードキャスト 98 * ・ローカルアドレスが未定義 115 99 */ 116 100 … … 139 123 140 124 /* 141 * udpn_is_dstaddr_accept -- UDP ã®ãã¦å 142 ã¢ãã¬ã¹ãæ£ããããã§ãã¯ããã 125 * udpn_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。 143 126 * 144 * 以ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã127 * 以下の場合もデータグラムを受信する。 145 128 * 146 * ã»ãã¦å 147 ã¢ãã¬ã¹ãããã¼ããã£ã¹ã 129 * ・あて先アドレスがブロードキャスト 148 130 */ 149 131 -
azure_iot_hub/trunk/asp3_dcre/tinet/tcpip_api.def
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
-
azure_iot_hub/trunk/asp3_dcre/tinet/tcpip_sym.def
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
-
azure_iot_hub/trunk/asp3_dcre/tinet/tinet.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r388 r389 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 … … 119 106 120 107 # ===================================================================== 121 # tinet_cfg.c ã®çæ108 # tinet_cfg.c の生成 122 109 # ===================================================================== 123 110 … … 149 136 EOS 150 137 # 151 # ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼138 # インクルードディレクティブ(#include) 152 139 # 153 140 $tinetCfgC.add() … … 187 174 $tinetCfgC.add("#endif") 188 175 189 # // TCP (IPv6) åä»å£176 # // TCP (IPv6) 受付口 190 177 $sem_tcp_rep_lock_id = 0 191 178 if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0 … … 217 204 end 218 205 219 # // TCP (IPv4) åä»å£206 # // TCP (IPv4) 受付口 220 207 if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP_REP].size > 0 221 208 $tinetCfgC.add() … … 246 233 end 247 234 248 # // TCP é信端ç¹235 # // TCP 通信端点 249 236 if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0 || $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP_CEP].size > 0 250 237 $tinetCfgC.add() … … 313 300 end 314 301 315 # // UDP (IPv6) é信端ç¹302 # // UDP (IPv6) 通信端点 316 303 if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0 317 304 $tinetCfgC.add() … … 344 331 end 345 332 346 # // UDP (IPv4) é信端ç¹333 # // UDP (IPv4) 通信端点 347 334 if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP_CEP].size > 0 348 335 $tinetCfgC.add() … … 376 363 377 364 # ===================================================================== 378 # tinet_kern.cfg ã®çæ379 # ===================================================================== 380 381 # // TCP (IPv6) åä»å£365 # tinet_kern.cfg の生成 366 # ===================================================================== 367 368 # // TCP (IPv6) 受付口 382 369 $sem_tcp_rep_lock_id = 0 383 370 if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0 … … 404 391 end 405 392 406 # // TCP (IPv4) åä»å£393 # // TCP (IPv4) 受付口 407 394 if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP_REP].size > 0 408 395 $cfgData[:TCP_CRE_REP].each do |key, params| … … 428 415 end 429 416 430 # // TCP (IPv6) é信端ç¹417 # // TCP (IPv6) 通信端点 431 418 if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0 432 419 $cfgData[:TCP6_CRE_CEP].each do |key, params| … … 484 471 end 485 472 486 # // TCP (IPv4) é信端ç¹473 # // TCP (IPv4) 通信端点 487 474 if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP_CEP].size > 0 488 475 $cfgData[:TCP_CRE_CEP].each do |key, params| … … 540 527 end 541 528 542 # // UDP (IPv6) é信端ç¹529 # // UDP (IPv6) 通信端点 543 530 if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0 544 531 $cfgData[:UDP6_CRE_CEP].each do |key, params| … … 574 561 end 575 562 576 # // UDP (IPv4) é信端ç¹563 # // UDP (IPv4) 通信端点 577 564 if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP_CEP].size > 0 578 565 $cfgData[:UDP_CRE_CEP].each do |key, params| -
Property svn:mime-type
changed from
-
azure_iot_hub/trunk/asp3_dcre/tinet/tinet_asp.cfg
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 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 -
azure_iot_hub/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
r388 r389 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 ã®ååãªã¼ãã³ããµãã¼ããããTINET 1.7 以éä¸è¦ã«ãªã£ããã*/38 * TINET 1.2 との互換性のための定義 39 */ 40 41 /* TCPの受動オープンをサポートする【TINET 1.7 以降不要になった】。*/ 54 42 55 43 #if 0 … … 57 45 #endif 58 46 59 /* TCP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/47 /* TCPのノンブロッキングコール機能を組込む。*/ 60 48 61 49 #define TCP_CFG_NON_BLOCKING 62 50 63 /* UDP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/51 /* UDPのノンブロッキングコール機能を組込む。*/ 64 52 65 53 #define UDP_CFG_NON_BLOCKING 66 54 67 55 /* 68 * NIC ãã·ã¹ãã ãCPUãå¿ç¨ããã°ã©ã ã«69 * ä¾åããå®ç¾©ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããã56 * NIC、システム、CPU、応用プログラムに 57 * 依存する定義ファイルをインクルードする。 70 58 */ 71 59 … … 96 84 97 85 /* 98 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©86 * TINET 1.1 との互換性のための定義 99 87 */ 100 88 … … 104 92 105 93 /* 106 * TINET 1.2 ã¨ã®äºææ§ã®ããã®å®ç¾©94 * TINET 1.2 との互換性のための定義 107 95 */ 108 96 … … 112 100 113 101 /* 114 * TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©102 * TINET 1.3 との互換性のための定義 115 103 116 104 #ifdef NUM_MPF_NET_BUF_REASSM … … 120 108 121 109 /* 122 * TINET 1.5 ã¨ã®äºææ§ã®ããã®å®ç¾©123 */ 124 125 /* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°ã®å®ç¾©*/110 * TINET 1.5 との互換性のための定義 111 */ 112 113 /* ルーティング表のエントリ数の定義 */ 126 114 127 115 #define NUM_IN6_ROUTE_ENTRY \ 128 116 (NUM_IN6_STATIC_ROUTE_ENTRY + NUM_IN6_REDIRECT_ROUTE_ENTRY) 129 /* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°*/117 /* ルーティング表のエントリ数 */ 130 118 131 119 #define NUM_IN4_ROUTE_ENTRY \ 132 120 (NUM_IN4_STATIC_ROUTE_ENTRY + NUM_IN4_REDIRECT_ROUTE_ENTRY) 133 /* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°*/121 /* ルーティング表のエントリ数 */ 134 122 135 123 #if defined(SUPPORT_INET6) … … 175 163 #endif /* of #if defined(SUPPORT_INET6) */ 176 164 177 /* DHCP ã®å®ç¾©*/165 /* DHCP の定義 */ 178 166 179 167 #ifdef DHCP4_CLI_CFG … … 182 170 183 171 /* 184 * IPv6/IPv4 ã«é¢ããå®ç¾© 185 */ 186 187 /* 188 * æå®ããããã¯ãã«å¯¾ãã TINET å 189 é¨ã®ãã¯ãã®å®ç¾© 172 * IPv6/IPv4 に関する定義 173 */ 174 175 /* 176 * 指定されたマクロに対する TINET 内部のマクロの定義 190 177 * 191 178 * SUPPORT_INET6 . . ON ON ON ON … … 211 198 212 199 /* 213 * TCP ã«é¢ããå®ç¾©214 */ 215 216 /* 217 * MAX_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æ大å¤200 * TCP に関する定義 201 */ 202 203 /* 204 * MAX_TCP_RCV_SEG: 受信セグメントサイズの最大値 218 205 * 219 * 注æ: å¤æ´ãã¹ãã§ã¯ãªãã206 * 注意: 変更すべきではない。 220 207 */ 221 208 … … 225 212 226 213 /* 227 * DEF_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤214 * DEF_TCP_SND_SEG: 送信セグメントサイズの規定値 228 215 */ 229 216 … … 233 220 234 221 /* 235 * TCP é信端ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½222 * TCP 通信端点の送受信ウィンドバッファの省コピー機能 236 223 */ 237 224 … … 249 236 250 237 /* 251 * TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã238 * TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット 252 239 * 253 * -1: BSD ã®å®è£ 254 ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã 255 * 0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã 240 * -1: BSD の実装、緊急ポインタは、緊急データの最後のバイトの次のバイトを差す。 241 * 0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。 256 242 */ 257 243 … … 261 247 262 248 /* 263 * ARP ã«é¢ããå®ç¾©249 * ARP に関する定義 264 250 */ 265 251 266 252 #ifndef ARP_CACHE_KEEP 267 #define ARP_CACHE_KEEP (20*60*NET_TIMER_HZ) /* ARP ãã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ã*/268 #endif 269 270 /* 271 * ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã«é¢ããå®ç¾©253 #define ARP_CACHE_KEEP (20*60*NET_TIMER_HZ) /* ARP キャッシュのタイムアウト */ 254 #endif 255 256 /* 257 * ループバックインタフェースに関する定義 272 258 */ 273 259 274 260 #ifndef LOMTU 275 #define LOMTU 1500 /* ã«ã¼ãããã¯ã®MTU */276 #endif 277 278 /* 279 * TINET ãµãã¼ãé¢æ°ã«é¢ããå®ç¾©280 */ 281 282 #ifndef NUM_IPV4ADDR_STR_BUFF /* ip2str ã«ããã IP ã¢ãã¬ã¹æååç¨ãããã¡æ°*/261 #define LOMTU 1500 /* ループバックの MTU */ 262 #endif 263 264 /* 265 * TINET サポート関数に関する定義 266 */ 267 268 #ifndef NUM_IPV4ADDR_STR_BUFF /* ip2str における IP アドレス文字列用バッファ数 */ 283 269 284 270 #if defined(SUPPORT_PPP) … … 295 281 296 282 #ifndef NUM_IPV6ADDR_STR_BUFF 297 #define NUM_IPV6ADDR_STR_BUFF 2 /* ip62str ã«ããã IP ã¢ãã¬ã¹æååç¨ãããã¡æ°*/298 #endif 299 300 #ifndef NUM_MACADDR_STR_BUFF /* macstr ã«ããã MAC ã¢ãã¬ã¹æååç¨ãããã¡æ°*/283 #define NUM_IPV6ADDR_STR_BUFF 2 /* ip62str における IP アドレス文字列用バッファ数 */ 284 #endif 285 286 #ifndef NUM_MACADDR_STR_BUFF /* macstr における MAC アドレス文字列用バッファ数 */ 301 287 302 288 #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING) … … 313 299 314 300 /* 315 * TINET å 316 é¨ã®ã¿ã¤ã ã¢ã¦ãå¤ã®è¨å® 301 * TINET 内部のタイムアウト値の設定 317 302 */ 318 303 319 304 #ifndef TMO_IP4_FRAG_GET_NET_BUF 320 #define TMO_IP4_FRAG_GET_NET_BUF ULONG_C(1000000) /* [us] ãIPv4 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/305 #define TMO_IP4_FRAG_GET_NET_BUF ULONG_C(1000000) /* [us]、IPv4 データグラム再構成用ネットワークバッファ獲得タイムアウト */ 321 306 #endif 322 307 323 308 #ifndef TMO_IP6_FRAG_GET_NET_BUF 324 #define TMO_IP6_FRAG_GET_NET_BUF ULONG_C(1000000) /* [us] ãIPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/309 #define TMO_IP6_FRAG_GET_NET_BUF ULONG_C(1000000) /* [us]、IPv6 データグラム再構成用ネットワークバッファ獲得タイムアウト */ 325 310 #endif 326 311 327 312 #ifndef TMO_PPP_GET_NET_BUF 328 #define TMO_PPP_GET_NET_BUF ULONG_C(1000000) /* [us] ãPPP åä¿¡ç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/313 #define TMO_PPP_GET_NET_BUF ULONG_C(1000000) /* [us]、PPP 受信用ネットワークバッファ獲得タイムアウト */ 329 314 #endif 330 315 331 316 #ifndef TMO_ARP_GET_NET_BUF 332 #define TMO_ARP_GET_NET_BUF ULONG_C(1000000) /* [us] ãARP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/317 #define TMO_ARP_GET_NET_BUF ULONG_C(1000000) /* [us]、ARP のネットワークバッファ獲得タイムアウト */ 333 318 #endif 334 319 335 320 #ifndef TMO_TCP_GET_NET_BUF 336 #define TMO_TCP_GET_NET_BUF ULONG_C(1000000) /* [us] ãTCP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã*/321 #define TMO_TCP_GET_NET_BUF ULONG_C(1000000) /* [us]、TCP のネットワークバッファ獲得タイムアウト */ 337 322 #endif 338 323 339 324 #ifndef TMO_TCP_OUTPUT 340 #define TMO_TCP_OUTPUT ULONG_C(1000000) /* [us] ãTCP åºåã¿ã¤ã ã¢ã¦ã*/325 #define TMO_TCP_OUTPUT ULONG_C(1000000) /* [us]、TCP 出力タイムアウト */ 341 326 #endif 342 327 343 328 #ifndef TMO_UDP_OUTPUT 344 #define TMO_UDP_OUTPUT ULONG_C(1000000) /* [us] ãUDP åºåã¿ã¤ã ã¢ã¦ã*/329 #define TMO_UDP_OUTPUT ULONG_C(1000000) /* [us]、UDP 出力タイムアウト */ 345 330 #endif 346 331 347 332 #ifndef TMO_ICMP_OUTPUT 348 #define TMO_ICMP_OUTPUT ULONG_C(1000000) /* [us] ãICMP åºåã¿ã¤ã ã¢ã¦ã*/333 #define TMO_ICMP_OUTPUT ULONG_C(1000000) /* [us]、ICMP 出力タイムアウト */ 349 334 #endif 350 335 351 336 #ifndef TMO_IGMP_OUTPUT 352 #define TMO_IGMP_OUTPUT ULONG_C(1000000) /* [us] ãIGMP åºåã¿ã¤ã ã¢ã¦ã*/337 #define TMO_IGMP_OUTPUT ULONG_C(1000000) /* [us]、IGMP 出力タイムアウト */ 353 338 #endif 354 339 355 340 #ifndef TMO_ND6_NS_OUTPUT 356 #define TMO_ND6_NS_OUTPUT ULONG_C(1000000) /* [us] ãè¿é£è¦è«åºåã¿ã¤ã ã¢ã¦ã*/341 #define TMO_ND6_NS_OUTPUT ULONG_C(1000000) /* [us]、近隣要請出力タイムアウト */ 357 342 #endif 358 343 359 344 #ifndef TMO_ND6_NA_OUTPUT 360 #define TMO_ND6_NA_OUTPUT ULONG_C(1000000) /* [us] ãè¿é£éç¥åºåã¿ã¤ã ã¢ã¦ã*/345 #define TMO_ND6_NA_OUTPUT ULONG_C(1000000) /* [us]、近隣通知出力タイムアウト */ 361 346 #endif 362 347 363 348 #ifndef TMO_ND6_RS_OUTPUT 364 #define TMO_ND6_RS_OUTPUT ULONG_C(1000000) /* [us] ãã«ã¼ã¿è¦è«åºåã¿ã¤ã ã¢ã¦ã*/349 #define TMO_ND6_RS_OUTPUT ULONG_C(1000000) /* [us]、ルータ要請出力タイムアウト */ 365 350 #endif 366 351 367 352 #ifndef TMO_ARP_OUTPUT 368 #define TMO_ARP_OUTPUT ULONG_C(1000000) /* [us] ãã¢ãã¬ã¹è§£æ±ºè¦æ±åºåã¿ã¤ã ã¢ã¦ã*/353 #define TMO_ARP_OUTPUT ULONG_C(1000000) /* [us]、アドレス解決要求出力タイムアウト */ 369 354 #endif 370 355 371 356 #ifndef TMO_ND6_RTR_SOL_DELAY 372 #define TMO_ND6_RTR_SOL_DELAY ULONG_C(1000000) /* [us]ãã«ã¼ã¿è¦è«åºåé 373 延 */ 357 #define TMO_ND6_RTR_SOL_DELAY ULONG_C(1000000) /* [us]、ルータ要請出力遅延 */ 374 358 #endif 375 359 376 360 #ifndef TMO_ND6_RTR_SOL_INTERVAL 377 #define TMO_ND6_RTR_SOL_INTERVAL ULONG_C(4000000) /* [us] ãã«ã¼ã¿è¦è«åºåéé*/361 #define TMO_ND6_RTR_SOL_INTERVAL ULONG_C(4000000) /* [us]、ルータ要請出力間隔 */ 378 362 #endif 379 363 380 364 #ifndef TMO_IN_REDIRECT 381 /* [s] ãåãç´ãã«ã¼ãã£ã³ã°ã¨ã³ããªã¿ã¤ã ã¢ã¦ã*/365 /* [s]、向け直しルーティングエントリタイムアウト*/ 382 366 #define TMO_IN_REDIRECT (10*60*NET_TIMER_HZ) 383 367 #endif 384 368 385 369 /* 386 * TINET å 387 é¨ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®è¨å® 370 * TINET 内部のタスクのスタックサイズの設定 388 371 */ 389 372 390 373 #ifndef TCP_OUT_TASK_STACK_SIZE 391 #define TCP_OUT_TASK_STACK_SIZE 1024 /* TCP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/374 #define TCP_OUT_TASK_STACK_SIZE 1024 /* TCP 出力タスクのスタックサイズ */ 392 375 #endif 393 376 394 377 #ifndef UDP_OUT_TASK_STACK_SIZE 395 #define UDP_OUT_TASK_STACK_SIZE 1024 /* UDP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/378 #define UDP_OUT_TASK_STACK_SIZE 1024 /* UDP 出力タスクのスタックサイズ */ 396 379 #endif 397 380 398 381 #ifndef PPP_INPUT_STACK_SIZE 399 #define PPP_INPUT_STACK_SIZE 1024 /* PPP ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/382 #define PPP_INPUT_STACK_SIZE 1024 /* PPP タスクのスタックサイズ */ 400 383 #endif 401 384 402 385 #ifndef PPP_OUTPUT_STACK_SIZE 403 #define PPP_OUTPUT_STACK_SIZE 1024 /* PPP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/386 #define PPP_OUTPUT_STACK_SIZE 1024 /* PPP 出力タスクのスタックサイズ */ 404 387 #endif 405 388 406 389 #ifndef ETHER_INPUT_STACK_SIZE 407 #define ETHER_INPUT_STACK_SIZE 1024 /* Ethernet å 408 ¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 390 #define ETHER_INPUT_STACK_SIZE 1024 /* Ethernet 入力タスクのスタックサイズ */ 409 391 #endif 410 392 411 393 #ifndef ETHER_OUTPUT_STACK_SIZE 412 #define ETHER_OUTPUT_STACK_SIZE 1024 /* Ethernet åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/394 #define ETHER_OUTPUT_STACK_SIZE 1024 /* Ethernet 出力タスクのスタックサイズ */ 413 395 #endif 414 396 415 397 #ifndef LOOP_INPUT_STACK_SIZE 416 #define LOOP_INPUT_STACK_SIZE 1024 /* ã«ã¼ãããã¯å 417 ¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 398 #define LOOP_INPUT_STACK_SIZE 1024 /* ループバック入力タスクのスタックサイズ */ 418 399 #endif 419 400 420 401 #ifndef LOOP_OUTPUT_STACK_SIZE 421 #define LOOP_OUTPUT_STACK_SIZE 1024 /* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº*/402 #define LOOP_OUTPUT_STACK_SIZE 1024 /* ループバック出力タスクのスタックサイズ */ 422 403 #endif 423 404 424 405 #ifndef NET_TIMER_STACK_SIZE 425 #define NET_TIMER_STACK_SIZE 1024 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */ 426 #endif 427 428 /* 429 * TINET å 430 é¨ã®ã¿ã¹ã¯ã®åªå 431 度ã®è¨å® 406 #define NET_TIMER_STACK_SIZE 1024 /* ネットワークタイマタスクのスタックサイズ */ 407 #endif 408 409 /* 410 * TINET 内部のタスクの優先度の設定 432 411 */ 433 412 434 413 #ifndef TCP_OUT_TASK_PRIORITY 435 #define TCP_OUT_TASK_PRIORITY 5 /* TCP åºåã¿ã¹ã¯ã®åªå 436 度 */ 414 #define TCP_OUT_TASK_PRIORITY 5 /* TCP 出力タスクの優先度 */ 437 415 #endif 438 416 439 417 #ifndef UDP_OUT_TASK_PRIORITY 440 #define UDP_OUT_TASK_PRIORITY 5 /* UDP åºåã¿ã¹ã¯ã®åªå 441 度 */ 418 #define UDP_OUT_TASK_PRIORITY 5 /* UDP 出力タスクの優先度 */ 442 419 #endif 443 420 444 421 #ifndef PPP_INPUT_PRIORITY 445 #define PPP_INPUT_PRIORITY 5 /* PPP ã¿ã¹ã¯ã®åªå 446 度 */ 422 #define PPP_INPUT_PRIORITY 5 /* PPP タスクの優先度 */ 447 423 #endif 448 424 449 425 #ifndef PPP_OUTPUT_PRIORITY 450 #define PPP_OUTPUT_PRIORITY 5 /* PPP ã¿ã¹ã¯ã®åªå 451 度 */ 426 #define PPP_OUTPUT_PRIORITY 5 /* PPP タスクの優先度 */ 452 427 #endif 453 428 454 429 #ifndef ETHER_INPUT_PRIORITY 455 #define ETHER_INPUT_PRIORITY 5 /* Ethernet å 456 ¥åã¿ã¹ã¯ã®åªå 457 度 */ 430 #define ETHER_INPUT_PRIORITY 5 /* Ethernet 入力タスクの優先度 */ 458 431 #endif 459 432 460 433 #ifndef ETHER_OUTPUT_PRIORITY 461 #define ETHER_OUTPUT_PRIORITY 5 /* Ethernet åºåã¿ã¹ã¯ã®åªå 462 度 */ 434 #define ETHER_OUTPUT_PRIORITY 5 /* Ethernet 出力タスクの優先度 */ 463 435 #endif 464 436 465 437 #ifndef LOOP_INPUT_PRIORITY 466 #define LOOP_INPUT_PRIORITY 5 /* ã«ã¼ãããã¯å 467 ¥åã¿ã¹ã¯ã®åªå 468 度 */ 438 #define LOOP_INPUT_PRIORITY 5 /* ループバック入力タスクの優先度 */ 469 439 #endif 470 440 471 441 #ifndef LOOP_OUTPUT_PRIORITY 472 #define LOOP_OUTPUT_PRIORITY 5 /* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®åªå 473 度 */ 442 #define LOOP_OUTPUT_PRIORITY 5 /* ループバック出力タスクの優先度 */ 474 443 #endif 475 444 476 445 #ifndef NET_TIMER_PRIORITY 477 #define NET_TIMER_PRIORITY 5 /* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®åªå 478 度 */ 479 #endif 480 481 /* 482 * TINET å 483 é¨ã®ãã¼ã¿ãã¥ã¼ã®ã¨ã³ããªæ°ã®è¨å® 484 */ 485 486 /* UDP åä¿¡ãã¥ã¼ãµã¤ãº */ 446 #define NET_TIMER_PRIORITY 5 /* ネットワークタイマタスクの優先度 */ 447 #endif 448 449 /* 450 * TINET 内部のデータキューのエントリ数の設定 451 */ 452 453 /* UDP 受信キューサイズ */ 487 454 488 455 #ifndef NUM_DTQ_UDP_RCVQ 489 #define NUM_DTQ_UDP_RCVQ 1 /* éã³ã¼ã«ããã¯ç¨*/456 #define NUM_DTQ_UDP_RCVQ 1 /* 非コールバック用 */ 490 457 #endif 491 458 492 459 #ifndef NUM_DTQ_UDP_OUTPUT 493 #define NUM_DTQ_UDP_OUTPUT 1 /* UDP åºåãã¼ã¿ãã¥ã¼ãµã¤ãº*/460 #define NUM_DTQ_UDP_OUTPUT 1 /* UDP 出力データキューサイズ */ 494 461 #endif 495 462 496 463 #ifndef NUM_DTQ_PPP_OUTPUT 497 #define NUM_DTQ_PPP_OUTPUT 2 /* PPP åºåãã¼ã¿ãã¥ã¼ãµã¤ãºã2 以ä¸*/464 #define NUM_DTQ_PPP_OUTPUT 2 /* PPP 出力データキューサイズ、2 以上 */ 498 465 #endif 499 466 500 467 #ifndef NUM_DTQ_ETHER_OUTPUT 501 #define NUM_DTQ_ETHER_OUTPUT 2 /* Ethernet åºåãã¼ã¿ãã¥ã¼ãµã¤ãº*/468 #define NUM_DTQ_ETHER_OUTPUT 2 /* Ethernet 出力データキューサイズ */ 502 469 #endif 503 470 504 471 #ifndef NUM_DTQ_LOOP_INPUT 505 #define NUM_DTQ_LOOP_INPUT 0 /* ã«ã¼ãããã¯å 506 ¥åãã¼ã¿ãã¥ã¼ãµã¤ãº */ 472 #define NUM_DTQ_LOOP_INPUT 0 /* ループバック入力データキューサイズ */ 507 473 #endif 508 474 509 475 #ifndef NUM_DTQ_LOOP_OUTPUT 510 #define NUM_DTQ_LOOP_OUTPUT 0 /* ã«ã¼ãããã¯åºåãã¼ã¿ãã¥ã¼ãµã¤ãº */ 511 #endif 512 513 /* 514 * TINET ãããã³ã«ã¹ã¿ãã¯å 515 é¨ã®ãªãã¼ã 476 #define NUM_DTQ_LOOP_OUTPUT 0 /* ループバック出力データキューサイズ */ 477 #endif 478 479 /* 480 * TINET プロトコルスタック内部のリネーム 516 481 */ 517 482 -
azure_iot_hub/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
r388 r389 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 -
azure_iot_hub/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
r388 r389 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.