Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/icmp6.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/icmp6.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/icmp6.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -115,11 +103,11 @@
 
 /*
- *  ICMPv6 ããã
+ *  ICMPv6 ヘッダ
  */
 
 typedef struct t_icmp6_hdr {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		code;		/* ãµãå		*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		code;		/* サブ型		*/
+	uint16_t	sum;		/* チェックサム		*/
 	union {
 		uint32_t	data32;
@@ -132,8 +120,8 @@
 #define icmp6_data16			data.data16
 #define icmp6_data8			data.data8
-#define icmp6_pptr			data.data32		/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
-#define icmp6_mtu			data.data32		/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
-#define icmp6_id			data.data16[0]		/* ã¨ã³ã¼è¦æ±ã¨å¿ç­	*/
-#define icmp6_seq			data.data16[1]		/* ã¨ã³ã¼è¦æ±ã¨å¿ç­	*/
+#define icmp6_pptr			data.data32		/* パラメータ異常	*/
+#define icmp6_mtu			data.data32		/* パラメータ異常	*/
+#define icmp6_id			data.data16[0]		/* エコー要求と応答	*/
+#define icmp6_seq			data.data16[1]		/* エコー要求と応答	*/
 
 #define ICMP6_HDR_SIZE			(sizeof(T_ICMP6_HDR))
@@ -147,98 +135,79 @@
 
 /*
- *  ICMP6 ã¿ã¤ã
- */
-
-#define ICMP6_DST_UNREACH		UINT_C(1)	/* å®å
-å°éä¸å¯è½		*/
-#define ICMP6_PACKET_TOO_BIG		UINT_C(2)	/* ãã±ãããå¤§ããããã	*/
-#define ICMP6_TIME_EXCEEDED		UINT_C(3)	/* TTL ãè¶
-éããã		*/
-#define ICMP6_PARAM_PROB		UINT_C(4)	/* IPv6 ããããä¸æ­£ã		*/
-
-#define ICMP6_ECHO_REQUEST		UINT_C(128)	/* ã¨ã³ã¼è¦æ±			*/
-#define ICMP6_ECHO_REPLY		UINT_C(129)	/* ã¨ã³ã¼å¿ç­			*/
-
-#define ICMP6_MEMBERSHIP_QUERY		UINT_C(130)	/* ã°ã«ã¼ãã¡ã³ãç
-§ä¼		*/
-#define ICMP6_MEMBERSHIP_REPORT		UINT_C(131)	/* ã°ã«ã¼ãã¡ã³ãå ±å		*/
-#define ICMP6_MEMBERSHIP_REDUCTION	UINT_C(132)	/* ã°ã«ã¼ãã¡ã³ãçµäº		*/
-
-#define MLD_LISTENER_QUERY		UINT_C(130)	/* ãã«ãã­ã£ã¹ãåä¿¡è
-ç
-§ä¼	*/
-#define MLD_LISTENER_REPORT		UINT_C(131)	/* ãã«ãã­ã£ã¹ãåä¿¡è
-å ±å	*/
-#define MLD_LISTENER_DONE		UINT_C(132)	/* ãã«ãã­ã£ã¹ãåä¿¡è
-çµäº	*/
-
-#define ND_ROUTER_SOLICIT		UINT_C(133)	/* ã«ã¼ã¿è¦è«			*/
-#define ND_ROUTER_ADVERT		UINT_C(134)	/* ã«ã¼ã¿éç¥			*/
-#define ND_NEIGHBOR_SOLICIT		UINT_C(135)	/* è¿é£è¦è«			*/
-#define ND_NEIGHBOR_ADVERT		UINT_C(136)	/* è¿é£éç¥			*/
-#define ND_REDIRECT			UINT_C(137)	/* åãç´ã			*/
-
-#define ICMP6_ROUTER_RENUMBERING	UINT_C(138)	/* ã«ã¼ã¿çªå·åè¨­å®		*/
-
-#define ICMP6_WRU_REQUEST		UINT_C(139)	/* è¦æ±ãã¼ãæ¢ç´¢		*/
-#define ICMP6_WRU_REPLY			UINT_C(140)	/* å¿ç­ãã¼ãæ¢ç´¢		*/
-
-#define ICMP6_FQDN_QUERY		UINT_C(139)	/* FQDN ç
-§ä¼			*/
-#define ICMP6_FQDN_REPLY		UINT_C(140)	/* FQDN å¿ç­			*/
-
-#define ICMP6_NI_QUERY			UINT_C(139)	/* ãã¼ãæ
-å ±ç
-§ä¼		*/
-#define ICMP6_NI_REPLY			UINT_C(140)	/* ãã¼ãæ
-å ±å¿ç­		*/
-
-#define ICMP6_MAX_TYPE			UINT_C(203)	/* ICMP6 ã¿ã¤ãã®æå¤§å¤		*/
-
-/*
- *  ICMP6 ã³ã¼ã
- */
-
-/* å®å
-å°éä¸å¯è½ */
-
-#define ICMP6_DST_UNREACH_NOROUTE	UINT_C(0)	/* å°éã«ã¼ããªãã		*/
-#define ICMP6_DST_UNREACH_ADMIN		UINT_C(1)	/* ç®¡çè
-ã«ããç¡å¹åä¸­ã	*/
-#define ICMP6_DST_UNREACH_NOTEIGHBOR	UINT_C(2)	/* è¿é£è
-ã§ã¯ãªããªã£ãã	*/
-#define ICMP6_DST_UNREACH_BEYOND_SCOPE	UINT_C(2)	/* ã¹ã³ã¼ããè¶
-ãã¦ããã	*/
-#define ICMP6_DST_UNREACH_ADDR		UINT_C(3)	/* å®å
-ã¢ãã¬ã¹ã«å°éä¸å¯è½ã	*/
-#define ICMP6_DST_UNREACH_NOPORT	UINT_C(4)	/* å®å
-ãã¼ãã«å°éä¸å¯è½ã	*/
-
-/* TTL è¶
-é */
-
-#define ICMP6_TIME_EXCEED_TRANSIT	UINT_C(0)	/* è»¢éæã« TTL==0 ã«ãªã£ãã	*/
-#define ICMP6_TIME_EXCEED_REASSEMBLY	UINT_C(1)	/* IP åæ§æã§ã¿ã¤ã ã¢ã¦ãããã*/
-
-/* ãããä¸æ­£ */
-
-#define ICMP6_PARAMPROB_HEADER		UINT_C(0)	/* ãããã«ä¸æ­£ããã£ãã	*/
-#define ICMP6_PARAMPROB_NEXT_HEADER	UINT_C(1)	/* æ¬¡ããããèªè­ã§ããªãã	*/
-#define ICMP6_PARAMPROB_OPTION		UINT_C(2)	/* ãªãã·ã§ã³ãèªè­ã§ããªãã	*/
-
-/* å
-é¨ä½¿ç¨ */
-#define ND_REDIRECT_ONLINK		UINT_C(0)	/* ãªã³ãªã³ã¯ã¸ã®åãç´ã	*/
-#define ND_REDIRECT_ROUTER		UINT_C(1)	/* ã«ã¼ã¿ã¸ã®åãç´ã		*/
-
-/*
- *  å¶éå¤
- */
-
-							/* ICMPv6 ã®æå¤§ãã¤ã­ã¼ãé·	*/
+ *  ICMP6 タイプ
+ */
+
+#define ICMP6_DST_UNREACH		UINT_C(1)	/* 宛先到達不可能		*/
+#define ICMP6_PACKET_TOO_BIG		UINT_C(2)	/* パケットが大きすぎる。	*/
+#define ICMP6_TIME_EXCEEDED		UINT_C(3)	/* TTL を超過した。		*/
+#define ICMP6_PARAM_PROB		UINT_C(4)	/* IPv6 ヘッダが不正。		*/
+
+#define ICMP6_ECHO_REQUEST		UINT_C(128)	/* エコー要求			*/
+#define ICMP6_ECHO_REPLY		UINT_C(129)	/* エコー応答			*/
+
+#define ICMP6_MEMBERSHIP_QUERY		UINT_C(130)	/* グループメンバ照会		*/
+#define ICMP6_MEMBERSHIP_REPORT		UINT_C(131)	/* グループメンバ報告		*/
+#define ICMP6_MEMBERSHIP_REDUCTION	UINT_C(132)	/* グループメンバ終了		*/
+
+#define MLD_LISTENER_QUERY		UINT_C(130)	/* マルチキャスト受信者照会	*/
+#define MLD_LISTENER_REPORT		UINT_C(131)	/* マルチキャスト受信者報告	*/
+#define MLD_LISTENER_DONE		UINT_C(132)	/* マルチキャスト受信者終了	*/
+
+#define ND_ROUTER_SOLICIT		UINT_C(133)	/* ルータ要請			*/
+#define ND_ROUTER_ADVERT		UINT_C(134)	/* ルータ通知			*/
+#define ND_NEIGHBOR_SOLICIT		UINT_C(135)	/* 近隣要請			*/
+#define ND_NEIGHBOR_ADVERT		UINT_C(136)	/* 近隣通知			*/
+#define ND_REDIRECT			UINT_C(137)	/* 向け直し			*/
+
+#define ICMP6_ROUTER_RENUMBERING	UINT_C(138)	/* ルータ番号再設定		*/
+
+#define ICMP6_WRU_REQUEST		UINT_C(139)	/* 要求ノード探索		*/
+#define ICMP6_WRU_REPLY			UINT_C(140)	/* 応答ノード探索		*/
+
+#define ICMP6_FQDN_QUERY		UINT_C(139)	/* FQDN 照会			*/
+#define ICMP6_FQDN_REPLY		UINT_C(140)	/* FQDN 応答			*/
+
+#define ICMP6_NI_QUERY			UINT_C(139)	/* ノード情報照会		*/
+#define ICMP6_NI_REPLY			UINT_C(140)	/* ノード情報応答		*/
+
+#define ICMP6_MAX_TYPE			UINT_C(203)	/* ICMP6 タイプの最大値		*/
+
+/*
+ *  ICMP6 コード
+ */
+
+/* 宛先到達不可能 */
+
+#define ICMP6_DST_UNREACH_NOROUTE	UINT_C(0)	/* 到達ルートなし。		*/
+#define ICMP6_DST_UNREACH_ADMIN		UINT_C(1)	/* 管理者により無効化中。	*/
+#define ICMP6_DST_UNREACH_NOTEIGHBOR	UINT_C(2)	/* 近隣者ではなくなった。	*/
+#define ICMP6_DST_UNREACH_BEYOND_SCOPE	UINT_C(2)	/* スコープを超えている。	*/
+#define ICMP6_DST_UNREACH_ADDR		UINT_C(3)	/* 宛先アドレスに到達不可能。	*/
+#define ICMP6_DST_UNREACH_NOPORT	UINT_C(4)	/* 宛先ポートに到達不可能。	*/
+
+/* TTL 超過 */
+
+#define ICMP6_TIME_EXCEED_TRANSIT	UINT_C(0)	/* 転送時に TTL==0 になった。	*/
+#define ICMP6_TIME_EXCEED_REASSEMBLY	UINT_C(1)	/* IP 再構成でタイムアウトした。*/
+
+/* ヘッダ不正 */
+
+#define ICMP6_PARAMPROB_HEADER		UINT_C(0)	/* ヘッダに不正があった。	*/
+#define ICMP6_PARAMPROB_NEXT_HEADER	UINT_C(1)	/* 次ヘッダが認識できない。	*/
+#define ICMP6_PARAMPROB_OPTION		UINT_C(2)	/* オプションが認識できない。	*/
+
+/* 内部使用 */
+#define ND_REDIRECT_ONLINK		UINT_C(0)	/* オンリンクへの向け直し	*/
+#define ND_REDIRECT_ROUTER		UINT_C(1)	/* ルータへの向け直し		*/
+
+/*
+ *  制限値
+ */
+
+							/* ICMPv6 の最大ペイロード長	*/
 #define ICMPV6_PAYLOAD_MAXLEN		(IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE))
 
 /*
- *  è¿é£è¦è«
+ *  近隣要請
  */
 
@@ -246,5 +215,5 @@
 	T_ICMP6_HDR	hdr;
 	T_IN6_ADDR	target;
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	/* この後にオプションが続く */
 	} T_NEIGHBOR_SOLICIT_HDR;
 
@@ -264,5 +233,5 @@
 
 /*
- *  è¿é£éç¥
+ *  近隣通知
  */
 
@@ -270,8 +239,8 @@
 	T_ICMP6_HDR	hdr;
 	T_IN6_ADDR	target;
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2))) T_NEIGHBOR_ADVERT_HDR;
 
-/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+/* ICMP6 ヘッダのデータ部の定義 */
 
 #define nd_na_flags_reserved		hdr.data.data32
@@ -295,23 +264,23 @@
 
 /*
- *  è¿é£éç¥ãã©ã°ãnd_na_flags_reserved (hdr.data32) ã«è¨­å®ããã
+ *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
  */
 
 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
 
-#define ND_NA_FLG_OVERRIDE		ULONG_C(0x20000000)	/* è¿é£ã­ã£ãã·ã¥ä¸æ¸ã	*/
-#define ND_NA_FLG_SOLICITED		ULONG_C(0x40000000)	/* è¿é£è¦è«ã¸ã®å¿ç­	*/
-#define ND_NA_FLG_ROUTER		ULONG_C(0x80000000)	/* ã«ã¼ã¿éç¥		*/
+#define ND_NA_FLG_OVERRIDE		ULONG_C(0x20000000)	/* 近隣キャッシュ上書き	*/
+#define ND_NA_FLG_SOLICITED		ULONG_C(0x40000000)	/* 近隣要請への応答	*/
+#define ND_NA_FLG_ROUTER		ULONG_C(0x80000000)	/* ルータ通知		*/
 
 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
 
-#define ND_NA_FLG_OVERRIDE		ULONG_C(0x00000020)	/* è¿é£ã­ã£ãã·ã¥ä¸æ¸ã	*/
-#define ND_NA_FLG_SOLICITED		ULONG_C(0x00000040)	/* è¿é£è¦è«ã¸ã®å¿ç­	*/
-#define ND_NA_FLG_ROUTER		ULONG_C(0x00000080)	/* ã«ã¼ã¿éç¥		*/
+#define ND_NA_FLG_OVERRIDE		ULONG_C(0x00000020)	/* 近隣キャッシュ上書き	*/
+#define ND_NA_FLG_SOLICITED		ULONG_C(0x00000040)	/* 近隣要請への応答	*/
+#define ND_NA_FLG_ROUTER		ULONG_C(0x00000080)	/* ルータ通知		*/
 
 #endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
 
 /*
- *  ã«ã¼ã¿éç¥
+ *  ルータ通知
  *
  *    RFC4291: IP Version 6 Addressing Architecture
@@ -322,14 +291,14 @@
 typedef struct t_router_advert_hdr {
 	T_ICMP6_HDR	hdr;
-	uint32_t	reachable;		/* [us] å°éå¯è½æé	*/
-	uint32_t	retransmit;		/* [us] è¿é£è¦è«éä¿¡éé	*/
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	uint32_t	reachable;		/* [us] 到達可能時間	*/
+	uint32_t	retransmit;		/* [us] 近隣要請送信間隔	*/
+	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2))) T_ROUTER_ADVERT_HDR;
 
-/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+/* ICMP6 ヘッダのデータ部の定義 */
 
 #define nd_ra_current_hoplimit		hdr.data.data8[0]
 #define nd_ra_flags			hdr.data.data8[1]
-#define nd_ra_router_lifetime		hdr.data.data16[1]	/* [s] ã«ã¼ã¿æå¹æé	*/
+#define nd_ra_router_lifetime		hdr.data.data16[1]	/* [s] ルータ有効時間	*/
 
 #define ROUTER_ADVERT_HDR_SIZE		(sizeof(T_ROUTER_ADVERT_HDR))
@@ -349,5 +318,5 @@
 
 /*
- *  ã«ã¼ã¿éç¥ãããã®ãã©ã°
+ *  ルータ通知ヘッダのフラグ
  */
 
@@ -357,19 +326,16 @@
 
 /*
- *  M: RAä»¥å¤ã®æ¹æ³ã§èªåçã«ã¢ãã¬ã¹ãè¨­å®ãããã¨ãè¨±å¯ããã
- *  O: RAä»¥å¤ã®æ¹æ³ã§èªåçã«ã¢ãã¬ã¹ä»¥å¤ã®æ
-å ±ãè¨­å®ãããã¨ããè¨±å¯ããã
+ *  M: RA以外の方法で自動的にアドレスを設定することを許可する。
+ *  O: RA以外の方法で自動的にアドレス以外の情報を設定することをを許可する。
  *
  *   M   O
- *  ON  ON	ã¢ãã¬ã¹ã¨ããä»¥å¤ã®æ
-å ±ãDHCPv6ã§è¨­å®ããï¼statefullï¼
- *  ON  OFF	ã¢ãã¬ã¹ã¯DHCPv6ã§è¨­å®ããããããä»¥å¤ã¯æåã§è¨­å®ããã
- *  OFF ON	ã¢ãã¬ã¹ã¯ RA ã§è¨­å®ããããããä»¥å¤ã®æ
-å ±ãDHCPv6ã§è¨­å®ããï¼statelessï¼
- *  OFF OFF	DHCPv6 ã¯ä½¿ç¨ããªãã
- */
-
-/*
- *  ã«ã¼ã¿è¦è«
+ *  ON  ON	アドレスとそれ以外の情報をDHCPv6で設定する（statefull）
+ *  ON  OFF	アドレスはDHCPv6で設定するが、それ以外は手動で設定する。
+ *  OFF ON	アドレスは RA で設定するが、それ以外の情報をDHCPv6で設定する（stateless）
+ *  OFF OFF	DHCPv6 は使用しない。
+ */
+
+/*
+ *  ルータ要請
  */
 
@@ -378,5 +344,5 @@
 	} __attribute__((packed, aligned(2))) T_ROUTER_SOLICIT_HDR;
 
-/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+/* ICMP6 ヘッダのデータ部の定義 */
 
 #define nd_rs_reserved			hdr.data.data32
@@ -399,8 +365,8 @@
 
 /*
- *  è¿é£æ¢ç´¢ãªãã·ã§ã³
- */
-
-/* è¿é£æ¢ç´¢ããã */
+ *  近隣探索オプション
+ */
+
+/* 近隣探索ヘッダ */
 
 typedef struct t_neighbor_hdr {
@@ -409,50 +375,45 @@
 	} __attribute__((packed, aligned(2))) T_NEIGHBOR_HDR;
 
-/* è¿é£æ¢ç´¢ãªãã·ã§ã³ããã */
+/* 近隣探索オプションヘッダ */
 
 typedef struct t_nd_opt_hdr {
-	uint8_t		type;			/* ãªãã·ã§ã³ã¿ã¤ã			*/
-	uint8_t		len;			/* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã	*/
+	uint8_t		type;			/* オプションタイプ			*/
+	uint8_t		len;			/* オプション長、単位は 8 バイト	*/
 	} __attribute__((packed, aligned(2))) T_ND_OPT_HDR;
 
 #define ND_OPT_HDR_SIZE			(sizeof(T_ND_OPT_HDR))
 
-#define ND_OPT_SOURCE_LINKADDR		UINT_C(1)	/* éä¿¡å
-ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-#define ND_OPT_TARGET_LINKADDR		UINT_C(2)	/* å¯¾è±¡ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-#define ND_OPT_PREFIX_INFORMATION	UINT_C(3)	/* ãã¬ãã£ãã¯ã¹æ
-å ±				*/
-#define ND_OPT_REDIRECTED_HEADER	UINT_C(4)	/* ãªãã¤ã¬ã¯ãã»ããã				*/
+#define ND_OPT_SOURCE_LINKADDR		UINT_C(1)	/* 送信先ネットワークインタフェースのアドレス	*/
+#define ND_OPT_TARGET_LINKADDR		UINT_C(2)	/* 対象ネットワークインタフェースのアドレス	*/
+#define ND_OPT_PREFIX_INFORMATION	UINT_C(3)	/* プレフィックス情報				*/
+#define ND_OPT_REDIRECTED_HEADER	UINT_C(4)	/* リダイレクト・ヘッダ				*/
 #define ND_OPT_MTU			UINT_C(5)	/* MTU						*/
 
-#define ND_OPT_PREFIX_INFO_COUNT	UINT_C(6)	/* ãã¬ãã£ãã¯ã¹æ
-å ±ã®åæ°			*/
-#define ND_OPT_OFF_ARRAY_SIZE		UINT_C(7)	/* ND ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããé
-åãµã¤ãº*/
-
-#define ND_OPT_OFF_ARRAY_IX(t)		((t)-1)		/* ãªãã»ããé
-åã®ã¤ã³ããã¯ã¹			*/
-
-/* ãã¬ãã£ãã¯ã¹ãªãã·ã§ã³ */
+#define ND_OPT_PREFIX_INFO_COUNT	UINT_C(6)	/* プレフィックス情報の個数			*/
+#define ND_OPT_OFF_ARRAY_SIZE		UINT_C(7)	/* ND オプションのオフセットを記録する配列サイズ*/
+
+#define ND_OPT_OFF_ARRAY_IX(t)		((t)-1)		/* オフセット配列のインデックス			*/
+
+/* プレフィックスオプション */
 
 typedef struct t_nd_opt_prefix_info {
-	uint8_t		type;		/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¿ã¤ã = 3	*/
-	uint8_t		len;		/* ãªãã·ã§ã³é· = 8Ã4=32	*/
-	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
-	uint8_t		flags;		/* ãã©ã°			*/
-	uint32_t	valid;		/* [s] æå¹æé			*/
-	uint32_t	preferred;	/* [s] æ¨å¥¨æå¹æé		*/
+	uint8_t		type;		/* 近隣探索オプションタイプ = 3	*/
+	uint8_t		len;		/* オプション長 = 8×4=32	*/
+	uint8_t		prefix_len;	/* プレフィックス長		*/
+	uint8_t		flags;		/* フラグ			*/
+	uint32_t	valid;		/* [s] 有効時間			*/
+	uint32_t	preferred;	/* [s] 推奨有効時間		*/
 	uint32_t	reserved;
-	T_IN6_ADDR	prefix;		/* ãã¬ãã£ãã¯ã¹		*/
+	T_IN6_ADDR	prefix;		/* プレフィックス		*/
 	} __attribute__((packed, aligned(2))) T_ND_OPT_PREFIX_INFO;
 
-#define ND_OPT_PI_FLAG_ONLINK	UINT_C(0x80)		/* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹	*/
-#define ND_OPT_PI_FLAG_AUTO	UINT_C(0x40)		/* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®*/
-
-/* MTU ãªãã·ã§ã³ããã */
+#define ND_OPT_PI_FLAG_ONLINK	UINT_C(0x80)		/* オンリンクプレフィックス	*/
+#define ND_OPT_PI_FLAG_AUTO	UINT_C(0x40)		/* ステートレス・アドレス自動設定*/
+
+/* MTU オプションヘッダ */
 
 typedef struct t_nd_opt_mtu_hdr {
-	uint8_t		type;		/* ãªãã·ã§ã³ã¿ã¤ã		*/
-	uint8_t		len;		/* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã*/
+	uint8_t		type;		/* オプションタイプ		*/
+	uint8_t		len;		/* オプション長、単位は 8 バイト*/
 	uint16_t	reserved;
 	uint32_t	mtu;		/* MTU				*/
@@ -460,12 +421,12 @@
 
 /*
- *  åãç´ã
+ *  向け直し
  */
 
 typedef struct t_nd_redirect_hdr {
 	T_ICMP6_HDR	hdr;
-	T_IN6_ADDR	target;		/* ã«ã¼ã¿ã®ã¢ãã¬ã¹		*/
-	T_IN6_ADDR	dst;		/* åãç´ãã®çµç¹ã¢ãã¬ã¹		*/
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	T_IN6_ADDR	target;		/* ルータのアドレス		*/
+	T_IN6_ADDR	dst;		/* 向け直しの終点アドレス		*/
+	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2))) T_ND_REDIRECT_HDR;
 
@@ -475,6 +436,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -521,5 +481,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/icmp_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/icmp_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/icmp_var.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -86,6 +74,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -122,5 +110,5 @@
 
 /*
- *  ARP ã­ã£ãã·ã¥ã¨ã³ããª
+ *  ARP キャッシュエントリ
  */
 
@@ -128,5 +116,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -135,6 +123,5 @@
 
 /*
- *  in_arpinput -- TCP/IP ç¨ ARP ã®å
-¥åé¢æ°
+ *  in_arpinput -- TCP/IP 用 ARP の入力関数
  */
 
@@ -152,12 +139,11 @@
 	et_arph = GET_ETHER_ARP_HDR(input);
 
-	ntoahl(saddr, et_arph->sproto);		/* éä¿¡å
- IP ã¢ãã¬ã¹	*/
-	ntoahl(taddr, et_arph->tproto);		/* è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹	*/
-
-	/*
-	 *  ä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
-	 *    ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ãèªå
-	 *    ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+	ntoahl(saddr, et_arph->sproto);		/* 送信元 IP アドレス	*/
+	ntoahl(taddr, et_arph->tproto);		/* 解決対象 IP アドレス	*/
+
+	/*
+	 *  以下の場合はエラー
+	 *    ・送信ホストの物理アドレスが自分
+	 *    ・送信ホストの物理アドレスがブロードキャスト
 	 */
 	if (memcmp(et_arph->shost, ifaddr->lladdr,        ETHER_ADDR_LEN) == 0 ||
@@ -166,7 +152,7 @@
 
 	/*
-	 *  éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹ãèªåã®å ´åã¯ãéè¤ãã¦ããã®ã§
-	 *  ç¸æã«ãç¥ãããã
-	 *  ãã ããèªåã¨ç¸æã®ã¢ãã¬ã¹ãæªå®ç¾©ï¼IPV4_ADDRANYï¼ã®æã¯ä½ãããªãã
+	 *  送信ホストの IP アドレスが自分の場合は、重複しているので
+	 *  相手にも知らせる。
+	 *  ただし、自分と相手のアドレスが未定義（IPV4_ADDRANY）の時は何もしない。
 	 */
 	if ((saddr == ifp->in4_ifaddr.addr) && (saddr != IPV4_ADDRANY)) {
@@ -197,12 +183,9 @@
 
 	/*
-	 *  ä»¥ä¸ã®å ´åã¯ä½ãããªãã
-	 *    ã»è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹ãèªåã§ã¯ãªããæ³¨: å
-ã® FreeBSD ã®
-	 *      å®è£
-ã§ã¯ãARP PROXY ç­ã®ãããèªåä»¥å¤ã® IP ã¢ãã¬ã¹ã®
-	 *      è§£æ±ºãè¡ã£ã¦ããããæ¬å®è£
-ã§ã¯ãèªåä»¥å¤ã® IP
-	 *      ã¢ãã¬ã¹ã®è§£æ±ºã¯è¡ããªãã
+	 *  以下の場合は何もしない。
+	 *    ・解決対象 IP アドレスが自分ではない、注: 元の FreeBSD の
+	 *      実装では、ARP PROXY 等のため、自分以外の IP アドレスの
+	 *      解決も行っているが、本実装では、自分以外の IP
+	 *      アドレスの解決は行わない。
 	 */
 	if (taddr != ifp->in4_ifaddr.addr)
@@ -210,7 +193,6 @@
 
 	/*
-	 *  éä¿¡å
- IP ã¢ãã¬ã¹ã ARP ã­ã£ãã·ã¥ã«ãããèª¿ã¹ãã
-	 *  ã­ã£ãã·ã¥ã«ãªããã°ãæ°ãã«ã¨ã³ããªãç»é²ããã
+	 *  送信元 IP アドレスが ARP キャッシュにあるか調べる。
+	 *  キャッシュになければ、新たにエントリを登録する。
 	 */
 	syscall(wai_sem(SEM_ARP_CACHE_LOCK));
@@ -221,9 +203,9 @@
 
 	/*
-	 *  éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°éä¿¡ããã
+	 *  送信がペンデングされているフレームがあれば送信する。
 	 */
 	if (ent->hold) {
 
-		/* ãã¬ã¼ã ã® Ethernet ããããè¨­å®ããã*/
+		/* フレームの Ethernet ヘッダを設定する。*/
 		memcpy(GET_ETHER_HDR(ent->hold)->dhost, ent->mac_addr, ETHER_ADDR_LEN);
 
@@ -232,5 +214,5 @@
 		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
 
-		/* ãã³ãã£ã³ã°ããã¦ãããã¬ã¼ã ãéä¿¡ããã*/
+		/* ペンディングされているフレームを送信する。*/
 		IF_RAW_OUTPUT(pending, TMO_FEVR);
 
@@ -243,9 +225,9 @@
 	arph = GET_ARP_HDR(input);
 
-	/* ã¢ãã¬ã¹è§£æ±ºè¦æ±ã§ãªããã°çµäº */
+	/* アドレス解決要求でなければ終了 */
 	if (ntohs(arph->opcode) != ARPOP_REQUEST)
 		goto buf_rel;
 
-	/* Ethernet ARP ããããè¨­å®ããã*/
+	/* Ethernet ARP ヘッダを設定する。*/
 	memcpy(et_arph->thost, et_arph->shost, ETHER_ADDR_LEN);
 	memcpy(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
@@ -253,13 +235,13 @@
 	ahtonl(et_arph->sproto, taddr);
 
-	/* Ethernet ARP ããããè¨­å®ããã*/
+	/* Ethernet ARP ヘッダを設定する。*/
 	arph->opcode = htons(ARPOP_REPLY);
 
-	/* Ethernet ããããè¨­å®ããã*/
+	/* Ethernet ヘッダを設定する。*/
 	eth = GET_ETHER_HDR(input);
 	memcpy(eth->dhost, eth->shost,     ETHER_ADDR_LEN);
 	memcpy(eth->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
 
-	/* ARP å¿ç­ãéä¿¡ããã*/
+	/* ARP 応答を送信する。*/
 	IF_RAW_OUTPUT(input, TMO_FEVR);
 	return;
@@ -272,5 +254,5 @@
 
 /*
- *  arp_timer -- ARP ã­ã£ãã·ã¥ã®æ´æ°
+ *  arp_timer -- ARP キャッシュの更新
  */
 
@@ -286,5 +268,5 @@
 			arp_cache[ix].expire -= ARP_TIMER_TMO;
 			if (arp_cache[ix].expire == 0) {
-				/* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/
+				/* 送信がペンデングされているフレームがあれば捨てる。*/
 				if (arp_cache[ix].hold) {
 					NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
@@ -301,8 +283,7 @@
 
 /*
- *  arp_lookup -- ARP ã­ã£ãã·ã¥ã®æ¢ç´¢ã¨ç»é²
- *
- *    æ³¨æ: SEM_ARP_CACHE_LOCK ãç²å¾ããç¶æ
-ã§å¼åºããã¨
+ *  arp_lookup -- ARP キャッシュの探索と登録
+ *
+ *    注意: SEM_ARP_CACHE_LOCK を獲得した状態で呼出すこと
  */
 
@@ -318,8 +299,8 @@
 		}
 
-	/* create ãçãªããæ°ããªã¨ã³ããªãç»é²ããã*/
+	/* create が真なら、新たなエントリを登録する。*/
 	if (create) {
 
-		/* ã¾ããç©ºããããã°ããã®ç©ºããå©ç¨ããã*/
+		/* まず、空きがあれば、その空きを利用する。*/
 		for (ix = NUM_ARP_ENTRY; ix -- > 0; ) {
 			if (arp_cache[ix].expire == 0) {
@@ -330,6 +311,6 @@
 
 		/*
-		 *  ç©ºãããªããã°ãã¿ã¤ã ã¢ã¦ãã¾ã§æéãæç­ã®
-		 *  ã¨ã³ããªã¼ãç ´æ£ãã¦å©ç¨ããã
+		 *  空きがなければ、タイムアウトまで時間が最短の
+		 *  エントリーを破棄して利用する。
 		 */
 		syslog(LOG_NOTICE, "[ARP] cache busy, size=%d", NUM_ARP_ENTRY);
@@ -349,5 +330,5 @@
 
 /*
- *  arp_request -- MAC ã¢ãã¬ã¹è§£æ±ºè¦æ±
+ *  arp_request -- MAC アドレス解決要求
  */
 
@@ -367,5 +348,5 @@
 	if ((error = tget_net_buf(&arp_req, IF_ARP_ETHER_HDR_SIZE, TMO_ARP_GET_NET_BUF)) == E_OK) {
 
-		/* ã¤ã¼ãµãããããããè¨­å®ããã*/
+		/* イーサネットヘッダを設定する。*/
 		eth     = GET_ETHER_HDR(arp_req);
 		memcpy(eth->dhost, ether_broad_cast_addr, ETHER_ADDR_LEN);
@@ -373,5 +354,5 @@
 		eth->type = htons(ETHER_TYPE_ARP);
 
-		/* ARP ããããè¨­å®ããã*/
+		/* ARP ヘッダを設定する。*/
 		arph    = GET_ARP_HDR(arp_req);
 		arph->hrd_addr  = htons(ARPHRD_ETHER);
@@ -381,5 +362,5 @@
 		arph->opcode    = htons(ARPOP_REQUEST);
 
-		/* ã¤ã¼ãµããã ARP ããããè¨­å®ããã*/
+		/* イーサネット ARP ヘッダを設定する。*/
 		et_arph = GET_ETHER_ARP_HDR(arp_req);
 		src     = IF_GET_IFNET()->in4_ifaddr.addr;
@@ -389,5 +370,5 @@
 		ahtonl(et_arph->tproto, dst);
 
-		/* éä¿¡ããã*/
+		/* 送信する。*/
 		error = IF_RAW_OUTPUT(arp_req, TMO_ARP_OUTPUT);
 		}
@@ -398,5 +379,5 @@
 
 /*
- *  arp_get_cache -- ARP ã­ã£ãã·ã¥ãç²å¾ããã
+ *  arp_get_cache -- ARP キャッシュを獲得する。
  */
 
@@ -408,6 +389,5 @@
 
 /*
- *  arp_input -- ARP ã®å
-¥åé¢æ°
+ *  arp_input -- ARP の入力関数
  */
 
@@ -420,5 +400,5 @@
 	NET_COUNT_ARP(net_count_arp.in_packets, 1);
 
-	/* ARP ãããã®é·ãããã§ãã¯ããã*/
+	/* ARP ヘッダの長さをチェックする。*/
 	if (input->len < IF_ARP_HDR_SIZE)
 		goto buf_rel;
@@ -427,6 +407,6 @@
 
 	/*
-	 *  ç©çã¢ãã¬ã¹ãã©ã¼ãããã Ehternet ä»¥å¤
-	 *  ã¾ãã¯ããã­ãã³ã«ã IP ä»¥å¤ã¯ã¨ã©ã¼ã
+	 *  物理アドレスフォーマットが Ehternet 以外
+	 *  または、プロトコルが IP 以外はエラー。
 	 */
 	if (ntohs(arph->hrd_addr) != ARPHRD_ETHER ||
@@ -434,5 +414,5 @@
 		goto buf_rel;
 
-	/* ARP ããã + Ether ARP ãããã®é·ãããã§ãã¯ããã*/
+	/* ARP ヘッダ + Ether ARP ヘッダの長さをチェックする。*/
 	if (input->len < IF_ARP_ETHER_HDR_SIZE)
 		goto buf_rel;
@@ -447,8 +427,8 @@
 
 /*
- *  arp_resolve -- MAC ã¢ãã¬ã¹è§£æ±º
- *
- *    ã¢ãã¬ã¹è§£æ±ºãã§ããã°ãæ»ãå¤ã¯ true ãè¿ããã§ããªããã°
- *    éä¿¡ããã³ãã£ã³ã°ãã¦ãæ»ãå¤ã¯ false ãè¿ãã
+ *  arp_resolve -- MAC アドレス解決
+ *
+ *    アドレス解決ができれば、戻り値は true を返し、できなければ
+ *    送信をペンディングして、戻り値は false を返す。
  */
 
@@ -463,10 +443,8 @@
 
 	/*
-	 *  æ¬¡ã®å ´åã¯ãã¤ã¼ãµãããã®ãã­ã¼ãã­ã£ã¹ãã¢ãã¬ã¹ãè¿ãã
+	 *  次の場合は、イーサネットのブロードキャストアドレスを返す。
 	 *
-	 *    ã»å
-¨ãããã 1
-	 *    ã»ãã¹ãé¨ã®å
-¨ãããã 1 ã§ããããã¯ã¼ã¯é¨ãã­ã¼ã«ã«ã¢ãã¬ã¹
+	 *    ・全ビットが 1
+	 *    ・ホスト部の全ビットが 1 で、ネットワーク部がローカルアドレス
 	 */
 	if (gw == IPV4_ADDR_BROADCAST ||
@@ -476,6 +454,5 @@
 		}
 
-	/* éä¿¡å
- GW ã® IP ã¢ãã¬ã¹ã ARP ã­ã£ãã·ã¥ã«ãããèª¿ã¹ãã*/
+	/* 送信先 GW の IP アドレスが ARP キャッシュにあるか調べる。*/
 	syscall(wai_sem(SEM_ARP_CACHE_LOCK));
 	ent = arp_lookup(gw, true);
@@ -486,5 +463,5 @@
 		}
 	else {
-	 	/* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/
+	 	/* 送信がペンデングされているフレームがあれば捨てる。*/
 		if (ent->hold) {
 			NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
@@ -493,7 +470,7 @@
 
 		/*
-		 *  éä¿¡ããã³ãã£ã³ã°ããã
-		 *  IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨­å®ããã¦ããã¨ãã¯ã
-		 *  éä¿¡ããã³ãã£ã³ã°ããªãã
+		 *  送信をペンディングする。
+		 *  IF でネットワークバッファを開放しないフラグが設定されているときは、
+		 *  送信をペンディングしない。
 		 */
 		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0)
@@ -505,5 +482,5 @@
 		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
 
-		/* ã¢ãã¬ã¹è§£æ±ºè¦æ±ãéä¿¡ããã*/
+		/* アドレス解決要求を送信する。*/
 		arp_request(ifaddr, gw);
 		return false;
@@ -512,5 +489,5 @@
 
 /*
- *  arp_init -- ARP åæå
+ *  arp_init -- ARP 初期化
  */
 
@@ -523,5 +500,5 @@
 #ifdef ETHER_CFG_MULTICAST
 /*
- *  ether_map_ipv4_multicast -- IPv4 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ
+ *  ether_map_ipv4_multicast -- IPv4 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.cfg	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  Ethernet ARP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  Ethernet ARP コンフィギュレーションファイル
  */
 
 #if defined(_IP4_CFG) && defined(SUPPORT_ETHER)
 
-/* ARP ã­ã£ãã·ã¥æ´æ°ç¨ã»ããã© */
+/* ARP キャッシュ更新用セマフォ */
 
 CRE_SEM(SEM_ARP_CACHE_LOCK, { TA_TPRI, 1, 1 });
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/if_ether.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -88,13 +76,12 @@
  *  Ethernet Address Resolution Protocol.
  *
- *  RFC 826 åç
-§
+ *  RFC 826 参照
  */
 
 typedef struct t_ether_arp_hdr {
-	uint8_t		shost[ETHER_ADDR_LEN];	/* éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹	*/
-	uint8_t		sproto[IPV4_ADDR_LEN];	/* éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹	*/
-	uint8_t		thost[ETHER_ADDR_LEN];	/* è§£æ±ºå¯¾è±¡ç©çã¢ãã¬ã¹		*/
-	uint8_t		tproto[IPV4_ADDR_LEN];	/* è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹		*/
+	uint8_t		shost[ETHER_ADDR_LEN];	/* 送信ホストの物理アドレス	*/
+	uint8_t		sproto[IPV4_ADDR_LEN];	/* 送信ホストの IP アドレス	*/
+	uint8_t		thost[ETHER_ADDR_LEN];	/* 解決対象物理アドレス		*/
+	uint8_t		tproto[IPV4_ADDR_LEN];	/* 解決対象 IP アドレス		*/
 	} __attribute__((packed, aligned(2)))T_ETHER_ARP_HDR;
 
@@ -105,17 +92,16 @@
 
 /*
- *  ARP ã­ã£ãã·ã¥ã¨ã³ããª
+ *  ARP キャッシュエントリ
  */
 
 typedef struct arp_entry {
-	T_NET_BUF	*hold;		/* ARP ã®è§£æ±ºå¾
-ã¡åºåãã¬ã¼ã 	*/
-	T_IN4_ADDR	ip_addr;	/* IP ã¢ãã¬ã¹			*/
-	uint16_t	expire;		/* ç ´æ£ã¾ã§ã®æéã0 ãªãæªä½¿ç¨	*/
-	uint8_t		mac_addr[ETHER_ADDR_LEN];	/* MAC ã¢ãã¬ã¹	*/
+	T_NET_BUF	*hold;		/* ARP の解決待ち出力フレーム	*/
+	T_IN4_ADDR	ip_addr;	/* IP アドレス			*/
+	uint16_t	expire;		/* 破棄までの時間、0 なら未使用	*/
+	uint8_t		mac_addr[ETHER_ADDR_LEN];	/* MAC アドレス	*/
 	} __attribute__((packed, aligned(2)))T_ARP_ENTRY;
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -132,5 +118,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -89,21 +77,19 @@
 
 /*
- *  TINET ã®ãã¼ã¸ã§ã³æ
-å ±
+ *  TINET のバージョン情報
  */
 
-#define TINET_PRVER		UINT_C(0x1070)	/* TINET ã®ãã¼ã¸ã§ã³çªå· */
+#define TINET_PRVER		UINT_C(0x1070)	/* TINET のバージョン番号 */
 
 /*
- *  ã¤ã³ã¿ã¼ãããã·ã¹ãã ã®å®ç¾©ãRFC790 åç
-§
+ *  インターネットシステムの定義、RFC790 参照
  */
 
 /*
- *  ãã­ãã³ã« (RFC1700)
+ *  プロトコル (RFC1700)
  */
 
-#define IPPROTO_IP		UINT_C(0)	/* IP ã®ããã¼				*/
-#define IPPROTO_HOPOPTS		UINT_C(0)	/* IPv6 ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
+#define IPPROTO_IP		UINT_C(0)	/* IP のダミー				*/
+#define IPPROTO_HOPOPTS		UINT_C(0)	/* IPv6 中継点 (Hop-by-Hop) オプション	*/
 #define IPPROTO_ICMP		UINT_C(1)	/* ICMP					*/
 #define IPPROTO_IGMP		UINT_C(2)	/* IGMP					*/
@@ -111,18 +97,17 @@
 #define IPPROTO_UDP		UINT_C(17)	/* UDP					*/
 #define IPPROTO_IPV6		UINT_C(41)	/* IPv6					*/
-#define IPPROTO_ROUTING		UINT_C(43)	/* çµè·¯å¶å¾¡ãªãã·ã§ã³			*/
-#define IPPROTO_FRAGMENT	UINT_C(44)	/* æ­çåãªãã·ã§ã³			*/
+#define IPPROTO_ROUTING		UINT_C(43)	/* 経路制御オプション			*/
+#define IPPROTO_FRAGMENT	UINT_C(44)	/* 断片化オプション			*/
 #define IPPROTO_RSVP		UINT_C(46)	/* RSVP					*/
-#define IPPROTO_ESP		UINT_C(50)	/* IPv6 æå·åãªãã·ã§ã³		*/
-#define IPPROTO_AH		UINT_C(51)	/* IPv6 èªè¨¼ãªãã·ã§ã³			*/
+#define IPPROTO_ESP		UINT_C(50)	/* IPv6 暗号化オプション		*/
+#define IPPROTO_AH		UINT_C(51)	/* IPv6 認証オプション			*/
 #define IPPROTO_ICMPV6		UINT_C(58)	/* ICMPv6				*/
-#define IPPROTO_NONE		UINT_C(59)	/* IPv6 æ¬¡ãããç¡ã			*/
-#define IPPROTO_DSTOPTS		UINT_C(60)	/* IPv6 çµç¹ãªãã·ã§ã³			*/
-#define IPPROTO_IPCOMP		UINT_C(108)	/* ãã¤ã­ã¼ãå§ç¸®			*/
-#define IPPROTO_DONE		UINT_C(257)	/* IPv6 ã§ä¸ä½ãã­ãã³ã«å
-¥åçµäº	*/
+#define IPPROTO_NONE		UINT_C(59)	/* IPv6 次ヘッダ無し			*/
+#define IPPROTO_DSTOPTS		UINT_C(60)	/* IPv6 終点オプション			*/
+#define IPPROTO_IPCOMP		UINT_C(108)	/* ペイロード圧縮			*/
+#define IPPROTO_DONE		UINT_C(257)	/* IPv6 で上位プロトコル入力終了	*/
 
 /*
- *  ãã¼ãã®é·ã
+ *  ポートの長さ
  */
 
@@ -130,20 +115,20 @@
 
 /*
- *  ãã¼ãçªå·ã®å®ç¾©
+ *  ポート番号の定義
  */
 
-#define TCP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP æ¨æº	*/
-#define UDP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP æ¨æº	*/
+#define TCP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP 標準	*/
+#define UDP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP 標準	*/
 
-#define TCP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known çµäºçªå·	*/
-#define TCP_PORT_FIRST_AUTO		UINT_C(1024)	/* èªåå²ãå½ã¦éå§çªå·	*/
-#define TCP_PORT_LAST_AUTO		UINT_C(4999)	/* èªåå²ãå½ã¦çµäºçªå·	*/
+#define TCP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known 終了番号	*/
+#define TCP_PORT_FIRST_AUTO		UINT_C(1024)	/* 自動割り当て開始番号	*/
+#define TCP_PORT_LAST_AUTO		UINT_C(4999)	/* 自動割り当て終了番号	*/
 
-#define UDP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known çµäºçªå·	*/
-#define UDP_PORT_FIRST_AUTO		UINT_C(1024)	/* èªåå²ãå½ã¦éå§çªå·	*/
-#define UDP_PORT_LAST_AUTO		UINT_C(4999)	/* èªåå²ãå½ã¦çµäºçªå·	*/
+#define UDP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known 終了番号	*/
+#define UDP_PORT_FIRST_AUTO		UINT_C(1024)	/* 自動割り当て開始番号	*/
+#define UDP_PORT_LAST_AUTO		UINT_C(4999)	/* 自動割り当て終了番号	*/
 
 /*
- *  API IPãã­ãã³ã«ã®æå®
+ *  API IPプロトコルの指定
  */
 
@@ -153,5 +138,5 @@
 
 /*
- *  åççæç¨ TCP/IPv6 éä¿¡ç«¯ç¹
+ *  動的生成用 TCP/IPv6 通信端点
  */
 
@@ -159,15 +144,15 @@
 
 /*
- *  ãã¤ããªã¼ãé¢æ°ã®å®ç¾©
+ *  バイトオーダ関数の定義
  *
- *    tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã
- *    tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªã
- *    ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ç¨ã«
- *    ã¿ã¼ã²ããä¾å­ããªããã¤ããªã¼ãé¢æ°ãå®ç¾©ããã
+ *    tinet/net/net.h でもバイトオーダの定義を行っているが、
+ *    tinet/net/net.h をインクルードしない
+ *    アプリケーションプログラム用に
+ *    ターゲット依存しないバイトオーダ関数を定義する。
  */
 
 #if defined(_NET_CFG_BYTE_ORDER)
 
-/*  tinet/net/net.h ãã¤ã³ã¯ã«ã¼ããã¦ããã*/
+/*  tinet/net/net.h をインクルードしている。*/
 
 #else	/* of #if defined(_NET_CFG_BYTE_ORDER) */
@@ -186,5 +171,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,9 +72,8 @@
 
 /*
- *  IPv4 ã¢ãã¬ã¹
- */
-
-/* åæ¹åç
-§ */
+ *  IPv4 アドレス
+ */
+
+/* 前方参照 */
 
 #ifndef T_IN4_ADDR_DEFINED
@@ -99,10 +86,10 @@
 
 /*
- *  ITRON TCP/IPv4 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©
+ *  ITRON TCP/IPv4 アドレス/ポート番号の定義
  */
 
 typedef struct t_ipv4ep {
-	uint32_t	ipaddr;		/* IPv4 ã¢ãã¬ã¹	*/
-	uint16_t	portno;		/* ãã¼ãçªå·		*/
+	uint32_t	ipaddr;		/* IPv4 アドレス	*/
+	uint16_t	portno;		/* ポート番号		*/
 	} T_IPV4EP;
 
@@ -110,5 +97,5 @@
 
 /*
- *  ã¢ãã¬ã¹ã®é·ã
+ *  アドレスの長さ
  */
 
@@ -116,8 +103,8 @@
 
 /*
- *  IPv4 ã¢ãã¬ã¹ã®å®ç¾©
- */
-
-#define IPV4_ADDRANY		ULONG_C(0x00000000)	/* ITRON TCP/IP æ¨æº	*/
+ *  IPv4 アドレスの定義
+ */
+
+#define IPV4_ADDRANY		ULONG_C(0x00000000)	/* ITRON TCP/IP 標準	*/
 #define IPV4_ADDRBROADCAST	ULONG_C(0xffffffff)
 
@@ -158,5 +145,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -167,46 +154,43 @@
 
 /*
- *  åççæç¨ TCP éä¿¡ç«¯ç¹
+ *  動的生成用 TCP 通信端点
  */
 
 typedef struct t_tcp_ccep {
-	/* æ¨æº */
-	ATR		cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
-	void		*sbuf;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	void		*rbuf;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	FP		callback;	/* ã³ã¼ã«ããã¯			*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		cepatr;		/* 通信端点属性			*/
+	void		*sbuf;		/* 送信用ウィンドバッファ	*/
+	int_t		sbufsz;		/* 送信用ウィンドバッファサイズ	*/
+	void		*rbuf;		/* 受信用ウィンドバッファ	*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	FP		callback;	/* コールバック			*/
+	/* 実装依存 */
 	} T_TCP_CCEP;
 
 /*
- *  åççæç¨ TCP åä»å£
+ *  動的生成用 TCP 受付口
  */
 
 typedef struct t_tcp_crep {
-	/* æ¨æº */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス	*/
+	/* 実装依存 */
 	} T_TCP_CREP;
 
 /*
- *  åççæç¨ UDP éä¿¡ç«¯ç¹
+ *  動的生成用 UDP 通信端点
  */
 
 typedef struct t_udp_ccep {
-	/* æ¨æº */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	FP		callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス		*/
+	FP		callback;	/* コールバック関数		*/
+	/* 実装依存 */
 	} T_UDP_CCEP;
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_subr.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -125,5 +113,5 @@
 
 /*
- *  in_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã
+ *  in_rtinit -- ルーティング表を初期化する。
  */
 
@@ -141,5 +129,5 @@
 
 /*
- *  in_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã
+ *  in_rtnewentry -- 新しいエントリを獲得する。
  */
 
@@ -151,5 +139,5 @@
 	int_t		ix;
 
-	/* ç©ºãã¨ã³ããªãæ¢ãã*/
+	/* 空きエントリを探す。*/
 	for (ix = NUM_IN4_STATIC_ROUTE_ENTRY; ix < NUM_IN4_ROUTE_ENTRY; ix ++) {
 		rt = &routing4_tbl[ix];
@@ -160,10 +148,10 @@
 		}
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	syscall(get_tim(&now));
 	now /= SYSTIM_HZ;
 
 	if (frt == NULL) {
-		/* ç©ºãããªããã°ãæå¹æéããã£ã¨ãç­ãã¨ã³ããªãç©ºãã«ããã*/
+		/* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/
 		T_IN4_RTENTRY	*srt = NULL;
 		int_t		diff, sdiff = INT_MAX;
@@ -174,5 +162,5 @@
 			diff = (int_t)(rt->expire - now);
 			if (diff <= 0) {	/* rt->expire <= now */
-				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				/* 既に、有効時間が過ぎている。*/
 				frt = rt;
 				break;
@@ -195,5 +183,5 @@
 
 /*
- *  in_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼
+ *  in_rttimer -- ルーティング表の管理タイマー
  */
 
@@ -204,5 +192,5 @@
 	int_t	ix;
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	syscall(get_tim(&now));
 	now /= SYSTIM_HZ;
@@ -219,5 +207,5 @@
 
 /*
- *  in4_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®å¯è½ãªæå¤§ã¢ãã¬ã¹æ°ãè¿ãã
+ *  in4_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。
  */
 
@@ -229,5 +217,5 @@
 
 /*
- *  in4_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ããã¢ãã¬ã¹ãè¿ãã
+ *  in4_get_ifaddr -- インタフェースに設定されているアドレスを返す。
  */
 
@@ -241,5 +229,5 @@
 
 /*
- *  in4_set_header -- IPv4 ããããè¨­å®ããã
+ *  in4_set_header -- IPv4 ヘッダを設定する。
  */
 
@@ -251,5 +239,5 @@
 	T_IFNET		*ifp = IF_GET_IFNET();
 
-	/* IP ããããè¨­å®ããã*/
+	/* IP ヘッダを設定する。*/
 	ip4h->vhl	= IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2);
 	ip4h->len	= htons(IP4_HDR_SIZE + len);
@@ -259,5 +247,5 @@
 	ip4h->id	= ip4h->flg_off = ip4h->sum = 0;
 
-	/* IP ã¢ãã¬ã¹ãè¨­å®ããã*/
+	/* IP アドレスを設定する。*/
 	ip4h->dst	= htonl(*dstaddr);
 
@@ -271,5 +259,5 @@
 
 /*
- *  in4_get_datagram -- IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ *  in4_get_datagram -- IPv4 データグラムを獲得し、ヘッダを設定する。
  */
 
@@ -282,8 +270,8 @@
 	uint_t	align;
 
-	/* ãã¼ã¿é·ã 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/
+	/* データ長を 4 オクテット境界に調整する。*/
 	align = (len + 3) >> 2 << 2;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	/* ネットワークバッファを獲得する。*/
 	if ((error = tget_net_buf_ex(nbuf, (uint_t)(IF_IP4_HDR_SIZE + align),
 	                                   (uint_t)(IF_IP4_HDR_SIZE + maxlen), nbatr, tmout)) != E_OK)
@@ -291,12 +279,12 @@
 
 	/*
-	 *  ããå¤§ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ããèª¿æ´ããã
-	 *  ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®
-	 *  çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã
+	 *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
+	 *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
+	 *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
 	 */
 	if ((nbatr & NBA_SEARCH_ASCENT) != 0)
 		(*nbuf)->len = (uint16_t)(IF_IP4_HDR_SIZE + len);
 
-	/* IP ããããè¨­å®ããã*/
+	/* IP ヘッダを設定する。*/
 	if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK) {
 		syscall(rel_net_buf(*nbuf));
@@ -305,5 +293,5 @@
 		}
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((GET_IP4_SDU(*nbuf) + len), 0, (size_t)(align - len));
@@ -313,7 +301,7 @@
 
 /*
- *  in4_cksum -- IPv4 ã®ãã©ã³ã¹ãã¼ãå±¤ãããã®ãã§ãã¯ãµã ãè¨ç®ããã
- *
- *  æ³¨æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ *  in4_cksum -- IPv4 のトランスポート層ヘッダのチェックサムを計算する。
+ *
+ *  注意: 戻り値はネットワークバイトオーダ
  */
 
@@ -324,8 +312,8 @@
 	uint_t		align;
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)nbuf->buf + off + len, 0, (size_t)(align - len));
@@ -340,16 +328,16 @@
 
 /*
- *  in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- *
- *        æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ *
+ *        戻り値はネットワークバイトオーダ
  */
 
 uint16_t
-in_cksum (void *data, uint_t len /*ãªã¯ãããåä½*/)
+in_cksum (void *data, uint_t len /*オクテット単位*/)
 {
 	uint16_t	sum;
@@ -360,10 +348,9 @@
 
 /*
- *  in4_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
- *
- *    æ³¨æ: dstaddr ã¯ã
- *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
- *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ *  in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
+ *
+ *    注意: dstaddr は、
+ *          TINET-1.2 からネットワークバイトオーダ、
+ *          TINET-1.1 までは、ホストバイトオーダ
  */
 
@@ -378,10 +365,9 @@
 
 /*
- *  inn4_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
- *
- *    æ³¨æ: dstaddr ã¯ã
- *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
- *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ *  inn4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
+ *
+ *    注意: dstaddr は、
+ *          TINET-1.2 からネットワークバイトオーダ、
+ *          TINET-1.1 までは、ホストバイトオーダ
  */
 
@@ -399,10 +385,8 @@
 
 /*
- * in4_addrwithifp -- å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
- *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
- *                   in6_addrwithifp ãã·ãã¥ã¬ã¼ãããã ãã§ã
- *                   ã¨ã©ã¼ãè¿ããã¨ã¯ãªãã
+ * in4_addrwithifp -- 宛先アドレスにふさわしい送信元アドレスを、
+ *                   ネットワークインタフェースから探索する。
+ *                   in6_addrwithifp をシミュレートするだけで、
+ *                   エラーを返すことはない。
  */
 
@@ -415,5 +399,5 @@
 
 /*
- *  in4_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨­å®ããã
+ *  in4_add_ifaddr -- インタフェースに IPv4 アドレスを設定する。
  */
 
@@ -431,5 +415,5 @@
 
 /*
- *  in4_add_route -- çµè·¯è¡¨ã«ã¨ã³ããªãè¨­å®ããã
+ *  in4_add_route -- 経路表にエントリを設定する。
  */
 
@@ -451,5 +435,5 @@
 
 /*
- *  in4_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã
+ *  in4_rtalloc -- ルーティング表を探索する。
  */
 
@@ -477,7 +461,7 @@
 
 /*
- *  in4_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã
- *
- *    æ³¨æ: å¼æ° tmo ã®åä½ã¯ [ms]ã
+ *  in4_rtredirect -- ルーティング表にエントリを登録する。
+ *
+ *    注意: 引数 tmo の単位は [ms]。
  */
 
@@ -496,8 +480,7 @@
 
 /*
- *  in4_timer -- IPv4 å
-±éã¿ã¤ãã¼
- *
- *    1ç§å¨æã§èµ·åãããã
+ *  in4_timer -- IPv4 共通タイマー
+ *
+ *    1秒周期で起動される。
  */
 
@@ -521,6 +504,5 @@
 
 /*
- *  in4_init -- IPv4 å
-±éæ©è½ãåæåããã
+ *  in4_init -- IPv4 共通機能を初期化する。
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in4_var.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -86,27 +74,27 @@
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½
+ *  インタフェースアドレス構造体
  */
 
 typedef struct t_in4_ifaddr {
-	T_IN4_ADDR		addr;		/* IPv4 ã¢ãã¬ã¹	*/
-	T_IN4_ADDR		mask;		/* ãµãããããã¹ã¯	*/
+	T_IN4_ADDR		addr;		/* IPv4 アドレス	*/
+	T_IN4_ADDR		mask;		/* サブネットマスク	*/
 	} T_IN4_IFADDR;
 
 /*
- *  ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½
+ *  ルーティング表エントリ構造体
  */
 
 typedef struct t_in4_rtentry {
-	T_IN4_ADDR	target;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹			*/
-	T_IN4_ADDR	mask;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹ã®ãµãããããã¹ã¯	*/
-	T_IN4_ADDR	gateway;	/* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹			*/
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]			*/
-	uint8_t		flags;		/* ãã©ã°					*/
+	T_IN4_ADDR	target;		/* 目標ネットワークアドレス			*/
+	T_IN4_ADDR	mask;		/* 目標ネットワークアドレスのサブネットマスク	*/
+	T_IN4_ADDR	gateway;	/* ゲートウェイの IP アドレス			*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]			*/
+	uint8_t		flags;		/* フラグ					*/
 	} T_IN4_RTENTRY;
 /*
- *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
- *
- *  TINET 1.5 ã¨ã®äºææ§ã®ããã«å®ç¾©ãç¡å¹ã«ããã
+ *  TINET 1.1 との互換性のための定義
+ *
+ *  TINET 1.5 との互換性のために定義を無効にした。
  */
 
@@ -123,5 +111,5 @@
 
 /*
- *  ã«ã¼ãã£ã³ã°è¡¨
+ *  ルーティング表
  */
 
@@ -133,6 +121,5 @@
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -148,5 +135,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -154,5 +141,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -171,10 +158,9 @@
 
 /*
- *  in4_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
- *
- *    æ³¨æ: dstaddr ã¯ã
- *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
- *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ *  in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
+ *
+ *    注意: dstaddr は、
+ *          TINET-1.2 からネットワークバイトオーダ、
+ *          TINET-1.1 までは、ホストバイトオーダ
  */
 extern bool_t in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr);
@@ -182,30 +168,30 @@
 
 /*
- *  in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- */
-extern uint16_t in_cksum(void *data, uint_t len /*ãªã¯ãããåä½*/);
-
-/*
- *  in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- */
-extern uint32_t in_cksum_sum (void *data, uint_t len /*ãªã¯ãããåä½*/);
-
-/*
- *  in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ */
+extern uint16_t in_cksum(void *data, uint_t len /*オクテット単位*/);
+
+/*
+ *  in_cksum_sum -- チェックサムの合計計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ */
+extern uint32_t in_cksum_sum (void *data, uint_t len /*オクテット単位*/);
+
+/*
+ *  in_cksum_carry -- チェックサムの桁上げ計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
  */
 extern uint32_t in_cksum_carry (uint32_t sum);
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_itron.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_itron.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_itron.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,8 +36,8 @@
 
 /*
- *  API æ©è½ã»äºè±¡ã³ã¼ã
+ *  API 機能・事象コード
  */
 
-/* TCP é¢ä¿ */
+/* TCP 関係 */
 
 #define TFN_TCP_CRE_REP		(-0x201)
@@ -76,5 +64,5 @@
 #define TEV_TCP_RCV_OOB		(0x201)
 
-/* UDP é¢ä¿ */
+/* UDP 関係 */
 
 #define TFN_UDP_CRE_CEP		(-0x221)
@@ -89,7 +77,7 @@
 #define TEV_UDP_RCV_DAT		(0x221)
 
-/* ä¸è¬ */
+/* 一般 */
 
-#define NADR			((void*)(-1))	/* ç¡å¹ã¢ãã¬ã¹ */
+#define NADR			((void*)(-1))	/* 無効アドレス */
 #define IS_PTR_DEFINED(a)	((void*)(a)!=NADR&&(void*)(a)!=NULL)
 #define TCP_REP_NONE		UINT_C(0)
@@ -98,10 +86,10 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
-/* TCP é¢ä¿ */
+/* TCP 関係 */
 
-/* ãæ¨æºæ©è½ã */
+/* 【標準機能】 */
 
 extern ER	tcp_acp_cep (ID cepid, ID repid, T_IPV4EP *p_dstaddr, TMO tmout);
@@ -120,5 +108,5 @@
 extern ER	tcp6_con_cep (ID cepid, T_IPV6EP *p_myaddr, T_IPV6EP *p_dstaddr, TMO tmout);
 
-/* ãæ¡å¼µæ©è½ã */
+/* 【拡張機能】 */
 
 extern ER	tcp_del_rep (ID cepid);
@@ -133,7 +121,7 @@
 extern ER	tcp6_cre_rep (ID repid, T_TCP6_CREP *pk_crep);
 
-/* UDP é¢ä¿ */
+/* UDP 関係 */
 
-/* ãæ¨æºæ©è½ã */
+/* 【標準機能】 */
 
 extern ER_UINT	udp_snd_dat (ID cepid, T_IPV4EP *p_dstaddr, void *data, int_t len, TMO tmout);
@@ -145,5 +133,5 @@
 extern ER	udp6_can_cep(ID cepid, FN fncd);
 
-/* ãæ¡å¼µæ©è½ã */
+/* 【拡張機能】 */
 
 extern ER	udp_del_cep (ID cepid);
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_rename.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_rename.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_rename.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,6 +36,5 @@
 
 /*
- *  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯å
-é¨åã®ãªãã¼ã 
+ *  TCP/IP プロトコルスタック内部名のリネーム
  */
 
@@ -158,6 +145,6 @@
 #define tmax_tcp_repid		_tinet_tmax_tcp_repid
 #define tmax_tcp_cepid		_tinet_tmax_tcp_cepid
-#define tmax_tcp_crepid		_tinet_tmax_tcp_repid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
-#define tmax_tcp_ccepid		_tinet_tmax_tcp_cepid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
+#define tmax_tcp_crepid		_tinet_tmax_tcp_repid	/* TINET 1.3 との互換性のための定義 */
+#define tmax_tcp_ccepid		_tinet_tmax_tcp_cepid	/* TINET 1.3 との互換性のための定義 */
 
 /* netinet/udp_input.c */
@@ -195,5 +182,5 @@
 #define udp4_cep		_tinet_udp4_cep
 #define tmax_udp_cepid		_tinet_tmax_udp_cepid
-#define tmax_udp_ccepid		_tinet_tmax_udp_cepid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
+#define tmax_udp_ccepid		_tinet_tmax_udp_cepid	/* TINET 1.3 との互換性のための定義 */
 
 /* netinet/ip_icmp.c */
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_subr.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -117,16 +105,16 @@
 
 /*
- *  in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- *
- *        æ»ãå¤ã¯ãã¹ããã¤ããªã¼ã
+ *  in_cksum_sum -- チェックサムの合計計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ *
+ *        戻り値はホストバイトオーダ
  */
 
 uint32_t
-in_cksum_sum (void *data, uint_t len /*ãªã¯ãããåä½*/)
+in_cksum_sum (void *data, uint_t len /*オクテット単位*/)
 {
 	uint32_t sum = 0;
@@ -146,10 +134,10 @@
 
 /*
- *  in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ *  in_cksum_carry -- チェックサムの桁上げ計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
  */
 
@@ -168,10 +156,10 @@
 
 /*
- *  in_strtfn -- API æ©è½ã³ã¼ãã®æå­è¡¨ç¾ãè¿ãã
+ *  in_strtfn -- API 機能コードの文字表現を返す。
  */
 
 typedef struct t_strtfn {
-	FN		fncd;	/* API æ©è½ã³ã¼ã	*/
-	const char	*str;	/* æå­è¡¨ç¾		*/
+	FN		fncd;	/* API 機能コード	*/
+	const char	*str;	/* 文字表現		*/
 	} T_STRTFN;
 
@@ -222,5 +210,5 @@
 
 /*
- *  ipv42str -- IPv4 ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ *  ipv42str -- IPv4 アドレスを文字列に変換する。
  */
 
@@ -256,5 +244,5 @@
 
 /*
- *  in6_is_addr_ipv4mapped -- IPv4 å°å½±ã¢ãã¬ã¹ã§ããäºãæ¤æ»ããã
+ *  in6_is_addr_ipv4mapped -- IPv4 射影アドレスである事を検査する。
  */
 
@@ -268,5 +256,5 @@
 
 /*
- *  ip_exchg_addr -- IP ã¢ãã¬ã¹ãäº¤æããã
+ *  ip_exchg_addr -- IP アドレスを交換する。
  */
 
@@ -279,5 +267,5 @@
 	iph  = GET_IP6_HDR(nbuf);
 
-	/* IPv6 ã¢ãã¬ã¹ãäº¤æããã*/
+	/* IPv6 アドレスを交換する。*/
 	ipaddr = iph->src;
 	iph->src = iph->dst;
@@ -293,5 +281,5 @@
 	iph  = GET_IP4_HDR(nbuf);
 
-	/* IPv4 ã¢ãã¬ã¹ãäº¤æããã*/
+	/* IPv4 アドレスを交換する。*/
 	ipaddr = iph->src;
 	iph->src = iph->dst;
@@ -311,5 +299,5 @@
 
 /*
- *  ip_exchg_addr -- IP ã¢ãã¬ã¹ãäº¤æããã
+ *  ip_exchg_addr -- IP アドレスを交換する。
  */
 
@@ -322,5 +310,5 @@
 	iph  = GET_IP_HDR(nbuf);
 
-	/* IP ã¢ãã¬ã¹ãäº¤æããã*/
+	/* IP アドレスを交換する。*/
 	ipaddr = iph->src;
 	iph->src = iph->dst;
@@ -333,6 +321,5 @@
 
 /*
- *  inn_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ *  inn_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
  */
 
@@ -357,5 +344,5 @@
 
 /*
- *  inn_are_net_srcaddr_equal -- ã¢ãã¬ã¹ãåä¸ããã§ãã¯ããã
+ *  inn_are_net_srcaddr_equal -- アドレスが同一かチェックする。
  */
 
@@ -375,5 +362,5 @@
 
 /*
- *  inn_copy_to_host -- IP ããããããã¹ãè¡¨ç¾å¤æãã¦ãIP ã¢ãã¬ã¹ãã³ãã¼ããã
+ *  inn_copy_to_host -- IP ヘッダからホスト表現変換して、IP アドレスをコピーする。
  */
 
@@ -389,5 +376,5 @@
 
 /*
- *  inn_get_datagram -- IPv6/IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ *  inn_get_datagram -- IPv6/IPv4 データグラムを獲得し、ヘッダを設定する。
  */
 
@@ -413,8 +400,6 @@
 
 /*
- * inn_addrwithifp -- å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
- *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ * inn_addrwithifp -- 宛先アドレスにふさわしい送信元アドレスを、
+ *                   ネットワークインタフェースから探索する。
  */
 
@@ -435,5 +420,5 @@
 
 /*
- *  inn_is_addr_multicast -- ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã§ãã¯ããã
+ *  inn_is_addr_multicast -- アドレスがマルチキャストアドレスかチェックする。
  */
 
@@ -451,10 +436,10 @@
 
 /*
- *  ãã¤ããªã¼ãé¢æ°ã®å®ç¾©
- *
- *    tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã
- *    tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªã
- *    ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ç¨ã«
- *    ã¿ã¼ã²ããä¾å­ããªããã¤ããªã¼ãé¢æ°ãå®ç¾©ããã
+ *  バイトオーダ関数の定義
+ *
+ *    tinet/net/net.h でもバイトオーダの定義を行っているが、
+ *    tinet/net/net.h をインクルードしない
+ *    アプリケーションプログラム用に
+ *    ターゲット依存しないバイトオーダ関数を定義する。
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/in_var.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -87,25 +75,23 @@
 
 /*
- *  ç¬èªã®ã¨ã©ã¼ã³ã¼ã
- */
-
-#define EV_NOPND		(-97)		/* ãã³ãã£ã³ã°ãã¦ããªã */
-
-/*
- *  ãããã¯ã¼ã¯ã¨ã©ã¼ã³ã¼ã
- */
-
-#define EV_MSIZE		(-98)		/* ãã¼ã¿ã°ã©ã é·è¶
-é	*/
-#define EV_NURCH		(-99)		/* ãããã¯ã¼ã¯å°éä¸è½	*/
-#define EV_HDOWN		(-100)		/* ãã¹ããã¦ã³		*/
-#define EV_HURCH		(-101)		/* ãã¹ãå°éä¸è½	*/
-#define EV_CNNRF		(-102)		/* æ¥ç¶ä¸è½		*/
-#define EV_CNRST		(-103)		/* æ¥ç¶ãªã»ãã		*/
-#define EV_REXMTMO		(-104)		/* åéã¿ã¤ã ã¢ã¦ã	*/
-
-/*
- *  å
-±éã¿ã¤ãã®èµ·åå¨æã®å®ç¾©
+ *  独自のエラーコード
+ */
+
+#define EV_NOPND		(-97)		/* ペンディングしていない */
+
+/*
+ *  ネットワークエラーコード
+ */
+
+#define EV_MSIZE		(-98)		/* データグラム長超過	*/
+#define EV_NURCH		(-99)		/* ネットワーク到達不能	*/
+#define EV_HDOWN		(-100)		/* ホストダウン		*/
+#define EV_HURCH		(-101)		/* ホスト到達不能	*/
+#define EV_CNNRF		(-102)		/* 接続不能		*/
+#define EV_CNRST		(-103)		/* 接続リセット		*/
+#define EV_REXMTMO		(-104)		/* 再送タイムアウト	*/
+
+/*
+ *  共通タイマの起動周期の定義
  */
 
@@ -113,13 +99,12 @@
 
 /*
- *  ã«ã¼ãã£ã³ã°ã¨ã³ããªç¶æ
-ãã©ã°
- */
-
-#define IN_RTF_DEFINED		UINT_C(0x01)	/* å®ç¾©æ¸ã¿			*/
-#define IN_RTF_REDIRECT		UINT_C(0x10)	/* åãç´ãã«ããèªåè¨­å®ããã	*/
-
-/*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  ルーティングエントリ状態フラグ
+ */
+
+#define IN_RTF_DEFINED		UINT_C(0x01)	/* 定義済み			*/
+#define IN_RTF_REDIRECT		UINT_C(0x10)	/* 向け直しにより自動設定された	*/
+
+/*
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
@@ -207,5 +192,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 extern bool_t	inn_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *nbuf);
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip.cfg	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  IPv4 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  IPv4 で使用するカーネルオブジェクト
  */
 
@@ -52,5 +40,5 @@
 #ifdef IP4_CFG_FRAGMENT
 
-/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æ */
+/* データグラムの分割・再構成 */
 
 CRE_SEM(SEM_IP4_FRAG_QUEUE, { TA_TPRI, 1, 1 });
@@ -60,5 +48,5 @@
 #if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0
 
-/* ã«ã¼ãã£ã³ã°è¡¨ï¼åãç´ãï¼*/
+/* ルーティング表（向け直し）*/
 
 CRE_SEM(SEM_IN4_ROUTING_TBL, { TA_TPRI, 1, 1 });
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -86,6 +74,5 @@
 
 /*
- *  IPv4 ã®å®ç¾©ãRFC791 åç
-§
+ *  IPv4 の定義、RFC791 参照
  */
 
@@ -93,10 +80,10 @@
 
 /*
- *  IPv4 ãããã®å®ç¾©
+ *  IPv4 ヘッダの定義
  */
 
 typedef struct t_ip4_hdr {
 	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
-					/* length ã¯ 4 octets åä½		*/
+					/* length は 4 octets 単位		*/
 	uint8_t		type;		/* type of services			*/
 	uint16_t	len;		/* total length				*/
@@ -116,5 +103,5 @@
 
 /*
- *  IPv4 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv4 ヘッダ構造体メンバアクセスマクロ
  */
 
@@ -128,24 +115,24 @@
 
 /*
- *  IPv4 ãããã®ãã£ã¼ã«ãã®å¤ã®å®ç¾©
+ *  IPv4 ヘッダのフィールドの値の定義
  */
 
-#define IP4_VHL_BORING	UINT_C(0x45)	/* ãªãã·ã§ã³ããªã VHL å¤	*/
-#define IP4_RF		UINT_C(0x8000)	/* off: äºç´			*/
-#define IP4_DF		UINT_C(0x4000)	/* off: åå²ç¦æ­¢			*/
-#define IP4_MF		UINT_C(0x2000)	/* off: åå²ãã			*/
-#define IP4_OFFMASK	UINT_C(0x1fff)	/* ãªãã»ããé¨ã®ãã¹ã¯å¤		*/
+#define IP4_VHL_BORING	UINT_C(0x45)	/* オプションがない VHL 値	*/
+#define IP4_RF		UINT_C(0x8000)	/* off: 予約			*/
+#define IP4_DF		UINT_C(0x4000)	/* off: 分割禁止			*/
+#define IP4_MF		UINT_C(0x2000)	/* off: 分割あり			*/
+#define IP4_OFFMASK	UINT_C(0x1fff)	/* オフセット部のマスク値		*/
 
 /*
- *  å¶éå¤
+ *  制限値
  */
 
-#define IP4_MAXPACKET	UINT_C(65535)	/* æå¤§ãã±ãããµã¤ãº		*/
-#define IP4_MAXTTL	UINT_C(255)	/* TTL æå¤§å¤			*/
-#define IP4_DEFTTL	UINT_C(64)	/* TTL è¦å®å¤ (RFC1340)		*/
-#define IP4_FRAGTTL	UINT_C(60)	/* åå²ããããã¼ã¿ã°ã©ã ã®çå­æéï¼ç§ï¼*/
-#define IP4_MSS		UINT_C(576)	/* æå¤§ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤	*/
+#define IP4_MAXPACKET	UINT_C(65535)	/* 最大パケットサイズ		*/
+#define IP4_MAXTTL	UINT_C(255)	/* TTL 最大値			*/
+#define IP4_DEFTTL	UINT_C(64)	/* TTL 規定値 (RFC1340)		*/
+#define IP4_FRAGTTL	UINT_C(60)	/* 分割されたデータグラムの生存時間（秒）*/
+#define IP4_MSS		UINT_C(576)	/* 最大セグメントサイズの規定値	*/
 
-/* IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­ */
+/* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */
 
 #if !defined(_IP6_CFG) && defined(_IP4_CFG)
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip4_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip4_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip4_var.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  IPv4 ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv4 ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -99,11 +87,11 @@
 
 /*
- *  IP ã® MSS ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  IP の MSS サイズのネットワークバッファ
  */
 
 typedef struct t_net_buf_ip_mss {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -113,15 +101,15 @@
 #endif
 	uint8_t		buf[IF_HDR_SIZE + IP4_MSS];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF_IP_MSS;
 
 /*
- *  65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  65536 オクテットサイズのネットワークバッファ
  */
 
 typedef struct t_net_buf4_65536 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -131,8 +119,8 @@
 #endif
 	uint8_t		buf[IF_IP4_HDR_SIZE + 65536];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 #if defined(IF_PDU_HDR_PADDING)
 	uint8_t		padding[IF_PDU_HDR_PADDING];
-#endif				/* ãããã®ä½å		*/
+#endif				/* ヘッダの余分		*/
 	} T_NET_BUF4_65536;
 
@@ -140,10 +128,10 @@
 
 /*
- *  åæ§æã­ã¥ã¼ç¨ IPv4 ãããã®å®ç¾©
+ *  再構成キュー用 IPv4 ヘッダの定義
  */
 
 typedef struct t_qip4_hdr {
 	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
-					/* length ã¯ 4 octets åä½		*/
+					/* length は 4 octets 単位		*/
 	uint8_t		type;		/* type of services			*/
 	uint16_t	len;		/* total length				*/
@@ -158,5 +146,5 @@
 	uint32_t	src;		/* source address			*/
 
-	T_NET_BUF	*next;		/* æ¬¡ã® IPv4 ãã©ã°ã¡ã³ã			*/
+	T_NET_BUF	*next;		/* 次の IPv4 フラグメント			*/
 	} __attribute__((packed, aligned(2))) T_QIP4_HDR;
 
@@ -171,11 +159,11 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡
+ *  データグラム再構成用ネットワークバッファ
  */
 
 typedef struct t_net_buf4_reassm {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -185,5 +173,5 @@
 #endif
 	uint8_t		buf[IP4_CFG_FRAG_REASSM_SIZE];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} __attribute__((packed, aligned(2))) T_NET_BUF4_REASSM;
 
@@ -191,10 +179,10 @@
 
 /*
- *  TCP ã®åæ§æã­ã¥ã¼ã«ããã IPv4 ãããã®å®ç¾©
+ *  TCP の再構成キューにおける IPv4 ヘッダの定義
  */
 
 typedef struct t_ip4_tcp_q_hdr {
 	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
-					/* length ã¯ 4 octets åä½		*/
+					/* length は 4 octets 単位		*/
 	uint8_t		type;		/* type of services			*/
 	uint16_t	len;		/* total length				*/
@@ -205,5 +193,5 @@
 	uint8_t		ttl;		/* time to live				*/
 	uint8_t		proto;		/* protocol				*/
-	uint16_t	thoff;		/* TCP ãããã®ãªãã»ãã		*/
+	uint16_t	thoff;		/* TCP ヘッダのオフセット		*/
 
 	T_IN4_ADDR	src;		/* source address			*/
@@ -214,6 +202,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -257,5 +244,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip6.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip6.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip6.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -115,6 +103,5 @@
 
 /*
- *  IPv6 ã®å®ç¾©ãRFC2460 åç
-§
+ *  IPv6 の定義、RFC2460 参照
  */
 
@@ -122,5 +109,5 @@
 
 /*
- *  IPv6 ãããã®å®ç¾©
+ *  IPv6 ヘッダの定義
  */
 
@@ -139,5 +126,5 @@
 
 /*
- *  IPv6 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv6 ヘッダ構造体メンバアクセスマクロ
  */
 
@@ -149,41 +136,37 @@
 
 /*
- *  æ¡å¼µããã
+ *  拡張ヘッダ
  */
 
 typedef struct t_ip6_ext_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ã	*/
+	uint8_t		len;		/* 8 オクテット単位の長さ	*/
 	} __attribute__((packed, aligned(2)))T_IP6_EXT_HDR;
 
 /*
- *  ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ããã
+ *  中継点 (Hop-by-Hop) オプションヘッダ
  */
 
 typedef struct t_ip6_hbh_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
 					 */
 	} __attribute__((packed, aligned(2)))T_IP6_HBH_HDR;
 
 /*
- *  çµç¹ (Destination) ãªãã·ã§ã³ããã
+ *  終点 (Destination) オプションヘッダ
  */
 
 typedef struct t_ip6_dest_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
 					 */
 	} __attribute__((packed, aligned(2)))T_IP6_DEST_HDR;
 
-/* ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ */
+/* 中継点 (Hop-by-Hop) オプション */
 
 #define IP6OPT_PAD1		UINT_C(0x00)	/* 00 0 00000 */
@@ -194,51 +177,47 @@
 #define IP6OPT_RTR_ALERT	UINT_C(0x05)	/* 00 0 00101 */
 
-#define IP6OPT_MINLEN		2	/* ãªãã·ã§ã³ã®æç­é·		*/
-
-/* æªç¥ã®ãªãã·ã§ã³ã®å¦çã®æå® */
-
-#define IP6OPT_TYPE_SKIP	UINT_C(0x00)	/* ç¡è¦ããã			*/
-#define IP6OPT_TYPE_DISCARD	UINT_C(0x40)	/* ãã¼ã¿ã°ã©ã ãç ´æ£ããã	*/
-#define IP6OPT_TYPE_FORCEICMP	UINT_C(0x80)	/* ç ´æ£ãã¦ãICMP ãè¿éããã	*/
+#define IP6OPT_MINLEN		2	/* オプションの最短長		*/
+
+/* 未知のオプションの処理の指定 */
+
+#define IP6OPT_TYPE_SKIP	UINT_C(0x00)	/* 無視する。			*/
+#define IP6OPT_TYPE_DISCARD	UINT_C(0x40)	/* データグラムを破棄する。	*/
+#define IP6OPT_TYPE_FORCEICMP	UINT_C(0x80)	/* 破棄して、ICMP を返送する。	*/
 #define IP6OPT_TYPE_ICMP	UINT_C(0xc0)
-		/* ç ´æ£ãã¦ããã«ãã­ã£ã¹ãã§ãªããã° ICMP ãè¿éããã	*/
+		/* 破棄して、マルチキャストでなければ ICMP を返送する。	*/
 
 #define IP6OPT_TYPE(o)		((o)&UINT_C(0xc0))
 
 /*
- *  çµè·¯å¶å¾¡ããã
+ *  経路制御ヘッダ
  */
 
 typedef struct t_ip6_rt_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
-					 */
-	uint8_t		type;		/* çµè·¯å¶å¾¡ã¿ã¤ã		*/
-	uint8_t		segleft;	/* ã»ã°ã¡ã³ãã®æ®ã		*/
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
+					 */
+	uint8_t		type;		/* 経路制御タイプ		*/
+	uint8_t		segleft;	/* セグメントの残り		*/
 	} __attribute__((packed, aligned(2)))T_IP6_RT_HDR;
 
 /*
- *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ããã
+ *  タイプ 0 経路制御ヘッダ
  */
 
 typedef struct t_ip6_rt0_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
-					 */
-	uint8_t		type;		/* çµè·¯å¶å¾¡ã¿ã¤ã		*/
-	uint8_t		segleft;	/* ã»ã°ã¡ã³ãã®æ®ã		*/
-	uint32_t	reserved;	/* äºç´				*/
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
+					 */
+	uint8_t		type;		/* 経路制御タイプ		*/
+	uint8_t		segleft;	/* セグメントの残り		*/
+	uint32_t	reserved;	/* 予約				*/
 	} __attribute__((packed, aligned(2)))T_IP6_RT0_HDR;
 
 /*
- *  æ­çããã
+ *  断片ヘッダ
  */
 
@@ -246,9 +225,9 @@
 	uint8_t		next;		/* Next Header			*/
 	uint8_t		reserved;
-	uint16_t	off_flag;	/* ãªãã»ããã¨ãã©ã°		*/
-	uint32_t	ident;		/* åå²è­å¥å­			*/
+	uint16_t	off_flag;	/* オフセットとフラグ		*/
+	uint32_t	ident;		/* 分割識別子			*/
 	} __attribute__((packed, aligned(2)))T_IP6_FRAG_HDR;
 
-/* æ­çãããã®ãªãã»ããã¨ãã©ã° */
+/* 断片ヘッダのオフセットとフラグ */
 
 #ifdef _NET_CFG_BYTE_ORDER
@@ -256,13 +235,13 @@
 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
 
-#define IP6F_OFF_MASK		UINT_C(0xfff8)		/* ãªãã»ãããååºããã¹ã¯	*/
-#define IP6F_RESERVED_MASK	UINT_C(0x0006)		/* äºç´ãååºããã¹ã¯		*/
-#define IP6F_MORE_FRAG		UINT_C(0x0001)		/* ä¸­éãã©ã°ã¡ã³ã		*/
+#define IP6F_OFF_MASK		UINT_C(0xfff8)		/* オフセットを取出すマスク	*/
+#define IP6F_RESERVED_MASK	UINT_C(0x0006)		/* 予約を取出すマスク		*/
+#define IP6F_MORE_FRAG		UINT_C(0x0001)		/* 中間フラグメント		*/
 
 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
 
-#define IP6F_OFF_MASK		UINT_C(0xf8ff)		/* ãªãã»ãããååºããã¹ã¯	*/
-#define IP6F_RESERVED_MASK	UINT_C(0x0600)		/* äºç´ãååºããã¹ã¯		*/
-#define IP6F_MORE_FRAG		UINT_C(0x0100)		/* ä¸­éãã©ã°ã¡ã³ã		*/
+#define IP6F_OFF_MASK		UINT_C(0xf8ff)		/* オフセットを取出すマスク	*/
+#define IP6F_RESERVED_MASK	UINT_C(0x0600)		/* 予約を取出すマスク		*/
+#define IP6F_MORE_FRAG		UINT_C(0x0100)		/* 中間フラグメント		*/
 
 #endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
@@ -271,24 +250,24 @@
 
 /*
- *  å¶éå¤
- */
-
-#define IPV6_MAXHLIM	UINT_C(255)	/* ããããªãããã®æå¤§å¤				*/
-#define IPV6_DEFHLIM	UINT_C(64)	/* ããããªãããã®è¦å®å¤				*/
-#define IPV6_FRAGTTL	UINT_C(60)	/* åå²ããããã¼ã¿ã°ã©ã ã®çå­æéï¼ç§ï¼	*/
-#define IPV6_MMTU	UINT_C(1280)	/* æå° MTUããã¤ã­ã¼ã (1024) + ããã (256)	*/
-#define IPV6_MAXPACKET	UINT_C(65535)	/* ã¸ã£ã³ããã¤ã­ã¼ããé¤ãæå¤§ãã±ãããµã¤ãº	*/
-
-/*
- *  IPv6 ã¨ IPv4 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
- */
-
-/*
- *  ããããªãããã®è¦å®å¤ã¯ãã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ããã
+ *  制限値
+ */
+
+#define IPV6_MAXHLIM	UINT_C(255)	/* ホップリミットの最大値				*/
+#define IPV6_DEFHLIM	UINT_C(64)	/* ホップリミットの規定値				*/
+#define IPV6_FRAGTTL	UINT_C(60)	/* 分割されたデータグラムの生存時間（秒）	*/
+#define IPV6_MMTU	UINT_C(1280)	/* 最小 MTU。ペイロード (1024) + ヘッダ (256)	*/
+#define IPV6_MAXPACKET	UINT_C(65535)	/* ジャンボペイロードを除く最大パケットサイズ	*/
+
+/*
+ *  IPv6 と IPv4 をコンパイル時に選択するためのマクロ
+ */
+
+/*
+ *  ホップリミットの規定値は、ルータ通知により変更されることがある
  */
 
 #if NUM_ND6_DEF_RTR_ENTRY > 0
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤ */
+/* ルータ通知を受信する場合は、通知された値 */
 
 #define IP6_DEFTTL	ip6_defhlim
@@ -296,5 +275,5 @@
 #else	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤ */
+/* ルータ通知を受信しない場合の値は既定値 */
 
 #define IP6_DEFTTL	IPV6_DEFHLIM
@@ -302,5 +281,5 @@
 #endif	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
 
-/* IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­ */
+/* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */
 
 #ifdef _IP6_CFG
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_icmp.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_icmp.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_icmp.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -129,5 +117,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -135,6 +123,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -144,5 +131,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -159,7 +146,7 @@
 
 /*
- *  icmp_echo -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ *  icmp_echo -- エコー要求を受信したときの処理
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
  */
 
@@ -173,10 +160,10 @@
 	NET_COUNT_MIB(icmp_stats.icmpInEchos, 1);
 
-	/* IPv4 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯å¿ç­ããªãã*/
+	/* IPv4 アドレスが未定義の時は応答しない。*/
 	if (!IN4_IS_ADDR_ANY(&ifp->in4_ifaddr.addr)) {
 
 		/*
-		 *  ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (8) ãã
-		 *  ã¨ã³ã¼å¿ç­ (0) ã«å¤æ´ãã¦éãè¿ãã
+		 *  メッセージの型をエコー要求 (8) から
+		 *  エコー応答 (0) に変更して送り返す。
 		 */
 
@@ -185,9 +172,6 @@
 
 		/*
-		 *  å®å
-ã¢ãã¬ã¹ã¯åä¿¡ããã¡ãã»ã¼ã¸ã®éä¿¡å
-ã¢ãã¬ã¹ã
-		 *  éä¿¡å
-ã¢ãã¬ã¹ã¯èª IPv4 ã¢ãã¬ã¹ã
+		 *  宛先アドレスは受信したメッセージの送信元アドレス。
+		 *  送信元アドレスは自 IPv4 アドレス。
 		 */
 		ip4h      = GET_IP4_HDR(input);
@@ -195,10 +179,10 @@
 		ip4h->src = htonl(ifp->in4_ifaddr.addr);
 
-		/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+		/* チェックサムを計算する。*/
 		icmp4h->sum = 0;
 		icmp4h->sum = in_cksum(icmp4h,
 		                       (uint_t)(((input->len - GET_IF_IP4_HDR_SIZE(input)) + 3) >> 2 << 2));
 
-		/* éä¿¡ããã*/
+		/* 送信する。*/
 		NET_COUNT_ICMP4(net_count_icmp4.out_octets,
 		               input->len - GET_IF_IP4_HDR_SIZE(input));
@@ -211,5 +195,5 @@
 
 /*
- *  icmp_unreach -- ICMP4_UNREACH ãåä¿¡ããã¨ãã®å¦ç
+ *  icmp_unreach -- ICMP4_UNREACH を受信したときの処理
  */
 
@@ -246,5 +230,5 @@
 	error = code2error[code];
 
-	/* æçµãããã TCP/UDP ã®ã¿å¯¾å¿ããã*/
+	/* 最終ヘッダが TCP/UDP のみ対応する。*/
 	if (ip4h->proto == IPPROTO_TCP || ip4h->proto == IPPROTO_UDP) {
 
@@ -275,7 +259,7 @@
 
 /*
- *  icmp_redirect -- åãç´ãã¡ãã»ã¼ã¸ãåä¿¡ããã¨ãã®å¦ç
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ *  icmp_redirect -- 向け直しメッセージを受信したときの処理
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
  */
 
@@ -291,11 +275,10 @@
 
 	/*
-	 *  å
-å®¹ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
+	 *  内容チェック、以下の場合はエラー
 	 *
-	 *    ã»ICMP ã³ã¼ãããICMP4_REDIRECT_PORT_AND_HOST (3) ä»¥ä¸
-	 *    ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå°é·ããç­ã (IP ããã + ICMP ããã + IP ããã + 8)
-	 *    ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå¤§é·ããç­ã
-	 *    ã»
+	 *    ・ICMP コードが、ICMP4_REDIRECT_PORT_AND_HOST (3) 以上
+	 *    ・データグラム長が、ICMP の最小長より短い (IP ヘッダ + ICMP ヘッダ + IP ヘッダ + 8)
+	 *    ・データグラム長が、ICMP の最大長より短い
+	 *    ・
 	 */
 	if (icmp4h->code > ICMP4_REDIRECT_PORT_AND_HOST ||
@@ -313,8 +296,7 @@
 
 /*
- *  icmp_input -- ICMP ã®å
-¥åé¢æ°
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ *  icmp_input -- ICMP の入力関数
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
  */
 
@@ -331,5 +313,5 @@
 	NET_COUNT_ICMP4(net_count_icmp4.in_packets, 1);
 
-	/* ICMP ãããã®é·ãããã§ãã¯ããã*/
+	/* ICMP ヘッダの長さをチェックする。*/
 	if (input->len < IF_IP4_ICMP4_HDR_SIZE) {
 		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
@@ -340,13 +322,13 @@
 	icmp4h = (T_ICMP4_HDR *)(input->buf + *offp);
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	len   = input->len - *offp;
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len));
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	if (in_cksum(icmp4h, align) != 0) {
 		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
@@ -354,5 +336,5 @@
 		}
 
-	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
+	/* メッセージの型により分岐する。*/
 	switch (icmp4h->type) {
 	case ICMP4_ECHO_REQUEST:
@@ -409,9 +391,9 @@
 
 /*
- *  icmp_error -- ICMP ã¨ã©ã¼éä¿¡é¢æ°ã
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
- *    icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ã
- *    å¼åºãå´ã§ãéæ¾ãã¦ããçµäºããã	
+ *  icmp_error -- ICMP エラー送信関数。
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
+ *    icmp_error では、ネットワークバッファ input を返却しないので、
+ *    呼出し側で、開放してから終了する。	
  */
 
@@ -428,5 +410,5 @@
 	ip4hl = GET_IP4_HDR_SIZE(input);
 
-	/* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	/* 送信用の IP データグラムを獲得する。*/
 	if (input->len - ip4hl < 8)
 		len = input->len - ip4hl;
@@ -440,5 +422,5 @@
 		return;
 
-	/* ICMP ããããè¨­å®ããã*/
+	/* ICMP ヘッダを設定する。*/
 	icmp4h		= GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET);
 	icmp4h->type	= ICMP4_UNREACH;
@@ -446,21 +428,21 @@
 	icmp4h->data.addr= 0;
 
-	/* ã¨ã©ã¼ãçºçãã IP ãããã¨ ãã¼ã¿ 8 ãªã¯ããããã³ãã¼ããã*/
+	/* エラーが発生した IP ヘッダと データ 8 オクテットをコピーする。*/
 	memcpy(GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET),
 	       GET_IP4_HDR(input), (size_t)(ip4hl + len));
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + ip4hl + len,
 		       0, (size_t)(align - len));
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp4h->sum = 0;
 	icmp4h->sum = in_cksum(icmp4h, (uint_t)(ICMP4_HDR_SIZE + ip4hl + align));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP4(net_count_icmp4.out_octets,
 	               output->len - GET_IF_IP4_HDR_SIZE(output));
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_icmp.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_icmp.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_icmp.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -86,11 +74,11 @@
 
 /*
- *  ICMP ãããã®å®ç¾©ãRFC 792
+ *  ICMP ヘッダの定義、RFC 792
  */
 
 typedef struct t_icmp_hdr {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		code;		/* ãµãå		*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		code;		/* サブ型		*/
+	uint16_t	sum;		/* チェックサム		*/
 	union {
 		struct id_seq {
@@ -116,38 +104,38 @@
 
 /*
- *  ã¡ãã»ã¼ã¸ã®å
+ *  メッセージの型
  */
 
-#define ICMP4_ECHO_REPLY	UINT_C(0)	/* ã¨ã³ã¼å¿ç­		*/
-#define ICMP4_UNREACH		UINT_C(3)	/* ã¨ã©ã¼		*/
-#define ICMP4_SOURCE_QUENCH	UINT_C(4)	/* çºä¿¡å¶é		*/
-#define ICMP4_REDIRECT		UINT_C(5)	/* æ¹åå¤æ´		*/
-#define ICMP4_ECHO_REQUEST	UINT_C(8)	/* ã¨ã³ã¼è¦æ±		*/
-#define ICMP4_TIME_EXCEEDED	UINT_C(11)	/* çºä¿¡å¶é		*/
-#define ICMP4_PARAMETER		UINT_C(12)	/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
-#define ICMP4_TIME_REQUEST	UINT_C(13)	/* ã¿ã¤ã ã¹ã¿ã³ãè¦æ±	*/
-#define ICMP4_TIME_REPLY	UINT_C(14)	/* ã¿ã¤ã ã¹ã¿ã³ãå¿ç­	*/
-#define ICMP4_MASK_REQUEST	UINT_C(17)	/* ã¢ãã¬ã¹ãã¹ã¯è¦æ±	*/
-#define ICMP4_MASK_REPLY	UINT_C(18)	/* ã¢ãã¬ã¹ãã¹ã¯å¿ç­	*/
+#define ICMP4_ECHO_REPLY	UINT_C(0)	/* エコー応答		*/
+#define ICMP4_UNREACH		UINT_C(3)	/* エラー		*/
+#define ICMP4_SOURCE_QUENCH	UINT_C(4)	/* 発信制限		*/
+#define ICMP4_REDIRECT		UINT_C(5)	/* 方向変更		*/
+#define ICMP4_ECHO_REQUEST	UINT_C(8)	/* エコー要求		*/
+#define ICMP4_TIME_EXCEEDED	UINT_C(11)	/* 発信制限		*/
+#define ICMP4_PARAMETER		UINT_C(12)	/* パラメータ異常	*/
+#define ICMP4_TIME_REQUEST	UINT_C(13)	/* タイムスタンプ要求	*/
+#define ICMP4_TIME_REPLY	UINT_C(14)	/* タイムスタンプ応答	*/
+#define ICMP4_MASK_REQUEST	UINT_C(17)	/* アドレスマスク要求	*/
+#define ICMP4_MASK_REPLY	UINT_C(18)	/* アドレスマスク応答	*/
 
 /*
- *  ãµãå
+ *  サブ型
  */
 
 /* ICMP4_UNREACH (3)	*/
 
-#define ICMP4_UNREACH_NET		UINT_C(0)	/* ãããã¯ã¼ã¯		*/
-#define ICMP4_UNREACH_HOST		UINT_C(1)	/* ãã¹ã		*/
-#define ICMP4_UNREACH_PROTOCOL		UINT_C(2)	/* ãã­ãã³ã«		*/
-#define ICMP4_UNREACH_PORT		UINT_C(3)	/* ãã¼ã		*/
-#define ICMP4_UNREACH_FLAG		UINT_C(4)	/* åå²			*/
-#define ICMP4_UNREACH_SRC_FAIL		UINT_C(5)	/* ã½ã¼ã¹çµè·¯		*/
-#define ICMP4_UNREACH_NET_UNKNOWN	UINT_C(6)	/* ãããã¯ã¼ã¯ä¸æ	*/
-#define ICMP4_UNREACH_HOST_UNKNOWN	UINT_C(7)	/* ãã¹ãä¸æ		*/
-#define ICMP4_UNREACH_ISOLATED		UINT_C(8)	/* åé¢			*/
+#define ICMP4_UNREACH_NET		UINT_C(0)	/* ネットワーク		*/
+#define ICMP4_UNREACH_HOST		UINT_C(1)	/* ホスト		*/
+#define ICMP4_UNREACH_PROTOCOL		UINT_C(2)	/* プロトコル		*/
+#define ICMP4_UNREACH_PORT		UINT_C(3)	/* ポート		*/
+#define ICMP4_UNREACH_FLAG		UINT_C(4)	/* 分割			*/
+#define ICMP4_UNREACH_SRC_FAIL		UINT_C(5)	/* ソース経路		*/
+#define ICMP4_UNREACH_NET_UNKNOWN	UINT_C(6)	/* ネットワーク不明	*/
+#define ICMP4_UNREACH_HOST_UNKNOWN	UINT_C(7)	/* ホスト不明		*/
+#define ICMP4_UNREACH_ISOLATED		UINT_C(8)	/* 分離			*/
 #define ICMP4_UNREACH_NET_PROHIB	UINT_C(9)	/* 			*/
 #define ICMP4_UNREACH_HOST_PROHIB	UINT_C(10)	/* 			*/
-#define ICMP4_UNREACH_TOS_NET		UINT_C(11)	/* ãããã¯ã¼ã¯ã¸ã®ä¸æ­£TOS*/
-#define ICMP4_UNREACH_TOS_HOST		UINT_C(12)	/* ãã¹ãã¸ã®ä¸æ­£TOS	*/
+#define ICMP4_UNREACH_TOS_NET		UINT_C(11)	/* ネットワークへの不正TOS*/
+#define ICMP4_UNREACH_TOS_HOST		UINT_C(12)	/* ホストへの不正TOS	*/
 #define ICMP4_UNREACH_FILTER_PROHIB	UINT_C(13)	/* 			*/
 #define ICMP4_UNREACH_HOST_PRECEDENCE	UINT_C(14)	/* 			*/
@@ -156,16 +144,15 @@
 /* ICMP4_REDIRECT (5)	*/
 
-#define ICMP4_REDIRECT_NET		UINT_C(0)	/* ãããã¯ã¼ã¯		*/
-#define ICMP4_REDIRECT_HOST		UINT_C(1)	/* ãã¹ã		*/
-#define ICMP4_REDIRECT_PORT_AND_NET	UINT_C(2)	/* ãã¼ãçªå·ã¨ããã	*/
-#define ICMP4_REDIRECT_PORT_AND_HOST	UINT_C(3)	/* ãã¼ãçªå·ã¨ãã¹ã	*/
+#define ICMP4_REDIRECT_NET		UINT_C(0)	/* ネットワーク		*/
+#define ICMP4_REDIRECT_HOST		UINT_C(1)	/* ホスト		*/
+#define ICMP4_REDIRECT_PORT_AND_NET	UINT_C(2)	/* ポート番号とネット	*/
+#define ICMP4_REDIRECT_PORT_AND_HOST	UINT_C(3)	/* ポート番号とホスト	*/
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -177,5 +164,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -189,5 +176,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.c	(revision 389)
@@ -5,39 +5,27 @@
 *                   Tomakomai National College of Technology, JAPAN
 *
-*  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation
-*  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
-*  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
-*  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
-*  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-*  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-*      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-*      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-*      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-*  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-*      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
-*    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-*        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-*      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+*  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation
+*  によって公表されている GNU General Public License の Version 2 に記
+*  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+*  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+*  利用と呼ぶ）することを無償で許諾する．
+*  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+*      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+*      スコード中に含まれていること．
+*  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+*      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+*      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+*      の無保証規定を掲載すること．
+*  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+*      用できない形で再配布する場合には，次の条件を満たすこと．
+*    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+*        作権表示，この利用条件および下記の無保証規定を掲載すること．
+*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+*      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 *
-*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-*  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
-*  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
-*  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+*  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+*  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+*  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+*  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 *
 *  @(#) $Id$
@@ -239,5 +227,5 @@
 	NET_COUNT_IGMP(net_count_igmp.in_packets, 1);
 
-	/* ICMP ãããã®é·ãããã§ãã¯ããã*/
+	/* ICMP ヘッダの長さをチェックする。*/
 	if (input->len < IF_IP4_IGMP_HDR_SIZE) {
 		NET_COUNT_IGMP(net_count_igmp.in_err_packets, 1);
@@ -248,13 +236,13 @@
 	igmph = (T_IGMPV2_HDR *)(input->buf + *offp);
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	len = input->len - *offp;
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len));
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	if (in_cksum(igmph, align) != 0) {
 		NET_COUNT_IGMP(net_count_igmp.in_err_packets, 1);
@@ -262,5 +250,5 @@
 	}
 
-	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
+	/* メッセージの型により分岐する。*/
 	switch (igmph->type) {
 	case IGMP_MEMBERSHIP_QUERY:
@@ -268,5 +256,5 @@
 		ret = false;
 
-		/* åå ä¸­ã®ã°ã«ã¼ãã¢ãã¬ã¹ããã®ã¯ã¨ãªã¼ã®å ´å */
+		/* 参加中のグループアドレスからのクエリーの場合 */
 		syscall(wai_sem(SEM_IGMP_GROUP_LOCK));
 
@@ -283,5 +271,5 @@
 
 		if (ret) {
-			/* ã¡ã³ãã¼ã·ãããªãã¼ããéä¿¡ */
+			/* メンバーシップリポートを送信 */
 			igmp_send_report_v2(ip4h->src);
 		}
@@ -305,5 +293,5 @@
 		return false;
 
-	/* IGMP ããããè¨­å®ããã*/
+	/* IGMP ヘッダを設定する。*/
 	igmph = GET_IGMPV2_HDR(output, IF_IP4_IGMP_HDR_OFFSET);
 	igmph->type = IGMP_MEMBERSHIP_REPORT_V2;
@@ -311,17 +299,17 @@
 	igmph->addr = htonl(dst);
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)GET_IGMP_SDU(output, IF_IP4_IGMP_HDR_OFFSET) + len,
 			0, (size_t)(align - len));
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	igmph->sum = 0;
 	igmph->sum = in_cksum(igmph, (uint_t)(IGMP_HDR_SIZE + align));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_IGMP(net_count_igmp.out_octets,
 		output->len - GET_IF_IP4_HDR_SIZE(output));
@@ -335,6 +323,5 @@
 
 /*
-*  igmp_timer -- IGMP å
-±éã¿ã¤ãã¼
+*  igmp_timer -- IGMP 共通タイマー
 */
 static void igmp_timer(void *ignore)
@@ -367,5 +354,5 @@
 
 /*
-*  igmp_init -- IGMP æ©è½ãåæåããã
+*  igmp_init -- IGMP 機能を初期化する。
 */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.cfg	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  IGMP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  IGMP コンフィギュレーションファイル
  */
 
 #if defined(_IP4_CFG) && defined(SUPPORT_IGMP)
 
-/* IGMP ã°ã«ã¼ãæ´æ°ç¨ã»ããã© */
+/* IGMP グループ更新用セマフォ */
 
 CRE_SEM(SEM_IGMP_GROUP_LOCK, { TA_TPRI, 1, 1 });
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_igmp.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  *
  *  @(#) $Id$
@@ -47,64 +35,60 @@
 #define _IP_IGMP_H_
 
-#define NUM_IGMP_ENTRY				5	/* ãã«ãã­ã£ã¹ãã°ã«ã¼ãã®ã¨ã³ããªæ° */
+#define NUM_IGMP_ENTRY				5	/* マルチキャストグループのエントリ数 */
 
  /*
-  *  IGMPv1 ãããã®å®ç¾©ãRFC 1112
+  *  IGMPv1 ヘッダの定義、RFC 1112
   */
 
 typedef struct t_igmpv1_hdr
 {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		unused;		/* æªä½¿ç¨			*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
-	T_IN4_ADDR	addr;		/* ã°ã«ã¼ãã¢ãã¬ã¹ */
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		unused;		/* 未使用			*/
+	uint16_t	sum;		/* チェックサム		*/
+	T_IN4_ADDR	addr;		/* グループアドレス */
 }  __attribute__((packed)) T_IGMPV1_HDR;
 
 /*
-*  IGMPv2 ãããã®å®ç¾©ãRFC 2236
+*  IGMPv2 ヘッダの定義、RFC 2236
 */
 
 typedef struct t_igmpv2_hdr
 {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		time;		/* æå¤§å¿ç­æé		*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
-	T_IN4_ADDR	addr;		/* ã°ã«ã¼ãã¢ãã¬ã¹ */
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		time;		/* 最大応答時間		*/
+	uint16_t	sum;		/* チェックサム		*/
+	T_IN4_ADDR	addr;		/* グループアドレス */
 }  __attribute__((packed)) T_IGMPV2_HDR;
 
 typedef struct t_igmpv3_query_hdr
 {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		time;		/* æå¤§å¿ç­æé		*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
-	T_IN4_ADDR	grpaddr;	/* ã°ã«ã¼ãã¢ãã¬ã¹ */
-	uint8_t		sqrv;		/* Sãã©ã°ãQuerier Robustness Value */
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		time;		/* 最大応答時間		*/
+	uint16_t	sum;		/* チェックサム		*/
+	T_IN4_ADDR	grpaddr;	/* グループアドレス */
+	uint8_t		sqrv;		/* Sフラグ、Querier Robustness Value */
 	uint8_t		qqic;		/* Qurier's Query Interval Code */
-	uint16_t	num;		/* éä¿¡å
-ã®æ° */
-	T_IN4_ADDR	sdraddr;	/* éä¿¡å
-ã¢ãã¬ã¹ */
+	uint16_t	num;		/* 送信元の数 */
+	T_IN4_ADDR	sdraddr;	/* 送信元アドレス */
 }  __attribute__((packed)) T_IGMPV3Q_HDR;
 
 typedef struct t_igmp_group_record
 {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		len;		/* è£å©ãã¼ã¿é·		*/
-	uint16_t	num;		/* éä¿¡å
-ã®æ° */
-	T_IN4_ADDR	grpaddr;	/* ã°ã«ã¼ãã¢ãã¬ã¹ */
-	T_IN4_ADDR	sdraddr;	/* éä¿¡å
-ã¢ãã¬ã¹	*/
-							/* è£å©ãã¼ã¿		*/
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		len;		/* 補助データ長		*/
+	uint16_t	num;		/* 送信元の数 */
+	T_IN4_ADDR	grpaddr;	/* グループアドレス */
+	T_IN4_ADDR	sdraddr;	/* 送信元アドレス	*/
+							/* 補助データ		*/
 }  __attribute__((packed)) T_IGMP_GROUP_RECORD;
 
 typedef struct t_igmpv3_report_hdr
 {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		rsv1;		/* äºç´				*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
-	uint16_t	rsv2;		/* äºç´				*/
-	uint16_t	num;		/* ã°ã«ã¼ãã¬ã³ã¼ãã®æ° */
-	T_IGMP_GROUP_RECORD record;	/* ã°ã«ã¼ãã¬ã³ã¼ã */
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		rsv1;		/* 予約				*/
+	uint16_t	sum;		/* チェックサム		*/
+	uint16_t	rsv2;		/* 予約				*/
+	uint16_t	num;		/* グループレコードの数 */
+	T_IGMP_GROUP_RECORD record;	/* グループレコード */
 }  __attribute__((packed)) T_IGMPV3R_HDR;
 
@@ -121,15 +105,15 @@
 
 /*
-*  ã¡ãã»ã¼ã¸ã®å
+*  メッセージの型
 */
 
-#define IGMP_MEMBERSHIP_QUERY		0x11	/* ã¡ã³ãã¼ã·ããã¯ã¨ãªã¼		*/
-#define IGMP_MEMBERSHIP_REPORT		0x12	/* ã¡ã³ãã¼ã·ããã¬ãã¼ã		*/
-#define IGMP_MEMBERSHIP_REPORT_V2	0x16	/* ã¡ã³ãã¼ã·ããã¬ãã¼ã		*/
-#define IGMP_LEAVE_GROUP			0x17	/* ãªã¼ãã°ã«ã¼ã				*/
-#define IGMP_MEMBERSHIP_REPORT_V3	0x22	/* ã¡ã³ãã¼ã·ããã¬ãã¼ã		*/
+#define IGMP_MEMBERSHIP_QUERY		0x11	/* メンバーシップクエリー		*/
+#define IGMP_MEMBERSHIP_REPORT		0x12	/* メンバーシップレポート		*/
+#define IGMP_MEMBERSHIP_REPORT_V2	0x16	/* メンバーシップレポート		*/
+#define IGMP_LEAVE_GROUP			0x17	/* リーブグループ				*/
+#define IGMP_MEMBERSHIP_REPORT_V3	0x22	/* メンバーシップレポート		*/
 
 /*
-*  UDPéä¿¡ç«¯ç¹ãªãã·ã§ã³
+*  UDP通信端点オプション
 */
 
@@ -164,12 +148,12 @@
 
 /*
- *  IGMP ã°ã«ã¼ãã¨ã³ããª
+ *  IGMP グループエントリ
  */
 
 typedef struct igmp_entry
 {
-	int16_t		timer;		/* éä¿¡ã¾ã§ã®æé[ç§]	*/
-	int16_t		resptime;	/* æå¤§å¿ç­æé[ç§]	*/
-	T_IN4_ADDR	ip_addr;	/* IP ã¢ãã¬ã¹			*/
+	int16_t		timer;		/* 送信までの時間[秒]	*/
+	int16_t		resptime;	/* 最大応答時間[秒]	*/
+	T_IN4_ADDR	ip_addr;	/* IP アドレス			*/
 } T_IGMP_ENTRY;
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_input.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -141,5 +129,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -147,6 +135,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -158,5 +145,5 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼
+ *  データグラム再構成キュー
  */
 
@@ -165,5 +152,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -172,5 +159,5 @@
 
 /*
- *  ip_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãç²å¾ããã
+ *  ip_get_frag_queue -- データグラム再構成キューを獲得する。
  */
 
@@ -182,5 +169,5 @@
 
 /*
- *  ip_freef -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã
+ *  ip_freef -- データグラム再構成キューを解放する。
  */
 
@@ -200,5 +187,5 @@
 
 /*
- *  ip_frag_timer -- ãã¼ã¿ã°ã©ã åæ§æç®¡çã¿ã¤ã
+ *  ip_frag_timer -- データグラム再構成管理タイマ
  */
 
@@ -223,5 +210,5 @@
 
 /*
- *  ip_reass -- ãã¼ã¿ã°ã©ã ãåæ§æããã
+ *  ip_reass -- データグラムを再構成する。
  */
 
@@ -247,5 +234,5 @@
 
 	/*
-	 *  IDãIPã¢ãã¬ã¹ãä¸ä½ãã­ãã³ã«ãç°ãªããã©ã°ã¡ã³ããã­ã¥ã¼ã«æãã°ç ´æ£ããã
+	 *  ID、IPアドレス、上位プロトコルが異なるフラグメントがキューに有れば破棄する。
 	 */
 	frag = ip_frag_queue[ix];
@@ -264,6 +251,5 @@
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN], 1);
 
-		/* æ°è¦ã® ID ãªããå®å
-ã¢ãã¬ã¹ãä¿å­ãã¦ãã­ã¥ã¼ã«ã¤ãªãã*/
+		/* 新規の ID なら、宛先アドレスを保存して、キューにつなぐ。*/
 		frag_dst  [ix] = dst;
 		ip_frag_queue[ix] = input;
@@ -271,11 +257,10 @@
 		input = NULL;
 
-		/* åæ§æã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+		/* 再構成タイムアウトを設定する。*/
 		ip4h->ttl = IP4_FRAGTTL;
 		}
 	else {
 
-		/* æ­£ããä½ç½®ã«æ¿å
-¥ããã*/
+		/* 正しい位置に挿入する。*/
 		prev = NULL;
 		while (frag != NULL &&
@@ -294,10 +279,9 @@
 		input = NULL;
 
-		/* å
-¨ã¦ã®ãã©ã°ã¡ã³ããæã£ã¦ãããèª¿ã¹ãã*/
+		/* 全てのフラグメントが揃っているか調べる。*/
 		off = 0;
 		for (frag = ip_frag_queue[ix]; frag != NULL; frag = GET_QIP4_HDR(frag)->next) {
 			if ((IP4_FLGOFF_OFF(GET_QIP4_HDR(frag)->flg_off) << 3) != off) {
-				/* éä¸­ãæãã¦ãããçµäºããã*/
+				/* 途中が抜けていたら終了する。*/
 				syscall(sig_sem(SEM_IP4_FRAG_QUEUE));
 				return NULL;
@@ -307,14 +291,13 @@
 			}
 
-		/* å
-¨ã¦ã®ãã©ã°ã¡ã³ããæã£ããåæ§æããã*/
+		/* 全てのフラグメントが揃ったら再構成する。*/
 		if ((GET_QIP4_HDR(prev)->flg_off & IP4_MF) == 0) {
 
-			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			/* ネットワークバッファを獲得する。*/
 			if (tget_net_buf(&input, IF_IP4_HDR_SIZE + off, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
 				NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_OK], 1);
 				NET_COUNT_MIB(ip_stats.ipReasmOKs, 1);
 
-				/* IPv4 ããããè¨­å®ããã*/
+				/* IPv4 ヘッダを設定する。*/
 				frag  = ip_frag_queue[ix];
 				ip4h  = GET_IP4_HDR(input);
@@ -326,5 +309,5 @@
 				ip4h->flg_off = ip4h->id = 0;
 
-				/* ãã¼ã¿ã°ã©ã ãåæ§æããã*/
+				/* データグラムを再構成する。*/
 				off = IP4_HDR_SIZE;
 				while (frag != NULL) {
@@ -340,5 +323,5 @@
 				NET_COUNT_MIB(ip_stats.ipReasmFails, 1);
 				}
-			/* ã­ã¥ã¼ãç©ºã«ããã*/
+			/* キューを空にする。*/
 			ip_freef(ix);
 			}
@@ -351,5 +334,5 @@
 
 /*
- *  ip_init -- IP ã®åæå
+ *  ip_init -- IP の初期化
  */
 
@@ -361,5 +344,5 @@
 
 /*
- *  ip_remove_options -- IPv4 ãããã®ãªãã·ã§ã³ãåé¤ããä»¥éãåã«è©°ããã
+ *  ip_remove_options -- IPv4 ヘッダのオプションを削除し、以降を前に詰める。
  */
 
@@ -385,12 +368,10 @@
 
 /*
- *  ip_input -- IP ã®å
-¥åé¢æ°
+ *  ip_input -- IP の入力関数
  */
 
 #if defined(SUPPORT_IPSEC)
 /*
- * TODO: IPsec SPãæ¤ç´¢ãããã±ããããªã¸ã§ã¯ããããã©ããå¤å®ããå¦çãå®è£
-ãã
+ * TODO: IPsec SPを検索し、パケットをリジェクトするかどうか判定する処理を実装する
  */
 #endif /* of defined(SUPPORT_IPSEC) */
@@ -408,5 +389,5 @@
 	NET_COUNT_MIB(ip_stats.ipInReceives, 1);
 
-	/* IP ãããã®é·ãããã§ãã¯ããã*/
+	/* IP ヘッダの長さをチェックする。*/
 	if (input->len < IF_IP4_HDR_SIZE) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
@@ -418,5 +399,5 @@
 	hlen = GET_IP4_HDR_SIZE(input);
 
-	/* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/
+	/* バージョンをチェックする。*/
 	if (IP4_VHL_V(ip4h->vhl) != IPV4_VERSION) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_VER], 1);
@@ -425,11 +406,11 @@
 		}
 
-	/* IP ãããã®é·ãããã§ãã¯ãããªãã·ã§ã³ãè§£æããã*/
+	/* IP ヘッダの長さをチェックし、オプションを解析する。*/
 	if (hlen > IP4_HDR_SIZE) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_OPTS], 1);
-		/* %%% ãªãã·ã§ã³ã®è§£æ %%% */
-		}
-
-	/* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/
+		/* %%% オプションの解析 %%% */
+		}
+
+	/* データグラム長をチェックする。*/
 	if (ntohs(ip4h->len) > input->len - IF_HDR_SIZE) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
@@ -438,8 +419,8 @@
 		}
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®é·ãããã¼ã¿ã°ã©ã é·ã«èª¿æ´ããã*/
+	/* ネットワークバッファの長さをデータグラム長に調整する。*/
 	input->len = (uint16_t)(ntohs(ip4h->len) + IF_HDR_SIZE);
 
-	/* ãã§ãã¯ãµã ããã§ãã¯ããã*/
+	/* チェックサムをチェックする。*/
 	if (in_cksum(ip4h, hlen) != 0) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_CKSUM], 1);
@@ -448,11 +429,10 @@
 		}
 
-	/* IP ãããã®é·ãããã§ãã¯ããä¸ä½ã ICMP ä»¥å¤ã¯ãªãã·ã§ã³ãæ¶å»ããã*/
+	/* IP ヘッダの長さをチェックし、上位が ICMP 以外はオプションを消去する。*/
 	if (hlen > IP4_HDR_SIZE && ip4h->proto != IPPROTO_ICMP) {
 		memset((uint8_t*)ip4h + IP4_HDR_SIZE, 0, hlen - IP4_HDR_SIZE);
 		}
 
-	/* éä¿¡å
-ã¢ãã¬ã¹ããã§ãã¯ããã*/
+	/* 送信元アドレスをチェックする。*/
 	src = ntohl(ip4h->src);
 	bc  = (ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask;
@@ -476,6 +456,5 @@
 #endif	/* of #ifdef SUPPORT_LOOP */
 
-	/* ãã¦å
-ã¢ãã¬ã¹ããã§ãã¯ããã*/
+	/* あて先アドレスをチェックする。*/
 	dst = ntohl(ip4h->dst);
 
@@ -483,6 +462,6 @@
 
 	/*
-	 *  DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©ã®
-	 *  å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+	 *  DHCP_CFG が定義されているときは、ローカルアドレスが未定義の
+	 *  場合もデータグラムを受信する。
 	 */
 
@@ -529,5 +508,5 @@
 #ifdef IP4_CFG_FRAGMENT
 
-	/* åå²ããã¦ããããã§ãã¯ããã*/
+	/* 分割されているかチェックする。*/
 	if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
 		if ((input = ip_reass(ip4h, input)) == NULL)
@@ -537,5 +516,5 @@
 #else	/* of #ifdef IP4_CFG_FRAGMENT */
 
-	/* åå²ããã¦ããããã§ãã¯ããã*/
+	/* 分割されているかチェックする。*/
 	if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
 		T_IN4_ADDR	src;
@@ -555,5 +534,5 @@
 
 #if defined(SUPPORT_IPSEC)
-	/* ããã§ipsec4_in_rejectãå®è¡ãã */
+	/* ここでipsec4_in_rejectを実行する */
 	if ((ip4h->proto != IPPROTO_ESP) && ipsec4_in_reject (input)) {
 		goto buf_rel;
@@ -561,5 +540,5 @@
 #endif /* of #if defined(SUPPORT_IPSEC) */
 
-	/* ãã­ãã³ã«ãé¸æãã */
+	/* プロトコルを選択する */
 	switch (ip4h->proto) {
 
@@ -607,5 +586,5 @@
 		NET_COUNT_MIB(ip_stats.ipInUnknownProtos, 1);
 
-		/* ã­ã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/
+		/* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
 		if (dst == ifp->in4_ifaddr.addr) {
 			T_IN4_ADDR	src;
@@ -616,6 +595,6 @@
 			}
 		/*
-		 *  icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§
-		 *  éæ¾ãã¦ããçµäºããã
+		 *  icmp_error では、ネットワークバッファ input を返却しないので
+		 *  開放してから終了する。
 		 */
 		break;
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_output.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_output.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_output.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -123,7 +111,7 @@
 
 /*
- *  IP output -- IP ã®åºåé¢æ°
- *
- *    æ³¨æ: ãã¼ã¸ã§ã³ã¨ãããé·ã¯ä¸ä½å±¤ã§è¨­å®ããã
+ *  IP output -- IP の出力関数
+ *
+ *    注意: バージョンとヘッダ長は上位層で設定する。
  */
 
@@ -144,7 +132,7 @@
 
 #ifdef SUPPORT_IPSEC
-        /* XXX: IPsecã®å¦çã¯ãã±ããæ­çåã®åã«è¡ããã */
-
-	/* SPDãåå¾ãã */
+        /* XXX: IPsecの処理はパケット断片化の前に行われる */
+
+	/* SPDを取得する */
 	sp = ipsec4_getpolicybyaddr(output, IPSEC_DIR_OUTBOUND, &ipsec_error);
 	if (sp==NULL) {
@@ -153,5 +141,5 @@
         }
 
-        /* ããªã·ããã§ãã¯ãã*/
+        /* ポリシをチェックする*/
 #if 0
         switch (sp->policy) {
@@ -165,7 +153,7 @@
 
         case  IPSEC_POLICY_IPSEC:
-                /* XXX: SH2ã§ã¯ããã§illegal Instructionãçºçãããã³ã³ãã¤ã©ã®ãã°? */
+                /* XXX: SH2ではここでillegal Instructionが発生する。コンパイラのバグ? */
                 if (sp->req == NULL) {
-                        /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã */
+                        /* 鍵交換デーモンに対してSAの取得を要求する */
                         goto bad;
                 }
@@ -173,11 +161,10 @@
 
         default:
-                /* ä¸æ­£ãªããªã· */
+                /* 不正なポリシ */
                 goto bad;
                 break;
         }
 #else /* 0 */
-        /* XXX: ã³ã³ãã¤ã©ã®ä¸å
-·ååé¿ã®ãã switchãããifæã§æ¸ãç´ãã */
+        /* XXX: コンパイラの不具合回避のため switchをやめif文で書き直した */
         policy = sp->spinitb->policy;
 
@@ -188,5 +175,5 @@
         else if (policy == IPSEC_POLICY_IPSEC) {
                 if (sp->req == NULL)
-                        /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã */
+                        /* 鍵交換デーモンに対してSAの取得を要求する */
                         goto bad;
         } else
@@ -199,11 +186,10 @@
 
 			state.m = output;
-			/* XXX: ipsec4_output()å
-ã§ã¯ãip->{len,off}ããããã¯ã¼ã¯ãã¤ããªã¼ãã¨ãã */
+			/* XXX: ipsec4_output()内では、ip->{len,off}をネットワークバイトオーダとする */
 			error = ipsec4_output (&state, sp, 0 /* flags */ );
 			output = state.m;
 
 			if (error) {
-				/* net_buf ã¯ipsec4_outputã«ãã£ã¦æ¢ã«è§£æ¾ããã¦ãã */
+				/* net_buf はipsec4_outputによって既に解放されている */
 				switch (error) {
 				default:
@@ -213,7 +199,6 @@
 		}
 
-        /* ipsec4_outputã«å½±é¿ãåããå¤ãæ´æ°ãã */
-        /* XXX: å¿
-è¦ã? */
+        /* ipsec4_outputに影響を受けた値を更新する */
+        /* XXX: 必要か? */
 
 skip_ipsec:
@@ -227,7 +212,6 @@
 
 	/*
-	 *  ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶
-ãã¦ããã°ã
-	 *  åå²ãã¦éä¿¡ããã
+	 *  データグラムサイズがネットワークの MTU を超えていれば、
+	 *  分割して送信する。
 	 */
 	if (ntohs(ip4h->len) > IF_MTU) {
@@ -247,14 +231,14 @@
 				flen = len - off;
 
-			/* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã	*/
+			/* データ長は 4 オクテット境界に調整する。	*/
 			align = (flen + 3) >> 2 << 2;
 
-			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			/* ネットワークバッファを獲得する。*/
 			if (tget_net_buf(&frag, align + IF_IP4_HDR_SIZE, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
 
-				/* ãã©ã°ã¡ã³ããã³ãã¼ããã*/
+				/* フラグメントをコピーする。*/
 				memcpy(GET_IP4_SDU(frag), (uint8_t *)ip4h + off, flen);
 
-				/* ããããåããã*/
+				/* ヘッダを埋める。*/
 				fip4h		= GET_IP4_HDR(frag);
 				*fip4h		= *ip4h;
@@ -279,5 +263,5 @@
 				}
 			else {
-				/* ç²å¾ã§ããªããã°ãéä¿¡ããããããã*/
+				/* 獲得できなければ、送信をあきらめる。*/
 				syscall(rel_net_buf(output));
 				NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
@@ -294,5 +278,5 @@
 	else {
 
-		/* ããããåããã*/
+		/* ヘッダを埋める。*/
 		ip4h->id  = htons(frag_id);
 		frag_id ++;
@@ -312,10 +296,9 @@
 	ip4h = GET_IP4_HDR(output);
 
-	/* ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶
-ãã¦ããã°ã¨ã©ã¼ */
+	/* データグラムサイズがネットワークの MTU を超えていればエラー */
 	if (ntohs(ip4h->len) > IF_MTU)
 		return E_PAR;
 
-	/* ããããåããã*/
+	/* ヘッダを埋める。*/
 	ip4h->id  = htons(frag_id);
 	frag_id ++;
@@ -327,5 +310,5 @@
 
 #ifdef ETHER_CFG_MULTICAST
-	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯IPã¢ãã¬ã¹ã¯ãã®ã¾ã¾ */
+	/* マルチキャストアドレスの場合はIPアドレスはそのまま */
 	gw = ntohl(ip4h->dst);
 	if(!IN4_IS_ADDR_MULTICAST(gw))
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/ip_var.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -87,5 +75,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.cfg	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  TCP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  TCP で使用するカーネルオブジェクト
  */
 
 #ifdef SUPPORT_TCP
 
-/* åºåã¿ã¹ã¯ */
+/* 出力タスク */
 
 CRE_TSK(TCP_OUTPUT_TASK, {
@@ -61,5 +49,5 @@
 	});
 
-/* ã»ããã© */
+/* セマフォ */
 
 CRE_SEM(SEM_TCP_POST_OUTPUT,	{ TA_TPRI, 0, 1 });
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,24 +72,21 @@
 
 /*
- *  TCP ããããRFC 793 åç
-§
+ *  TCP ヘッダ、RFC 793 参照
  */
 
 typedef struct t_tcp_hdr {
-	uint16_t	sport;		/* éä¿¡å
-ãã¼ãçªå·			*/
-	uint16_t	dport;		/* å®å
-ãã¼ãçªå·			*/
+	uint16_t	sport;		/* 送信元ポート番号			*/
+	uint16_t	dport;		/* 宛先ポート番号			*/
 
-	uint32_t	seq;		/* SEQ çªå·				*/
+	uint32_t	seq;		/* SEQ 番号				*/
 
-	uint32_t	ack;		/* ACK çªå·				*/
+	uint32_t	ack;		/* ACK 番号				*/
 
-	uint8_t		doff;		/* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã)	*/
-	uint8_t		flags;		/* ãã©ã°(ä¸ä½6ããã)			*/
-	uint16_t	win;		/* ã¦ã£ã³ããµã¤ãº			*/
+	uint8_t		doff;		/* データオフセット(上位4ビット)	*/
+	uint8_t		flags;		/* フラグ(下位6ビット)			*/
+	uint16_t	win;		/* ウィンドサイズ			*/
 
-	uint16_t	sum;		/* ãã§ãã¯ãµã 				*/
-	uint16_t	urp;		/* ç·æ¥ãã¤ã³ã¿				*/
+	uint16_t	sum;		/* チェックサム				*/
+	uint16_t	urp;		/* 緊急ポインタ				*/
 	} __attribute__((packed, aligned(2)))T_TCP_HDR;
 
@@ -109,5 +94,5 @@
 
 /*
- *  TCP ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ *  TCP ヘッダ構造体メンバアクセスマクロ
  */
 
@@ -117,51 +102,50 @@
 
 /*
- *  TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ã®å®ç¾©
+ *  TCP ヘッダのフラグフィールドの値の定義
  */
 
-#define TCP_FLG_FIN		UINT_C(0x01)	/* FIN:	æçµ			*/
-#define TCP_FLG_SYN		UINT_C(0x02)	/* SYN:	åæ			*/
-#define TCP_FLG_RST		UINT_C(0x04)	/* RST:	ã³ãã¯ã·ã§ã³ã®ãªã»ãã	*/
-#define TCP_FLG_PUSH		UINT_C(0x08)	/* PUSH:ããã·ã¥æ©è½		*/
-#define TCP_FLG_ACK		UINT_C(0x10)	/* ACK:	è¯å®å¿ç­		*/
-#define TCP_FLG_URG		UINT_C(0x20)	/* URG:	ç·æ¥æ
-å ±		*/
+#define TCP_FLG_FIN		UINT_C(0x01)	/* FIN:	最終			*/
+#define TCP_FLG_SYN		UINT_C(0x02)	/* SYN:	同期			*/
+#define TCP_FLG_RST		UINT_C(0x04)	/* RST:	コネクションのリセット	*/
+#define TCP_FLG_PUSH		UINT_C(0x08)	/* PUSH:プッシュ機能		*/
+#define TCP_FLG_ACK		UINT_C(0x10)	/* ACK:	肯定応答		*/
+#define TCP_FLG_URG		UINT_C(0x20)	/* URG:	緊急情報		*/
 
 /*
- *  TCP ãªãã·ã§ã³ã®å®ç¾©
+ *  TCP オプションの定義
  */
 
-/* ãªãã·ã§ã³ã®å */
+/* オプションの型 */
 
-#define TCP_OPT_EOL		UINT_C(0)	/* æçµ				*/
-#define TCP_OPT_NOP		UINT_C(1)	/* ä½ãããªã			*/
-#define TCP_OPT_MAXSEG		UINT_C(2)	/* æå¤§ã»ã°ã¡ã³ãé·		*/
-#define TCP_OPT_WINDOW		UINT_C(3)	/* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°		*/
-#define TCP_OPT_SACK_PERM	UINT_C(4)	/* é¸æ ACK è¨±å¯		*/
-#define TCP_OPT_SACK		UINT_C(5)	/* é¸æ ACK			*/
-#define TCP_OPT_TIMESTAMP	UINT_C(8)	/* ã¿ã¤ã ã¹ã¿ã³ã		*/
-#define TCP_OPT_CC		UINT_C(11)	/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_CCNEW		UINT_C(12)	/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_CCECHO		UINT_C(13)	/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_EOL		UINT_C(0)	/* 最終				*/
+#define TCP_OPT_NOP		UINT_C(1)	/* 何もしない			*/
+#define TCP_OPT_MAXSEG		UINT_C(2)	/* 最大セグメント長		*/
+#define TCP_OPT_WINDOW		UINT_C(3)	/* ウィンドスケーリング		*/
+#define TCP_OPT_SACK_PERM	UINT_C(4)	/* 選択 ACK 許可		*/
+#define TCP_OPT_SACK		UINT_C(5)	/* 選択 ACK			*/
+#define TCP_OPT_TIMESTAMP	UINT_C(8)	/* タイムスタンプ		*/
+#define TCP_OPT_CC		UINT_C(11)	/* 接続カウント			*/
+#define TCP_OPT_CCNEW		UINT_C(12)	/* 接続カウント			*/
+#define TCP_OPT_CCECHO		UINT_C(13)	/* 接続カウント			*/
 
-/* ãªãã·ã§ã³ã®é·ã */
+/* オプションの長さ */
 
-#define TCP_OPT_LEN_MAXSEG	4		/* æå¤§ã»ã°ã¡ã³ãé·		*/
-#define TCP_OPT_LEN_WINDOW	3		/* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°		*/
-#define TCP_OPT_LEN_SACK_PERM	4		/* é¸æ ACK è¨±å¯		*/
-#define TCP_OPT_LEN_SACK	5		/* é¸æ ACK			*/
-#define TCP_OPT_LEN_TIMESTAMP	10		/* ã¿ã¤ã ã¹ã¿ã³ã		*/
-#define TCP_OPT_LEN_CC		6		/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_LEN_CCNEW	6		/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_LEN_CCECHO	6		/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_LEN_MAXSEG	4		/* 最大セグメント長		*/
+#define TCP_OPT_LEN_WINDOW	3		/* ウィンドスケーリング		*/
+#define TCP_OPT_LEN_SACK_PERM	4		/* 選択 ACK 許可		*/
+#define TCP_OPT_LEN_SACK	5		/* 選択 ACK			*/
+#define TCP_OPT_LEN_TIMESTAMP	10		/* タイムスタンプ		*/
+#define TCP_OPT_LEN_CC		6		/* 接続カウント			*/
+#define TCP_OPT_LEN_CCNEW	6		/* 接続カウント			*/
+#define TCP_OPT_LEN_CCECHO	6		/* 接続カウント			*/
 
 /*
- *  TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
+ *  TCP 最大セグメントサイズ
  */
 
 /*
- *  IPv4 ã® TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
- *  IP4_MSS ã¯ 576 ã§ãæ¨æºã® IPv4 ãããé· (20) ã¨
- *  TCP ãããé· (20) ãå¼ããå¤ 536 ã§ãããã512 ãæ¨æºã¨ããã
+ *  IPv4 の TCP 最大セグメントサイズ
+ *  IP4_MSS は 576 で、標準の IPv4 ヘッダ長 (20) と
+ *  TCP ヘッダ長 (20) を引いた値 536 であるが、512 を標準とする。
  */
 
@@ -169,7 +153,7 @@
 
 /*
- *  IPv6 ã® TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
- *  IPV6_MMTU ã¯ 1280 ã§ãæ¨æºã® IPv6 ãããé· (40) ã¨
- *  TCP ãããé· (20) ãå¼ããå¤ 1220 ã§ãããã1024 ãæ¨æºã¨ããã
+ *  IPv6 の TCP 最大セグメントサイズ
+ *  IPV6_MMTU は 1280 で、標準の IPv6 ヘッダ長 (40) と
+ *  TCP ヘッダ長 (20) を引いた値 1220 であるが、1024 を標準とする。
  */
 
@@ -177,7 +161,7 @@
 
 /*
- *  TCP æå°ã»ã°ã¡ã³ããµã¤ãº
+ *  TCP 最小セグメントサイズ
  *
- *  256ï¼æå°ãªã³ã¯ MTUï¼- 40 = 216
+ *  256（最小リンク MTU）- 40 = 216
  */
 
@@ -185,5 +169,5 @@
 
 /*
- *  TCP æå¤§ã¦ã£ã³ãã¦ãµã¤ãº
+ *  TCP 最大ウィンドウサイズ
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,29 +72,21 @@
 
 /*
- *  TCP FSM ç¶æ
-ã®å®ç¾©ãRFC 793 åç
-§
+ *  TCP FSM 状態の定義、RFC 793 参照
  */
 
-#define TCP_FSM_CLOSED		0	/* ã¯ã­ã¼ãº				*/
-#define TCP_FSM_LISTEN		1	/* ååãªã¼ãã³				*/
-#define TCP_FSM_SYN_SENT	2	/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿		*/
-#define TCP_FSM_SYN_RECVD	3	/* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿		*/
-#define TCP_FSM_ESTABLISHED	4	/* ã³ãã¯ã·ã§ã³éè¨­å®äº			*/
-#define TCP_FSM_CLOSE_WAIT	5	/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
-ã¡	*/
-#define TCP_FSM_FIN_WAIT_1	6	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
-ã¡	*/
-#define TCP_FSM_CLOSING		7	/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-#define TCP_FSM_LAST_ACK	8	/* APP ãçµäºãACK å¾
-ã¡			*/
-#define TCP_FSM_FIN_WAIT_2	9	/* ç¸æããã® FIN å¾
-ã¡			*/
-#define TCP_FSM_TIME_WAIT	10	/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
-ã¡	*/
+#define TCP_FSM_CLOSED		0	/* クローズ				*/
+#define TCP_FSM_LISTEN		1	/* 受動オープン				*/
+#define TCP_FSM_SYN_SENT	2	/* 能動オープン、SYN 送信済み		*/
+#define TCP_FSM_SYN_RECVD	3	/* 受動オープン、SYN 受信済み		*/
+#define TCP_FSM_ESTABLISHED	4	/* コネクション開設完了			*/
+#define TCP_FSM_CLOSE_WAIT	5	/* 相手から FIN 受信、APP の終了待ち	*/
+#define TCP_FSM_FIN_WAIT_1	6	/* APP が終了、FIN 送信済み、ACK 待ち	*/
+#define TCP_FSM_CLOSING		7	/* 同時クローズ、FIN 交換済み、ACK 待ち	*/
+#define TCP_FSM_LAST_ACK	8	/* APP が終了、ACK 待ち			*/
+#define TCP_FSM_FIN_WAIT_2	9	/* 相手からの FIN 待ち			*/
+#define TCP_FSM_TIME_WAIT	10	/* 相手からの FIN 受信済み、時間待ち	*/
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_input.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -128,9 +116,9 @@
 
 /*
- *  æ»ãå¤
+ *  戻り値
  *
- *      RET_OK		æ­£å¸¸
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *      RET_OK		正常
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -142,5 +130,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -159,5 +147,5 @@
 
 /*
- *  parse_option -- TCP ãããã®ãªãã·ã§ã³ãè§£æããã
+ *  parse_option -- TCP ヘッダのオプションを解析する。
  */
 
@@ -214,5 +202,5 @@
 
 /*
- *  set_rexmt_timer -- æ°ããå¾å¾©æéãåéããåéã¿ã¤ããæ´æ°ããã
+ *  set_rexmt_timer -- 新しい往復時間を収集し、再送タイマを更新する。
  */
 
@@ -225,20 +213,20 @@
 	if (cep->srtt != 0) {
 		/*
-		 *  srtt: å¹³æ»åããã RTT
+		 *  srtt: 平滑化された RTT
 		 *
-		 *  è¨æ¸¬ããã RTT (rtt) ã¨ç¾å¨ã®å¹³æ»åããã RTT (srtt) ã®å·® (delta) ãæ±ããã
+		 *  計測された RTT (rtt) と現在の平滑化された RTT (srtt) の差 (delta) を求める。
 		 *
-		 *  delta ã¯ 2 ãããå·¦ã·ãã ( 4 å) ããå¤ã§ä¿æããã
-		 *  srtt  ã¯ 5 ãããå·¦ã·ãã (32 å) ããå¤ã§ä¿æããã¦ããã
+		 *  delta は 2 ビット左シフト ( 4 倍) した値で保持する。
+		 *  srtt  は 5 ビット左シフト (32 倍) した値で保持されている。
 		 *
 		 *    delta = rtt / 8 - srtt / 8
 		 *
-		 *  æ°ãã srtt ã¯
+		 *  新しい srtt は
 		 *
 		 *    srtt = rtt / 8 + srtt * 7 / 8
 		 *         = srtt + (rtt / 8 - srtt / 8)
 		 *
-		 *  ã§è¨ç®ããã
-		 *  ãã®ãããrtt ã 2 ãããå·¦ã·ããããsrtt ã (5 - 2) ãããå³ã·ãããã¦ delta ãæ±ããã
+		 *  で計算する。
+		 *  このため、rtt を 2 ビット左シフトし、srtt を (5 - 2) ビット右シフトして delta を求める。
 		 */
 		delta = ((rtt - 1) << TCP_DELTA_SHIFT) - (cep->srtt >> (TCP_SRTT_SHIFT - TCP_DELTA_SHIFT));
@@ -248,5 +236,5 @@
 
 		/*
-		 *  delta ã®çµ¶å¯¾å¤ | delta | ãæ±ããã
+		 *  delta の絶対値 | delta | を求める。
 		 */
 		if (delta < 0)
@@ -254,16 +242,16 @@
 
 		/*
-		 *  rttvar: å¹³æ»åãããåæ£
+		 *  rttvar: 平滑化された分散
 		 *
-		 *  rttvar ã¯ 4 ãããå·¦ã·ãã (16 å) ããå¤ã§ä¿æããã¦ããã
+		 *  rttvar は 4 ビット左シフト (16 倍) した値で保持されている。
 		 *
 		 *    delta = |delta| / 4 - rttvar / 4
 		 *
-		 *  æ°ãã rttvar ã¯
+		 *  新しい rttvar は
 		 *
 		 *    rttvar = |delta|/ 4 + rttvar * 3 /4
 		 *           = rttvar + (|delta| / 4 - rttvar / 4)
 		 *
-		 *  ã§è¨ç®ããã
+		 *  で計算する。
 		 */
 		delta -= cep->rttvar >> (TCP_RTTVAR_SHIFT - TCP_DELTA_SHIFT);
@@ -274,7 +262,7 @@
 	else {
 		/*
-		 *  ã¾ã  srtt ã®è¨­å®ãè¡ããã¦ããªãã¨ãã¯ãä»åè¨æ¸¬ããã RTT ãä½¿ç¨ããã
-		 *  å¹³æ»åããã RTT (srtt) ã«ã¯ãRTT ã 5 ãããå·¦ã·ãã (32å) ããå¤ã
-		 *  å¹³æ»åãããåæ£ (rttvar) ã«ã¯ãRTT ã® 1/2 ã 4 ãããå·¦ã·ãã (16å) ããå¤ã
+		 *  まだ srtt の設定が行われていないときは、今回計測された RTT を使用する。
+		 *  平滑化された RTT (srtt) には、RTT を 5 ビット左シフト (32倍) した値。
+		 *  平滑化された分散 (rttvar) には、RTT の 1/2 を 4 ビット左シフト (16倍) した値。
 		 */
 		cep->srtt   = rtt <<  TCP_SRTT_SHIFT;
@@ -283,10 +271,10 @@
 
 	/*
-	 *  rtt ã®æ¸¬å®ãçµäºããåéåæ°ããªã»ããããã
+	 *  rtt の測定を終了し、再送回数をリセットする。
 	 */
 	cep->rtt = cep->rxtshift = 0;
 
 	/*
-	 *  RTT ã«è¨±ãããæå°å¤ ã¨ rtt + 2 ã®å¤§ããªå¤ã®æ¹ãåéã¿ã¤ã ã¢ã¦ãã®æå°å¤ã«ããã
+	 *  RTT に許される最小値 と rtt + 2 の大きな値の方を再送タイムアウトの最小値にする。
 	 */
 	if (rtt + 2 < TCP_TVAL_MIN)
@@ -301,5 +289,5 @@
 
 /*
- *  reassemble -- åä¿¡ã»ã°ã¡ã³ããåæ§æãããé çªéãã«åä¿¡ããã¨ãã®å¦ç
+ *  reassemble -- 受信セグメントを再構成する。順番通りに受信したときの処理
  */
 
@@ -313,5 +301,5 @@
 	if (tcph->sum > cep->rbufsz - cep->rwbuf_count) {
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ç©ºãããªãã¨ãã¯ç ´æ£ããã
+		 *  受信ウィンドバッファに空きがないときは破棄する。
 		 */
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DROP_SEGS], 1);
@@ -324,7 +312,7 @@
 	         cep->fsm_state == TCP_FSM_ESTABLISHED) {
 		/*
-		 *  é çªéãã«ã»ã°ã¡ã³ããåä¿¡ããæã®å¦ç
-		 *  åä¿¡ã»ã°ã¡ã³ãã®ä¸¦ã¹æ¿ãã¯ä¸è¦ãªã®ã§
-		 *  ãã®ã¾ã¾åä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã
+		 *  順番通りにセグメントを受信した時の処理
+		 *  受信セグメントの並べ替えは不要なので
+		 *  そのまま受信ウィンドバッファに書き込む。
 		 */
 
@@ -341,12 +329,11 @@
 		qhdr = GET_TCP_Q_HDR(input, thoff);
 
-		/*  TCP ãããã®ä½ç½®ãä¿å­ããã*/
+		/*  TCP ヘッダの位置を保存する。*/
 		SET_IP_TCP_Q_HDR_OFFSET(input, thoff);
 
-		/* SDU ã®ãªãã»ããï¼å
-ã¯ã¦ã£ã³ããµã¤ãºï¼ããªã»ããããã*/
+		/* SDU のオフセット（元はウィンドサイズ）をリセットする。*/
 		qhdr->soff = 0;
 
-		/* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/
+		/* データを受信ウィンドバッファに書き込む。*/
 		TCP_WRITE_RWBUF(cep, input, thoff);
 		}
@@ -359,11 +346,10 @@
 
 /*
- *  listening -- ååãªã¼ãã³ãã¦ï¼ç¶æ
-ã LISTEN ã®å¦ç
+ *  listening -- 受動オープンして，状態が LISTEN の処理
  *
- *    æ»ãå¤:
- *      RET_OK		æ­£å¸¸
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_OK		正常
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -376,5 +362,5 @@
 
 	/* 
-	 *  ãã©ã°ã« RST ãã»ããããã¦ããã°ç ´æ£ããã
+	 *  フラグに RST がセットされていれば破棄する。
 	 */
 	if (tcph->flags & TCP_FLG_RST)
@@ -382,6 +368,6 @@
 
 	/*  
-	 *  ãã©ã°ã« ACK ãã»ãããã¦ãããã°ã
-	 *  ãªã»ãããéã£ã¦ç ´æ£ããã
+	 *  フラグに ACK がセットさてれいれば、
+	 *  リセットを送って破棄する。
 	 */
 	if (tcph->flags & TCP_FLG_ACK)
@@ -389,5 +375,5 @@
 
 	/* 
-	 *  ãã©ã°ã« SYN ãã»ããããã¦ããªããã°ãã°ç ´æ£ããã
+	 *  フラグに SYN がセットされていなければれば破棄する。
 	 */
 	if ((tcph->flags & TCP_FLG_SYN) == 0)
@@ -395,21 +381,21 @@
 
 	/*
-	 *  åä¿¡å¯è½ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ã§ãããã¨ãç¢ºèªããã
+	 *  受信可能な IP アドレスとポート番号であることを確認する。
 	 */
 	if (!tcp_is_addr_accept(input, thoff))
 		return RET_DROP;
 
-	/* ç¸æã®ã¢ãã¬ã¹ãè¨é²ããã*/
+	/* 相手のアドレスを記録する。*/
 	IN_COPY_TO_HOST(&cep->dstaddr.ipaddr, input);
 	cep->dstaddr.portno = tcph->sport;
 
-	/* ãªãã·ã§ã³ãå¦çããã*/
+	/* オプションを処理する。*/
 	parse_option(tcph, cep);
 
-	/* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	/* シーケンス番号を初期化する。*/
 	if (tcp_iss == 0)
 		tcp_init_iss();
 
-	/* èªåã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/
+	/* 自分のシーケンス番号の初期値を記録する。*/
 	if (iss != 0)
 		cep->iss = iss;
@@ -419,15 +405,15 @@
 	tcp_iss += TCP_ISS_INCR() / 4;
 
-	/* ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/
+	/* 相手のシーケンス番号の初期値を記録する。*/
 	cep->irs = tcph->seq;
 
-	/* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	/* 送受信シーケンス番号を初期化する。*/
 	init_send_seq(cep);
 	init_receive_seq(cep);
 
-	/* éä¿¡ã¦ã¤ã³ããµã¤ãºãè¨­å®ããã*/
+	/* 送信ウインドサイズを設定する。*/
 	cep->snd_wnd = tcph->win;
 
-	/* æçµè¨­å® */
+	/* 最終設定 */
 	cep->flags    |= TCP_CEP_FLG_ACK_NOW;
 	cep->fsm_state = TCP_FSM_SYN_RECVD;
@@ -438,11 +424,10 @@
 
 /*
- *  syn_sent -- è½åãªã¼ãã³ãã¦ãç¶æ
-ã SYN éä¿¡æ¸ã®å¦ç
+ *  syn_sent -- 能動オープンして、状態が SYN 送信済の処理
  *
- *    æ»ãå¤:
- *      RET_OK		æ­£å¸¸
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_OK		正常
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -453,9 +438,9 @@
 
 	/*
-	 *  ç¸æããåä¿¡ç¢ºèªãéããã¦æ¥ã¦ãã
+	 *  相手から受信確認が送られて来ても、
 	 *
-	 *    ACK <= iss && éä¿¡ããæå¤§ SEQ (snd_max) < ACK
+	 *    ACK <= iss && 送信した最大 SEQ (snd_max) < ACK
 	 *
-	 *  ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã
+	 *  なら、リセットを送ってセグメントを破棄する。
 	 */
 	if ((tcph->flags & TCP_FLG_ACK) &&
@@ -464,6 +449,6 @@
 
 	/*
-	 *  RST/ACK ãã©ã°ã®å¿ç­ãããã°ããã¼ããéãã¦ããªã
-	 *  ãã¨ãæå³ãã¦ããã
+	 *  RST/ACK フラグの応答があれば、ポートが開いていない
+	 *  ことを意味している。
 	 */
 	if (tcph->flags & TCP_FLG_RST) {
@@ -476,31 +461,29 @@
 
 	/*
-	 *  SYN ãã©ã°ããªããã°ã»ã°ã¡ã³ããç ´æ£ããã
+	 *  SYN フラグがなければセグメントを破棄する。
 	 */
 	if ((tcph->flags & TCP_FLG_SYN) == 0)
 		return RET_DROP;
 
-	cep->snd_wnd = tcph->win;	/* snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
-	cep->irs     = tcph->seq;	/* irs:     ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤	*/
-	init_receive_seq(cep);		/* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã		*/
+	cep->snd_wnd = tcph->win;	/* snd_wnd: 相手の受信可能ウィンドサイズ	*/
+	cep->irs     = tcph->seq;	/* irs:     相手のシーケンス番号の初期値	*/
+	init_receive_seq(cep);		/* 送受信シーケンス番号を初期化する。		*/
 
 	if (tcph->flags & TCP_FLG_ACK) {
 		/*
-		 *  ACK ãã©ã°ãããã¨ãã®å¦ç
+		 *  ACK フラグがあるときの処理
 		 *
-		 *  åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ (rcv_adv) ã
-		 *  åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº (rcv_wnd) åé²ããã
-		 */
-		cep->rcv_adv += cep->rcv_wnd;	/* rcv_adv: åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ	*/
-						/* rcv_wnd: åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº		*/
-
-		/* æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã SYN å (1 ãªã¯ããã) é²ããã*/
+		 *  受信を期待している最大の SEQ (rcv_adv) を
+		 *  受信可能なウィンドサイズ (rcv_wnd) 分進める。
+		 */
+		cep->rcv_adv += cep->rcv_wnd;	/* rcv_adv: 受信を期待している最大の SEQ	*/
+						/* rcv_wnd: 受信可能なウィンドサイズ		*/
+
+		/* 未確認の最小送信 SEQ (snd_una) を SYN 分 (1 オクテット) 進める。*/
 		cep->snd_una ++;
 
 #ifdef TCP_CFG_DELAY_ACK
 
-		if (tcph->sum != 0)		/* tcph->sum ã¯ SDU é· */
+		if (tcph->sum != 0)		/* tcph->sum は SDU 長 */
 			cep->flags |= TCP_CEP_FLG_DEL_ACK;
 		else
@@ -515,8 +498,7 @@
 		if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
 			/*
-			 *  CEP ã§ FIN éä¿¡ãè¦æ±ããã¦ããã°ã
-			 *  åæ­å¦çãéå§ãã
-			 *  CEP ã®ç¶æ
-ã FIN Wait 1 ã«ããã
+			 *  CEP で FIN 送信が要求されていれば、
+			 *  切断処理を開始し、
+			 *  CEP の状態を FIN Wait 1 にする。
 			 */
 			cep->fsm_state = TCP_FSM_FIN_WAIT_1;
@@ -526,8 +508,6 @@
 		else {
 			/*
-			 *  ç¸æãã ACK ãå¿ç­ãããã®ã§ã
-			 *  CEP ã®ç¶æ
-ã ã³ãã¯ã·ã§ã³éè¨­å®äºç¶æ
-ã«ããã
+			 *  相手から ACK が応答されたので、
+			 *  CEP の状態を コネクション開設完了状態にする。
 			 */
 			cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
@@ -540,5 +520,5 @@
 			if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
 
-				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				/* 相手のアドレスをコピーする。*/
 
 #if defined(_IP6_CFG) && defined(_IP4_CFG)
@@ -590,6 +570,5 @@
 		}
 	else {
-		/* ACK ãã©ã°ããªãã¨ãã¯ãACK ãéã£ã¦ãCEP ã®ç¶æ
-ã SYN åä¿¡æ¸ã¿ã«ããã*/
+		/* ACK フラグがないときは、ACK を送って、CEP の状態を SYN 受信済みにする。*/
 		cep->flags |= TCP_CEP_FLG_ACK_NOW;
 		cep->timer[TCP_TIM_REXMT] = 0;
@@ -601,5 +580,5 @@
 
 /*
- *  trim_length -- åä¿¡ãã SDU é·ãèª¿æ´ããã
+ *  trim_length -- 受信した SDU 長を調整する。
  */
 
@@ -608,28 +587,28 @@
 {
 	tcph->seq ++;
-	if (tcph->sum > cep->rcv_wnd) {		/* æ³¨æ: tcph->sum ã¯ SDU é· */
-		/*
-		 *  SDU é·ãåä¿¡ã¦ã£ã³ããµã¤ãºããå¤§ããã¨ãã¯ãåä¿¡ã¦ã£ã³ããµã¤ãºä»¥éã¯
-		 *  ç ´æ£ããFIN ã«å¿ç­ããªããã¨ã§ãç ´æ£ãããã¼ã¿ãåéãããã
+	if (tcph->sum > cep->rcv_wnd) {		/* 注意: tcph->sum は SDU 長 */
+		/*
+		 *  SDU 長が受信ウィンドサイズより大きいときは、受信ウィンドサイズ以降は
+		 *  破棄し、FIN に応答しないことで、破棄したデータを再送させる。
 		 */
 		tcph->sum    = (uint16_t)cep->rcv_wnd;
 		tcph->flags &= ~TCP_FLG_FIN;
 		}
-	cep->snd_wl1 = tcph->seq - 1;		/* cep->snd_wl1: ã¦ã£ã³ãæ´æ° SEQ çªå·	*/
+	cep->snd_wl1 = tcph->seq - 1;		/* cep->snd_wl1: ウィンド更新 SEQ 番号	*/
 
 #ifdef TCP_CFG_EXTENTIONS
-	cep->rcv_up  = tcph->seq;		/* cep->rcv_up : åä¿¡ããç·æ¥ãã¤ã³ã¿	*/
+	cep->rcv_up  = tcph->seq;		/* cep->rcv_up : 受信した緊急ポインタ	*/
 #endif
 	}
 
 /*
- *  proc_ack2 -- ACK ã®å¦ç (2)
+ *  proc_ack2 -- ACK の処理 (2)
  *
- *    æ»ãå¤
+ *    戻り値
  *
- *      RET_OK		æ­£å¸¸
- *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *      RET_OK		正常
+ *      RET_RETURN	正常、リターンする。
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -645,7 +624,7 @@
 
 	/*
-	 *  ç¸æã«åä¿¡ç¢ºèªããã ACK ãããã¾ã ç¢ºèªããã¦ããªã
-	 *  æå°éä¿¡ SEQ (snd_una) ãå¼ãã¨ãéä¿¡ã¦ã£ã³ããããã¡ãã
-	 *  åé¤ãã¦ãããªã¯ãããæ° (acked) ã«ãªãã
+	 *  相手に受信確認された ACK から、まだ確認されていない
+	 *  最小送信 SEQ (snd_una) を引くと、送信ウィンドバッファから
+	 *  削除してよいオクテット数 (acked) になる。
 	 */
 	acked = tcph->ack - cep->snd_una;
@@ -653,7 +632,7 @@
 
 	/*
-	 *  å¾å¾©æéè¨æ¸¬ (rtt) ãè¨­å®ããã¦ãã¦ãè¨æ¸¬éå§ SEQ ãã
-	 *  å¾ã® ACK ãåä¿¡ããããã¿ã¤ãããã¯ãªããã­ã£ã³ã»ã«ãã
-	 *  åéã¿ã¤ããåè¨­å®ããã
+	 *  往復時間計測 (rtt) が設定されていて、計測開始 SEQ より
+	 *  後の ACK を受信したら、タイマバックオフをキャンセルし、
+	 *  再送タイマを再設定する。
 	 */
 	if (cep->rtt && SEQ_GT(tcph->ack, cep->rtseq)) {
@@ -662,17 +641,16 @@
 
 	/*
-	 *  å
-¨ã¦ã®æªç¢ºèªãã¼ã¿ã ACK ãããããåéã¿ã¤ããåæ­¢ãã
-	 *  åéãè¨æ¶ãã (ããã«åºåãæç¶)ã
-	 *  ãããACK ãã¹ããããã«å¤ãã®ãã¼ã¿ããããªããåéã¿ã¤ãã«
-	 *  ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ããè¨­å®ããã
-	 */
-	if (tcph->ack == cep->snd_max) {	/* cep->snd_max: éä¿¡ããæå¤§ SEQ */
+	 *  全ての未確認データが ACK されたら、再送タイマを停止し、
+	 *  再開を記憶する (さらに出力か持続)。
+	 *  もし、ACK すべき、さらに多くのデータがあるなら、再送タイマに
+	 *  現在の再送タイムアウトを設定する。
+	 */
+	if (tcph->ack == cep->snd_max) {	/* cep->snd_max: 送信した最大 SEQ */
 
 #ifdef TCP_CFG_SWBUF_CSAVE
 
 		/*
-		 * éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã¯ã
-		 * éä¿¡æ¸ã¿ã§ãACKãå®äºããã¾ã§åéã¿ã¤ããå¤æ´ããªãã
+		 * 送信ウィンドバッファの省コピー機能が有効の場合は、
+		 * 送信済みで、ACKが完了するまで再送タイマを変更しない。
 		 */
 		if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_ACKED)
@@ -688,22 +666,22 @@
 		}
 	else if (cep->timer[TCP_TIM_PERSIST] == 0) {
-	 	cep->timer[TCP_TIM_REXMT] = cep->rxtcur;	/* cep->rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã */
-		}
-
-	/* ç¸æãåä¿¡ç¢ºèªãããã¼ã¿ãããã¨ãã®å¦ç */
+	 	cep->timer[TCP_TIM_REXMT] = cep->rxtcur;	/* cep->rxtcur: 現在の再送タイムアウト */
+		}
+
+	/* 相手が受信確認したデータがあるときの処理 */
 	if (acked) {
-		uint32_t cw   = cep->snd_cwnd;	/* cep->snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº	*/
-		uint32_t incr = cep->maxseg;		/* cep->maxseg:   æå¤§ã»ã°ã¡ã³ããµã¤ãº	*/
-
-		/*
-		 *  æ°ãã«ç¸æãåä¿¡ç¢ºèªãããã¼ã¿ããã£ãã¨ãã¯ã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºãå¤§ããããã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ããå¤§ããã¨ãã¯
-		 *  è¼»è¼³åé¿å¶å¾¡ãè¡ãã
+		uint32_t cw   = cep->snd_cwnd;	/* cep->snd_cwnd: 輻輳ウィンドサイズ	*/
+		uint32_t incr = cep->maxseg;		/* cep->maxseg:   最大セグメントサイズ	*/
+
+		/*
+		 *  新たに相手が受信確認したデータがあったときは、
+		 *  輻輳ウィンドサイズを大きくする。
+		 *  輻輳ウィンドサイズ (snd_cwnd) が
+		 *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) より大きいときは
+		 *  輻輳回避制御を行い。
 		 *
 		 *    snd_cwnd = snd_cwnd + maxseg * maxseg / snd_cwnd;
 		 *
-		 *  ç­ãããå°ããã¨ãã¯ãã¹ã­ã¼ã¹ã¿ã¼ãå¶å¾¡ãè¡ãã
+		 *  等しいか小さいときは、スロースタート制御を行う。
 		 *
 		 *    snd_cwnd = snd_cwnd + maxseg
@@ -711,5 +689,5 @@
 		 */
 		if (cw > cep->snd_ssthresh)
-			/* è¼»è¼³åé¿å¶å¾¡ */
+			/* 輻輳回避制御 */
 			incr = incr * incr / cw;
 
@@ -720,5 +698,5 @@
 
 		/*
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãããç¸æãåä¿¡ç¢ºèªãããã¼ã¿æ° (acked) ã®ãã¼ã¿ãåé¤ããã
+		 *  送信ウィンドバッファから、相手が受信確認したデータ数 (acked) のデータを削除する。
 		 */
 		if (acked > cep->swbuf_count) {
@@ -733,13 +711,13 @@
 			}
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/
+		/* 送信ウィンドバッファに空きができたことを知らせる。*/
 		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
 
 		/*
-		 *  ééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ã
-		 *  ä»åééç¢ºèªããã ACK ã¾ã§é²ãã
-		 *  æ¬¡ã®éä¿¡ãã¼ã¿ã® SEQ (snd_nxt) ããæ°ãã
-		 *  ééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una)
-		 *  ã¾ã§é²ããã
+		 *  送達確認されていない最小送信 SEQ (snd_una) を
+		 *  今回送達確認された ACK まで進め、
+		 *  次の送信データの SEQ (snd_nxt) も、新しい
+		 *  送達確認されていない最小送信 SEQ (snd_una)
+		 *  まで進める。
 		 */
 		cep->snd_una += acked;
@@ -748,10 +726,8 @@
 
 		/*
-		 *  ç¶æ
-ã«ããåå²
+		 *  状態により分岐
 		 */
 		switch (cep->fsm_state) {
-		case TCP_FSM_FIN_WAIT_1:	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
-ã¡ */
+		case TCP_FSM_FIN_WAIT_1:	/* APP が終了、FIN 送信済み、ACK 待ち */
 			if (ourfinisacked) {
 				cep->fsm_state = TCP_FSM_FIN_WAIT_2;
@@ -759,11 +735,9 @@
 				}
 			break;
-		case TCP_FSM_CLOSING:		/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡ */
+		case TCP_FSM_CLOSING:		/* 同時クローズ、FIN 交換済み、ACK 待ち */
 			if (ourfinisacked) {
 				/*
-				 *  éä¿¡ãã FIN ãç¢ºèªããã¦ããã°ç¶æ
-ãå¤æ´ãã
-				 *  ãã¹ã¦ã®ã¿ã¤ãããªã»ããããå¾ã2MSL ã¿ã¤ããè¨­å®ããã
+				 *  送信した FIN が確認されていれば状態を変更し、
+				 *  すべてのタイマをリセットした後、2MSL タイマを設定する。
 				 */
 				cep->fsm_state = TCP_FSM_TIME_WAIT;
@@ -772,10 +746,9 @@
 				}
 			break;
-		case TCP_FSM_LAST_ACK:		/* APP ãçµäºãACK å¾
-ã¡ */
+		case TCP_FSM_LAST_ACK:		/* APP が終了、ACK 待ち */
 			if (ourfinisacked) {
 				/*
-				 *  éä¿¡ãã FIN ãç¢ºèªããã¦ããã°ãcep ãã¯ã­ã¼ãºãã
-				 *  ã»ã°ã¡ã³ããç ´æ£ããã
+				 *  送信した FIN が確認されていれば、cep をクローズし、
+				 *  セグメントを破棄する。
 				 */
 				cep = tcp_close(cep);
@@ -783,9 +756,8 @@
 				}
 			break;
-		case TCP_FSM_TIME_WAIT:		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
-ã¡ */
+		case TCP_FSM_TIME_WAIT:		/* 相手からの FIN 受信済み、時間待ち */
 			/*
-			 *  ç¸æãã FIN ãåéããããããä¸åº¦2MSL ã¿ã¤ããè¨­å®ãã
-			 *  ACK éä¿¡å¾ãã»ã°ã¡ã³ããç ´æ£ããã
+			 *  相手から FIN が再送された。もう一度2MSL タイマを設定し、
+			 *  ACK 送信後、セグメントを破棄する。
 			 */
 			cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
@@ -798,11 +770,11 @@
 
 /*
- *  proc_ack1 -- ACK ã®å¦ç (1)
+ *  proc_ack1 -- ACK の処理 (1)
  *
- *    æ»ãå¤:
- *      RET_OK		æ­£å¸¸
- *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_OK		正常
+ *      RET_RETURN	正常、リターンする。
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  *
  */
@@ -814,8 +786,7 @@
 
 	switch (cep->fsm_state) {
-	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
-
-		/* ç¶æ
-ãå¤æ´ããã*/
+	case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み	*/
+
+		/* 状態を変更する。*/
 		if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
 			cep->fsm_state  = TCP_FSM_FIN_WAIT_1;
@@ -826,5 +797,5 @@
 			cep->fsm_state  = TCP_FSM_ESTABLISHED;
 
-			/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+			/* TCP 通信端点からTCP 受付口を解放する。*/
 			cep->rep = NULL;
 
@@ -839,5 +810,5 @@
 			if (cep->rcv_nblk_tfn == TFN_TCP_ACP_CEP) {
 
-				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				/* 相手のアドレスをコピーする。*/
 
 #if defined(_IP6_CFG) && defined(_IP4_CFG)
@@ -889,5 +860,5 @@
 			if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
 
-				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				/* 相手のアドレスをコピーする。*/
 
 #if defined(_IP6_CFG) && defined(_IP4_CFG)
@@ -951,40 +922,35 @@
 
 		/*
-		 *  SDU ããªã FIN ãã¤ãã¦ããªããã°ãtcp_move_ra2rw() ãå¼åºãã
-		 */
-		if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0)		/* tcph->sum ã¯ SDU é· */
+		 *  SDU がなく FIN がついていなければ、tcp_move_ra2rw() を呼出す。
+		 */
+		if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0)		/* tcph->sum は SDU 長 */
 			tcph->flags = tcp_move_ra2rw(cep, tcph->flags);
 		
-		cep->snd_wl1 = tcph->seq - 1;	/* snd_wl1: ã¦ã£ã³ãæ´æ° SEQ */
-
-		/* break; ä¸ã«è½ã¡ãã*/
+		cep->snd_wl1 = tcph->seq - 1;	/* snd_wl1: ウィンド更新 SEQ */
+
+		/* break; 下に落ちる。*/
 	
-	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
-	case TCP_FSM_FIN_WAIT_1:	/* çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
-	case TCP_FSM_FIN_WAIT_2:	/* çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
-ã¡*/
-	case TCP_FSM_CLOSE_WAIT:	/* FIN åä¿¡ãã¯ã­ã¼ãºå¾
-ã¡		*/
-	case TCP_FSM_CLOSING:		/* çµäºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-	case TCP_FSM_LAST_ACK:		/* FIN åä¿¡ãçµäºãACK å¾
-ã¡	*/
-	case TCP_FSM_TIME_WAIT:		/* çµäºãæéå¾
-ã¡		*/
+	case TCP_FSM_ESTABLISHED:	/* コネクション開設完了		*/
+	case TCP_FSM_FIN_WAIT_1:	/* 終了して、FIN 送信済み		*/
+	case TCP_FSM_FIN_WAIT_2:	/* 終了、FIN 伝達確認受信、FIN待ち*/
+	case TCP_FSM_CLOSE_WAIT:	/* FIN 受信、クローズ待ち		*/
+	case TCP_FSM_CLOSING:		/* 終了、FIN 交換済み、ACK 待ち	*/
+	case TCP_FSM_LAST_ACK:		/* FIN 受信、終了、ACK 待ち	*/
+	case TCP_FSM_TIME_WAIT:		/* 終了、時間待ち		*/
 
 		if (SEQ_LE(tcph->ack, cep->snd_una)) {
 
 			/*
-			 *  åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã¨åããä»¥åã®ã¨ãã®å¦ç
-			 *  ã¤ã¾ããå¤éã« ACK ãåä¿¡ãããã¨ãæå³ãã¦ããã
+			 *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) と同じか以前のときの処理
+			 *  つまり、多重に ACK を受信したことを意味している。
 			 */
 
-			if (tcph->sum == 0 && tcph->win == cep->snd_wnd) {	/* tcph->sum ã¯ SDU é· */
+			if (tcph->sum == 0 && tcph->win == cep->snd_wnd) {	/* tcph->sum は SDU 長 */
 
 				/*
-				 *  SDU ããªããç¸æã®ã¦ã£ã³ããµã¤ãºãå¤æ´ããã¦ããªããã°ã
-				 *  ãã§ã«éä¿¡ããã»ã°ã¡ã³ãã®ä¸­ã§ãACK (tcph->ack) ã¨
-				 *  åã SEQ ããå§ã¾ãã»ã°ã¡ã³ãããéä¸­ã§æ¶å¤±ããå¯è½æ§ãããã
-				 *  ãã®å ´åã¯ãé«éåè»¢éã¨é«éãªã«ããªãè¡ãã
+				 *  SDU がなく、相手のウィンドサイズが変更されていなければ、
+				 *  すでに送信したセグメントの中で、ACK (tcph->ack) と
+				 *  同じ SEQ から始まるセグメントが、途中で消失した可能性がある。
+				 *  この場合は、高速再転送と高速リカバリを行う。
 				 */
 				NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DUP_ACKS], 1);
@@ -993,7 +959,7 @@
 
 					/*
-					 *  åéã¿ã¤ããã»ããããã¦ããªãã¨ãã
-					 *  ã¾ãã¯ãACK (tcph->ack) ã¨æªç¢ºèªã®æå°éä¿¡ SEQã
-					 *  ä¸è´ããªãã¨ãã¯ãå¤é ACK æ°ã 0 ã«ããã
+					 *  再送タイマがセットされていないとき、
+					 *  または、ACK (tcph->ack) と未確認の最小送信 SEQが
+					 *  一致しないときは、多重 ACK 数を 0 にする。
 					 */
 					cep->dupacks = 0;
@@ -1003,15 +969,15 @@
 
 					/*
-					 *  å¤é ACK æ°ããããå¤ (æ¨æº 3) ã«ãªã£ãã
-					 *  é«éåè»¢éå¦çãéå§ããã
+					 *  多重 ACK 数がしきい値 (標準 3) になったら
+					 *  高速再転送処理を開始する。
 					 */
 					uint_t		win;
 
 					/*
-					 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®ãããå¤ãè¨­å®ããã
+					 *  輻輳ウィンドサイズ(snd_cwnd)のしきい値を設定する。
 					 *
-					 *    ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã
-					 *    è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã® 1/2ã
-					 *    ãã ãã2 * maxseg ä»¥ä¸ã
+					 *    相手の受信可能ウィンドサイズ (snd_wnd) か
+					 *    輻輳ウィンドサイズ (snd_cwnd) の 1/2。
+					 *    ただし、2 * maxseg 以上。
 					 *
 					 */
@@ -1024,9 +990,9 @@
 					cep->snd_ssthresh = win * cep->maxseg;
 
-					/* åéã¿ã¤ãã¨å¾å¾©æéããªã»ããããã*/
+					/* 再送タイマと往復時間をリセットする。*/
 					cep->timer[TCP_TIM_REXMT] = 0;
 					cep->rtt = 0;
 
-					/* æ¶å¤±ããã»ã°ã¡ã³ããéä¿¡ããã*/
+					/* 消失したセグメントを送信する。*/
 					cep->snd_old_nxt = cep->snd_nxt;
 					cep->snd_nxt     = tcph->ack;
@@ -1034,7 +1000,6 @@
 
 					/*
-					 *  snd_nxt ãå
-ã«æ»ãããã«è¨­å®ãã¦
-					 *  éä¿¡ãæç¤ºããã
+					 *  snd_nxt を元に戻すように設定して
+					 *  送信を指示する。
 					 */
 					cep->flags |=  TCP_CEP_FLG_POST_OUTPUT |
@@ -1044,5 +1009,5 @@
 					sig_sem(SEM_TCP_POST_OUTPUT);
 
-					/* è¼»è¼³ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/
+					/* 輻輳ウィンドサイズを更新する。*/
 					cep->snd_cwnd = (uint16_t)(cep->snd_ssthresh
 					                   + cep->maxseg * cep->dupacks);
@@ -1054,11 +1019,10 @@
 
 					/*
-					 *  å¤é ACK æ°ããããå¤ (æ¨æº 3) ãè¶
-ããã
-					 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºãå¢å ããªããåéããã
+					 *  多重 ACK 数がしきい値 (標準 3) を超えたら
+					 *  輻輳ウィンドサイズを増加しながら再送する。
 					 */
 					cep->snd_cwnd += cep->maxseg;
 
-					/* éä¿¡ãæç¤ºããã*/
+					/* 送信を指示する。*/
 					cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
 					sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1073,9 +1037,9 @@
 
 		/*
-		 *  åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ä»¥éã®ã¨ãã®å¦ç
+		 *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) 以降のときの処理
 		 */
 		if (cep->dupacks >= MAX_TCP_REXMT_THRESH && cep->snd_cwnd > cep->snd_ssthresh)
 		 	/*
-			 *  é«éåè»¢éãè¡ã£ã¦ããã¨ãã¯ãè¼»è¼³ã¦ã£ã³ããµã¤ãºããããå¤ã¾ã§æ»ãã
+			 *  高速再転送を行っていたときは、輻輳ウィンドサイズをしきい値まで戻す。
 			 */
 			cep->snd_cwnd = (uint16_t)cep->snd_ssthresh;
@@ -1085,6 +1049,5 @@
 		if (SEQ_GT(tcph->ack, cep->snd_max))
 			/*
-			 *  åä¿¡ãã ACK ãéä¿¡ããæå¤§ SEQ ãè¶
-ãã¦ããã¨ãã®å¦ç
+			 *  受信した ACK が送信した最大 SEQ を超えていたときの処理
 			 */
 			return drop_after_ack(input, cep, thoff);
@@ -1092,5 +1055,5 @@
 		if (cep->flags & TCP_CEP_FLG_NEED_SYN) {
 			/*
-			 *  SYN éä¿¡è¦æ±ãåãæ¶ãã¦ãæªç¢ºèªã®æå°éä¿¡ SEQ ãé²ããã
+			 *  SYN 送信要求を取り消して、未確認の最小送信 SEQ を進める。
 			 */
 			cep->flags &= ~TCP_CEP_FLG_NEED_SYN;
@@ -1105,8 +1068,7 @@
 
 /*
- *  update_wnd -- ã¦ã£ã³ããµã¤ãºãæ´æ°ããã
+ *  update_wnd -- ウィンドサイズを更新する。
  *
- *    æ»ãå¤: éä¿¡ãå¿
-è¦ãªã true ãè¿ãã
+ *    戻り値: 送信が必要なら true を返す。
  */
 
@@ -1116,12 +1078,12 @@
 
 	/*
-	 *  æ´æ°æ¡ä»¶
+	 *  更新条件
 	 *
-	 *    ACK ãã©ã°ãã»ããããã¦ãã &&
-	 *    (ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ããå ||
-	 *     ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ã¨åã &&
-	 *     (ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ããå ||
-	 *      (ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ã¨åã &&
-	 *       WIN ãç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ããå¤§ãã
+	 *    ACK フラグがセットされている &&
+	 *    (前回ウィンドを更新した SEQ (snd_wl1) が SEQ より前 ||
+	 *     前回ウィンドを更新した SEQ (snd_wl1) が SEQ と同じ &&
+	 *     (前回ウィンドを更新した ACK (snd_wl2) が ACK より前 ||
+	 *      (前回ウィンドを更新した ACK (snd_wl2) が ACK と同じ &&
+	 *       WIN が相手の受信可能ウィンドサイズ (snd_wnd) より大きい
 	 *       )
 	 *      )
@@ -1139,5 +1101,5 @@
 
 		if (cep->snd_wnd > cep->max_sndwnd)
-			/* ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/
+			/* 今までの最大送信ウィンドサイズを更新する。*/
 			cep->max_sndwnd = cep->snd_wnd;
 
@@ -1147,13 +1109,12 @@
 
 			/*
-			 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ä¸­ã§ã
-			 *  ç¸æã®åä¿¡ã¦ã£ã³ããç©ºãã®ãå¾
-ã£ã¦ããã¨ãã®å¦ç
+			 *  送信ウィンドバッファ用のネットワークバッファ割り当て中で、
+			 *  相手の受信ウィンドが空くのを待っているときの処理
 			 */
 			if (cep->snd_wnd > 0) {
 
 				/*
-				 *  ç¸æã®åä¿¡ã¦ã£ã³ããç©ºããã¨ãã¯ã
-				 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ãåéããã
+				 *  相手の受信ウィンドが空いたときは、
+				 *  送信ウィンドバッファ用のネットワークバッファ割り当てを再開する。
 				 */
 				cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK)
@@ -1172,5 +1133,5 @@
 
 /*
- *  proc_urg -- ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç
+ *  proc_urg -- 緊急データつきのセグメントの処理
  */
 
@@ -1183,5 +1144,5 @@
 	    TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
 
-		/* ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç */
+		/* 緊急データつきのセグメントの処理 */
 
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_URG_SEGS], 1);
@@ -1189,7 +1150,6 @@
 
 			/*
-			 *  ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ãåä¿¡ã¦ã£ã³ããããã¡ã®
-			 *  ç¯å²ãè¶
-ããã¨ãã¯ä½ãããªãã
+			 *  緊急ポインタの位置が受信ウィンドバッファの
+			 *  範囲を超えるときは何もしない。
 			 */
 			tcph->urp    = 0;
@@ -1198,13 +1158,12 @@
 
 		if (SEQ_GT(tcph->seq + tcph->urp, cep->rcv_up))
-			/* ç·æ¥ãã¤ã³ã¿ãæ´æ°ãããã¨ãã®å¦ç */
+			/* 緊急ポインタが更新されたときの処理 */
 			cep->rcv_up = tcph->seq + tcph->urp;
 
-		if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) {	/* tcph->sum ã¯ TCP ã® SDU é· */
+		if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) {	/* tcph->sum は TCP の SDU 長 */
 
 			/*
-			 *  ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ããä»ååä¿¡ããã»ã°ã¡ã³ãå
-ã®å ´åã¯ã
-			 *  ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã
+			 *  緊急ポインタの位置が、今回受信したセグメント内の場合は、
+			 *  コールバック関数を呼び出す。
 			 */
 			cep->urg_tcph = tcph;
@@ -1229,6 +1188,5 @@
 
 			if (cep->urg_tcph != NULL) {
-				/* ã³ã¼ã«ããã¯é¢æ°å
-ã§ tcp_rcv_oob() ãå¼åºããªãã£ãã*/
+				/* コールバック関数内で tcp_rcv_oob() を呼出さなかった。*/
 				cep->urg_tcph = NULL;
 				tcph->urp = 0;
@@ -1236,7 +1194,6 @@
 			else {
 				/* 
-				 *  ã³ã¼ã«ããã¯é¢æ°å
-ã§ tcp_rcv_oob() ãå¼åºããæã¯ã
-				 *  SDU é·ã®è£æ­£å¤ãè¨­å®ããã
+				 *  コールバック関数内で tcp_rcv_oob() を呼出した時は、
+				 *  SDU 長の補正値を設定する。
 				 */
 				tcph->urp = 1;
@@ -1265,9 +1222,9 @@
 
 /*
- *  drop_after_ack -- åä¿¡ã»ã°ã¡ã³ããç ´æ£ããå¾ãACK ãè¿ã (æ³¨æ: ååã¨ã¯åã£ã¦ããªã)ã
+ *  drop_after_ack -- 受信セグメントを破棄した後、ACK を返す (注意: 名前とは合っていない)。
  *
- *    æ»ãå¤:
- *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_RETURN	正常、リターンする。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -1278,9 +1235,8 @@
 
 	/*
-	 *    SYN åä¿¡ç¶æ
-ã§ãACK ãééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ãã
-	 *    åã®å¤ããéä¿¡ãããæå¤§ SEQ (snd_max) ããå¾ã®å¤ã®å ´åã¯ãç¸æã« RST ã
-	 *    éã£ã¦çµäºãããããã¯ã"LAND" DoS æ»æã¸ã®é²å¾¡ã§ãããå½é ããã SYN
-	 *    ã»ã°ã¡ã³ããéä¿¡ãã¤ã¥ãããã¼ãéã§ã® ACK ã¹ãã¼ã ãé²ãã
+	 *    SYN 受信状態で、ACK が送達確認されていない最小送信 SEQ (snd_una) より
+	 *    前の値か、送信された最大 SEQ (snd_max) より後の値の場合は、相手に RST を
+	 *    送って終了する。これは、"LAND" DoS 攻撃への防御であり、偽造された SYN
+	 *    セグメントを送信しつづけるポート間での ACK ストームを防ぐ。
 	 */
 	if (cep->fsm_state == TCP_FSM_SYN_RECVD && (tcph->flags & TCP_FLG_ACK) &&
@@ -1291,5 +1247,5 @@
 	syscall(rel_net_buf(input));
 
-	/* éä¿¡ãæç¤ºããã*/
+	/* 送信を指示する。*/
 	cep->flags |=  TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_POST_OUTPUT;
 	sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1298,5 +1254,5 @@
 
 /*
- *  close_connection -- ã³ãã¯ã·ã§ã³éæ¾å¦çãç¸æãã FIN ãåä¿¡ããã
+ *  close_connection -- コネクション開放処理、相手から FIN を受信した。
  */
 
@@ -1323,17 +1279,15 @@
 
 	switch (cep->fsm_state) {
-	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
-	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
+	case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み	*/
+	case TCP_FSM_ESTABLISHED:	/* コネクション開設完了		*/
 		cep->fsm_state = TCP_FSM_CLOSE_WAIT;
 		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_RWBUF_READY));
 		break;
 
-	case TCP_FSM_FIN_WAIT_1:	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
-ã¡ */
+	case TCP_FSM_FIN_WAIT_1:	/* APP が終了、FIN 送信済み、ACK 待ち */
 		cep->fsm_state = TCP_FSM_CLOSING;
 		break;
 
-	case TCP_FSM_FIN_WAIT_2:	/* ç¸æããã® FIN å¾
-ã¡ */
+	case TCP_FSM_FIN_WAIT_2:	/* 相手からの FIN 待ち */
 		cep->fsm_state = TCP_FSM_TIME_WAIT;
 		tcp_cancel_timers(cep);
@@ -1341,9 +1295,7 @@
 
 		/*
-		 *  FIN WAIT 2 ç¶æ
-ã§ã¯ã
-		 *  åä¿¡ã¯å¯è½ã§ãããããã§ã«éä¿¡ã¯çµäºãã¦ããã
-		 *  ç¸æã®éä¿¡ãçµäºããã®ã§ãå
-¥åã¿ã¹ã¯ã®ã¿èµ·åºããã
+		 *  FIN WAIT 2 状態では、
+		 *  受信は可能であるが、すでに送信は終了している。
+		 *  相手の送信も終了したので、入力タスクのみ起床する。
 		 */
 		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
@@ -1351,5 +1303,5 @@
 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
 
-		/* ç¸æããã® FIN ã«å¯¾ãã¦å¿ç­ãè¿ãã*/
+		/* 相手からの FIN に対して応答を返す。*/
 		tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una,
 		            cep->rbufsz - cep->rwbuf_count, TCP_FLG_ACK);
@@ -1358,8 +1310,6 @@
 
 		/*
-		 *  å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
-		 *  æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+		 *  必要な情報を Time Wait 用 TCP 通信端点に移して、
+		 *  標準の TCP 通信端点を開放する。
 		 */
 		tcp_move_twcep(cep);
@@ -1369,6 +1319,5 @@
 		break;
 
-	case TCP_FSM_TIME_WAIT:		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
-ã¡ */
+	case TCP_FSM_TIME_WAIT:		/* 相手からの FIN 受信済み、時間待ち */
 		cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
 		break;
@@ -1377,9 +1326,7 @@
 
 /*
- *  tcp_input -- TCP ã®å
-¥åé¢æ°
+ *  tcp_input -- TCP の入力関数
  *
- *	æ³¨æ: input ã«ã¯ IF ãããã¨ IP ããããå
-é ­ã«ããã
+ *	注意: input には IF ヘッダと IP ヘッダが先頭にある。
  */
 
@@ -1407,5 +1354,5 @@
 	NET_COUNT_MIB(tcp_stats.tcpInSegs, 1);
 
-	/* ãããé·ããã§ãã¯ããã*/
+	/* ヘッダ長をチェックする。*/
 	if (input->len < IF_IP_TCP_HDR_SIZE(input)) {
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
@@ -1415,5 +1362,5 @@
 	tcph = GET_TCP_HDR(input, *offp);
 
-	seglen  = input->len - *offp;				/* TCP ã®ã»ã°ã¡ã³ãé· */
+	seglen  = input->len - *offp;				/* TCP のセグメント長 */
 
 	if (IN_CKSUM(input, IPPROTO_TCP, *offp, (uint_t)seglen) != 0) {
@@ -1422,19 +1369,19 @@
 		}
 
-	/* TCP ãããé·ããã§ãã¯ããã*/
+	/* TCP ヘッダ長をチェックする。*/
 	if (TCP_HDR_LEN(tcph->doff) < TCP_HDR_SIZE || TCP_HDR_LEN(tcph->doff) > seglen) {
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
 		goto drop;
 		}
-	tcph->sum = seglen - TCP_HDR_LEN(tcph->doff);		/* ãããã tcph->sum ã¯ TCP ã® SDU é· */
+	tcph->sum = seglen - TCP_HDR_LEN(tcph->doff);		/* ここから tcph->sum は TCP の SDU 長 */
 
 	/*
-	 *  SYN ã¨ FIN ã®ä¸¡ããããã»ããããã¦ããã°ç ´æ£ãããnmap ç­ã®å¯¾ç­
-	 *  ãã ããRFC1644 T/TCP æ¡å¼µæ©è½ã¨ç«¶åããã
+	 *  SYN と FIN の両ビットがセットされていれば破棄する。nmap 等の対策
+	 *  ただし、RFC1644 T/TCP 拡張機能と競合する。
 	 */
 	if ((tcph->flags & (TCP_FLG_SYN | TCP_FLG_FIN)) == (TCP_FLG_SYN | TCP_FLG_FIN))
 		goto drop;
 
-	/* ãããã¯ã¼ã¯ãªã¼ãã¼ãããã¹ããªã¼ãã¼ã«å¤æããã*/
+	/* ネットワークオーダーからホストオーダーに変換する。*/
 
 	NTOHL(tcph->seq);
@@ -1445,5 +1392,5 @@
 	NTOHS(tcph->dport);
 
-	/* SDU é· ãã ç·æ¥ãã¤ã³ã¿ãå¤§ããå ´å */
+	/* SDU 長 より 緊急ポインタが大きい場合 */
 	if (tcph->urp > tcph->sum)
 		goto drop;
@@ -1454,21 +1401,20 @@
 
 	/*
-	 *  ç¶æ
-ã Time Wait ä¸­ã® CEP ãæ¢ç´¢ããã
+	 *  状態が Time Wait 中の CEP を探索する。
 	 */
 	twcep = tcp_find_twcep(input, *offp);
 	if (twcep != NULL) {
 
-		if (tcph->flags & TCP_FLG_RST)		/* RST ãã©ã°ãåä¿¡ããã¨ãã¯ç¡è¦ããã*/
+		if (tcph->flags & TCP_FLG_RST)		/* RST フラグを受信したときは無視する。*/
 			goto drop;
 		else {
 
 			/*
-			 *    TCP éä¿¡ç«¯ç¹ã Time Wait ã®æãç¸æãã¹ãããã»ã°ã¡ã³ããæ¥ãã¨ãã¯ã
-			 *    ç¸æãã¹ãã® FIN ã«å¯¾ããèªãã¹ãã® ACK ã»ã°ã¡ã³ããéä¸­ã§
-			 *    æå¤±ãããã¨ãæå³ãã¦ããã®ã§ãACK ã»ã°ã¡ã³ããåéããã
+			 *    TCP 通信端点が Time Wait の時、相手ホストからセグメントが来たときは、
+			 *    相手ホストの FIN に対する自ホストの ACK セグメントが途中で
+			 *    損失したことを意味しているので、ACK セグメントを再送する。
 			 */
 
-			/* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/
+			/* ホストオーダーからネットワークオーダーに戻す。*/
 			HTONS(tcph->sport);
 			HTONS(tcph->dport);
@@ -1479,10 +1425,10 @@
 		}
 	else
-		/* æ¨æºã® TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+		/* 標準の TCP 通信端点を得る。*/
 		cep = tcp_find_cep(input, *offp);
 
 #else	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = tcp_find_cep(input, *offp);
 
@@ -1490,6 +1436,5 @@
 
 	/*
-	 *  TCP éä¿¡ç«¯ç¹ããªãå ´åã¨ CEP ã®ç¶æ
-ãã¯ã­ã¼ãºãªãç ´æ£ããã
+	 *  TCP 通信端点がない場合と CEP の状態がクローズなら破棄する。
 	 */
 	if (cep == NULL) {
@@ -1509,6 +1454,6 @@
 
 	/*
-	 *  ã³ãã¯ã·ã§ã³éè¨­æ¸ã¿ã§ã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
-	 *  ã¢ã¤ãã«æéã¨çå­ç¢ºèªã¿ã¤ãããªã»ããããã
+	 *  コネクション開設済みでセグメントを受信したときは、
+	 *  アイドル時間と生存確認タイマをリセットする。
 	 */
 	cep->idle = 0;
@@ -1517,23 +1462,19 @@
 		}
 
-	/* CEP ã®ç¶æ
-ã LISTEN ä»¥å¤ã®æã¯ããªãã·ã§ã³ãå¦çããã*/
+	/* CEP の状態が LISTEN 以外の時は、オプションを処理する。*/
 	if (cep->fsm_state != TCP_FSM_LISTEN)
 		parse_option(tcph, cep);
 
 	/*
-	 *  åä¿¡å¯è½ã¦ã£ã³ããµã¤ãºãè¨ç®ããã
+	 *  受信可能ウィンドサイズを計算する。
 	 *
-	 *  rcv_nxt:     åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQï¼ããä»¥åã¯åä¿¡æ¸ã¿ï¼
-	 *  rcv_adv:     åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ
-	 *  rbufsz:      åä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº
-	 *  rwbuf_count:  åä¿¡ã¦ã£ã³ããããã¡ã«ãããã¼ã¿é
-	 *  tcph->sum:   ä»ååä¿¡ãã SDU ãµã¤ãº
+	 *  rcv_nxt:     受信を期待している最小の SEQ（これ以前は受信済み）
+	 *  rcv_adv:     受信を期待している最大の SEQ
+	 *  rbufsz:      受信ウィンドバッファサイズ
+	 *  rwbuf_count:  受信ウィンドバッファにあるデータ量
+	 *  tcph->sum:   今回受信した SDU サイズ
 	 *
-	 *  ä»ååä¿¡ããã»ã°ã¡ã³ããé åºæ´åã­ã¥ã¼ã«é£çµãã
-	 *  å¯è½æ§ãããã®ã§ tcph->sum ãèæ
-®ããã
+	 *  今回受信したセグメントを順序整列キューに連結する
+	 *  可能性があるので tcph->sum を考慮する。
 	 *
 	 */
@@ -1546,15 +1487,14 @@
 		cep->rcv_wnd = cep->rcv_adv - cep->rcv_nxt;
 
-	/* CEP ã®ç¶æ
-ã«ããå¦çãè¡ãã*/
-
-	if (cep->fsm_state == TCP_FSM_LISTEN) {		/* ååãªã¼ãã³ (LISTEN) ã®å¦çã*/
+	/* CEP の状態により処理を行う。*/
+
+	if (cep->fsm_state == TCP_FSM_LISTEN) {		/* 受動オープン (LISTEN) の処理。*/
 		if ((ret = listening(input, cep, *offp, iss)) == RET_RST_DROP)
 			goto reset_drop;
 		else if (ret == RET_DROP)
 			goto drop;
-		trim_length(tcph, cep);			/* åä¿¡ãã SDU é·ãèª¿æ´ããã*/
-
-		if (tcph->flags & TCP_FLG_ACK) {	/* ACK ãã©ã°ã®å¦ç */
+		trim_length(tcph, cep);			/* 受信した SDU 長を調整する。*/
+
+		if (tcph->flags & TCP_FLG_ACK) {	/* ACK フラグの処理 */
 			if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
 				goto drop;
@@ -1565,12 +1505,12 @@
 			}
 		}
-	else if (cep->fsm_state == TCP_FSM_SYN_SENT) {	/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
+	else if (cep->fsm_state == TCP_FSM_SYN_SENT) {	/* 能動オープン、SYN 送信済み	*/
 		if ((ret = syn_sent(tcph, cep)) == RET_RST_DROP)
 			goto reset_drop;
 		else if (ret == RET_DROP)
 			goto drop;
-		trim_length(tcph, cep);			/* åä¿¡ãã SDU é·ãèª¿æ´ããã*/
-
-		if (tcph->flags & TCP_FLG_ACK) {	/* ACK ãã©ã°ã®å¦ç */
+		trim_length(tcph, cep);			/* 受信した SDU 長を調整する。*/
+
+		if (tcph->flags & TCP_FLG_ACK) {	/* ACK フラグの処理 */
 			if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
 				goto drop;
@@ -1582,12 +1522,12 @@
 		}
 	else {
-		if (cep->fsm_state == TCP_FSM_SYN_RECVD) {	/* SYN ãåä¿¡ãSYN éä¿¡æ¸ã¿	*/
+		if (cep->fsm_state == TCP_FSM_SYN_RECVD) {	/* SYN を受信、SYN 送信済み	*/
 			/*
-			 *  ç¸æããåä¿¡ç¢ºèªãéããã¦æ¥ã¦ãã
+			 *  相手から受信確認が送られて来ても、
 			 *
-			 *    ACK <= æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) &&
-			 *           éä¿¡ããæå¤§     SEQ (snd_max) < ACK
+			 *    ACK <= 未確認の最小送信 SEQ (snd_una) &&
+			 *           送信した最大     SEQ (snd_max) < ACK
 			 *
-			 *  ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã
+			 *  なら、リセットを送ってセグメントを破棄する。
 			 */
 			if ((tcph->flags & TCP_FLG_ACK) &&
@@ -1598,5 +1538,5 @@
 
 		/* 
-		 *  RST ãã©ã°ãåä¿¡ããã¨ãã®å¦ç (ç°å¸¸åæ­)
+		 *  RST フラグを受信したときの処理 (異常切断)
 		 */
 		if (tcph->flags & TCP_FLG_RST) {
@@ -1604,11 +1544,11 @@
 			    SEQ_LT(tcph->seq, cep->last_ack_sent + cep->rcv_wnd)) {
 				/*
-				 *  åä¿¡ããã»ã°ã¡ã³ãã® SEQ ããæå¾ã«éä¿¡ãã ACK (last_ack_sent)
-				 *  ãããåä¿¡ã¦ã¤ã³ãã¦ãµã¤ãºã¾ã§ã®éã®å¦ç
+				 *  受信したセグメントの SEQ が、最後に送信した ACK (last_ack_sent)
+				 *  から、受信ウインドウサイズまでの間の処理
 				 */
 				switch (cep->fsm_state) {
-				case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿		*/
-
-					cep->net_error = EV_CNNRF;	/* æ¥ç¶ä¸è½ */
+				case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み		*/
+
+					cep->net_error = EV_CNNRF;	/* 接続不能 */
 					cep->error     = E_CLS;
 					NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
@@ -1617,23 +1557,19 @@
 					break;
 
-				case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº			*/
-				case TCP_FSM_CLOSE_WAIT:	/* FIN åä¿¡ãã¯ã­ã¼ãºå¾
-ã¡		*/
+				case TCP_FSM_ESTABLISHED:	/* コネクション開設完了			*/
+				case TCP_FSM_CLOSE_WAIT:	/* FIN 受信、クローズ待ち		*/
 					NET_COUNT_MIB(tcp_stats.tcpEstabResets, 1);
 					/* fallthrough */
 
-				case TCP_FSM_FIN_WAIT_1:	/* çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
-				case TCP_FSM_FIN_WAIT_2:	/* çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
-ã¡	*/
-
-					cep->net_error = EV_CNRST;	/* æ¥ç¶ãªã»ãã */
+				case TCP_FSM_FIN_WAIT_1:	/* 終了して、FIN 送信済み		*/
+				case TCP_FSM_FIN_WAIT_2:	/* 終了、FIN 伝達確認受信、FIN待ち	*/
+
+					cep->net_error = EV_CNRST;	/* 接続リセット */
 					cep->error     = E_CLS;
 					NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
 					/* no break; */
 
-				case TCP_FSM_CLOSING:		/* çµäºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-				case TCP_FSM_LAST_ACK:		/* FIN åä¿¡ãçµäºãACK å¾
-ã¡	*/
+				case TCP_FSM_CLOSING:		/* 終了、FIN 交換済み、ACK 待ち	*/
+				case TCP_FSM_LAST_ACK:		/* FIN 受信、終了、ACK 待ち	*/
 
 					cep = tcp_close(cep);
@@ -1645,12 +1581,11 @@
 
 		/*
-		 *  CEP ã®ç¶æ
-ã SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿ã®å ´åã¯ã
-		 *  åä¿¡ã¦ã£ã³ãã«åã¾ãããã«ãã¼ã¿ã
-		 *  èª¿æ´ããåã«ããã®æ¥ç¶ã«ãããã±ãããã©ãããæ¤è¨¼ããã
+		 *  CEP の状態が SYN を受信し、SYN 送信済みの場合は、
+		 *  受信ウィンドに収まるようにデータを
+		 *  調整する前に、この接続によるパケットかどうかを検証する。
 		 *
-		 *    åä¿¡ããç¸æã® SEQ < ç¸æã® SEQ ã®åæå¤ (irs)
+		 *    受信した相手の SEQ < 相手の SEQ の初期値 (irs)
 		 *
-		 *  ããã¯ã"LAND" DoS æ»æã®é²å¾¡ã§ããã
+		 *  これは、"LAND" DoS 攻撃の防御である。
 		 */
 		if (cep->fsm_state == TCP_FSM_SYN_RECVD && SEQ_LT(tcph->seq, cep->irs)) {
@@ -1659,8 +1594,7 @@
 
 		/*
-		 *  åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ (rcv_nxt) - åä¿¡ããç¸æã® SEQ ã
-		 *  æ­£ãªããrcv_nxt ä»¥åã®ãã¼ã¿ã¯ãã§ã«åä¿¡ãã¦ããã®ã§ããã®é¨åã
-		 *  åé¤ããã
+		 *  受信を期待している最小の SEQ (rcv_nxt) - 受信した相手の SEQ が
+		 *  正なら、rcv_nxt 以前のデータはすでに受信しているので、その部分を
+		 *  削除する。
 		 *                           <---------- rcv_wnd --------->
 		 *                           rcv_nxt                      rcv_nxt + rcv_wnd
@@ -1674,5 +1608,5 @@
 		 *           ^                      ^
 		 *           seq                    seq + len
-		 *           <---------------> åé¤ããã
+		 *           <---------------> 削除する。
 		 */
 		todrop = cep->rcv_nxt - tcph->seq;
@@ -1680,6 +1614,6 @@
 
 			/*
-			 *  SYN ãã©ã°ãã¤ãã¦ããã¨ãã¯ããã®å (1 ãªã¯ããã)
-			 *  SEQ ãé²ããç·æ¥ãã¤ã³ã¿ã¨åé¤ããé·ããèª¿æ´ããã
+			 *  SYN フラグがついているときは、その分 (1 オクテット)
+			 *  SEQ を進め、緊急ポインタと削除する長さを調整する。
 			 */
 			if (tcph->flags & TCP_FLG_SYN) {
@@ -1694,22 +1628,20 @@
 
 			/*
-			 *  åé¤ããé·ãã SDU ããé·ããã¤ã¾ããåä¿¡ãæå¾
-ãã¦ãã
-			 *  æå°ã® SEQ (rcv_nxt) ã«éãã¦ããªããã
-			 *  åé¤ããé·ãã SDU ã¨åãã§ãFIN ãã©ã°ãã¤ãã¦ãªããã°
-			 *  å
-¨ã¦åé¤ããã
+			 *  削除する長さが SDU より長い、つまり、受信を期待している
+			 *  最小の SEQ (rcv_nxt) に達していないか、
+			 *  削除する長さが SDU と同じで、FIN フラグがついてなければ
+			 *  全て削除する。
 			 */
-			if ( todrop >  tcph->sum ||		/* tcph->sum ã¯ TCP ã® SDU é· */
+			if ( todrop >  tcph->sum ||		/* tcph->sum は TCP の SDU 長 */
 			    (todrop == tcph->sum && (tcph->flags & TCP_FLG_FIN) == 0)) {
 				tcph->flags &= ~TCP_FLG_FIN;
 				cep->flags |= TCP_CEP_FLG_ACK_NOW;
-				todrop = tcph->sum;		/* tcph->sum ã¯ TCP ã® SDU é· */
+				todrop = tcph->sum;		/* tcph->sum は TCP の SDU 長 */
 				}
 
 			/*
-			 *  SDU ãåã«è©°ããã
+			 *  SDU を前に詰める。
 			 */
-			if (todrop < tcph->sum) {		/* tcph->sum ã¯ TCP ã® SDU é· */
+			if (todrop < tcph->sum) {		/* tcph->sum は TCP の SDU 長 */
 				memcpy(GET_TCP_SDU(input, *offp),
 				       GET_TCP_SDU(input, *offp) + todrop, (size_t)(tcph->sum - todrop));
@@ -1717,11 +1649,11 @@
 
 			/*
-			 *  SEQ ã¨ SDU é·ãèª¿æ´ããã
+			 *  SEQ と SDU 長を調整する。
 			 */
 			tcph->seq +=     todrop;
-			tcph->sum -= (uint16_t)todrop;	/* tcph->sum ã¯ TCP ã® SDU é· */
+			tcph->sum -= (uint16_t)todrop;	/* tcph->sum は TCP の SDU 長 */
 
 			/*
-			 *  ç·æ¥ãã¤ã³ã¿ãèª¿æ´ããã
+			 *  緊急ポインタを調整する。
 			 */
 			if (tcph->urp > todrop)
@@ -1736,8 +1668,8 @@
 
 		/*  
-		 *  ããã¦ã¼ã¶ã¿ã¹ã¯ãçµäºããå¾ã«ããã¼ã¿ãåä¿¡ãã
-		 *  å ´åã¯ãRST ãéãã
-		 */
-		if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) {	/* tcph->sum ã¯ TCP ã® SDU é· */
+		 *  もしユーザタスクが終了した後に、データを受信した
+		 *  場合は、RST を送る。
+		 */
+		if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) {	/* tcph->sum は TCP の SDU 長 */
 			cep = tcp_close(cep);
 			goto reset_drop;
@@ -1745,8 +1677,6 @@
 
 		/*
-		 *  åä¿¡ã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããè¶
-ããå ´åã¯ã
-		 *  è¶
-ããåãåãã
+		 *  受信セグメントが受信ウィンドを超える場合は、
+		 *  超えた分を削る。
 		 *
 		 *       <---------- rcv_wnd --------->
@@ -1761,17 +1691,15 @@
 		 *                    ^                      ^
 		 *                    seq                    seq + len
-		 *                                     <-----> åé¤ããã
-		 */
-		todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd);	/* tcph->sum ã¯ TCP ã® SDU é· */
+		 *                                     <-----> 削除する。
+		 */
+		todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd);	/* tcph->sum は TCP の SDU 長 */
 		if (todrop > 0) {
-			if (todrop > tcph->sum) {					/* tcph->sum ã¯ TCP ã® SDU é· */
+			if (todrop > tcph->sum) {					/* tcph->sum は TCP の SDU 長 */
 				/*
-				 *  åä¿¡ãã SDU ã®å
-¨ã¦ãåä¿¡ã¦ã£ã³ããè¶
-ããå ´åã
+				 *  受信した SDU の全てが受信ウィンドを超える場合。
 				 *
-				 *  TIME_WAIT ä¸­ã«ãæ°ããªæ¥ç¶è¦æ±ãåä¿¡ããã
-				 *  å¤ãæ¥ç¶ãç ´æ£ããæ°ããªæ¥ç¶ãéå§ããã
-				 *  ãã ããSEQ ã¯åããé²ãã§ããªããã°ãªããªãã
+				 *  TIME_WAIT 中に、新たな接続要求を受信したら
+				 *  古い接続を破棄し、新たな接続を開始する。
+				 *  ただし、SEQ は前より進んでいなければならない。
 				 */
 				if ((tcph->flags & TCP_FLG_SYN) &&
@@ -1785,8 +1713,7 @@
 
 				/*
-				 *  åä¿¡ã¦ã£ã³ãã 0 ã§ãåä¿¡ãã SEQ ã¨
-				 *  åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ ãä¸è´ããã¨ãã¯
-				 *  ACK ãè¿ããããä»¥å¤ã¯ãã¼ã¿ãç ´æ£ããACK ãè¿ãã
+				 *  受信ウィンドが 0 で、受信した SEQ と
+				 *  受信を期待している最小の SEQ が一致したときは
+				 *  ACK を返す。それ以外はデータを破棄し、ACK を返す。
 				 */
 				if (cep->rcv_wnd == 0 && (tcph->seq == cep->rcv_nxt || tcph->sum == 0)) {
@@ -1799,11 +1726,11 @@
 					}
 				}
-			tcph->sum -= (uint16_t)todrop;	/* tcph->sum ã¯ TCP ã® SDU é· */
+			tcph->sum -= (uint16_t)todrop;	/* tcph->sum は TCP の SDU 長 */
 			tcph->flags &= ~(TCP_FLG_PUSH | TCP_FLG_FIN);
 			}
 
 		/*
-		 *  ãããSYN ãã»ããããã¦ããã°ã
-		 *  ã¨ã©ã¼ãªã®ã§ RST ãéããæ¥ç¶ãç ´æ£ããã
+		 *  もし、SYN がセットされていれば、
+		 *  エラーなので RST を送り、接続を破棄する。
 		 */
 		if (tcph->flags & TCP_FLG_SYN) {
@@ -1814,9 +1741,8 @@
 
 		/*
-		 *  ãããACK ãã»ããããã¦ããªãå ´åã¯ã
-		 *  ç¶æ
-ã SYN åä¿¡æ¸ã¿ã
-		 *  SYN ãéä¿¡ãããã¨ãã¦ããã°ãå¦çãç¶ãããã
-		 *  ããä»¥å¤ã¯ã»ã°ã¡ã³ããç ´æ£ãã¦çµäºããã
+		 *  もし、ACK がセットされていない場合は、
+		 *  状態が SYN 受信済みか
+		 *  SYN を送信しようとしていれば、処理を続けるが、
+		 *  それ以外はセグメントを破棄して終了する。
 		 */
 		if ((tcph->flags & TCP_FLG_ACK) == 0) {
@@ -1826,5 +1752,5 @@
 		else {
 			/*
-			 * ACK ã®å¦ç
+			 * ACK の処理
 			 */
 			ret = proc_ack1(input, cep, *offp, &needoutput);
@@ -1840,9 +1766,9 @@
 /* step 6 */
 
-	/* éä¿¡ã¦ã£ã³ããæ´æ°ããã*/
+	/* 送信ウィンドを更新する。*/
 	if (update_wnd(tcph, cep) == true)
 		needoutput = true;
 
-	/* ç·æ¥ãã¼ã¿ãå¦çããã*/
+	/* 緊急データを処理する。*/
 	proc_urg(tcph, cep);
 
@@ -1850,11 +1776,10 @@
 
 	/*
-	 *  SDU ãããããFIN ãæªåä¿¡ã®ç¶æ
-ã§ãæåã« FIN ãåä¿¡ããã¨ãã
-	 *  åä¿¡ã»ã°ã¡ã³ãã­ã¥ã¼ã« net_buf ãè¿½å ããã
-	 *  ããä»¥å¤ã®å ´åã¯ãã»ã°ã¡ã³ããç ´æ£ããã
+	 *  SDU があるか、FIN を未受信の状態で、最初に FIN を受信したとき、
+	 *  受信セグメントキューに net_buf を追加する。
+	 *  それ以外の場合は、セグメントを破棄する。
 	 */
 	flags = tcph->flags;
-	if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) &&		/* tcph->sum ã¯ TCP ã® SDU é· */
+	if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) &&		/* tcph->sum は TCP の SDU 長 */
 	    TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
 		flags = reassemble(input, cep, *offp, flags);
@@ -1866,12 +1791,12 @@
 
 	/*
-	 *  FIN ãåä¿¡ãããã³ãã¯ã·ã§ã³ãã¯ã­ã¼ãºããã
+	 *  FIN を受信したらコネクションをクローズする。
 	 */
 	if (flags & TCP_FLG_FIN)
 		close_connection(cep, &needoutput);
 
-	/* åºåãè¡ã£ãå¾çµäºããã*/
+	/* 出力を行った後終了する。*/
 	if (needoutput == true || (cep->flags & TCP_CEP_FLG_ACK_NOW)) {
-		/* éä¿¡ãæç¤ºããã*/
+		/* 送信を指示する。*/
 		cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1882,5 +1807,5 @@
 reset_drop:
 	/*
-	 *  RST éä¿¡å¦ç
+	 *  RST 送信処理
 	 */
 
@@ -1888,5 +1813,5 @@
 		goto drop;
 
-	/* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/
+	/* ホストオーダーからネットワークオーダーに戻す。*/
 
 	HTONS(tcph->sport);
@@ -1902,9 +1827,9 @@
 	else {
 		if (tcph->flags & TCP_FLG_SYN)
-			tcph->sum ++;		/* tcph->sum ã¯ SDU é· */
+			tcph->sum ++;		/* tcph->sum は SDU 長 */
 		tcp_respond(input, cep, tcph->seq + tcph->sum, 0, rbfree, TCP_FLG_RST | TCP_FLG_ACK);
 		}
 
-	/* input ã¯ tcp_respoond ã§è¿å´ãããã*/
+	/* input は tcp_respoond で返却される。*/
 	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_RSTS], 1);
 	NET_COUNT_MIB(tcp_stats.tcpOutRsts, 1);
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_output.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_output.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_output.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -125,5 +113,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -132,31 +120,25 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
-/* åºåæã®ãã©ã°ã FSM ç¶æ
-ã«ããé¸æããããã®è¡¨ */
+/* 出力時のフラグを FSM 状態により選択するための表 */
 
 const static uint8_t tcp_outflags[] = {
-	TCP_FLG_RST | TCP_FLG_ACK,	/*  0, ã¯ã­ã¼ãº				*/
-	0,				/*  1, ååãªã¼ãã³			*/
-	TCP_FLG_SYN,			/*  2, è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
-	TCP_FLG_SYN | TCP_FLG_ACK,	/*  3, SYM ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
-	TCP_FLG_ACK,			/*  4, ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
-	TCP_FLG_ACK,			/*  5, FIN åä¿¡ãã¯ã­ã¼ãºå¾
-ã¡		*/
-	TCP_FLG_FIN | TCP_FLG_ACK,	/*  6, çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
-	TCP_FLG_FIN | TCP_FLG_ACK,	/*  7, çµäºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-	TCP_FLG_FIN | TCP_FLG_ACK,	/*  8, FIN åä¿¡ãçµäºãACK å¾
-ã¡		*/
-	TCP_FLG_ACK,			/*  9, çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
-ã¡	*/
-	TCP_FLG_ACK,			/* 10, çµäºãæéå¾
-ã¡			*/
+	TCP_FLG_RST | TCP_FLG_ACK,	/*  0, クローズ				*/
+	0,				/*  1, 受動オープン			*/
+	TCP_FLG_SYN,			/*  2, 能動オープン、SYN 送信済み	*/
+	TCP_FLG_SYN | TCP_FLG_ACK,	/*  3, SYM を受信し、SYN 送信済み	*/
+	TCP_FLG_ACK,			/*  4, コネクション開設完了		*/
+	TCP_FLG_ACK,			/*  5, FIN 受信、クローズ待ち		*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  6, 終了して、FIN 送信済み		*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  7, 終了、FIN 交換済み、ACK 待ち	*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  8, FIN 受信、終了、ACK 待ち		*/
+	TCP_FLG_ACK,			/*  9, 終了、FIN 伝達確認受信、FIN待ち	*/
+	TCP_FLG_ACK,			/* 10, 終了、時間待ち			*/
 	};
 
 /*
- *  send_segment -- TCP åºåå¦ç
+ *  send_segment -- TCP 出力処理
  */
 
@@ -188,13 +170,10 @@
 
 	/*
-	 *  ã»ã°ã¡ã³ãé·ããç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ãé·ã«èª¿æ´ããã
-	 *  ãããè¶
-ãã¦ããå ´åã¯ãè¶
-ããåãå¾ã§éä¿¡ããã
-	 *  ãã®ãããFIN ããããã¯ãªã¢ããã
+	 *  セグメント長を、相手の最大受信セグメント長に調整する。
+	 *  もし、超えている場合は、超えた分を後で送信する。
+	 *  このため、FIN ビットをクリアする。
 	 *
-	 *  ãªãªã¸ãã«ã§ã¯ãt_maxopd ãå¶éé·ã«ãã¦ãããã
-	 *  æ¬å®è£
-ã§ã¯ãç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ãã«ããã
+	 *  オリジナルでは、t_maxopd を制限長にしているが、
+	 *  本実装では、相手の最大受信セグメントにする。
 	 */
 	if (len + optlen > cep->maxseg) {
@@ -205,5 +184,5 @@
 
 	/*
-	 *  éä¿¡ãããã¡ãç©ºã«ãªãã¨ãã¯ PUSH ãã©ã°ãè¨­å®ããã
+	 *  送信バッファが空になるときは PUSH フラグを設定する。
 	 */
 	if (len && doff + len >= cep->swbuf_count)
@@ -216,6 +195,6 @@
 
 		/*
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã
-		 *  ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã
+		 *  送信ウインドバッファが開放されないようにして、
+		 *  ネットワークバッファを出力に移す。
 		 */
 		cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
@@ -225,7 +204,6 @@
 
 		/*
-		 *  ACK å®äºç¶æ
-ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã
-		 *  ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã
+		 *  ACK 完了状態で、この関数が呼び出されることもある。
+		 *  この時は、len を 0 にして、処理を継続する。
 		 */
 		len = 0;
@@ -254,6 +232,6 @@
 
 		/*
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã
-		 *  ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã
+		 *  送信ウインドバッファが開放されないようにして、
+		 *  ネットワークバッファを出力に移す。
 		 */
 		cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
@@ -263,7 +241,6 @@
 
 		/*
-		 *  ACK å®äºç¶æ
-ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã
-		 *  ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã
+		 *  ACK 完了状態で、この関数が呼び出されることもある。
+		 *  この時は、len を 0 にして、処理を継続する。
 		 */
 		len = 0;
@@ -290,7 +267,6 @@
 
 	/*
-	 *  TCP ãªãã·ã§ã³ã®è¨­å®ãè¡ãã
-	 *  æ¬å®è£
-ã§ã¯ãæå¤§ã»ã°ã¡ã³ããµã¤ãºã®ã¿è¨­å®ããã
+	 *  TCP オプションの設定を行う。
+	 *  本実装では、最大セグメントサイズのみ設定する。
 	 */
 	hdr_offset = IF_IP_TCP_HDR_OFFSET(output);
@@ -309,5 +285,5 @@
 		}
 
-	/* TCP SDU ã«éä¿¡ãã¼ã¿ãã³ãã¼ããã*/
+	/* TCP SDU に送信データをコピーする。*/
 
 	if (len > 0) {
@@ -335,10 +311,10 @@
 
 	/*
-	 * snd_max: éä¿¡ããæå¤§ SEQ
-	 * snd_nxt: æ¬¡ã«éä¿¡ãã SEQ
+	 * snd_max: 送信した最大 SEQ
+	 * snd_nxt: 次に送信する SEQ
 	 *
-	 *  ç¸æãã FIN ãåä¿¡ããã¾ã  FIN ãéä¿¡ãã¦ããªããã
-	 *  éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã
-	 *  ã»ã°ã¡ã³ããéä¿¡ããããSEQ ã¯é²ããªãã
+	 *  相手から FIN を受信し、まだ FIN を送信していないか、
+	 *  送るデータがないときは、FIN を相手に届けるため、
+	 *  セグメントを送信するが、SEQ は進めない。
 	 */
 	if ((flags & TCP_FLG_FIN) && (cep->flags & TCP_CEP_FLG_SENT_FIN) &&
@@ -350,5 +326,5 @@
 
 	/*
-	 *  SEQãACKããã©ã°ã®è¨­å®ã
+	 *  SEQ、ACK、フラグの設定。
 	 */
 	if (len > 0 || (flags & (TCP_FLG_SYN | TCP_FLG_FIN)) || cep->timer[TCP_TIM_PERSIST] != 0)
@@ -358,6 +334,5 @@
 
 	/*
-	 *  rcv_nxt: åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ
+	 *  rcv_nxt: 受信を期待している最小の SEQ
 	 */
 	tcph->ack   = htonl(cep->rcv_nxt);
@@ -365,8 +340,8 @@
 
 	/*
-	 *  åä¿¡ã¦ã£ã³ãã®è¨ç®
+	 *  受信ウィンドの計算
 	 *
-	 *  rbufsz: åä¿¡ç¨ãããã¡ãµã¤ãº
-	 *  maxseg: ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº	
+	 *  rbufsz: 受信用バッファサイズ
+	 *  maxseg: 相手の最大受信セグメントサイズ	
 	 */
 	if (win < (cep->rbufsz / 4) && win < cep->maxseg)
@@ -374,8 +349,6 @@
 
 	/*
-	 *  rcv_nxt: åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ
-	 *  rcv_adv: åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ
+	 *  rcv_nxt: 受信を期待している最小の SEQ
+	 *  rcv_adv: 受信を期待している最大の SEQ
 	 */
 	if ((int32_t)win < (int32_t)(cep->rcv_adv - cep->rcv_nxt))
@@ -387,5 +360,5 @@
 
 	/*
-	 *  ç·æ¥ãã¤ã³ã¿ã®è¨­å®
+	 *  緊急ポインタの設定
 	 */
 	if (SEQ_GT(cep->snd_up, cep->snd_nxt)) {
@@ -404,14 +377,14 @@
 
 	/*
-	 *  ãã§ãã¯ãµã ãè¨­å®ããã
+	 *  チェックサムを設定する。
 	 */
 	tcph->sum = 0;
 	tcph->sum = IN_CKSUM(output, IPPROTO_TCP, hdr_offset, GET_TCP_HDR_SIZE(output, hdr_offset) + len);
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)(GET_IF_IP_TCP_HDR_SIZE(output, hdr_offset) + len);
 
 	/*
-	 *  ã¿ã¤ãã®èª¿æ´
+	 *  タイマの調整
 	 */
 	if ((cep->flags & TCP_CEP_FLG_FORCE) == 0 || cep->timer[TCP_TIM_PERSIST] == 0) {
@@ -419,5 +392,5 @@
 
 		/*
-		 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) ãä»åéä¿¡ãããã¼ã¿æ°åé²ããã
+		 *  次に送信する SEQ (snd_nxt) を今回送信するデータ数分進める。
 		 */
 		if (flags & TCP_FLG_SYN)
@@ -431,25 +404,25 @@
 
 		/*
-		 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) ã
-		 *  éä¿¡ããæå¤§ SEQ (snd_max) ããé²ãã§ããã°ã
-		 *  éä¿¡ããæå¤§ SEQ (snd_max) ãæ´æ°ããã
+		 *  次に送信する SEQ (snd_nxt) が
+		 *  送信した最大 SEQ (snd_max) より進んでいれば、
+		 *  送信した最大 SEQ (snd_max) を更新する。
 		 */
 		if (SEQ_GT(cep->snd_nxt, cep->snd_max)) {
 			cep->snd_max = cep->snd_nxt;
 			/*
-			 *  ãããå¾å¾©æéè¨æ¸¬ãè¡ã£ã¦ããªããã°ã
-			 *  ãã®éä¿¡ã«æéãåãããã
+			 *  もし、往復時間計測を行っていなければ、
+			 *  この送信に時間を合わせる。
 			 */
 			if (cep->rtt == 0) {
 				cep->rtt   = 1;
-				cep->rtseq = startseq;	/* æ´æ°åã® cep->snd_nxt */
-				}
-			}
-
-		/*
-		 *  ããè¨­å®ããã¦ããªãããACK ã¾ãã¯ä¿çãçºçãã¦ããªããã°ã
-		 *  åéã¿ã¤ããè¨­å®ãããè¨­å®ããåæå¤ã¯ã
-		 * ãæ»ãããªå¾å¾©æé + 2 Ã å¾å¾©æéå¤åãã§ããã
-		 *  åéæéã®ããã¯ãªãã«ä½¿ãããã·ããã«ã¦ã³ããåæåããã
+				cep->rtseq = startseq;	/* 更新前の cep->snd_nxt */
+				}
+			}
+
+		/*
+		 *  もし設定されていないか、ACK または保留が発生していなければ、
+		 *  再送タイマを設定する。設定する初期値は、
+		 * 「滑らかな往復時間 + 2 × 往復時間変動」である。
+		 *  再送時間のバックオフに使われるシフトカウントも初期化する。
 		 */
 		if (cep->timer[TCP_TIM_REXMT] == 0 && cep->snd_nxt != cep->snd_una) {
@@ -463,7 +436,7 @@
 
 	/*
-	 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) + ä»åéä¿¡ãããã¼ã¿æ° (len) ã
-	 *  éä¿¡ããæå¤§ SEQ (snd_max) ããé²ãã§ããã°ã
-	 *  éä¿¡ããæå¤§ SEQ (snd_max) ãæ´æ°ããã
+	 *  次に送信する SEQ (snd_nxt) + 今回送信するデータ数 (len) が
+	 *  送信した最大 SEQ (snd_max) より進んでいれば、
+	 *  送信した最大 SEQ (snd_max) を更新する。
 	 */
 	else if (SEQ_GT(cep->snd_nxt + len, cep->snd_max))
@@ -483,16 +456,13 @@
 #endif	/* of #ifdef TCP_CFG_TRACE */
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	if ((error = IP_OUTPUT(output, TMO_TCP_OUTPUT)) != E_OK)
 		goto err_ret;
 
 	/*
-	 *  ç¸æã«ä¼ããã¦ã£ã³ãã¦ãµã¤ãº (win) ã 0 ä»¥ä¸ã§ã
-	 *  åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ (rcv_nxt) + win ã
-	 *  åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ (rcv_adv) ããé²ãã§ããã°
-	 *  åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ ãæ´æ°ããã
+	 *  相手に伝えたウィンドウサイズ (win) が 0 以上で、
+	 *  受信を期待している最小の SEQ (rcv_nxt) + win が
+	 *  受信を期待している最大の SEQ (rcv_adv) より進んでいれば
+	 *  受信を期待している最大の SEQ を更新する。
 	 */
 	if (win > 0 && SEQ_GT(cep->rcv_nxt + win, cep->rcv_adv)) {
@@ -501,10 +471,10 @@
 
 	/*
-	 *  æå¾ã«éä¿¡ãã ACK (last_ack_sent) ãæ´æ°ããã
+	 *  最後に送信した ACK (last_ack_sent) を更新する。
 	 */
 	cep->last_ack_sent = cep->rcv_nxt;
 
 	/*
-	 *  ãã©ã°ã®è¨­å®ãè¡ãã
+	 *  フラグの設定を行う。
 	 */
 	cep->flags &= ~(TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_DEL_ACK);
@@ -516,7 +486,7 @@
 err_ret:
 	/*
-	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+	 * 以下に関係しないフラグをクリアーする。
+	 * ・送受信ウィンドバッファの省コピー機能
+	 * ・動的な通信端点の生成・削除機能
 	 */
 	cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
@@ -526,5 +496,5 @@
 
 /*
- *  tcp_output -- TCP åºåå¦ç
+ *  tcp_output -- TCP 出力処理
  */
 
@@ -539,20 +509,20 @@
 
 	/*
-	 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ	 ã¾ãã¯ãç¢ºèªãããæå¤§éä¿¡ SEQ
-	 *  snd_max: éä¿¡ããæå¤§ SEQ
+	 *  snd_una: 未確認の最小送信 SEQ	 または、確認された最大送信 SEQ
+	 *  snd_max: 送信した最大 SEQ
 	 */
 	idle = (cep->snd_max == cep->snd_una);
 
 	/*
-	 *  idle:   ã¢ã¤ãã«æé
-	 *  rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã
+	 *  idle:   アイドル時間
+	 *  rxtcur: 現在の再送タイムアウト
 	 */
 	if (idle && cep->idle >= cep->rxtcur)
 
 		/*
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
-		 *  maxseg  : ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº
+		 *  snd_cwnd: 輻輳ウィンドサイズ
+		 *  maxseg  : 相手の最大受信セグメントサイズ
 		 *
-		 *  é·æéã¢ã¤ãã«ã ã£ãã®ã§ã¹ã­ã¼ã¹ã¿ã¼ãå¶å¾¡ã«è¨­å®ããã
+		 *  長時間アイドルだったのでスロースタート制御に設定する。
 		 */
 		cep->snd_cwnd = cep->maxseg;
@@ -562,9 +532,9 @@
 
 		/*
-		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ãã SEQ
-		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
+		 *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
 		 *
-		 *  doff: éä¿¡ãéå§ãããªãã»ããã
-		 *                                    swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+		 *  doff: 送信を開始するオフセット。
+		 *                                    swbuf_count (送信バッファにあるオクテット数)
 		 *    0                               V
 		 *    +-------------------------------------------+
@@ -572,19 +542,19 @@
 		 *    +-------------------------------------------+
 		 *    ^               ^
-		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |<------------->snd_nxt (前回送信した SEQ)
 		 *    |       doff
-		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 *    snd_una (まだ確認されていない)
 		 */
 		doff = (uint_t)(cep->snd_nxt - cep->snd_una);
 
 		/*
-		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *  snd_wnd:  相手の受信可能ウィンドサイズ
+		 *  snd_cwnd: 輻輳ウィンドサイズ
 		 *
-		 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+		 *  win: どちらか小さいウィンドサイズに設定する。
 		 */
 		win   = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
 	
-		/* åºåãã©ã°ã®è¨­å® */
+		/* 出力フラグの設定 */
 		flags = tcp_outflags[cep->fsm_state];
 		if (cep->flags & TCP_CEP_FLG_NEED_FIN)
@@ -595,17 +565,17 @@
 
 			/*
-			 *  ãããéä¿¡ã¦ã¤ã³ããµã¤ãº (win) ã 0 ãªã 1 ãªã¯ãããéä¿¡ããã
-			 *  ããã§ãªããã°ãæç¶ã¿ã¤ã ã¢ã¦ããã­ã£ã³ã»ã«ãã
-			 *  åéä¿¡åæ° (rxtshift) ã 0 ã«ããã
+			 *  もし、送信ウインドサイズ (win) が 0 なら 1 オクテット送信する。
+			 *  そうでなければ、持続タイムアウトをキャンセルし、
+			 *  再送信回数 (rxtshift) を 0 にする。
 			 */
 			if (win == 0) {
 
 				/*
-				 *  doff:        éä¿¡ãããªã¯ãããæ°ã
-				 *  swbuf_count: éä¿¡ãããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº
+				 *  doff:        送信するオクテット数。
+				 *  swbuf_count: 送信バッファの使用中サイズ
 				 *
-				 *  éä¿¡ãããã¡ã«æ®ã£ã¦ãããªã¯ããããããããã
-				 *  éä¿¡ãããã¨ãã¦ãããªã¯ãããæ°ããå¤ããã°
-				 *  FIN ãã©ã°ãã¯ãªã¢ããã
+				 *  送信バッファに残っているオクテットが、これから
+				 *  送信しようとしているオクテット数より多ければ
+				 *  FIN フラグをクリアする。
 				 */
 				if (doff < cep->swbuf_count)
@@ -615,6 +585,6 @@
 			else {
 				/*
-				 *  TCP_TIM_PERSIST: æç¶ã¿ã¤ã
-				 *  rxtshift:        åéä¿¡åæ°ã® log(2)
+				 *  TCP_TIM_PERSIST: 持続タイマ
+				 *  rxtshift:        再送信回数の log(2)
 				 */
 				cep->timer[TCP_TIM_PERSIST] = 0;
@@ -624,6 +594,6 @@
 
 		/*
-		 *  len: ä»åéä¿¡ãããªã¯ãããæ°
-		 *        swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+		 *  len: 今回送信するオクテット数
+		 *        swbuf_count (送信バッファにあるオクテット数)
 		 *                                    |
 		 *    0                               V
@@ -633,7 +603,7 @@
 		 *    ^               ^<------------->
 		 *    |               |      len
-		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |<------------->snd_nxt (前回送信した SEQ)
 		 *    |       doff
-		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 *    snd_una (まだ確認されていない)
 		 */
 		if (cep->swbuf_count < win)
@@ -643,15 +613,14 @@
 
 		/*
-		 *  ãã§ã«éä¿¡ããã¦ããã°ãSYN ãããããªãããã
-		 *  ããããä»¥ä¸ã®æ¡ä»¶ã§ã¯éä¿¡ãæ§ããã
+		 *  すでに送信されていれば、SYN ビットをオフする。
+		 *  しかし、以下の条件では送信を控える。
 		 *
-		 *    ã»ç¶æ
-ã SYN éä¿¡ã
-		 *    ã»ã»ã°ã¡ã³ãããã¼ã¿ãå«ãã§ããã
+		 *    ・状態が SYN 送信。
+		 *    ・セグメントがデータを含んでいる。
 		 */
 		if ((flags & TCP_FLG_SYN) && SEQ_GT(cep->snd_nxt, cep->snd_una)) {
 			flags &= ~TCP_FLG_SYN;
-			doff --;		/* -1 ã¯ SYN ãã©ã°å */
-			len ++;			/* +1 ã¯ SYN ãã©ã°å */
+			doff --;		/* -1 は SYN フラグ分 */
+			len ++;			/* +1 は SYN フラグ分 */
 			if (len > 0 && cep->fsm_state == TCP_FSM_SYN_SENT)
 				break;
@@ -666,10 +635,10 @@
 
 			/*
-			 *  len ã 0 ä»¥ä¸ãªãã0 ã«è¨­å®ããã
-			 *  ãããéä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ãªãã
-			 *  åéä¿¡ã¿ã¤ããã­ã£ã³ã»ã«ãã
-			 *  ååéä¿¡ãã SEQ (snd_nxt) ã
-			 *  ç¢ºèªãããæå¤§éä¿¡ SEQ (snd_una) ã«æ»ãã
-			 *  ããã¦ãæç¶ã¿ã¤ãã¼ãæ­¢ã¾ã£ã¦ããã°ãåè¨­å®ããã
+			 *  len が 0 以下なら、0 に設定する。
+			 *  もし、送信ウィンドウサイズが 0 なら、
+			 *  再送信タイマをキャンセルし、
+			 *  前回送信した SEQ (snd_nxt) を
+			 *  確認された最大送信 SEQ (snd_una) に戻す。
+			 *  そして、持続タイマーが止まっていれば、再設定する。
 			 */
 			len = 0;
@@ -685,7 +654,6 @@
 
 		/*
-		 *  ä»åéä¿¡ãããªã¯ãããæ° (len) ã¯ã
-		 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
-ããªãããã«ããã
+		 *  今回送信するオクテット数 (len) は、
+		 *  相手の最大受信セグメントサイズ (maxseg) を超えないようにする。
 		 */
 		if (len > cep->maxseg) {
@@ -695,5 +663,5 @@
 
 		/*
-                 *        swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+                 *        swbuf_count (送信バッファにあるオクテット数)
                  *                                           |
 		 *    0                                      V
@@ -703,10 +671,10 @@
 		 *    ^               ^<------------->
 		 *    |               |      len
-		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |<------------->snd_nxt (前回送信した SEQ)
 		 *    |       doff
-		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 *    snd_una (まだ確認されていない)
 		 *
-		 *  ä»åéä¿¡å¾ããéä¿¡ãããã¡ã«ãã¼ã¿ãæ®ã£ã¦ããã°
-		 *  FIN ãã©ã°ãã¯ãªã¢ããã
+		 *  今回送信後も、送信バッファにデータが残っていれば
+		 *  FIN フラグをクリアする。
 		 */
 		if (SEQ_LT(cep->snd_nxt + len, cep->snd_una + cep->swbuf_count))
@@ -714,26 +682,25 @@
 
 		/*
-		 *  ãããã win ã¯ãåä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã
-		 *  åä¿¡ãããã¡ã®ç©ºãå®¹é
+		 *  ここから win は、受信ウィンドウサイズ。
+		 *  受信バッファの空き容量
 		 */
 		win = cep->rbufsz - cep->rwbuf_count;
 
 		/*
-		 *  æããªã¦ã£ã³ãã¦ã»ã·ã³ãã­ã¼ã ã®åé¿å¦ç (éä¿¡å´)
+		 *  愚かなウィンドウ・シンドロームの回避処理 (送信側)
 		 *
-		 *  ä»¥ä¸ã®æ¡ä»¶ã§ãéä¿¡ãè¡ãã
+		 *  以下の条件で、送信を行う。
 		 *
-		 *    ã»ãã«ãµã¤ãº (maxseg) ã®ã»ã°ã¡ã³ããéããã¨ãã§ããã
-		 *    ã»ç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ã®ãã¼ã¿ã
-		 *      éããã¨ãã§ããã
-		 *    ã»éä¿¡ãããã¡ãç©ºã«ã§ããã¢ã¤ãã«ãéé
-å»¶ãªãã·ã§ã³ãæå¹ãªã¨ãã
+		 *    ・フルサイズ (maxseg) のセグメントを送ることができる。
+		 *    ・相手の最大の受信ウィンドウサイズの 1/2 のデータを
+		 *      送ることができる。
+		 *    ・送信バッファを空にでき、アイドルか非遅延オプションが有効なとき。
 		 */
 		if (len) {
 
 			/*
-			 *  ä»åéä¿¡ãããªã¯ãããæ° (len) ã
-			 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã«
-			 *  ä¸è´ããã¨ãã¯éä¿¡ããã
+			 *  今回送信するオクテット数 (len) が
+			 *  相手の最大受信セグメントサイズ (maxseg) に
+			 *  一致するときは送信する。
 			 */
 			if (len == cep->maxseg) {
@@ -743,6 +710,6 @@
 
 			/*
-			 *  ä»åã®éä¿¡ã§ãéä¿¡ãããã¡ãç©ºã«ã§ãã
-			 *  ã¢ã¤ãã«ãé PUSH ãªãã·ã§ã³ãæå¹ãªã¨ãã
+			 *  今回の送信で、送信バッファを空にでき、
+			 *  アイドルか非 PUSH オプションが有効なとき。
 			 */
 			if ((idle || (cep->flags & TCP_CEP_FLG_NO_DELAY)) &&
@@ -754,15 +721,15 @@
 
 			/*
-			 *  max_sndwnd: ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãº
-			 *  snd_nxt:    æ¬¡ã«éä¿¡ãã SEQ
-			 *  snd_max:    éä¿¡ããæå¤§ SEQ
+			 *  max_sndwnd: 今までの最大送信ウィンドサイズ
+			 *  snd_nxt:    次に送信する SEQ
+			 *  snd_max:    送信した最大 SEQ
 			 *
-			 *  æ¬¡ã®æ¡ä»¶ã§ã¯éä¿¡ãè¡ãã
+			 *  次の条件では送信を行う。
 			 *
-			 *    ã»å¼·å¶éä¿¡ãã©ã°ãã»ããããã¦ããã
-			 *    ã»ãã¼ã¿é·ãç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ä»¥ä¸ã§ã
-			 *      ç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ããå¤§ããã
-			 *    ã»æ¬¡ã«éä¿¡ãã SEQ ãéä¿¡ããæå¤§ SEQ ããå°ããã
-			 *      ã¤ã¾ããåéããã¨ãã
+			 *    ・強制送信フラグがセットされている。
+			 *    ・データ長が相手の最大の受信ウィンドウサイズの 1/2 以上で、
+			 *      相手の最大の受信ウィンドウサイズが 0 より大きい。
+			 *    ・次に送信する SEQ が送信した最大 SEQ より小さい、
+			 *      つまり、再送するとき。
 			 */
 			if ((cep->flags & TCP_CEP_FLG_FORCE) ||
@@ -776,9 +743,9 @@
 
 		/*
-		 *  æããªã¦ã£ã³ãã¦ã»ã·ã³ãã­ã¼ã ã®åé¿å¦ç (åä¿¡å´)
+		 *  愚かなウィンドウ・シンドロームの回避処理 (受信側)
 		 *
-		 *  ã¦ã£ã³ãã¦ãµã¤ãºããã«ãµã¤ãºã® 2 åã®ã»ã°ã¡ã³ãããããã¯
-		 *  åä¿¡ãããã¡å®¹éã® 1/2 ã®ãããããå°ããã»ãã®
-		 *  ãµã¤ãºã§å¢å ãããå ´åã¯ãã¦ã£ã³ãã¦ãµã¤ãºã®æ´æ°ãè¡ãã
+		 *  ウィンドウサイズがフルサイズの 2 倍のセグメント、あるいは
+		 *  受信バッファ容量の 1/2 の、いずれか小さいほうの
+		 *  サイズで増加される場合は、ウィンドウサイズの更新を行う。
 		 */
 		if (win > 0) {
@@ -786,10 +753,8 @@
 
 			/*
-			 *  win:              åä¿¡ãããã¡ã®ç©ºãå®¹é
-			 *  MAX_TCP_WIN_SIZE: TCP ãããã® win ãã£ã¼ã«ãã«è¨­å®ã§ããæå¤§å¤
-			 *  rcv_adv:          åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ
-			 *  rcv_nxt:          åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ
+			 *  win:              受信バッファの空き容量
+			 *  MAX_TCP_WIN_SIZE: TCP ヘッダの win フィールドに設定できる最大値
+			 *  rcv_adv:          受信を期待している最大の SEQ
+			 *  rcv_nxt:          受信を期待している最小の SEQ
 			 */
 			if (win < MAX_TCP_WIN_SIZE)
@@ -806,5 +771,5 @@
 	
 		/*
-		 *  ACK ãéä¿¡ããã
+		 *  ACK を送信する。
 		 */
 		if (cep->flags & TCP_CEP_FLG_ACK_NOW) {
@@ -829,10 +794,10 @@
 
 		/*
-		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQ
-		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *  snd_nxt: 次に送信する SEQ
+		 *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
 		 *
-		 *  ç¸æãã FIN ãåä¿¡ããã¾ã  FIN ãéä¿¡ãã¦ããªããã
-		 *  éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã
-		 *  ã»ã°ã¡ã³ããéä¿¡ããã
+		 *  相手から FIN を受信し、まだ FIN を送信していないか、
+		 *  送るデータがないときは、FIN を相手に届けるため、
+		 *  セグメントを送信する。
 		 */
 		if ((flags & TCP_FLG_FIN) &&
@@ -843,6 +808,6 @@
 
 		/*
-		 *  éä¿¡ãã¹ããã¼ã¿ããããåéã¿ã¤ãã¨æç¶ã¿ã¤ããåãã¦ããã¨ãã¯
-		 *  æç¶ã¿ã¤ããè¨­å®ããã
+		 *  送信すべきデータがあり、再送タイマと持続タイマが切れているときは
+		 *  持続タイマを設定する。
 		 */
 		if (cep->swbuf_count && cep->timer[TCP_TIM_REXMT  ] == 0 &&
@@ -859,5 +824,5 @@
 
 /*
- *  tcptsk_alloc_swbufq -- éä¿¡ã¦ã£ã³ããããã¡å²ãå½ã¦
+ *  tcptsk_alloc_swbufq -- 送信ウィンドバッファ割り当て
  */
 
@@ -869,14 +834,13 @@
 
 	/*
-	 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-	 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+	 *  snd_wnd:  相手の受信可能ウィンドサイズ
+	 *  snd_cwnd: 輻輳ウィンドサイズ
 	 *
-	 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+	 *  win: どちらか小さいウィンドサイズに設定する。
 	 */
 	win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
 
 	/*
-	 *  ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾
-æ©ããã
+	 *  相手の受信ウィンドが閉じている場合は、開くまで待機する。
 	 */
 	if (win == 0) {
@@ -887,9 +851,9 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 		if (!IS_PTR_DEFINED(cep->callback)) {
 			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-			/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+			/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 			cep->snd_tskid = TA_NULL;
 			cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -906,10 +870,10 @@
 		                                   (GET_TCP_CEPID(cep) & NBA_ID_MASK)), TMO_POL)) != E_OK) {
 
-			/* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+			/* ネットワークバッファを予約する。*/
 			cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_PEND;
 			}
 		else {
 
-			/* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/
+			/* 送信ウィンドバッファを初期化する。*/
 			tcp_init_swbuf(cep);
 
@@ -920,8 +884,8 @@
 				uint_t len;
 
-				/* éä¿¡ã¦ã£ã³ããããã¡ã®æ¸ãè¾¼ã¿ã¢ãã¬ã¹ãè¨­å®ããã*/
+				/* 送信ウィンドバッファの書き込みアドレスを設定する。*/
 				len = TCP_GET_SWBUF_ADDR(cep, cep->snd_p_buf);
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
@@ -931,5 +895,5 @@
 
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -941,10 +905,10 @@
 				uint_t len;
 
-				/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+				/* 送信ウィンドバッファにデータを書き込む。*/
 				len = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
 
 #ifdef TCP_CFG_EXTENTIONS
 
-				/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+				/* 送信緊急ポインタを設定する。*/
 			        if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
 					cep->snd_up = cep->snd_una + len;
@@ -952,8 +916,8 @@
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-				/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããå¼·å¶çã«éä¿¡ããã*/
+				/* フラグを、送信可能に設定し、強制的に送信する。*/
 				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR | TCP_CEP_FLG_POST_OUTPUT;
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
@@ -963,5 +927,5 @@
 
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -975,5 +939,5 @@
 
 /*
- *  tcptsk_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡éæ¾
+ *  tcptsk_free_swbufq -- 送信ウィンドバッファ開放
  */
 
@@ -982,23 +946,22 @@
 {
 	/*
-	 *  åä¿¡ç¢ºèªãå®äºãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããã®
-	 *  åºåãå®äºããã¨ãã¯ãéä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
-	 */
-
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+	 *  受信確認が完了し、ネットワークインタフェースからの
+	 *  出力も完了したときは、送信ウィンドバッファキューを解放する。
+	 */
+
+	/* 送信ウィンドバッファの使用中サイズをリセットする。*/
 	cep->swbuf_count = 0;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+	/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 	syscall(rel_net_buf(cep->swbufq));
 	cep->swbufq = NULL;
 
-	/* ãã©ã°ãç©ºãã«è¨­å®ããã*/
+	/* フラグを空きに設定する。*/
 	cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_FREE;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/
+	/* 送信ウィンドバッファに空きができたことを知らせる。*/
 	syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾
-ã¡ã®ã¨ãã¯ãTCP åºåã¿ã¹ã¯ãèµ·åããã*/
+	/* 送信ウィンドバッファの空き待ちのときは、TCP 出力タスクを起動する。*/
 	if ((cep->flags & TCP_CEP_FLG_WBCS_NBUF_REQ) != 0) {
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1009,5 +972,5 @@
 
 /*
- *  TCP åºåã¿ã¹ã¯
+ *  TCP 出力タスク
  */
 
@@ -1028,5 +991,5 @@
 #ifdef _IP6_CFG
 
-	/* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãå®è¡ããã*/
+	/* IPv6 のステートレス・アドレス自動設定を実行する。*/
 	in6_if_up(IF_GET_IFNET());
 
@@ -1035,6 +998,5 @@
 	while (true) {
 
-		/* åºåããã¹ããããã¾ã§å¾
-ã¤ã*/
+		/* 出力がポストされるまで待つ。*/
 		syscall(wai_sem(SEM_TCP_POST_OUTPUT));
 
@@ -1061,6 +1023,6 @@
 
 			/*
-			 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµãã£ã¦ããªãã¨ãã¯ã
-			 *  éä¿¡ãäºç´ããã
+			 *  ネットワークインタフェースから送信が終わっていないときは、
+			 *  送信を予約する。
 			 */
 			if (cep->flags & TCP_CEP_FLG_POST_OUTPUT &&
@@ -1077,7 +1039,6 @@
 
 			/*
-			 *  éä¿¡äºç´ä¸­ã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµäºãããã
-			 *  éä¿¡ãéå§ããããã ããå®å
-¨ã«éä¿¡ãçµäºããã¨ãã¯ä½ãããªãã
+			 *  送信予約中に、ネットワークインタフェースから送信が終了したら、
+			 *  送信を開始する。ただし、完全に送信が終了したときは何もしない。
 			 */
 			if (cep->flags & TCP_CEP_FLG_RESERVE_OUTPUT) {
@@ -1102,8 +1063,8 @@
 
 					/*
-					 *  tcp_con_cep ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ã
-					 *  æªå²å½ã®ã®å ´åã¯ããã¼ãçªå·ãå²ãå½ã¦ãã
-					 *  p_myaddr ã NADR (-1) ãã
-					 *  èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+					 *  tcp_con_cep のノンブロッキングコールで、
+					 *  未割当のの場合は、ポート番号を割り当てる。
+					 *  p_myaddr が NADR (-1) か、
+					 *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
 					 */
 					if (cep->p_myaddr == NADR || cep->p_myaddr->portno == TCP_PORTANY)
@@ -1120,5 +1081,5 @@
 							syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-						/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+						/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 						cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
 						cep->snd_tskid = TA_NULL;
@@ -1132,5 +1093,5 @@
 
 				if (cep->flags & TCP_CEP_FLG_CLOSE_AFTER_OUTPUT) {
-					/* ã³ãã¯ã·ã§ã³ãéããã*/
+					/* コネクションを閉じる。*/
 					tcp_close(cep);
 					cep->flags &= ~TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
@@ -1138,6 +1099,5 @@
 
 				if (cep->flags & TCP_CEP_FLG_RESTORE_NEXT_OUTPUT) {
-					/* snd_nxt ãå
-ã«æ»ãã*/
+					/* snd_nxt を元に戻す。*/
 					if (SEQ_GT(cep->snd_old_nxt, cep->snd_nxt))
 						cep->snd_nxt = cep->snd_old_nxt;
@@ -1152,5 +1112,5 @@
 			} while (ix != last_ix);
 
-		/* æ¬¡åã¯ãå¦çããéä¿¡ç«¯ç¹ãå¾åãã«ããã*/
+		/* 次回は、処理した通信端点を後回しにする。*/
 		last_ix = sel_ix;
 		}
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_seq.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_seq.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_seq.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  SEQ ã¨ ACK çªå·ã¯ã32 ãããç¬¦å·ä»æ´æ°ã§æ¯è¼ããã
+ *  SEQ と ACK 番号は、32 ビット符号付整数で比較する。
  */
 
@@ -93,5 +81,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -99,16 +87,15 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
-extern T_TCP_SEQ tcp_iss;		/* TCP ã® SEQ ã®åæå¤ */
+extern T_TCP_SEQ tcp_iss;		/* TCP の SEQ の初期値 */
 
 /*
- *  ã¤ã³ã©ã¤ã³é¢æ°
+ *  インライン関数
  */
 
 /*
- *  init_receive_seq -- åä¿¡ SEQ çªå·ãåæåããã
+ *  init_receive_seq -- 受信 SEQ 番号を初期化する。
  */
 
@@ -120,5 +107,5 @@
 
 /*
- *  init_send_seq -- éä¿¡ SEQ çªå·ãåæåããã
+ *  init_send_seq -- 送信 SEQ 番号を初期化する。
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -129,11 +117,10 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/*
- *  TCP ã® SEQ ã®åæå¤ããã­ã°ã©ã ãèµ·åãã¦ãæåã« TCP ã»ã°ã¡ã³ãã
- *  éåä¿¡ããã¨ãã«ãget_tim() ã«ããåæåããã
+ *  全域変数
+ */
+
+/*
+ *  TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを
+ *  送受信するときに、get_tim() により初期化する。
  */
 T_TCP_SEQ tcp_iss = 0;
@@ -142,6 +129,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -151,18 +137,17 @@
 
 /*
- *  å±æå¤æ°
- */
-
-static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;	/* èªåå²ãå½ã¦çªå·	*/
+ *  局所変数
+ */
+
+static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;	/* 自動割り当て番号	*/
 
 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
 
 /*
- *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
- CEP åé¢æ©è½
- */
-
-/*
- *  å¤æ°
+ *  タスクからの Time Wait 状態 CEP 分離機能
+ */
+
+/*
+ *  変数
  */
 
@@ -170,8 +155,6 @@
 
 /*
- *  tcp_move_twcep -- å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
- *                    æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+ *  tcp_move_twcep -- 必要な情報を Time Wait 用 TCP 通信端点に移して、
+ *                    標準の TCP 通信端点を開放する。
  */
 
@@ -181,13 +164,11 @@
 	T_TCP_TWCEP*	twcep;
 
-	/* ç©ºãã® Time Wait ç¨ TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ããã*/
+	/* 空きの Time Wait 用 TCP 通信端点を探索する。*/
 	for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
 		if (twcep->fsm_state != TCP_FSM_TIME_WAIT) {
 
 			/*
-			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-			 *  å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã
+			 *  通信端点をロックし、
+			 *  必要な情報を Time Wait 用 TCP 通信端点に移す。
 			 */
 			syscall(wai_sem(cep->semid_lock));
@@ -202,8 +183,8 @@
 			twcep->timer_2msl	= cep->timer[TCP_TIM_2MSL];
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 
-			/* æ¨æº TCP éä¿¡ç«¯ç¹ãéæ¾ããã*/
+			/* 標準 TCP 通信端点を開放する。*/
 			tcp_close(cep);
 
@@ -214,5 +195,5 @@
 
 /*
- *  tcp_find_twcep -- ãã¼ãçªå·ãã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ãå¾ãã
+ *  tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。
  */
 
@@ -226,7 +207,6 @@
 	
 	/*
-	 *  ç¶æ
-ã TIME WAIT ã§ã
-	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããéä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 *  状態が TIME WAIT で、
+	 *  IP アドレスとポート番号が一致する通信端点を探索する。
 	 */
 	for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
@@ -245,5 +225,5 @@
 
 /*
- *  tcp_find_cep -- ãã¼ãçªå·ãã TCP éä¿¡ç«¯ç¹ãå¾ãã
+ *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
  */
 
@@ -257,7 +237,6 @@
 	
 	/*
-	 *  ç¶æ
-ã SYN éä¿¡æ¸ã¿ä»¥å¾ã¯ã
-	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ãã TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 *  状態が SYN 送信済み以後は、
+	 *  IP アドレスとポート番号が一致する TCP 通信端点を探索する。
 	 */
 	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
@@ -270,6 +249,5 @@
 		}
 
-	/* IPv4 ã§ååãªã¼ãã³ä¸­ã® TCP éä¿¡ç«¯ç¹ãå
-ã«æ¢ç´¢ããã*/	
+	/* IPv4 で受動オープン中の TCP 通信端点を先に探索する。*/	
 	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
 		if ((cep->flags & TCP_CEP_FLG_IPV4)                   &&
@@ -281,5 +259,5 @@
 		}
 
-	/* ååãªã¼ãã³ä¸­ã® TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ããã*/	
+	/* 受動オープン中の TCP 通信端点を探索する。*/	
 	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
 
@@ -327,5 +305,5 @@
 
 /*
- *  tcp_is_addr_accept -- åä¿¡å¯è½ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ã§ãããã¨ãç¢ºèªããã
+ *  tcp_is_addr_accept -- 受信可能な IP アドレスとポート番号であることを確認する。
  */
 
@@ -340,9 +318,8 @@
 
 	/*
-	 *  æ¬¡ã®ã¨ãã¯ç ´æ£ããã
-	 *    ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã
-	 *      ãã ããéä¿¡å
- IP ã¢ãã¬ã¹ãã­ã¼ã«ã«ã«ã¼ãããã¯ãªãè¯ãã
-	 *    ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹
+	 *  次のときは破棄する。
+	 *    ・ポート番号が同一で、送受信 IP アドレス が同一。
+	 *      ただし、送信元 IP アドレスがローカルループバックなら良い。
+	 *    ・マルチキャストアドレス
 	 */
 
@@ -354,7 +331,7 @@
 
 	/*
-	 *  æ¬¡ã®ã¨ãã¯ãåä¿¡å¯è½ã§ã¯ãªãã
-	 *    ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã
-	 *    ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹
+	 *  次のときは、受信可能ではない。
+	 *    ・ポート番号が同一で、送受信 IP アドレス が同一。
+	 *    ・マルチキャストアドレス
 	 */
 	if (tcph->dport == tcph->sport && IN_ARE_HDR_ADDR_EQUAL(input))
@@ -370,11 +347,9 @@
 
 /*
- *  tcp_free_reassq -- åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ *  tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。
  *
- *    æ³¨æ:
- *      å¿
-è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
- *      æ»ã£ãå¾ãè§£é¤ããå¿
-è¦ãããã
+ *    注意:
+ *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
+ *      戻った後、解除する必要がある。
  */
 
@@ -393,5 +368,5 @@
 
 /*
- *  tcp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨­å®ããã
+ *  tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。
  */
 
@@ -480,5 +455,5 @@
 
 /*
- *  tcp_alloc_port -- æå®ããããã¼ãçªå·ãè¨­å®ããã
+ *  tcp_alloc_port -- 指定されたポート番号を設定する。
  */
 
@@ -500,5 +475,5 @@
 
 /*
- *  tcp_init -- TCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ *  tcp_init -- TCP モジュールの初期化
  */
 
@@ -516,5 +491,5 @@
 
 /*
- * tcp_init_iss ã·ã¼ã±ã³ã¹çªå·ãåæåããã
+ * tcp_init_iss シーケンス番号を初期化する。
  */
 
@@ -530,5 +505,5 @@
 
 /*
- *  tcp_close -- ã³ãã¯ã·ã§ã³ãéæ¾ããã
+ *  tcp_close -- コネクションを開放する。
  */
 
@@ -536,10 +511,10 @@
 tcp_close (T_TCP_CEP *cep)
 {
-	/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+	/* タイマーを停止する。*/
 	tcp_cancel_timers(cep);
 
 	/* 
-	 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-	 *  åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+	 *  通信端点をロックし、
+	 *  受信再構成キューのネットワークバッファを解放する。
 	 */
 	syscall(wai_sem(cep->semid_lock));
@@ -547,13 +522,12 @@
 	syscall(sig_sem(cep->semid_lock));
 
-	/* ç¶æ
-ãæªä½¿ç¨ã«ããã*/
+	/* 状態を未使用にする。*/
 	cep->fsm_state = TCP_FSM_CLOSED;
 
 	/*
-	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
-	 * ã»éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«
+	 * 以下に関係しないフラグをクリアーする。
+	 * ・送受信ウィンドバッファの省コピー機能
+	 * ・動的な通信端点の生成・削除機能
+	 * ・通信端点のネットワーク層プロトコル
 	 */
 	cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
@@ -562,5 +536,5 @@
 
 	if (cep->snd_nblk_tfn != TFN_TCP_UNDEF || cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
@@ -575,5 +549,5 @@
 
 				case TFN_TCP_ACP_CEP:
-					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点からTCP 受付口を解放する。*/
 					cep->rep = NULL;
 
@@ -587,8 +561,8 @@
 				case TFN_TCP_RCV_BUF:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+					/* 受信ウィンドバッファの空アドレスを獲得する。*/
 					len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -601,8 +575,8 @@
 				case TFN_TCP_RCV_DAT:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+					/* 受信ウィンドバッファからデータを取り出す。*/
 					len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -626,5 +600,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->rcv_tskid = TA_NULL;
 				cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -636,5 +610,5 @@
 
 				case TFN_TCP_CON_CEP:
-					/* TCP éä¿¡ç«¯ç¹ãã TCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点から TCP 受付口を解放する。*/
 					cep->rep = NULL;
 
@@ -659,5 +633,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -678,5 +652,5 @@
 				case TFN_TCP_ACP_CEP:
 
-					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点からTCP 受付口を解放する。*/
 					cep->rep = NULL;
 
@@ -685,5 +659,5 @@
 #endif
 
-					/* æ¥ç¶ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 接続エラーを設定する。*/
 					len      = E_CLS;
 					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
@@ -692,8 +666,8 @@
 				case TFN_TCP_RCV_BUF:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+					/* 受信ウィンドバッファの空アドレスを獲得する。*/
 					len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -706,8 +680,8 @@
 				case TFN_TCP_RCV_DAT:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+					/* 受信ウィンドバッファからデータを取り出す。*/
 					len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -731,5 +705,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->rcv_tskid = TA_NULL;
 				cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -743,5 +717,5 @@
 				case TFN_TCP_CON_CEP:
 
-					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点からTCP 受付口を解放する。*/
 					cep->rep = NULL;
 
@@ -750,5 +724,5 @@
 #endif
 
-					/* æ¥ç¶ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 接続エラーを設定する。*/
 					len      = E_CLS;
 					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
@@ -769,5 +743,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -779,6 +753,6 @@
 
 		/* 
-		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-		 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 *  通信端点をロックし、
+		 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
 		 */
 		syscall(wai_sem(cep->semid_lock));
@@ -787,18 +761,18 @@
 		syscall(sig_sem(cep->semid_lock));
 
-		/* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/
+		/* 未使用になったことを知らせる。*/
 		syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
 		}
-	else {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else {	/* 非ノンブロッキングコール */
 
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->snd_tskid = cep->rcv_tskid = TA_NULL;
 		cep->snd_tfn   = cep->rcv_tfn   = TFN_TCP_UNDEF;
 
 		/* 
-		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-		 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 *  通信端点をロックし、
+		 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
 		 */
 		syscall(wai_sem(cep->semid_lock));
@@ -807,11 +781,10 @@
 		syscall(sig_sem(cep->semid_lock));
 
-		/* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/
+		/* 未使用になったことを知らせる。*/
 		syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
 
 		/*
-		 * å
-¥åºåã¿ã¹ã¯ãèµ·åºãã¦ã
-		 * éåä¿¡ä¸å¯ã«ãªã£ããã¨ãç¥ãããã
+		 * 入出力タスクを起床して、
+		 * 送受信不可になったことを知らせる。
 		 */
 		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
@@ -828,5 +801,5 @@
 
 /*
- *  tcp_drop -- TCP æ¥ç¶ãç ´æ£ããã
+ *  tcp_drop -- TCP 接続を破棄する。
  */
 
@@ -846,5 +819,5 @@
 		cep->fsm_state = TCP_FSM_CLOSED;
 
-		/* éä¿¡ã¨ãéä¿¡å¾ã³ãã¯ã·ã§ã³ã®åæ­ãæç¤ºããã*/
+		/* 送信と、送信後コネクションの切断を指示する。*/
 		cep->flags |=  TCP_CEP_FLG_POST_OUTPUT | TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -857,5 +830,5 @@
 
 /*
- *  tcp_respond -- TCP ã®åä¸ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  tcp_respond -- TCP の単一メッセージを送信する。
  */
 
@@ -872,7 +845,6 @@
 
 	/*
-	 *  output ã NULL ã§ãªããã°ãããã¯å
-¥åããã»ã°ã¡ã³ãã®
-	 *  net_buf ã§ããã®ã¾ã¾åå©ç¨ããã
+	 *  output が NULL でなければ、これは入力したセグメントの
+	 *  net_buf で、そのまま再利用する。
 	 */
 	if (output != NULL) {
@@ -880,6 +852,6 @@
 
 		/*
-		 * IPv4 ã§ã¯ãIP ãããã®ãªãã·ã§ã³ãåé¤ããã
-		 * IPv6 ã§ã¯ãæ¡å¼µããããåé¤ããã
+		 * IPv4 では、IP ヘッダのオプションを削除する。
+		 * IPv6 では、拡張ヘッダを削除する。
 		 */
 		if (IP_REMOVE_OPTIONS(output) != E_OK) {
@@ -892,25 +864,24 @@
 #if defined(_IP6_CFG)
 
-		/* ãã©ããã¯ã¯ã©ã¹ã¨ãã­ã¼ã©ãã«ãã¯ãªã¢ããã*/
+		/* トラヒッククラスとフローラベルをクリアする。*/
 		SET_IP_CF(output, 0);
 
 #endif	/* of #if defined(_IP6_CFG) */
 
-		/* TCP SDU é·ã 0 ã«ããã*/
+		/* TCP SDU 長を 0 にする。*/
 		SET_IP_SDU_SIZE(output, TCP_HDR_SIZE);
 
 		tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET(output));
 
-		/* ãã¼ãçªå·ãäº¤æããã*/
+		/* ポート番号を交換する。*/
 		portno = tcph->sport;
 		tcph->sport = tcph->dport;
 		tcph->dport = portno;
 
-		/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
+		/* TCP ヘッダに情報を設定する。*/
 		tcph->doff = TCP_MAKE_DATA_OFF(TCP_HDR_SIZE);
 		}
 	
-	/* cep ã NULL ã§ããã°ãä½ãããªãã§çµäºããã*/
+	/* cep が NULL であれば、何もしないで終了する。*/
 	else if (cep == NULL)
 		return;
@@ -931,5 +902,5 @@
 
 	/*
-	 *  ãã§ãã¯ãµã ãè¨­å®ããã
+	 *  チェックサムを設定する。
 	 */
 	hdr_offset = IF_IP_TCP_HDR_OFFSET(output);
@@ -937,5 +908,5 @@
 	                     (uint_t)GET_TCP_HDR_SIZE(output, hdr_offset));
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)GET_IF_IP_TCP_HDR_SIZE(output, hdr_offset);
 
@@ -946,15 +917,15 @@
 #endif	/* of #ifdef TCP_CFG_TRACE */
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	IP_OUTPUT(output, TMO_TCP_OUTPUT);
 	}
 #if 0
 /*
- *  tcp_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨­å®ããã
+ *  tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
  *
- *    æ»ãå¤	ã¨ã©ã¼ã³ã¼ã
- *    optlen	ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½
- *    maxlen	æå¤§ã»ã°ã¡ã³ããµã¤ãºï¼IF/IP/TCP ããããµã¤ãºãå«ã¾ãªãï¼
- *    len	TCP SDU ãµã¤ãº
+ *    戻り値	エラーコード
+ *    optlen	オプションサイズ、4 オクテット単位
+ *    maxlen	最大セグメントサイズ（IF/IP/TCP ヘッダサイズを含まない）
+ *    len	TCP SDU サイズ
  */
 
@@ -966,5 +937,5 @@
 	ER		error;
 
-	/* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	/* IP データグラムを獲得する。*/
 	if ((error = IN_GET_DATAGRAM(nbuf,
 	                             (uint_t)(TCP_HDR_SIZE + optlen + len),
@@ -978,9 +949,7 @@
 		}
 
-	/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
-
-	/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* TCP ヘッダに情報を設定する。*/
+
+	/* TCP ヘッダに情報を設定する。*/
 	tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf));
 	tcph->sport	= htons(cep->myaddr.portno);
@@ -993,10 +962,10 @@
 #endif
 /*
- *  tcpn_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨­å®ããã
+ *  tcpn_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
  *
- *    æ»ãå¤	ã¨ã©ã¼ã³ã¼ã
- *    optlen	ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½
- *    maxlen	æå¤§ã»ã°ã¡ã³ããµã¤ãºï¼IF/IP/TCP ããããµã¤ãºãå«ãï¼
- *    len	TCP SDU ãµã¤ãº
+ *    戻り値	エラーコード
+ *    optlen	オプションサイズ、4 オクテット単位
+ *    maxlen	最大セグメントサイズ（IF/IP/TCP ヘッダサイズを含む）
+ *    len	TCP SDU サイズ
  */
 
@@ -1008,5 +977,5 @@
 	ER		error;
 
-	/* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	/* IP データグラムを獲得する。*/
 	if ((error = IN_GET_DATAGRAM(nbuf,
 	                             (uint_t)(TCP_HDR_SIZE + optlen + len),
@@ -1020,9 +989,7 @@
 		}
 
-	/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
-
-	/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* TCP ヘッダに情報を設定する。*/
+
+	/* TCP ヘッダに情報を設定する。*/
 	tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf));
 	tcph->sport	= htons(cep->myaddr.portno);
@@ -1035,6 +1002,5 @@
 
 /*
- *  tcp_can_send_more -- éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã
+ *  tcp_can_send_more -- 送信できるか、通信端点の状態を見る。
  */
 
@@ -1044,6 +1010,5 @@
 	ER	error;
 
-	/* éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、CEP の FSM 状態を見る。*/
 	if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
 		if ((error = cep->error) == E_OK)
@@ -1052,11 +1017,11 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-		/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-		if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* タイムアウトをチェックする。*/
+		if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 
 			if (!IS_PTR_DEFINED(cep->callback))
 				error = E_OBJ;
 			else {
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
@@ -1083,6 +1048,6 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-			/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-			if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+			/* タイムアウトをチェックする。*/
+			if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 				if (!IS_PTR_DEFINED(cep->callback))
 					error = E_OBJ;
@@ -1090,5 +1055,5 @@
 					error = E_OBJ;
 
-					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+					/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
@@ -1116,11 +1081,10 @@
 
 /*
- *  tcp_can_recv_more -- åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã
+ *  tcp_can_recv_more -- 受信できるか、通信端点の状態を見る。
  *
- *  æ³¨æ: æ»ãå¤
+ *  注意: 戻り値
  *
- *	E_OK	åä¿¡å¯è½
- *	E_OBJ	ç¸æããåæ­ãããããã¨ã©ã¼ãçºçããã
+ *	E_OK	受信可能
+ *	E_OBJ	相手から切断されたか、エラーが発生した。
  */
 
@@ -1129,6 +1093,6 @@
 {
 	/*
-	 *  åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãå ´åã¯
-	 *  é·ã 0ãã¾ãã¯ã¨ã©ã¼ãè¿ãã
+	 *  受信できるか、fsm_state を見る。受信できない場合は
+	 *  長さ 0、またはエラーを返す。
 	 */
 	if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
@@ -1138,11 +1102,11 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-		/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-		if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* タイムアウトをチェックする。*/
+		if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 
 			if (!IS_PTR_DEFINED(cep->callback))
 				*error = E_OBJ;
 			else {
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
@@ -1157,6 +1121,6 @@
 
 		/*
-		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 *  通信端点をロックして、
+		 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 		 */
 		syscall(wai_sem(cep->semid_lock));
@@ -1174,6 +1138,6 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-			/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-			if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+			/* タイムアウトをチェックする。*/
+			if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 				if (!IS_PTR_DEFINED(cep->callback))
 					*error = E_OBJ;
@@ -1181,5 +1145,5 @@
 					*error = E_OBJ;
 
-					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+					/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
@@ -1206,7 +1170,5 @@
 
 /*
- *  tcp_wait_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
-¥ãã®ãå¾
-ã¤ã
+ *  tcp_wait_rwbuf -- 受信ウィンドバッファにデータが入るのを待つ。
  */
 
@@ -1218,7 +1180,5 @@
 
 	if (cep->rwbuf_count == 0) {
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
-¥åãããã¾ã§å¾
-ã¤ã*/
+		/* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
 		while (cep->rwbuf_count == 0) {
 			if ((error = twai_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) {
@@ -1228,7 +1188,6 @@
 
 			/*
-			 *  åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãç¶æ
-ã§ã
-			 *  åä¿¡ã¦ã£ã³ããããã¡ã«æå­ããªãå ´åã¯çµäºããã
+			 *  受信できるか、fsm_state を見る。受信できない状態で、
+			 *  受信ウィンドバッファに文字がない場合は終了する。
 			 */
 			if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
@@ -1236,6 +1195,6 @@
 
 				/*
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックして、
+				 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 				syscall(wai_sem(cep->semid_lock));
@@ -1255,5 +1214,5 @@
 
 /*
- *  tcp_move_ra2rw -- åä¿¡åæ§æã­ã¥ã¼ã§åæ§æããã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã
+ *  tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。
  */
 
@@ -1265,6 +1224,6 @@
 
 	/*
-	 *  åä¿¡ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ã¿ã
-	 *  rcv_nxt ãå®äºãã SEQ ã ãé²ããã
+	 *  受信データを受信ウィンドバッファに書き込み、
+	 *  rcv_nxt を完了した SEQ だけ進める。
 	 */
 	if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
@@ -1275,11 +1234,11 @@
 				break;
 
-			/* æ¬¡ã®ã»ã°ã¡ã³ãã«é²ãã*/
+			/* 次のセグメントに進む。*/
 			cep->reassq = qhdr->next;
 
-			/* FIN ãã©ã°ã®ã¿æ®ãã*/
+			/* FIN フラグのみ残す。*/
 			flags &= TCP_FLG_FIN;
 
-			/* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/
+			/* データを受信ウィンドバッファに書き込む。*/
 			TCP_WRITE_RWBUF(cep, q, (uint_t)(GET_IP_TCP_Q_HDR_OFFSET(q)));
 			}
@@ -1293,5 +1252,5 @@
 
 /*
- *  tcp_write_raque -- åä¿¡ã»ã°ã¡ã³ããåæ§æãã¦ãåä¿¡åæ§æã­ã¥ã¼ã«ç¹ãã
+ *  tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。
  */
 
@@ -1304,11 +1263,11 @@
 	int32_t		len;
 
-	/*  TCP ãããã®ä½ç½®ãä¿å­ããã*/
+	/*  TCP ヘッダの位置を保存する。*/
 	SET_IP_TCP_Q_HDR_OFFSET(input, thoff);
 
 	/*
-	 *  MAX_TCP_REALLOC_SIZE ä»¥ä¸ã®å ´åã¯ãæ°ãã«ãããã¯ã¼ã¯ãããã¡ã
-	 *  å²å½ã¦ã¦ããã¼ã¿ãã³ãã¼ããã
-	 *  ãã®ã¨ããIP ã®ãªãã·ã§ã³ï¼æ¡å¼µãããï¼ã¨ TCP ã®ãªãã·ã§ã³ã¯åé¤ããã
+	 *  MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを
+	 *  割当てて、データをコピーする。
+	 *  このとき、IP のオプション（拡張ヘッダ）と TCP のオプションは削除する。
 	 */
 	len  = IF_IP_TCP_HDR_SIZE(input) + inqhdr->slen;
@@ -1317,5 +1276,5 @@
 
 		/*
-		 *  ãããã¯ã¼ã¯ãããã¡ãç¢ºä¿ã§ããªãã¨ãã¯å²å½ã¦ãªãã
+		 *  ネットワークバッファが確保できないときは割当てない。
 		 */
 		if (tget_net_buf(&new, (uint_t)len, TMO_TCP_GET_NET_BUF) != E_OK)
@@ -1342,5 +1301,5 @@
 
 	/*
-	 *  ä»åè¿½å ããã»ã°ã¡ã³ãããå(p)ã¨å¾(q)ã®ã»ã°ã¡ã³ããæ¢ãã
+	 *  今回追加するセグメントより前(p)と後(q)のセグメントを探す。
 	 *
 	 *    +-------------------------+
@@ -1365,7 +1324,6 @@
 
 	/*
-	 *  å(p)ã®ã»ã°ã¡ã³ããããã°ãæ¢ã«ãä»åã¨åãã»ã°ã¡ã³ãã
-	 *  ãããã¨ãããããã®å ´åã¯ããã®é¨åã¾ãã¯å
-¨ã¦ãç ´æ£ããã
+	 *  前(p)のセグメントがあれば、既に、今回と同じセグメントが
+	 *  あることもある。その場合は、その部分または全てを破棄する。
 	 *
 	 *    qhdr->seq
@@ -1389,12 +1347,12 @@
 
 			/*
-			 *  len ãæ­£ã§ããã°ãå(p) ã®ã»ã°ã¡ã³ãã¨ä»åã®
-			 *  ã»ã°ã¡ã³ããéãªã£ã¦ããã
+			 *  len が正であれば、前(p) のセグメントと今回の
+			 *  セグメントが重なっている。
 			 */
 			if (len >= inqhdr->slen) {
 
 				/*
-				 *  len ãä»åã®ã»ã°ã¡ã³ãã¨åããªã
-				 *  ã¾ã£ããåãã»ã°ã¡ã³ããªã®ã§ä½ãããªãã
+				 *  len が今回のセグメントと同じなら
+				 *  まったく同じセグメントなので何もしない。
 				 */
 				if (new != NULL) {
@@ -1407,5 +1365,5 @@
 
 			/*
-			 *  è¿½å ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã
+			 *  追加するセグメントの SDU を len 分前に詰める。
 			 */
 			inqhdr->seq  += len;
@@ -1416,6 +1374,6 @@
 
 	/*
-	 *  ã­ã¥ã¼ã«ã¤ãªãåã«ãæ°ãããããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç§»ãã
-	 *  TCP ã®ãªãã·ã§ã³ã¯åé¤ããã
+	 *  キューにつなぐ前に、新しいネットワークバッファにデータを移す。
+	 *  TCP のオプションは削除する。
 	 */
 	if (new != NULL) {
@@ -1430,5 +1388,5 @@
 
 	/*
-	 *  éãªãå¾(q)ã®ã»ã°ã¡ã³ããèª¿æ´ããã
+	 *  重なる後(q)のセグメントを調整する。
 	 *
 	 *    inqhdr->seq
@@ -1450,10 +1408,10 @@
 		len = inqhdr->seq + inqhdr->slen - qhdr->seq;
 		if (len <= 0)
-			/* len ãè² ãªãéãªã£ã¦ããªãã*/
+			/* len が負なら重なっていない。*/
 			break;
 		else if (len < qhdr->slen) {
 
 			/*
-			 *  å¾ãã§éãªã£ã¦ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã
+			 *  後ろで重なっているセグメントの SDU を len 分前に詰める。
 			 *
 			 *    inqhdr->seq
@@ -1499,5 +1457,5 @@
 
 /*
- *  tcp_rexmt_val -- åéã¿ã¤ã ã¢ã¦ãå¤ãè¿ãã
+ *  tcp_rexmt_val -- 再送タイムアウト値を返す。
  */
 
@@ -1515,5 +1473,5 @@
 
 /*
- *  tcp_init_cep -- éä¿¡ç«¯ç¹ãåæåããã
+ *  tcp_init_cep -- 通信端点を初期化する。
  */
 
@@ -1524,8 +1482,7 @@
 #ifdef TCP_CFG_RWBUF_CSAVE
 	/*
-	 * åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããå ´åã
-	 * åä¿¡ã¦ã£ã³ããããã¡ãå
-¨ã¦è§£æ¾ãããªããã¨ãããã®ã§ã
-	 * ããã§è§£æ¾ããã
+	 * 受信ウィンドバッファの省コピー機能を有効にした場合、
+	 * 受信ウィンドバッファが全て解放されないことがあるので、
+	 * ここで解放する。
 	 */
 	if (cep->rwbufq != NULL) {
@@ -1542,24 +1499,24 @@
 	cep->rbuf_rptr	= cep->rbuf_wptr = cep->rbuf;
 
-	cep->maxseg	= DEF_TCP_SND_SEG;		/* éä¿¡æå¤§ã»ã°ã¡ã³ããµã¤ãº		*/
-	cep->srtt	= TCP_TVAL_SRTT_BASE;		/* æ»ãããªç§»åå¹³å			*/
+	cep->maxseg	= DEF_TCP_SND_SEG;		/* 送信最大セグメントサイズ		*/
+	cep->srtt	= TCP_TVAL_SRTT_BASE;		/* 滑らかな移動平均			*/
 	cep->rttvar	= ((TCP_TVAL_RTO_BASE - TCP_TVAL_SRTT_BASE) << TCP_RTTVAR_SHIFT) / 4;
-							/* æ»ãããªåæ£				*/
-	cep->rxtcur	= TCP_TVAL_RTO_BASE;		/* ç¾å¨ã®åéå¤				*/
-	cep->snd_cwnd	=  MAX_TCP_WIN_SIZE;		/* è¼»è¼³ã¦ã£ã³ããµã¤ãº			*/
-	cep->snd_ssthresh= MAX_TCP_WIN_SIZE;		/* è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®	å¶éå¤	*/
+							/* 滑らかな分散				*/
+	cep->rxtcur	= TCP_TVAL_RTO_BASE;		/* 現在の再送値				*/
+	cep->snd_cwnd	=  MAX_TCP_WIN_SIZE;		/* 輻輳ウィンドサイズ			*/
+	cep->snd_ssthresh= MAX_TCP_WIN_SIZE;		/* 輻輳ウィンドサイズ(snd_cwnd)の	制限値	*/
 
 	/*
-	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
-	 * ã»éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«
+	 * 以下に関係しないフラグをクリアーする。
+	 * ・送受信ウィンドバッファの省コピー機能
+	 * ・動的な通信端点の生成・削除機能
+	 * ・通信端点のネットワーク層プロトコル
 	 */
 	cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
 
-	/* ã»ããã©ãåæåããã*/
+	/* セマフォを初期化する。*/
 	sig_sem(cep->semid_lock);
 
-	/* ãã©ã°ãåæåããã*/
+	/* フラグを初期化する。*/
 	syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
 	syscall(clr_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
@@ -1567,5 +1524,5 @@
 
 /*
- *  tcp_notify -- ICMP ã¨ã©ã¼ã®å¦ç
+ *  tcp_notify -- ICMP エラーの処理
  */
 
@@ -1578,6 +1535,6 @@
 
 		/*
-		 *  ã³ãã¯ã·ã§ã³éè¨­æ¸ã§ããã¹ãå°éä¸è½ã¨ã©ã¼ã®å ´åã¯ã
-		 *  åéã«ããå¦çããã
+		 *  コネクション開設済で、ホスト到達不能エラーの場合は、
+		 *  再送により処理する。
 		 */
 		if (cep->fsm_state == TCP_FSM_ESTABLISHED &&
@@ -1586,8 +1543,6 @@
 
 		/*
-		 *  ã³ãã¯ã·ã§ã³éè¨­ä¸­ãåãã¨ã©ã¼ãä½åº¦ãåä¿¡ããå ´åã¯ã
-		 *  å¾
-ã¡ç¶æ
-ãè§£é¤ããå¯¾å¿ããé¢æ°ã«ã¨ã©ã¼ãè¿ãããã
+		 *  コネクション開設中、同じエラーを何度か受信した場合は、
+		 *  待ち状態を解除し、対応する関数にエラーを返させる。
 		 */
 		if (cep->fsm_state < TCP_FSM_ESTABLISHED && cep->rxtshift > 3 && cep->net_error != E_OK) {
@@ -1598,5 +1553,5 @@
 			cep->net_error = error;
 
-			/* éä¿¡ãæç¤ºããã*/
+			/* 送信を指示する。*/
 			cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1606,5 +1561,5 @@
 
 /*
- *  tcp_lock_cep -- TCP éä¿¡ç«¯ç¹ãã­ãã¯ããã
+ *  tcp_lock_cep -- TCP 通信端点をロックする。
  */
 
@@ -1617,15 +1572,15 @@
 	*p_cep = NULL;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VALID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* TCP 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep)) {
 		syscall(sig_sem(cep->semid_lock));
@@ -1634,6 +1589,6 @@
 
 	/*
-	 *  API æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if (IS_TFN_TCP_RCV(tfn)) {
@@ -1657,5 +1612,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1667,5 +1622,5 @@
 
 /*
- *  ãã¬ã¼ã¹åºåã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·
+ *  トレース出力に用いるシリアルポート番号
  */
 
@@ -1675,6 +1630,5 @@
 
 /*
- *  ã³ãã¯ã·ã§ã³ã®ç¶æ
-
+ *  コネクションの状態
  */
 
@@ -1694,5 +1648,5 @@
 
 /*
- *  trace_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æå­åºå
+ *  trace_putchar -- シリアルポートへの文字出力
  */
 
@@ -1705,9 +1659,9 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºåã©ã¤ãã©ãª
- */
-
-/*
- *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ *  シリアルポートへの書式付文字列出力ライブラリ
+ */
+
+/*
+ *  数値変換のための変換表
  */
 
@@ -1716,5 +1670,5 @@
 
 /*
- *  convert -- trace_printf ã®æ°å¤å¤æ
+ *  convert -- trace_printf の数値変換
  */
 
@@ -1753,5 +1707,5 @@
 
 /*
- *  trace_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºå
+ *  trace_printf -- シリアルポートへの書式付文字列出力
  */
 
@@ -1766,5 +1720,5 @@
 	va_start(ap, fmt);
 	while ((ch = *fmt ++) != '\0') {
-		if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+		if (ch != '%') {		/* 書式指定以外 */
 			trace_putchar(portid, (char)ch);
 			continue;
@@ -1773,16 +1727,15 @@
 		width = longflag = 0;
 		padchar = ' ';
-		if ((ch = *fmt ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+		if ((ch = *fmt ++) == '0') {	/* 上位桁の 0 */
 			padchar = '0';
 			ch = *fmt ++;
 			}
 
-		while ('0' <= ch && ch <= '9') {	/* åºåå¹
- */
+		while ('0' <= ch && ch <= '9') {	/* 出力幅 */
 			width = width * 10 + ch - '0';
 			ch = *fmt ++;
 			}
 
-		while (ch == 'l') {		/* long (long) ã®æå® */
+		while (ch == 'l') {		/* long (long) の指定 */
 			longflag ++;
 			ch = *fmt ++;
@@ -1845,5 +1798,5 @@
 
 /*
- *  TCP ãã©ã°æå­å
+ *  TCP フラグ文字列
  */
 
@@ -1864,5 +1817,5 @@
 
 /*
- *  éä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå
+ *  送信 TCP ヘッダのトレース出力
  */
 
@@ -1925,8 +1878,7 @@
 
 /*
- *  åä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå
+ *  受信 TCP ヘッダのトレース出力
  *
- *    æ³¨æ: TCP ãããå
-ã¯ããã§ã«ãã¹ããã¤ããªã¼ã
+ *    注意: TCP ヘッダ内は、すでにホストバイトオーダ
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -134,12 +122,12 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å
- *  ãã ããéä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ï¼cep->sbufï¼ã®å¤ã«ããã
- *  TCP éä¿¡ç«¯ç¹æ¯ã«éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ãããã
- *  ä½¿ç¨ããªãããåãæ¿ããã
- */
-
-/*
- *  tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼é¸æï¼ã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効な場合
+ *  ただし、通信端点の送信ウィンドバッファ（cep->sbuf）の値により、
+ *  TCP 通信端点毎に送信ウィンドバッファの省コピー機能を使用するか、
+ *  使用しないかを切り替える。
+ */
+
+/*
+ *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する（選択）。
  */
 
@@ -154,5 +142,5 @@
 
 /*
- *  tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼é¸æï¼ã
+ *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む（選択）。
  */
 
@@ -167,5 +155,5 @@
 
 /*
- *  tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãï¼é¸æï¼ã
+ *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す（選択）。
  */
 
@@ -178,6 +166,5 @@
 
 /*
- *  tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾
-ã¤ï¼é¸æï¼ã
+ *  tcp_wait_swbuf -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ（選択）。
  */
 
@@ -192,5 +179,5 @@
 
 /*
- *  tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼é¸æï¼ã
+ *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する（選択）。
  */
 
@@ -205,5 +192,5 @@
 
 /*
- *  tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼é¸æï¼ã
+ *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする（選択）。
  */
 
@@ -218,5 +205,5 @@
 
 /*
- *  tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®è§£æ¾ãæç¤ºããï¼é¸æï¼ã
+ *  tcp_free_swbufq -- 送信ウィンドバッファキューの解放を指示する（選択）。
  */
 
@@ -229,5 +216,5 @@
 
 /*
- *  tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããï¼é¸æï¼ã
+ *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する（選択）。
  */
 
@@ -240,5 +227,5 @@
 
 /*
- *  tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼é¸æï¼ã
+ *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする（選択）。
  */
 
@@ -255,5 +242,5 @@
 
 /*
- *  tcp_drop_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼å°ç¨ï¼ã
+ *  tcp_drop_swbuf_cs -- 送信ウィンドバッファから指定されたオクテット分削除する（専用）。
  */
 
@@ -262,9 +249,8 @@
 {
 
-	/*éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã*/
+	/*送信ウィンドバッファから指定されたオクテット分削除する。*/
 	cep->swbuf_count -= (uint16_t)len;
 
-	/* éä¿¡æ¸ã¿ã§ãACKå¾
-ã¡ã®æã¯ãACKå®äºã«å¤æ´ããã*/
+	/* 送信済みで、ACK待ちの時は、ACK完了に変更する。*/
 	if (len > 0 && (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT) {
 		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
@@ -274,5 +260,5 @@
 
 /*
- *  tcp_write_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼å°ç¨ï¼ã
+ *  tcp_write_swbuf_cs -- 送信ウィンドバッファにデータを書き込む（専用）。
  */
 
@@ -283,5 +269,5 @@
 	uint_t	hdr_size = IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr);
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -295,11 +281,10 @@
 		 *   <---------------- error --------------->
 		 *              ^
-		 *              net_buf ã§ 4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã
+		 *              net_buf で 4 オクテット境界にアラインされている。
 		 *
-		 *  tcp_output ã¨ ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã
-		 *  n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã
-		 *  ãããã£ã³ã°ããããã®åãèæ
-®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã®
-		 *  ç©ºããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+		 *  tcp_output と ip_output で、チェックサムを計算するとき、
+		 *  n が 4 オクテット境界になるように SDU の後ろに 0 を
+		 *  パッディングする。その分を考慮して送信ウィンドバッファの
+		 *  空きサイズを 4 オクテット境界に調整する。
 		 */
 		error = (uint_t)(((error - hdr_size) >> 2 << 2) + hdr_size);
@@ -310,5 +295,5 @@
 			len = (uint_t)(error - hdr_size);
 
-		/* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºãèª¿æ´ããã*/
+		/* 送信ウインドサイズによりサイズを調整する。*/
 		if (len > cep->snd_wnd) 
 			len = cep->snd_wnd;
@@ -316,10 +301,9 @@
 			len = cep->snd_cwnd;
 
-		/* ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
-ããªãããã«ããã*/
+		/* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/
 		if (len > cep->maxseg) 
 			len = cep->maxseg;
 
-		/* ãã¼ã¿ãç§»ãã*/
+		/* データを移す。*/
 		memcpy(cep->sbuf_wptr, (void*)((uint8_t*)data), (size_t)len);
 		cep->sbuf_wptr   += len;
@@ -327,21 +311,21 @@
 		error             = len;
 
-		/* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨­å®ããã*/
+		/* ネットワークバッファ長と IP データグラム長を設定する。*/
 		cep->swbufq->len = (uint16_t)(cep->swbuf_count + hdr_size);
 		SET_IP_SDU_SIZE(cep->swbufq, cep->swbuf_count + TCP_HDR_SIZE);
 
-		/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããã*/
+		/* フラグを、送信可能に設定する。*/
 		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY;
 		}
 
-	else {	/* éä¿¡ã¦ã¤ã³ããããã¡ãä¸æ­£ */
+	else {	/* 送信ウインドバッファが不正 */
 		syslog(LOG_WARNING, "[TCP] illegal window buff for send, CEP: %d, %4d < %4d.",
 		                    GET_TCP_CEPID(cep), error, hdr_size);
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		tcp_free_swbufq_cs(cep);
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -350,6 +334,5 @@
 
 /*
- *  tcp_wait_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾
-ã¤ï¼å°ç¨ï¼ã
+ *  tcp_wait_swbuf_cs -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ（専用）。
  */
 
@@ -362,15 +345,13 @@
 	int_t	win;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ãå²å½ã¦æ¸ã¿ã§ãç©ºããããã°çµäºããã*/
+	/* 送信ウィンドバッファが割当て済みで、空きがあれば終了する。*/
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_READY &&
 	    (cep->swbuf_count + IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)) < net_buf_siz(cep->swbufq))
 		return E_OK;
 
-	/* éä¿¡ä¸­ã§ããã°ãçµäºããã¾ã§å¾
-æ©ããã*/
+	/* 送信中であれば、終了するまで待機する。*/
 	while ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
 
-		/* éä¿¡å¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 送信待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR))
 			syscall(get_tim(&before));
@@ -381,6 +362,5 @@
 		syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
 
-		/* éä¿¡å¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 送信待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
 			syscall(get_tim(&after));
@@ -391,9 +371,7 @@
 
 		/*
-		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 *  送信できるか、CEP の FSM 状態を見る。
+		 *  送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、
+		 *  コネクションが切断されたことを意味している。
 		 */
 		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
@@ -401,13 +379,12 @@
 		}
 
-	/* ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾
-æ©ããã*/
+	/* 相手の受信ウィンドが閉じている場合は、開くまで待機する。*/
 	while (true) {
 
 		/*
-		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *  snd_wnd:  相手の受信可能ウィンドサイズ
+		 *  snd_cwnd: 輻輳ウィンドサイズ
 		 *
-		 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+		 *  win: どちらか小さいウィンドサイズに設定する。
 		 */
 		win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
@@ -415,6 +392,5 @@
 			break;
 
-		/* éãå¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 開き待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR))
 			syscall(get_tim(&before));
@@ -425,6 +401,5 @@
 		syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
 
-		/* éãå¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 開き待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
 			syscall(get_tim(&after));
@@ -435,9 +410,7 @@
 
 		/*
-		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 *  送信できるか、CEP の FSM 状態を見る。
+		 *  送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、
+		 *  コネクションが切断されたことを意味している。
 		 */
 		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
@@ -445,5 +418,5 @@
 		}
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	/* ネットワークバッファを獲得する。*/
 	if ((error = tcpn_get_segment(&cep->swbufq, cep, 0,
 	                             TCP_CFG_SWBUF_CSAVE_MIN_SIZE,
@@ -452,5 +425,5 @@
 		return error;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/
+	/* 送信ウィンドバッファを初期化する。*/
 	tcp_init_swbuf(cep);
 
@@ -459,5 +432,5 @@
 
 /*
- *  tcp_get_swbuf_addr_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼å°ç¨ï¼ã
+ *  tcp_get_swbuf_addr_cs -- 送信ウィンドバッファの空きアドレスを獲得する（専用）。
  */
 
@@ -467,5 +440,5 @@
 	ER_UINT	error;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -479,15 +452,14 @@
 		 *   <---------------- error --------------->
 		 *              ^
-		 *              net_buf ã§ 4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã
+		 *              net_buf で 4 オクテット境界にアラインされている。
 		 *
-		 *  tcp_output ã¨ ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã
-		 *  n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã
-		 *  ãããã£ã³ã°ããããã®åãèæ
-®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã®
-		 *  ç©ºããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+		 *  tcp_output と ip_output で、チェックサムを計算するとき、
+		 *  n が 4 オクテット境界になるように SDU の後ろに 0 を
+		 *  パッディングする。その分を考慮して送信ウィンドバッファの
+		 *  空きサイズを 4 オクテット境界に調整する。
 		 */
 		error = (uint_t)(((error - IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)) >> 2 << 2) - cep->swbuf_count);
 
-		/* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºãèª¿æ´ããã*/
+		/* 送信ウインドサイズによりサイズを調整する。*/
 		if (error > cep->snd_wnd) 
 			error = cep->snd_wnd;
@@ -495,24 +467,22 @@
 			error = cep->snd_cwnd;
 
-		/* ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
-ããªãããã«ããã*/
+		/* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/
 		if (error > cep->maxseg) 
 			error = cep->maxseg;
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+		/* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
 		cep->get_buf_len = error;
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+		/* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/
 		*p_buf = cep->sbuf_wptr;
 		}
 
-	else {	/* ãããã¯ã¼ã¯ãããã¡ãä¸æ­£ */
-
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+	else {	/* ネットワークバッファが不正 */
+
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		tcp_free_swbufq_cs(cep);
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -521,5 +491,5 @@
 
 /*
- *  tcp_send_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼å°ç¨ï¼ã
+ *  tcp_send_swbuf_cs -- 送信ウィンドバッファのデータを送信可能にする（専用）。
  */
 
@@ -527,5 +497,5 @@
 tcp_send_swbuf_cs (T_TCP_CEP *cep, uint_t len)
 {
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -533,15 +503,15 @@
 	cep->swbuf_count += len;
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨­å®ããã*/
+	/* ネットワークバッファ長と IP データグラム長を設定する。*/
 	cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr));
 	SET_IP_SDU_SIZE(cep->swbufq, len + TCP_HDR_SIZE);
 
-	/* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	/* tcp_get_buf の割当て長をリセットする。*/
 	cep->get_buf_len = 0;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããå¼·å¶çã«éä¿¡ããã*/
+	/* フラグを、送信可能に設定し、強制的に送信する。*/
 	cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY
 	                                               | TCP_CEP_FLG_FORCE
@@ -551,11 +521,9 @@
 
 /*
- *  tcp_free_swbufq_cs -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®è§£æ¾ãæç¤ºããï¼å°ç¨ï¼ã
+ *  tcp_free_swbufq_cs -- 送信ウィンドバッファキューの解放を指示する（専用）。
  *
- *    æ³¨æ:
- *      å¿
-è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
- *      æ»ã£ãå¾ãè§£é¤ããå¿
-è¦ãããã
+ *    注意:
+ *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
+ *      戻った後、解除する必要がある。
  */
 
@@ -563,12 +531,11 @@
 tcp_free_swbufq_cs (T_TCP_CEP *cep)
 {
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾
-ã¡ãåãæ¶ãã*/
+	/* 送信ウィンドバッファの空き待ちを取り消す。*/
 	cep->flags &= ~TCP_CEP_FLG_WBCS_NBUF_REQ;
 
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
 		/*
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãåé¤ããããã«ããã©ã°ã ACK å®äºã«è¨­å®ãã
-		 *  TCP åºåã¿ã¹ã¯ãèµ·åããã
+		 *  送信ウィンドバッファを削除するために、フラグを ACK 完了に設定し、
+		 *  TCP 出力タスクを起動する。
 		 */
 		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
@@ -578,5 +545,5 @@
 
 /*
- *  tcp_alloc_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããï¼å°ç¨ï¼ã
+ *  tcp_alloc_swbuf_cs -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する（専用）。
  */
 
@@ -587,6 +554,6 @@
 
 	/*
-	 *  éä¿¡ã¦ã£ã³ããããã¡ãæªä½¿ç¨ã®å ´åã®ã¿ã
-	 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããã
+	 *  送信ウィンドバッファが未使用の場合のみ、
+	 *  送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
 	 */
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_FREE)
@@ -595,5 +562,5 @@
 
 /*
- *  tcp_is_swbuf_full_cs -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼å°ç¨ï¼ã
+ *  tcp_is_swbuf_full_cs -- 送信ウィンドバッファが満杯かチェックする（専用）。
  */
 
@@ -606,8 +573,8 @@
 
 /*
- *  tcp_init_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãåæåããï¼å°ç¨ï¼ã
+ *  tcp_init_swbuf -- 送信ウィンドバッファを初期化する（専用）。
  *
- *    æ³¨æ: tcp_get_segment ã§ãããã¯ã¼ã¯ãããã¡ãç²å¾ãã
- *          ç´å¾ã«å¼ã³åºããã¨ã
+ *    注意: tcp_get_segment でネットワークバッファを獲得した
+ *          直後に呼び出すこと。
  */
 
@@ -615,11 +582,11 @@
 tcp_init_swbuf (T_TCP_CEP *cep)
 {
-	/* éä¿¡ã¦ã¤ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+	/* 送信ウインドバッファの使用中サイズをリセットする。*/
 	cep->swbuf_count = 0;
 
-	/* éä¿¡ã¦ã¤ã³ããããã¡ã®ã¢ãã¬ã¹ãè¨­å®ããã*/
+	/* 送信ウインドバッファのアドレスを設定する。*/
 	cep->sbuf_wptr = cep->sbuf_rptr = GET_TCP_SDU(cep->swbufq, IF_IP_TCP_NET_HDR_OFFSET(&cep->dstaddr.ipaddr));
 
-	/* ãã©ã°ãããããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿ã«è¨­å®ããã*/
+	/* フラグを、ネットワークバッファ割当て済みに設定する。*/
 	cep->flags = (cep->flags & ~(TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK))
 	                         |   TCP_CEP_FLG_WBCS_NBUF_READY;
@@ -627,5 +594,5 @@
 
 /*
- *  tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããï¼å°ç¨ï¼ã
+ *  tcp_push_res_nbuf -- ネットワークバッファを予約する（専用）。
  */
 
@@ -645,9 +612,9 @@
 		if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_PEND) {
 
-			/* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+			/* ネットワークバッファを予約する。*/
 			cep->swbufq = nbuf;
 			nbuf = NULL;
 
-			/* ãã©ã°ãäºç´ã«è¨­å®ããã*/
+			/* フラグを予約に設定する。*/
 			cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_RSVD;
 			sel_ix = ix;
@@ -664,5 +631,5 @@
 
 /*
- *  tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãï¼å°ç¨ï¼ã
+ *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す（専用）。
  */
 
@@ -676,9 +643,9 @@
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_RSVD) {
 
-		/* äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡ãè¿ãã*/
+		/* 予約してあるネットワークバッファを返す。*/
 		nbuf = cep->swbufq;
 		cep->swbufq = NULL;
 
-		/* TCP åºåã¿ã¹ã¯ãèµ·åããã*/
+		/* TCP 出力タスクを起動する。*/
 		sig_sem(SEM_TCP_POST_OUTPUT);
 		}
@@ -698,12 +665,12 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å
- *  ãã ããéä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ï¼cep->rbufï¼ã®å¤ã«ããã
- *  TCP éä¿¡ç«¯ç¹æ¯ã«åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ãããã
- *  ä½¿ç¨ããªãããåãæ¿ããã
- */
-
-/*
- *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効な場合
+ *  ただし、通信端点の受信ウィンドバッファ（cep->rbuf）の値により、
+ *  TCP 通信端点毎に受信ウィンドバッファの省コピー機能を使用するか、
+ *  使用しないかを切り替える。
+ */
+
+/*
+ *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
  */
 
@@ -718,5 +685,5 @@
 
 /*
- *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
  */
 
@@ -731,5 +698,5 @@
 
 /*
- *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -744,5 +711,5 @@
 
 /*
- *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
  */
 
@@ -755,5 +722,5 @@
 
 /*
- *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
  */
 
@@ -770,9 +737,9 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹
- */
-
-/*
- *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効
+ */
+
+/*
+ *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
  */
 
@@ -787,5 +754,5 @@
 		cep->rwbuf_count -= len;
 
-		/* ãããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç¡ããªã£ããè§£æ¾ããã*/
+		/* ネットワークバッファにデータが無くなったら解放する。*/
 		if (len == qhdr->slen) {
 			T_NET_BUF *next;
@@ -809,5 +776,5 @@
 
 /*
- *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
  */
 
@@ -819,10 +786,10 @@
 	uint8_t		*buf = (uint8_t*)data;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã«ãããã¯ã¼ã¯ãããã¡ãç¡ããªãã
-	 *  len ã 0 ã«ãªãã¾ã§ç¶ããã
+	 *  受信ウィンドバッファキューにネットワークバッファが無くなるか
+	 *  len が 0 になるまで続ける。
 	 */
 	while (cep->rwbufq != NULL && len > 0) {
@@ -830,7 +797,6 @@
 
 		/*
-		 *  len ã¨åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®å
-é ­ãããã¯ã¼ã¯ãããã¡ã®
-		 *  ãã¼ã¿æ°ã®å°ããæ¹ãç§»ããã¼ã¿æ°ã«ããã
+		 *  len と受信ウィンドバッファキューの先頭ネットワークバッファの
+		 *  データ数の小さい方を移すデータ数にする。
 		 */
 		if (len > qhdr->slen)
@@ -844,6 +810,6 @@
 
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã«
-		 *  ãã¼ã¿ãç¡ããªã£ããè§£æ¾ããã
+		 *  受信ウィンドバッファキューのネットワークバッファに
+		 *  データが無くなったら解放する。
 		 */
 		tcp_drop_rwbuf_cs(cep, blen);
@@ -854,5 +820,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -861,5 +827,5 @@
 
 /*
- *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -870,11 +836,10 @@
 	uint_t		len;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	if (cep->rwbufq == NULL) {
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãå
-¨ã¦éæ¾ããã¦ããã¨ãã*/
+		/* 受信ウィンドバッファが全て開放されているとき。*/
 		*p_buf = NULL;
 		len = 0;
@@ -882,17 +847,16 @@
 	else {
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+		/* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/
 		qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq));
 		*p_buf = GET_TCP_SDU(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)) + qhdr->soff;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/
+		/* 受信ウィンドバッファのデータ長を計算する。*/
 		len = qhdr->slen;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	/* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
 	cep->rcv_buf_len = len;
 	return len;
@@ -900,11 +864,9 @@
 
 /*
- *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
  *
- *    æ³¨æ:
- *      å¿
-è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
- *      æ»ã£ãå¾ãè§£é¤ããå¿
-è¦ãããã
+ *    注意:
+ *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
+ *      戻った後、解除する必要がある。
  */
 
@@ -928,5 +890,5 @@
 			}
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+		/* 受信ウィンドバッファの使用中サイズをリセットする。*/
 		cep->rwbuf_count = 0;
 		}
@@ -934,11 +896,10 @@
 
 /*
- *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
  *
- *    æ³¨æ:
- *	å
-¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã
- *	ä¸¦ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã
- *	è¿½å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã
+ *    注意:
+ *	入力 input は、T_TCP_Q_HDR によりリンクされ、
+ *	並べ替えが終了していなければならない。また、
+ *	追加するデータは、受信ウィンドバッファに収まること。
  */
 
@@ -950,5 +911,5 @@
 	uint_t		inlen, last;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -963,14 +924,13 @@
 
 		/*
-		 *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ãè¶
-ããã¨ãã¯ã
-		 *  åä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
-		 *  ãã ããSDU é·ã 0 ã®ã»ã°ã¡ã³ãã¨ FIN ã»ã°ã¡ã³ãã¯ç ´æ£ããªãã
-		 *  ãªããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
+		 *  TCP 通信端点の受信ウィンドバッファの省コピー機能の、
+		 *  受信ウィンドバッファキューの最大エントリ数を超えるときは、
+		 *  受信したセグメントを破棄する。
+		 *  ただし、SDU 長が 0 のセグメントと FIN セグメントは破棄しない。
+		 *  なお、正常に受信したセグメントも破棄するため、再送回数が増加する。
 		 */
 		syscall(rel_net_buf(input));
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		return;
@@ -983,8 +943,8 @@
 	qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
 
-	/* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/
+	/* 受信済みシーケンス番号を更新する。*/
 	cep->rcv_nxt += inlen;
 
-	/* ç·æ¥ãã¼ã¿ã® SDU è£æ­£ãè¡ãã*/
+	/* 緊急データの SDU 補正を行う。*/
 	if (qhdr->urp > 0 && inlen > 0) {
 		inlen      -= qhdr->urp;
@@ -995,5 +955,5 @@
 	last  = cep->rwbuf_count;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¾ã«é£çµããã*/
+	/* ネットワークバッファを受信ウィンドバッファキューの最後に連結する。*/
 	qhdr->next = NULL;
 	nextp = &cep->rwbufq;
@@ -1003,7 +963,7 @@
 
 	/*
-	 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-	 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-	 *  ããªããã¨ãç¥ãããããã§ããã
+	 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+	 *  これは、アプリケーションに、相手からこれ以上データが送られて
+	 *  こないことを知らせるためである。
 	 */
 	if (inlen > 0) {
@@ -1013,10 +973,10 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ノンブロッキングコール */
 
 		int_t	len;
@@ -1026,14 +986,14 @@
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
 
-			/* tcp_rcv_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			/* tcp_rcv_buf の割当て長を設定する。*/
 			cep->rcv_buf_len = len;
 
-			/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			/* 受信ウィンドバッファのアドレスを返す。*/
 			*cep->rcv_p_buf = GET_TCP_SDU(cep->rwbufq,
 			                  GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)) + qhdr->soff;
@@ -1052,6 +1012,6 @@
 
 				/*
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックして、
+				 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 				syscall(wai_sem(cep->semid_lock));
@@ -1061,15 +1021,15 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
 		}
 
-	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ノンブロッキングコール */
 		int_t	len;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		/* 受信ウィンドバッファからデータを取り出す。*/
 		if ((len = tcp_read_rwbuf_cs(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
-			/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+			/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1077,7 +1037,7 @@
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
@@ -1094,5 +1054,5 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -1104,9 +1064,8 @@
 		if (inlen == 0 && cep->rwbuf_count == 0) {
 			/*
-			 *  åä¿¡ã¦ã£ã³ããããã¡å
-ã®ãã¼ã¿æ°ã 0 ã§ã
-			 *  ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
-			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-			 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+			 *  受信ウィンドバッファ内のデータ数が 0 で、
+			 *  相手から FIN フラグが付いたセグメントを受信したときは、
+			 *  通信端点をロックして、
+			 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 			 */
 			syscall(wai_sem(cep->semid_lock));
@@ -1116,10 +1075,8 @@
 
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
-¥ããã inlen == 0 ã®æãå
-¥åã¿ã¹ã¯ãèµ·åºããã
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) {
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -130,9 +118,9 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹
- */
-
-/*
- *  tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が無効
+ */
+
+/*
+ *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す。
  */
 
@@ -144,5 +132,5 @@
 	uint_t	hdr_offset = IF_IP_TCP_HDR_OFFSET(output);
 
-	/* SDU ã®å¤§ããããã§ãã¯ããã*/
+	/* SDU の大きさをチェックする。*/
 	if (sdu_size < GET_TCP_HDR_SIZE(output, hdr_offset) + len) {
 		syslog(LOG_INFO, "[TCP] shrink SUD len: %d -> %d",
@@ -153,5 +141,5 @@
 	wptr = GET_TCP_SDU(output, hdr_offset);
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -159,6 +147,5 @@
 	if (rptr - (uint8_t*)cep->sbuf > cep->sbufsz) {
 
-		/* è»¢ééå§ãéä¿¡ã¦ã£ã³ããããã¡ã®çµãããè¶
-ããã¨ãã®å¦çã*/
+		/* 転送開始が送信ウィンドバッファの終わりを超えるときの処理　*/
 		rptr = (uint8_t*)cep->sbuf_rptr - (cep->sbufsz - doff);
 		}
@@ -166,5 +153,5 @@
 		uint_t sub;
 
-		/* è»¢éç¯å²ãã©ã¦ã³ãããã¨ãã®å¦ç */
+		/* 転送範囲がラウンドするときの処理 */
 		sub = (uint_t)(cep->sbufsz - (rptr - (uint8_t*)cep->sbuf));
 		memcpy((void*)wptr, rptr, (size_t)sub);
@@ -178,10 +165,10 @@
 	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_DATA_OCTETS], len);
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 	}
 
 /*
- *  tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã
+ *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する。
  */
 
@@ -191,5 +178,5 @@
 	uint_t	last;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -197,5 +184,5 @@
 
 	if (cep->sbuf_rptr + len > (uint8_t*)cep->sbuf + cep->sbufsz)
-		/* ã©ã¦ã³ãããã¨ãã®è¨ç® */
+		/* ラウンドするときの計算 */
 		cep->sbuf_rptr -= cep->sbufsz - len;
 	else
@@ -203,30 +190,30 @@
 	cep->swbuf_count -= (uint16_t)len;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {	/* ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
-		/* éä¿¡ãã¼ã¿é·ãè¨ç®ããã*/
+		/* 送信データ長を計算する。*/
 		if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
-			/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+			/* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
 			len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
 		else
 			len = cep->sbufsz - cep->swbuf_count;
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
 		if (len > 0) {
 
-			/* tcp_get_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			/* tcp_get_buf の割当て長を設定する。*/
 			cep->get_buf_len = len;
 
-			/* éä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			/* 送信ウィンドバッファのアドレスを返す。*/
 			*cep->snd_p_buf = cep->sbuf_wptr;
 
@@ -241,5 +228,5 @@
 				syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-			/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+			/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 			cep->snd_tskid = TA_NULL;
 			cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -250,9 +237,9 @@
 
 	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT ||
-	         cep->snd_nblk_tfn == TFN_TCP_SND_OOB) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	         cep->snd_nblk_tfn == TFN_TCP_SND_OOB) {	/* ノンブロッキングコール */
 
 #else	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) {	/* ノンブロッキングコール */
 
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
@@ -260,10 +247,10 @@
 		ER_UINT	error;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+	 	/* 送信ウィンドバッファにデータを書き込む。*/
 		error = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
 
 #ifdef TCP_CFG_EXTENTIONS
 
-		/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+		/* 送信緊急ポインタを設定する。*/
 	        if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
 			cep->snd_up = cep->snd_una + error;
@@ -281,5 +268,5 @@
 			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->snd_tskid = TA_NULL;
 		cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -289,5 +276,5 @@
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããåºæ¥ããåºåã¿ã¹ã¯ãèµ·åºããã*/
+		/* 送信ウィンドバッファに空きが出来たら出力タスクを起床する。*/
 		if (last == cep->sbufsz && cep->swbuf_count < cep->sbufsz)
 			syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
@@ -300,5 +287,5 @@
 
 	if (cep->swbuf_count > 0) {
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°åºåããã¹ãããã*/
+		/* 送信ウィンドバッファにデータがあれば出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -307,5 +294,5 @@
 
 /*
- *  tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む。
  */
 
@@ -315,12 +302,12 @@
 	uint_t	offset;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* len ã¨éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã®å°ããæ¹ãç§»ããã¼ã¿æ°ã«ããã*/
+	/* len と送信ウィンドバッファの空きの小さい方を移すデータ数にする。*/
 	if (len > (cep->sbufsz - cep->swbuf_count))
 		len = cep->sbufsz - cep->swbuf_count;
 
-	/* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 書き込みポインタがラウンドするときの処理 */
 	if (len > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) {
 		offset = (uint_t)(cep->sbufsz - (cep->sbuf_wptr -(uint8_t*)cep->sbuf));
@@ -336,5 +323,5 @@
 	cep->swbuf_count += len - offset;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -343,6 +330,5 @@
 
 /*
- *  tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã
+ *  tcp_wait_swbuf -- 送信ウィンドバッファが空くのを待つ。
  */
 
@@ -355,7 +341,6 @@
 	while (cep->swbuf_count >= cep->sbufsz) {
 		/*
-		 *  éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãããªããã°ãåºåããã¹ããã¦ã
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤ã
+		 *  送信ウィンドバッファの空きがなければ、出力をポストして、
+		 *  送信ウィンドバッファが空くまで待つ。
 		 */
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
@@ -368,9 +353,7 @@
 
 		/*
-		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 *  送信できるか、CEP の FSM 状態を見る。
+		 *  送信ウィンドバッファが空くまで待つ間に、送信不能になった場合は、
+		 *  コネクションが切断されたことを意味している。
 		 */
 		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
@@ -382,5 +365,5 @@
 	}
 /*
- *  tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -390,22 +373,21 @@
 	uint_t	len;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+	/* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/
 	*p_buf = cep->sbuf_wptr;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããµã¤ãºãè¨ç®ããã*/
+	/* 送信ウィンドバッファの空きサイズを計算する。*/
 	if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
-		/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+		/* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
 		len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
 	else
 		len = cep->sbufsz - cep->swbuf_count;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	/* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
 	cep->get_buf_len = len;
 	return (ER_UINT)len;
@@ -413,5 +395,5 @@
 
 /*
- *  tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã
+ *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする。
  */
 
@@ -419,5 +401,5 @@
 tcp_send_swbuf_ncs (T_TCP_CEP *cep, uint_t len)
 {
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -425,15 +407,15 @@
 	cep->swbuf_count += len;
 
-	/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 書込みポインタがラウンドするときの処理 */
 	if (cep->sbuf_wptr >= (uint8_t*)cep->sbuf + cep->sbufsz)
 		cep->sbuf_wptr  = (uint8_t*)cep->sbuf;
 
-	/* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	/* tcp_get_buf の割当て長をリセットする。*/
 	cep->get_buf_len = 0;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+	/* 送信ウィンドバッファがフルのときは強制的に送信する。*/
 	if (cep->swbuf_count >= cep->sbufsz)
 		cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
@@ -441,5 +423,5 @@
 
 /*
- *  tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããã
+ *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする。
  */
 
@@ -455,9 +437,9 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹
- */
-
-/*
- *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が無効
+ */
+
+/*
+ *  tcp_drop_rwbuf -- 受信ウィンドバッファから指定されたオクテット分削除する。
  */
 
@@ -468,5 +450,5 @@
 	cep->rbuf_rptr  += len;
 
-	/* èª­ã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 読み出しポインタがラウンドするときの処理 */
 	if (cep->rbuf_rptr >= (uint8_t*)cep->rbuf + cep->rbufsz)
 		cep->rbuf_rptr  = (uint8_t*)cep->rbuf;
@@ -474,5 +456,5 @@
 
 /*
- *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
  */
 
@@ -482,12 +464,12 @@
 	uint_t	offset;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* len ã¨åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿æ°ã®å°ããæ¹ãåãåºããã¼ã¿æ°ã«ããã*/
+	/* len と受信ウィンドバッファのデータ数の小さい方を取り出すデータ数にする。*/
 	if (len > cep->rwbuf_count)
 		len = cep->rwbuf_count;
 
-	/* èª­ã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 読み出しポインタがラウンドするときの処理 */
 	if (len > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
 		offset = (uint_t)(cep->rbufsz - (cep->rbuf_rptr -(uint8_t*)cep->rbuf));
@@ -503,5 +485,5 @@
 	cep->rbuf_rptr  += len - offset;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -510,5 +492,5 @@
 
 /*
- *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -518,22 +500,21 @@
 	uint_t	len;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/
+	/* 受信ウィンドバッファのデータ長を計算する。*/
 	if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf))
-		/* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+		/* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
 		len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
 	else
 		len = cep->rwbuf_count;
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+	/* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/
 	*p_buf = cep->rbuf_rptr;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	/* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
 	cep->rcv_buf_len = len;
 	return len;
@@ -541,11 +522,10 @@
 
 /*
- *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
  *
- *    æ³¨æ:
- *	å
-¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã
- *	ä¸¦ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã
- *	è¿½å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã
+ *    注意:
+ *	入力 input は、T_TCP_Q_HDR によりリンクされ、
+ *	並べ替えが終了していなければならない。また、
+ *	追加するデータは、受信ウィンドバッファに収まること。
  */
 
@@ -556,10 +536,10 @@
 	uint_t		offset, inlen, last;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
 
-	/* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/
+	/* 受信済みシーケンス番号を更新する。*/
 	cep->rcv_nxt += qhdr->slen;
 
@@ -567,5 +547,5 @@
 	inlen = qhdr->slen;
 
-	/* ç·æ¥ãã¼ã¿ã® SDU è£æ­£ãè¡ãã*/
+	/* 緊急データの SDU 補正を行う。*/
 	if (qhdr->urp > 0 && inlen > 0) {
 		inlen      -= qhdr->urp;
@@ -575,11 +555,11 @@
 
 	/*
-	 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-	 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-	 *  ããªããã¨ãç¥ãããããã§ããã
+	 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+	 *  これは、アプリケーションに、相手からこれ以上データが送られて
+	 *  こないことを知らせるためである。
 	 */
 	if (inlen > 0) {
 
-		/* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+		/* 書き込みポインタがラウンドするときの処理 */
 		if (inlen > cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)) {
 			offset = (uint_t)(cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf));
@@ -604,11 +584,11 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ノンブロッキングコール */
 
 		int_t	len;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨ç®ããã*/
+		/* 受信ウィンドバッファの空きデータ長を計算する。*/
 		if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
-			/* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+			/* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
 			len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
 			}
@@ -616,18 +596,18 @@
 			len = cep->rwbuf_count;
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
 
-			/* tcp_rcv_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			/* tcp_rcv_buf の割当て長を設定する。*/
 			cep->rcv_buf_len = len;
 
-			/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			/* 受信ウィンドバッファのアドレスを返す。*/
 			*cep->rcv_p_buf = cep->rbuf_rptr;
 
@@ -646,6 +626,6 @@
 
 				/*
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックして、
+				 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 				syscall(wai_sem(cep->semid_lock));
@@ -655,18 +635,18 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
 		}
 
-	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ノンブロッキングコール */
 		ER_UINT	len;
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		/* 受信ウィンドバッファからデータを取り出す。*/
 		if ((len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
-			/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+			/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -674,7 +654,7 @@
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
@@ -691,5 +671,5 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -700,14 +680,13 @@
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
 		if (inlen == 0 && cep->rwbuf_count == 0) {
 			/*
-			 *  åä¿¡ã¦ã£ã³ããããã¡å
-ã®ãã¼ã¿æ°ã 0 ã§ã
-			 *  ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
-			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-			 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+			 *  受信ウィンドバッファ内のデータ数が 0 で、
+			 *  相手から FIN フラグが付いたセグメントを受信したときは、
+			 *  通信端点をロックして、
+			 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 			 */
 			syscall(wai_sem(cep->semid_lock));
@@ -717,10 +696,8 @@
 
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
-¥ããã inlen == 0 ã®æãå
-¥åã¿ã¹ã¯ãèµ·åºããã
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0)
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_timer.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_timer.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_timer.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -119,5 +107,5 @@
 
 /*
- *  å±æé¢æ°
+ *  局所関数
  */
 
@@ -131,7 +119,7 @@
 
 /*
- *  ããã¯ãªãæé
+ *  バックオフ時間
  *
- *  åéãè¡ããã³ã«ãã¿ã¤ã ã¢ã¦ãã®æéãå»¶é·ããã
+ *  再送を行うたびに、タイムアウトの時間を延長する。
  */
 
@@ -143,8 +131,8 @@
 	};
 
-#define TCP_TOTAL_BACK_OFF	511	/* ããã¯ãªãæéã®åè¨ */
-
-/*
- *  tcp_timers -- ã¿ã¤ã ã¢ã¦ãå¦ç
+#define TCP_TOTAL_BACK_OFF	511	/* バックオフ時間の合計 */
+
+/*
+ *  tcp_timers -- タイムアウト処理
  */
 
@@ -158,11 +146,11 @@
 
 	/*
-	 *  åéã¿ã¤ã
+	 *  再送タイマ
 	 */
 	case TCP_TIM_REXMT:
 	
 		/*
-		 *  æå¤§åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ã«ãªã£ãã¨ãã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããã
+		 *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) になったときは、
+		 *  コネクションを切断する。
 		 */
 		if (++ cep->rxtshift > TCP_MAX_REXMT_SHIFT) {
@@ -174,5 +162,5 @@
 
 		/*
-		 *  åéã¿ã¤ã ã¢ã¦ããè¨ç®ããã
+		 *  再送タイムアウトを計算する。
 		 */
 		cep->rxtcur = tcp_range_set((T_TCP_TIME)(tcp_rexmt_val(cep) * tcp_back_off[cep->rxtshift]),
@@ -182,10 +170,10 @@
 
 		/*
-		 *  srtt:   å¹³æ»åããã RTT
-		 *  rttvar: å¹³æ»åãããåæ£
+		 *  srtt:   平滑化された RTT
+		 *  rttvar: 平滑化された分散
 		 *
-		 *  åéåæ°ãæå¤§åéåæ°ã® 1/4 ã«ãªã£ãã¨ãã¯ã
-		 *  å¹³æ»åãããåæ£ (rttvar) ã« srtt ãå ç®ãã
-		 *  å¹³æ»åããã RTT ã 0 ã«ããã
+		 *  再送回数が最大再送回数の 1/4 になったときは、
+		 *  平滑化された分散 (rttvar) に srtt を加算し、
+		 *  平滑化された RTT を 0 にする。
 		 *  
 		 */
@@ -196,9 +184,9 @@
 
 		/*
-		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ãã SEQ
-		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ	 ã¾ãã¯ãç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
+		 *  snd_una: 未確認の最小送信 SEQ	 または、確認された最大送信 SEQ
 		 *
-		 *  ååéä¿¡ãã SEQ (snd_nxt) ã 
-		 *  ç¢ºèªãããæå¤§éä¿¡ SEQ (snd_una) ã¾ã§æ»ãã
+		 *  前回送信した SEQ (snd_nxt) を 
+		 *  確認された最大送信 SEQ (snd_una) まで戻す。
 		 */
 		cep->snd_nxt = cep->snd_una;
@@ -206,20 +194,20 @@
 
 		/*
-		 *  rtt: å¾å¾©æéã®è¨æ¸¬ãä¸­æ­¢ããã
+		 *  rtt: 往復時間の計測を中止する。
 		 */
 		cep->rtt     = 0;
 
 		/*
-		 *  éä¿¡ã¦ã¤ã³ãã®è¨­å®
+		 *  送信ウインドの設定
 		 *
-		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
-		 *  maxseg  : ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº
+		 *  snd_wnd:  相手の受信可能ウィンドサイズ
+		 *  snd_cwnd: 輻輳ウィンドサイズ
+		 *  maxseg  : 相手の最大受信セグメントサイズ
 		 *
-		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ãã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã®
-		 *  ã©ã¡ããå°ãããµã¤ãºã® 1/2 ããæ´ã«
-		 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã§å²ã£ãå¤ã
-		 *  ãã ãã2 ä»¥ä¸
+		 *  相手の受信可能ウィンドサイズ (snd_wnd) か、
+		 *  輻輳ウィンドサイズ (snd_cwnd) の
+		 *  どちらか小さいサイズの 1/2 を、更に
+		 *  相手の最大受信セグメントサイズ (maxseg) で割った値。
+		 *  ただし、2 以上
 		 */
 		if (cep->snd_wnd < cep->snd_cwnd)
@@ -232,9 +220,9 @@
 
 		/*
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã¯
-		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã«ã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ã¯
-		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã® win åã«
-		 *  è¨­å®ããã
+		 *  輻輳ウィンドサイズ (snd_cwnd) は
+		 *  相手の受信可能ウィンドサイズ (snd_wnd) に、
+		 *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) は
+		 *  相手の受信可能ウィンドサイズ (snd_wnd) の win 倍に
+		 *  設定する。
 		 */
 		cep->snd_cwnd     = cep->maxseg;
@@ -242,5 +230,5 @@
 		cep->dupacks      = 0;
 
-		/* åºåããã¹ãããã*/
+		/* 出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -248,15 +236,14 @@
 
 	/*
-	 *  æç¶ã¿ã¤ã	
+	 *  持続タイマ	
 	 */
 	case TCP_TIM_PERSIST:
 
 		/*
-		 *  æå¤§åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ãè¶
-ãã¦ãã¦ã
-		 *  ã¢ã¤ãã«æéããä¿çã¿ã¤ãã®æ¨æºå¤ (TCP_TVAL_KEEP_IDLEã
-		 *  æ¨æº 2 * 60 * 60 ç§) ä»¥ä¸ãã
-		 *  åéã¿ã¤ã ã¢ã¦ãå¤ * ããã¯ãªãæéã®åè¨ä»¥ä¸ãªã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããã
+		 *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) を超えていて、
+		 *  アイドル時間が、保留タイマの標準値 (TCP_TVAL_KEEP_IDLE、
+		 *  標準 2 * 60 * 60 秒) 以上か、
+		 *  再送タイムアウト値 * バックオフ時間の合計以上なら
+		 *  コネクションを切断する。
 		 */
 		if (cep->rxtshift > TCP_MAX_REXMT_SHIFT &&
@@ -268,5 +255,5 @@
 			}
 
-		/* æç¶ã¿ã¤ããåè¨­å®ããåºåããã¹ãããã*/
+		/* 持続タイマを再設定し、出力をポストする。*/
 		tcp_set_persist_timer(cep);
 
@@ -276,11 +263,11 @@
 
 	/*
-	 *  ä¿ç (keep alive) ã¿ã¤ã
+	 *  保留 (keep alive) タイマ
 	 */
 	case TCP_TIM_KEEP:
 
 		/*
-		 *  ã³ãã¯ã·ã§ã³ãéè¨­ãããã¾ã§ã«ã¿ã¤ã ã¢ã¦ãããã
-		 *  ã³ãã¯ã·ã§ã³ã®éè¨­ãä¸­æ­¢ããã
+		 *  コネクションが開設されるまでにタイムアウトしたら
+		 *  コネクションの開設を中止する。
 		 */
 		if (cep->fsm_state < TCP_FSM_ESTABLISHED) {
@@ -316,5 +303,5 @@
 
 	/*
-	 *  2MSL ã¿ã¤ã		
+	 *  2MSL タイマ		
 	 */
 	case TCP_TIM_2MSL:
@@ -332,6 +319,5 @@
 
 /*
- *  tcp_cancel_timers -- å
-¨ã¦ã®ã¿ã¤ããã­ã£ã³ã»ã«ããã
+ *  tcp_cancel_timers -- 全てのタイマをキャンセルする。
  */
 
@@ -348,5 +334,5 @@
 
 /*
- *  tcp_tw_timo -- Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã®ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  tcp_tw_timo -- Time Wait 用 TCP 通信端点のタイムアウト処理
  */
 
@@ -360,6 +346,6 @@
 
 	/*
-	 *  Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã§ã¿ã¤ã ã¢ã¦ãã®ã¨ã³ããªãæ¢ç´¢ãã
-	 *  æ¢ç´¢ããã¨ã³ããªãç©ºãã«ããã
+	 *  Time Wait 用 TCP 通信端点でタイムアウトのエントリを探索し、
+	 *  探索したエントリを空きにする。
 	 */
 	frees = 0;
@@ -371,10 +357,8 @@
 
 	/*
-	 *  Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã®ç©ºãã¨ã³ããªãçºçããã
-	 *  æ¨æº TCP éä¿¡ç«¯ç¹ã§ Time Wait ä¸­ã® TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ãã
-	 *  å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
-	 *  æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+	 *  Time Wait 用 TCP 通信端点の空きエントリが発生したら
+	 *  標準 TCP 通信端点で Time Wait 中の TCP 通信端点を探索し、
+	 *  必要な情報を Time Wait 用 TCP 通信端点に移して、
+	 *  標準の TCP 通信端点を開放する。
 	 */
 	if (frees > 0) {
@@ -387,5 +371,5 @@
 
 		/*
-		 *  ãã£ã¨ãé·ãé Time Wait ãã¦ãã TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+		 *  もっとも長い間 Time Wait している TCP 通信端点を開放する。
 		 */
 		while (waits > 0) {
@@ -410,5 +394,5 @@
 
 /*
- *  tcp_slow_timo -- 500 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°
+ *  tcp_slow_timo -- 500 [ms] 毎に呼出される TCP タイムアウト関数
  */
 
@@ -452,5 +436,5 @@
 
 /*
- *  tcp_fast_timo -- 200 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°
+ *  tcp_fast_timo -- 200 [ms] 毎に呼出される TCP タイムアウト関数
  */
 
@@ -476,5 +460,5 @@
 
 /*
- *  tcp_range_set -- æéãæå®ããç¯å²ã«è¨­å®ããã
+ *  tcp_range_set -- 時間を指定した範囲に設定する。
  */
 
@@ -491,5 +475,5 @@
 
 /*
- *  tcp_set_persist_timer -- æç¶ã¿ã¤ãã®è¨­å®
+ *  tcp_set_persist_timer -- 持続タイマの設定
  */
 
@@ -500,11 +484,11 @@
 
 	/*
-	 *  srtt:   å¹³æ»åããã RTT
-	 *  rttvar: å¹³æ»åãããåæ£
+	 *  srtt:   平滑化された RTT
+	 *  rttvar: 平滑化された分散
 	 */
 	time = ((cep->srtt >> 2) + cep->rttvar) >> 1;
 
 	/*
-	 *  åéã¿ã¤ããè¨­å®ããã¦ããã°åå¾©ä¸è½ã¨ã©ã¼
+	 *  再送タイマも設定されていれば回復不能エラー
 	 */
 	if (cep->timer[TCP_TIM_REXMT])
@@ -512,5 +496,5 @@
 
 	/*
-	 *  æç¶ã¿ã¤ããè¨­å®ããã
+	 *  持続タイマを設定する。
 	 */
 	cep->timer[TCP_TIM_PERSIST] = tcp_range_set((T_TCP_TIME)(time * tcp_back_off[cep->rxtshift]),
@@ -519,5 +503,5 @@
 
 	/*
-	 *  åéåæ°ãæ´æ°ããã
+	 *  再送回数を更新する。
 	 */
 	if (cep->rxtshift < TCP_MAX_REXMT_SHIFT)
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_timer.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_timer.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_timer.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,17 +71,17 @@
 #define _TCP_TIMER_H_
 
-/* TCP ã¿ã¤ãå¤æ° */
+/* TCP タイマ変数 */
 
-//#define NUM_TCP_TIMERS		4	/* TCP ã®ã¿ã¤ãæ°	*/
+//#define NUM_TCP_TIMERS		4	/* TCP のタイマ数	*/
 
-#define TCP_TIM_REXMT		0	/* åéã¿ã¤ã		*/
-#define TCP_TIM_PERSIST		1	/* æç¶ã¿ã¤ã		*/
-#define TCP_TIM_KEEP		2	/* ä¿ç (keep alive) ã¿ã¤ã*/
-#define TCP_TIM_2MSL		3	/* 2MSL ã¿ã¤ã		*/
+#define TCP_TIM_REXMT		0	/* 再送タイマ		*/
+#define TCP_TIM_PERSIST		1	/* 持続タイマ		*/
+#define TCP_TIM_KEEP		2	/* 保留 (keep alive) タイマ*/
+#define TCP_TIM_2MSL		3	/* 2MSL タイマ		*/
 
-/* MSL: Maximum Segment Lifetime, æå¤§ã»ã°ã¡ã³ãçå­æé 		*/
+/* MSL: Maximum Segment Lifetime, 最大セグメント生存時間 		*/
 
 /*
- *  TCP/IP ã®ã¿ã¤ãã®å®ç¾©
+ *  TCP/IP のタイマの定義
  */
 
@@ -103,35 +91,34 @@
 #define TCP_SLOW_HZ		(ULONG_C(1000000)/TCP_SLOW_TMO/NET_TIMER_CYCLE)	/* Hz	*/
 
-/* TCP ã¿ã¤ãå¤ */
+/* TCP タイマ値 */
 
 #define TCP_TVAL_MSL		(TCP_SLOW_HZ * 30)
-					/* æå¤§ã»ã°ã¡ã³ãçå­æé	*/
+					/* 最大セグメント生存時間	*/
 
-#define TCP_TVAL_SRTT_BASE	0	/* æ»ãããªå¾å¾©æéã®åºæºå¤*/
+#define TCP_TVAL_SRTT_BASE	0	/* 滑らかな往復時間の基準値*/
 
 #define TCP_TVAL_RTO_BASE	(TCP_SLOW_HZ * 3)
-		/* æ
-å ±ãå¾ãããªãå ´åã®åéã¿ã¤ã ã¢ã¦ãã®åºæºå¤	*/
+		/* 情報が得られない場合の再送タイムアウトの基準値	*/
 
 #define TCP_TVAL_MIN_PERSIST	(TCP_SLOW_HZ * 5)
-				/* æç¶ã¿ã¤ã ã¢ã¦ãã®æå°å¤	*/
+				/* 持続タイムアウトの最小値	*/
 #define TCP_TVAL_MAX_PERSIST	(TCP_SLOW_HZ * 60)
-				/* æç¶ã¿ã¤ã ã¢ã¦ãã®æå¤§å¤	*/
+				/* 持続タイムアウトの最大値	*/
 
 #define TCP_TVAL_KEEP_INIT	(TCP_SLOW_HZ * 75)
-					/* ä¿çã¿ã¤ãã®åæå¤	*/
+					/* 保留タイマの初期値	*/
 #define TCP_TVAL_KEEP_IDLE	(TCP_SLOW_HZ * 2 * 60 * 60)
-					/* ä¿çã¿ã¤ãèµ·åã¾ã§ã®æ¨æºå¤*/
+					/* 保留タイマ起動までの標準値*/
 #define TCP_TVAL_KEEP_INTERVAL	(TCP_SLOW_HZ * 75)
-					/* ä¿çã¿ã¤ãã¤ã³ã¿ã¼ãã«ã®æ¨æºå¤*/
-#define TCP_TVAL_KEEP_COUNT	8	/* ä¿çã¿ã¤ã ã¢ã¦ãã®æå¤§å¤*/
+					/* 保留タイマインターバルの標準値*/
+#define TCP_TVAL_KEEP_COUNT	8	/* 保留タイムアウトの最大値*/
 
 #define TCP_TVAL_MIN		(TCP_SLOW_HZ * 3)
-					/* æéã®æå°åä½	*/
+					/* 時間の最小単位	*/
 #define TCP_TVAL_MAX_REXMT	(TCP_SLOW_HZ * 64)
-					/* æå¤§åéæé		*/
+					/* 最大再送時間		*/
 
 /*
- *  ä»¥ä¸ã®å¤æ°ã®å¤ã¯ãã¯ã­ã§è¨­å®ããã
+ *  以下の変数の値はマクロで設定する。
  *
  *  tcp_maixidle   = tcp_keepcnt * tcp_keepintvl
@@ -143,11 +130,11 @@
 
 /*
- *  ãã®ä»ã®å®æ°
+ *  その他の定数
  */
 
-#define TCP_MAX_REXMT_SHIFT	12	/* æå¤§åéåæ°		*/
+#define TCP_MAX_REXMT_SHIFT	12	/* 最大再送回数		*/
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -130,7 +118,6 @@
 
 /*
- *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
-¨ã¦ã®æ©è½ã
- *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ *  TINET をライブラリ化しない場合は、全ての機能を
+ *  オブジェクトファイルに出力するため、マクロを有効にする。
  */
 
@@ -160,5 +147,5 @@
 
 /*
- *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ *  IPv6 と IPv4 で引数が異なる関数のコンパイル
  */
 
@@ -228,5 +215,5 @@
 
 /*
- *  tcp_user_closed -- ã¦ã¼ã¶ããã®ã³ãã¯ã·ã§ã³ã®éæ¾
+ *  tcp_user_closed -- ユーザからのコネクションの開放
  */
 
@@ -236,21 +223,20 @@
 	switch (cep->fsm_state) {
 
-	case TCP_FSM_CLOSED:		/* ã¯ã­ã¼ãº	*/
-	case TCP_FSM_LISTEN:		/* ååãªã¼ãã³	*/
+	case TCP_FSM_CLOSED:		/* クローズ	*/
+	case TCP_FSM_LISTEN:		/* 受動オープン	*/
 		cep->fsm_state = TCP_FSM_CLOSED;
 		cep = tcp_close(cep);
 		break;
 
-	case TCP_FSM_SYN_SENT:		/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
-	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
+	case TCP_FSM_SYN_SENT:		/* 能動オープン、SYN 送信済み	*/
+	case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み	*/
 		cep->flags |= TCP_CEP_FLG_NEED_FIN;
 		break;
 
-	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº	*/
+	case TCP_FSM_ESTABLISHED:	/* コネクション開設完了	*/
 		cep->fsm_state = TCP_FSM_FIN_WAIT_1;
 		break;
 
-	case TCP_FSM_CLOSE_WAIT:	/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
-ã¡ */
+	case TCP_FSM_CLOSE_WAIT:	/* 相手から FIN 受信、APP の終了待ち */
 		cep->fsm_state = TCP_FSM_LAST_ACK;
 		break;
@@ -263,5 +249,5 @@
 
 /*
- *  tcp_cls_cep -- éä¿¡ç«¯ç¹ã®ã¯ã­ã¼ãºãæ¨æºæ©è½ã
+ *  tcp_cls_cep -- 通信端点のクローズ【標準機能】
  */
 
@@ -275,5 +261,5 @@
 #ifndef TCP_CFG_NON_BLOCKING
 
-	/* tmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* tmout が TMO_NBLK ならエラー */
 	if (tmout == TMO_NBLK)
 		return E_PAR;
@@ -282,6 +268,6 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CLS_CEP)) != E_OK)
@@ -290,10 +276,10 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {				/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {				/* ノンブロッキングコール */
 
 		if (!IS_PTR_DEFINED(cep->callback))
 			error = E_OBJ;
-		else if (cep->fsm_state == TCP_FSM_CLOSED) {	/* ãã§ã«ã¯ã­ã¼ãºããã¦ããã¨ã */
+		else if (cep->fsm_state == TCP_FSM_CLOSED) {	/* すでにクローズされているとき */
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
@@ -313,38 +299,37 @@
 			}
 		else {
-			/* NBLK ã®API æ©è½ã³ã¼ããè¨­å®ããã*/
+			/* NBLK のAPI 機能コードを設定する。*/
 			cep->rcv_nblk_tfn = TFN_TCP_CLS_CEP;
 
-			if ((cep = tcp_user_closed(cep)) != NULL) {	/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
-				/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+			if ((cep = tcp_user_closed(cep)) != NULL) {	/* コネクションを切断する。*/
+				/* 切断セグメント出力をポストする。*/
 				cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 				sig_sem(SEM_TCP_POST_OUTPUT);
 				}
 
-			/*  cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã
-			 *  æ¢ã«ã³ãã¯ã·ã§ã³ãåæ­ããã¦ãããã¨ãæå³ãã¦ããã
-			 *  ã¾ãããã®å ´åã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¦ããã
+			/*  cep が NULL で戻ってきた場合は、
+			 *  既にコネクションが切断されていることを意味している。
+			 *  また、この場合コールバック関数が呼び出されている。
 			 */
 			return E_WBLK;
 			}
 		}
-	else {							/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-		if ((cep = tcp_user_closed(cep)) == NULL) {	/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
-
-			/*  cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã
-			 *  æ¢ã«ã³ãã¯ã·ã§ã³ãåæ­ããã¦ãããã¨ãæå³ãã¦ããã
+	else {							/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		if ((cep = tcp_user_closed(cep)) == NULL) {	/* コネクションを切断する。*/
+
+			/*  cep が NULL で戻ってきた場合は、
+			 *  既にコネクションが切断されていることを意味している。
 			 */
 			return error;
 			}
 		else {
-			/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+			/* 切断セグメント出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
 
-			/* ã¤ãã³ããã©ã°ã CLOSED ã«ãªãã¾ã§å¾
-ã¤ã*/
+			/* イベントフラグが CLOSED になるまで待つ。*/
 			error = twai_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED, TWF_ORW, &flag, tmout);
 			if (error == E_OK && cep->error != E_OK)
@@ -353,15 +338,15 @@
 			if (error != E_OK) {
 				if (error == E_RLWAI) {
-					/* tcp_cls_cep ãã­ã£ã³ã»ã«ãããã¨ãã¯ãRST ãéä¿¡ããã*/
+					/* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/
 					tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1, 
 					            cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST);
 					}
 
-				/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+				/* タイマーを停止する。*/
 				tcp_cancel_timers(cep);
 
 				/* 
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-				 *  åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックし、
+				 *  受信再構成キューのネットワークバッファを解放する。
 				 */
 				syscall(wai_sem(cep->semid_lock));
@@ -369,18 +354,17 @@
 				syscall(sig_sem(cep->semid_lock));
 
-				/* ç¶æ
-ãæªä½¿ç¨ã«ããã*/
+				/* 状態を未使用にする。*/
 				cep->fsm_state = TCP_FSM_CLOSED;
 
 				/*
-				 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-				 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-				 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+				 * 以下に関係しないフラグをクリアーする。
+				 * ・送受信ウィンドバッファの省コピー機能
+				 * ・動的な通信端点の生成・削除機能
 				 */
 				cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
 
 				/* 
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-				 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックし、
+				 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 				cep->rwbuf_count = 0;
@@ -410,5 +394,5 @@
 
 /*
- *  tcp_sht_cep  -- ãã¼ã¿éä¿¡ã®çµäºãæ¨æºæ©è½ã
+ *  tcp_sht_cep  -- データ送信の終了【標準機能】
  */
 
@@ -420,12 +404,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SHT_CEP)) != E_OK)
 		return error;
 
-	/* TCP éä¿¡ç«¯ç¹ã®ã³ãã¯ã·ã§ã³ãç¢ºç«ç¶æ
-ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 通信端点のコネクションが確立状態でなければエラー */
 	if (!TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
 		if ((error = cep->error) == E_OK)
@@ -433,7 +416,7 @@
 		}
 
-	else if ((cep = tcp_user_closed(cep)) != NULL) {		/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
-
-		/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+	else if ((cep = tcp_user_closed(cep)) != NULL) {		/* コネクションを切断する。*/
+
+		/* 切断セグメント出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -450,5 +433,5 @@
 
 /*
- *  tcp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ *  tcp_snd_dat -- パケットの送信【標準機能】
  */
 
@@ -461,5 +444,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
@@ -467,5 +450,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
@@ -474,12 +457,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_DAT)) != E_OK)
 		return error;
 
-	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、通信端点の状態を見る。*/
 	if ((error = tcp_can_send_more(cep, TFN_TCP_SND_DAT, tmout)) != E_OK)
 		goto err_ret;
@@ -487,18 +469,18 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
 		if (!TCP_IS_SWBUF_FULL(cep)) {
 
-		 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+		 	/* 送信ウィンドバッファにデータを書き込む。*/
 			error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)error);
@@ -518,21 +500,20 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* 送信ウィンドバッファが空くのを待つ。*/
 		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
 			goto err_ret;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+	 	/* 送信ウィンドバッファにデータを書き込む。*/
 		if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
 
-			/* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+			/* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
 			if (TCP_IS_SWBUF_FULL(cep))
 				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -556,5 +537,5 @@
 
 /*
- *  tcp_get_buf -- éä¿¡ç¨ãããã¡ã®ç²å¾ãæ¨æºæ©è½ã
+ *  tcp_get_buf -- 送信用バッファの獲得【標準機能】
  */
 
@@ -567,5 +548,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* p_buf ã NULL ãªãã¨ã©ã¼ */
+	/* p_buf が NULL ならエラー */
 	if (p_buf == NULL)
 		return E_PAR;
@@ -573,5 +554,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_buf == NULL || tmout == TMO_NBLK)
 		return E_PAR;
@@ -580,12 +561,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_GET_BUF)) != E_OK)
 		return error;
 
-	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、通信端点の状態を見る。*/
 	if ((error = tcp_can_send_more(cep, TFN_TCP_GET_BUF, tmout)) != E_OK)
 		goto err_ret;
@@ -593,13 +573,13 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
 
 		if (!TCP_IS_SWBUF_FULL(cep)) {
 
-			/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
 			error = TCP_GET_SWBUF_ADDR(cep, p_buf);
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)error);
@@ -618,14 +598,13 @@
 		}
 
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* 送信ウィンドバッファが空くのを待つ。*/
 		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
 			goto err_ret;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+	 	/* 送信ウィンドバッファの空アドレスを獲得する。*/
 		error = TCP_GET_SWBUF_ADDR(cep, p_buf);
 
@@ -647,6 +626,5 @@
 
 /*
- *  tcp_snd_buf -- ãããã¡å
-ã®ãã¼ã¿ã®éä¿¡ãæ¨æºæ©è½ã
+ *  tcp_snd_buf -- バッファ内のデータの送信【標準機能】
  */
 
@@ -657,20 +635,20 @@
 	ER		error;
 
-	/* éä¿¡ããé·ã len ããã§ãã¯ããã*/
+	/* 送信する長さ len をチェックする。*/
 	if (len < 0)
 		return E_PAR;
 
-	/* éä¿¡ããé·ãlen ã 0 ã§ããã°ãä½ãããªãã§æ»ãã*/
+	/* 送信する長さlen が 0 であれば、何もしないで戻る。*/
 	if (len == 0)
 		return E_OK;
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_BUF)) != E_OK)
 		return error;
 
-	/* éä¿¡ããé·ã len ããã§ãã¯ããã*/
+	/* 送信する長さ len をチェックする。*/
 	if (len > cep->get_buf_len) {
 		error = E_OBJ;
@@ -678,6 +656,5 @@
 		}
 
-	/* éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、CEP の FSM 状態を見る。*/
 	if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
 		if ((error = cep->error) == E_OK)
@@ -686,8 +663,8 @@
 		}
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã*/
+	/* 送信ウィンドバッファのデータを送信可能にする。*/
 	TCP_SEND_SWBUF(cep, (uint_t)len);
 
-	/* åºåããã¹ãããã*/
+	/* 出力をポストする。*/
 	cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 	sig_sem(SEM_TCP_POST_OUTPUT);
@@ -704,5 +681,5 @@
 
 /*
- *  tcp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ *  tcp_rcv_dat -- パケットの受信【標準機能】
  */
 
@@ -715,5 +692,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
@@ -721,5 +698,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
@@ -728,12 +705,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_DAT)) != E_OK)
 		return error;
 
-	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 受信できるか、通信端点の状態を見る。*/
 	if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
 		goto err_ret;
@@ -741,14 +717,14 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
 		if (cep->rwbuf_count > 0) {
 
-			/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+			/* 受信ウィンドバッファからデータを取り出す。*/
 			len = TCP_READ_RWBUF(cep, data, (uint_t)len);
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_DAT, (void*)(uint32_t)len);
@@ -766,18 +742,16 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
-¥åãããã¾ã§å¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
 		if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK)
 			goto err_ret;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		/* 受信ウィンドバッファからデータを取り出す。*/
 		error = TCP_READ_RWBUF(cep, data, (uint_t)len);
 
-		/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+		/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -800,6 +774,5 @@
 
 /*
- *  tcp_rcv_buf -- åä¿¡ãããã¼ã¿ã®å
-¥ã£ããããã¡ã®ç²å¾ãæ¨æºæ©è½ã
+ *  tcp_rcv_buf -- 受信したデータの入ったバッファの獲得【標準機能】
  */
 
@@ -812,5 +785,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* p_buf ã NULL ãªãã¨ã©ã¼ */
+	/* p_buf が NULL ならエラー */
 	if (p_buf == NULL)
 		return E_PAR;
@@ -818,5 +791,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_buf == NULL || tmout == TMO_NBLK)
 		return E_PAR;
@@ -825,12 +798,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_BUF)) != E_OK)
 		return error;
 
-	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 受信できるか、通信端点の状態を見る。*/
 	if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
 		goto err_ret;
@@ -838,14 +810,14 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
 		if (cep->rwbuf_count > 0) {
 
-		 	/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+		 	/* 受信ウィンドバッファの空アドレスを獲得する。*/
 			error = TCP_GET_RWBUF_ADDR(cep, p_buf);
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)error);
@@ -862,11 +834,9 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
-¥åãããã¾ã§å¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
 		if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) {
 			cep->rwbuf_count = 0;
@@ -874,5 +844,5 @@
 			}
 
-	 	/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãç²å¾ããã*/
+	 	/* 受信ウィンドバッファのアドレスを獲得する。*/
 		error = TCP_GET_RWBUF_ADDR(cep, p_buf);
 
@@ -894,5 +864,5 @@
 
 /*
- *  tcp_rel_buf -- åä¿¡ç¨ãããã¡ã®è§£æ¾ãæ¨æºæ©è½ã
+ *  tcp_rel_buf -- 受信用バッファの解放【標準機能】
  */
 
@@ -903,16 +873,16 @@
 	ER		error;
 
-	/* è§£æ¾ããé·ã len ããã§ãã¯ããã*/
+	/* 解放する長さ len をチェックする。*/
 	if (len < 0)
 		return E_PAR;
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_REL_BUF)) != E_OK)
 		return error;
 
-	/* è§£æ¾ããé·ã len ããã§ãã¯ããã*/
+	/* 解放する長さ len をチェックする。*/
 	if (len > cep->rcv_buf_len) {
 		error = E_OBJ;
@@ -920,17 +890,17 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ããåä¿¡ãããªã¯ããããåé¤ããã*/
+	/* 受信ウィンドバッファから受信したオクテットを削除する。*/
 	TCP_DROP_RWBUF(cep, (uint_t)len);
 
-	/* tcp_rcv_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	/* tcp_rcv_buf の割当て長をリセットする。*/
 	cep->rcv_buf_len -= len;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+	/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 	cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 	sig_sem(SEM_TCP_POST_OUTPUT);
@@ -947,5 +917,5 @@
 
 /*
- *  tcp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ *  tcp_can_snd -- ペンディングしている送信のキャンセル
  */
 
@@ -955,34 +925,34 @@
 	ER	error = E_OK;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 *  snd_tskid ã TA_NULL ãªãã
-	 *  ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+	 *  snd_tskid が TA_NULL なら、
+	 *  ペンディングしていないのでエラー
 	 */
 	if (cep->snd_tskid == TA_NULL)
 		error = EV_NOPND;
 
-	/* ãã³ãã£ã³ã°ä¸­ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼ */
+	/* ペンディング中の API 機能コードと一致しなければエラー */
 	else if (fncd != TFN_TCP_ALL && fncd != cep->snd_tfn)
 		error = E_OBJ;
 
-	/* å¦çãã­ã£ã³ã»ã«ããã*/
+	/* 処理をキャンセルする。*/
 	else {
 
-		/* åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信再構成キューのネットワークバッファを解放する。*/
 		tcp_free_reassq(cep);
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
 		cep->rwbuf_count = 0;
 		TCP_FREE_RWBUFQ(cep);
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		TCP_FREE_SWBUFQ(cep);
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-		if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {	/* ノンブロッキングコール */
 
 			switch (cep->snd_nblk_tfn) {
@@ -990,6 +960,6 @@
 			case TFN_TCP_CON_CEP:
 				/*
-				 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-				 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+				 *  通信端点から受付口を解放し、
+				 *  イベントフラグをクローズに設定する。
 				 */
 				cep->rep = NULL;
@@ -1038,5 +1008,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1045,5 +1015,5 @@
 
 /*
- *  tcp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ *  tcp_can_rcv -- ペンディングしている受信のキャンセル
  */
 
@@ -1053,34 +1023,34 @@
 	ER	error = E_OK;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 *  rcv_tskid ã TA_NULL ãªãã
-	 *  ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+	 *  rcv_tskid が TA_NULL なら、
+	 *  ペンディングしていないのでエラー
 	 */
 	if (cep->rcv_tskid == TA_NULL)
 		error = EV_NOPND;
 
-	/* ãã³ãã£ã³ã°ä¸­ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼ */
+	/* ペンディング中の API 機能コードと一致しなければエラー */
 	else if (fncd != TFN_TCP_ALL && fncd != cep->rcv_tfn)
 		error = E_OBJ;
 
-	/* å¦çãã­ã£ã³ã»ã«ããã*/
+	/* 処理をキャンセルする。*/
 	else {
 
-		/* åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信再構成キューのネットワークバッファを解放する。*/
 		tcp_free_reassq(cep);
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
 		cep->rwbuf_count = 0;
 		TCP_FREE_RWBUFQ(cep);
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		TCP_FREE_SWBUFQ(cep);
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-		if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {	/* ノンブロッキングコール */
 
 			switch (cep->rcv_nblk_tfn) {
@@ -1088,6 +1058,6 @@
 			case TFN_TCP_ACP_CEP:
 				/*
-				 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-				 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+				 *  通信端点から受付口を解放し、
+				 *  イベントフラグをクローズに設定する。
 				 */
 				cep->rep = NULL;
@@ -1142,5 +1112,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1149,5 +1119,5 @@
 
 /*
- *  tcp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ *  tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
  */
 
@@ -1158,26 +1128,26 @@
 	ER		error = E_OK, snd_err, rcv_err;
 
-	/* API æ©è½ã³ã¼ãããã§ãã¯ããã*/
+	/* API 機能コードをチェックする。*/
 	if (!VALID_TFN_TCP_CAN(fncd))
 		return E_PAR;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VALID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep))
 		return E_NOEXS;
 
-	if (fncd == TFN_TCP_ALL) {		/* TFN_TCP_ALL ã®å¦ç */
+	if (fncd == TFN_TCP_ALL) {		/* TFN_TCP_ALL の処理 */
 		snd_err = tcp_can_snd(cep, fncd);
 		rcv_err = tcp_can_rcv(cep, fncd);
 
 		/*
-		 *  snd_err ã¨ rcv_err ã®ã©ã¡ãã EV_NOPND
-		 *  ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+		 *  snd_err と rcv_err のどちらも EV_NOPND
+		 *  なら、ペンディングしていないのでエラー
 		 */
 		if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
@@ -1196,10 +1166,10 @@
 		}
 
-	else if (IS_TFN_TCP_RCV(fncd)) {	/* åä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else if (IS_TFN_TCP_RCV(fncd)) {	/* 受信処理のキャンセル */
 		if ((error = tcp_can_rcv(cep, fncd)) == EV_NOPND)
 			error = E_OBJ;
 		}
 
-	else {					/* éä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else {					/* 送信処理のキャンセル */
 		if ((error = tcp_can_snd(cep, fncd)) == EV_NOPND)
 			error = E_OBJ;
@@ -1216,5 +1186,5 @@
 
 /*
- *  tcp_cre_cep -- TCP éä¿¡ç«¯ç¹ã®çæãæ¡å¼µæ©è½ã
+ *  tcp_cre_cep -- TCP 通信端点の生成【拡張機能】
  */
 
@@ -1225,24 +1195,24 @@
 	ER		error;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VALID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* pk_ccep ã NULL ãªãã¨ã©ã¼ */
+	/* pk_ccep が NULL ならエラー */
 	if (pk_ccep == NULL)
 		return E_PAR;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * TCP éä¿¡ç«¯ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 * TCP 通信端点をチェックする。生成済みであればエラー
 	 */
 	if (VALID_TCP_CEP(cep))
@@ -1250,19 +1220,18 @@
 	else {
 
-		/* TCP éä¿¡ç«¯ç¹çææ
-å ±ãã³ãã¼ããã*/
-		cep->cepatr   = pk_ccep->cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
-		cep->sbuf     = pk_ccep->sbuf;			/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-		cep->sbufsz   = pk_ccep->sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-		cep->rbuf     = pk_ccep->rbuf;			/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-		cep->rbufsz   = pk_ccep->rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-		cep->callback = (void*)pk_ccep->callback;	/* ã³ã¼ã«ããã¯			*/
-
-		/* TCP éä¿¡ç«¯ç¹ãçææ¸ã¿ã«ããã*/
+		/* TCP 通信端点生成情報をコピーする。*/
+		cep->cepatr   = pk_ccep->cepatr;		/* 通信端点属性			*/
+		cep->sbuf     = pk_ccep->sbuf;			/* 送信用ウィンドバッファ	*/
+		cep->sbufsz   = pk_ccep->sbufsz;		/* 送信用ウィンドバッファサイズ	*/
+		cep->rbuf     = pk_ccep->rbuf;			/* 受信用ウィンドバッファ	*/
+		cep->rbufsz   = pk_ccep->rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+		cep->callback = (void*)pk_ccep->callback;	/* コールバック			*/
+
+		/* TCP 通信端点を生成済みにする。*/
 		cep->flags |= TCP_CEP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1273,5 +1242,5 @@
 
 /*
- *  tcp_del_cep -- TCP éä¿¡ç«¯ç¹ã®åé¤ãæ¡å¼µæ©è½ã
+ *  tcp_del_cep -- TCP 通信端点の削除【拡張機能】
  */
 
@@ -1284,22 +1253,22 @@
 	ER		error;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VALID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * TCP éä¿¡ç«¯ç¹ããã§ãã¯ãããä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
-	 * ã»æªçæã
-	 * ã»ä½¿ç¨ä¸­ã
+	 * TCP 通信端点をチェックする。以下の場合はエラー
+	 * ・未生成。
+	 * ・使用中。
 	 */
 	if (!VALID_TCP_CEP(cep))
@@ -1309,10 +1278,10 @@
 	else {
 
-		/* TCP éä¿¡ç«¯ç¹ãæªçæã«ããã*/
+		/* TCP 通信端点を未生成にする。*/
 		cep->flags &= ~TCP_CEP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1325,5 +1294,5 @@
 
 /*
- *  tcp_snd_oob -- ç·æ¥ãã¼ã¿ã®éä¿¡ãæ¡å¼µæ©è½ã
+ *  tcp_snd_oob -- 緊急データの送信【拡張機能】
  */
 
@@ -1336,5 +1305,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
@@ -1342,5 +1311,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
@@ -1349,12 +1318,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_OOB)) != E_OK)
 		return error;
 
-	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、通信端点の状態を見る。*/
 	if ((error = tcp_can_send_more(cep, TFN_TCP_SND_OOB, tmout)) != E_OK)
 		goto err_ret;
@@ -1362,21 +1330,21 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
 		if (!TCP_IS_SWBUF_FULL(cep)) {
 
-		 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+		 	/* 送信ウィンドバッファにデータを書き込む。*/
 			error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
 
-			/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+			/* 送信緊急ポインタを設定する。*/
 			cep->snd_up = cep->snd_una + cep->swbuf_count;
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)error);
@@ -1396,24 +1364,23 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* 送信ウィンドバッファが空くのを待つ。*/
 		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
 			goto err_ret;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+	 	/* 送信ウィンドバッファにデータを書き込む。*/
 		if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
 
-			/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+			/* 送信緊急ポインタを設定する。*/
 			cep->snd_up = cep->snd_una + cep->swbuf_count;
 
-			/* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+			/* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
 			if (TCP_IS_SWBUF_FULL(cep))
 				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1437,8 +1404,8 @@
 
 /*
- *  tcp_rcv_oob -- ç·æ¥ãã¼ã¿ã®åä¿¡ãæ¡å¼µæ©è½ã
+ *  tcp_rcv_oob -- 緊急データの受信【拡張機能】
  *
- *    æ³¨æ: éä¿¡å´ãè¤æ°ãªã¯ãããã®ãã¼ã¿ãéä¿¡ãã¦ãã
- *          ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ã®ã¿åä¿¡ããã
+ *    注意: 送信側が複数オクテットのデータを送信しても、
+ *          緊急ポインタが指す 1 オクテットのデータのみ受信する。
  */
 
@@ -1449,41 +1416,39 @@
 	uint8_t		*urg;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VALID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
-	/* åä¿¡ã§ããããfsm_state ãè¦ãã*/
+	/* 受信できるか、通信端点の状態を見る。*/
+	/* 受信できるか、fsm_state を見る。*/
 	if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state))
 		return E_OBJ;
 
 	/*
-	 *  ç·æ¥ãã¼ã¿å
-¥ãã®ã»ã°ã¡ã³ãã® TCP ãããã
-	 *  è¨­å®ããã¦ããªããã°ãç·æ¥ãã¼ã¿ãåä¿¡ãã¦ããªãã
+	 *  緊急データ入りのセグメントの TCP ヘッダが
+	 *  設定されていなければ、緊急データを受信していない。
 	 */
 	if (cep->urg_tcph == NULL)
 		return E_OBJ;
 
-	/* len == 0 ãªããããã¡ãªã¼ãã¼ãã­ã¼ */
+	/* len == 0 ならバッファオーバーフロー */
 	if (len == 0)
 		return E_BOVR;
 
-	/* ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ãèª­ã¿åãã*/
+	/* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/
 	urg = (uint8_t*)cep->urg_tcph + TCP_DATA_OFF(cep->urg_tcph->doff) + cep->urg_tcph->urp + TCP_CFG_URG_OFFSET;
 	*(uint8_t*)data = *urg;
 
-	/* èª­ã¿åã£ããã¼ã¿ããå¾ãã® SDU ãåã«è©°ããã*/
+	/* 読み取ったデータから後ろの SDU を前に詰める。*/
 	memcpy(urg, urg + 1, cep->urg_tcph->sum - (cep->urg_tcph->urp + TCP_CFG_URG_OFFSET) - 1);
 
-	/* tcp_rcv_oob() ãå¼åºããããã¨ç¥ãããããã«ãNULL ãè¨­å®ããã*/
+	/* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/
 	cep->urg_tcph = NULL;
 
@@ -1500,5 +1465,5 @@
 
 /*
- *  tcp_del_rep -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ã
+ *  tcp_del_rep -- TCP 受付口の削除【拡張機能】
  */
 
@@ -1512,7 +1477,7 @@
 
 	/*
-	 *  TCP åä»å£ ID ããã§ãã¯ããã
-	 *  IPv6 ç¨ TCP åä»å£ã§ããã°ã
-	 *  IPv6 ç¨ã®ãTCP åä»å£ã®åé¤é¢æ°ï¼æ¬ä½ï¼ããå¼åºãã
+	 *  TCP 受付口 ID をチェックする。
+	 *  IPv6 用 TCP 受付口であれば、
+	 *  IPv6 用の「TCP 受付口の削除関数（本体）」を呼出す。
 	 */
 	//NET_DEBUG_TCP3("tcp_del_rep1[r=%d,n=%d,x=%d]\n",
@@ -1524,7 +1489,7 @@
 
 	/*
-	 *  TCP åä»å£ ID ããã§ãã¯ããã
-	 *  IPv4 ç¨ TCP åä»å£ã§ããã°ã
-	 *  IPv4 ç¨ã®ãTCP åä»å£ã®åé¤é¢æ°ï¼æ¬ä½ï¼ããå¼åºãã
+	 *  TCP 受付口 ID をチェックする。
+	 *  IPv4 用 TCP 受付口であれば、
+	 *  IPv4 用の「TCP 受付口の削除関数（本体）」を呼出す。
 	 */
 	else if (VALID_TCP4_REPID(repid))
@@ -1541,5 +1506,5 @@
 {
 
-	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	/* TCP 受付口 ID をチェックする。*/
 	if (VALID_TCP6_REPID(repid))
 		return tcp6_del_rep_body(repid);
@@ -1557,5 +1522,5 @@
 {
 
-	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	/* TCP 受付口 ID をチェックする。*/
 	if (VALID_TCP4_REPID(repid))
 		return tcp4_del_rep_body(repid);
@@ -1570,7 +1535,7 @@
 
 /*
- *  tcp_set_opt -- TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *  tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】
  *
- *  æ³¨æ: è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -1582,12 +1547,12 @@
 	T_TCP_CEP	*cep;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VALID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep))
 		return E_NOEXS;
@@ -1599,7 +1564,7 @@
 
 /*
- *  tcp_get_opt -- TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *  tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】
  *
- *  æ³¨æ: è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -1611,12 +1576,12 @@
 	T_TCP_CEP	*cep;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VALID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep))
 		return E_NOEXS;
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_var.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  TCP ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  TCP ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -104,5 +92,5 @@
 
 /*
- *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.1 との互換性のための定義
  */
 
@@ -117,5 +105,5 @@
 
 /*
- *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.3 との互換性のための定義
  */
 
@@ -127,5 +115,5 @@
 
 /*
- *  ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©
+ *  コールバック関数の定義
  */
 
@@ -133,5 +121,5 @@
 
 /*
- * TCP ã§ä½¿ç¨ããå¤æ°ã®åã®å®ç¾©
+ * TCP で使用する変数の型の定義
  */
 
@@ -142,43 +130,43 @@
 
 /*
- *  TCP ã¿ã¤ãå¤æ°
- */
-
-#define NUM_TCP_TIMERS		4	/* TCP ã®ã¿ã¤ãæ°	*/
-
-/*
- *  TCP åä»å£
- */
-
-/* IPv6 ç¨ TCP åä»å£ */
+ *  TCP タイマ変数
+ */
+
+#define NUM_TCP_TIMERS		4	/* TCP のタイマ数	*/
+
+/*
+ *  TCP 受付口
+ */
+
+/* IPv6 用 TCP 受付口 */
 
 typedef struct t_tcp6_rep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP åä»å£ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 受付口と同じメンバ
 	 */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス	*/
 
 #ifdef TCP_CFG_EXTENTIONS
-	uint16_t	flags;		/* åä»å£ãã©ã°		*/
-	ID		semid_lock;	/* åä»å£ã­ãã¯		*/
+	uint16_t	flags;		/* 受付口フラグ		*/
+	ID		semid_lock;	/* 受付口ロック		*/
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
 	} T_TCP6_REP;
 
-/* IPv4 ç¨ TCP åä»å£ */
+/* IPv4 用 TCP 受付口 */
 
 typedef struct t_tcp4_rep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP åä»å£ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 受付口と同じメンバ
 	 */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス	*/
 
 #ifdef TCP_CFG_EXTENTIONS
-	uint16_t	flags;		/* åä»å£ãã©ã°		*/
-	ID		semid_lock;	/* åä»å£ã­ãã¯		*/
+	uint16_t	flags;		/* 受付口フラグ		*/
+	ID		semid_lock;	/* 受付口ロック		*/
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
@@ -202,12 +190,12 @@
 
 /*
- *  åä»å£ãã©ã°
- */
-
-#define TCP_REP_FLG_DYNAMIC	UINT_C(0x0400)	/* åççæã»åé¤å¯è½åä»å£ã	*/
-#define TCP_REP_FLG_VALID	UINT_C(0x0800)	/* çææ¸ã¿ã§æå¹ãªåä»å£ã	*/
-
-/*
- *  TCP éä¿¡ç«¯ç¹
+ *  受付口フラグ
+ */
+
+#define TCP_REP_FLG_DYNAMIC	UINT_C(0x0400)	/* 動的生成・削除可能受付口。	*/
+#define TCP_REP_FLG_VALID	UINT_C(0x0800)	/* 生成済みで有効な受付口。	*/
+
+/*
+ *  TCP 通信端点
  */
 
@@ -223,87 +211,82 @@
 
 	/*
-	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 通信端点と同じメンバ
 	 */
-	ATR		cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
-	void		*sbuf;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	void		*rbuf;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	t_tcp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+	ATR		cepatr;		/* 通信端点属性			*/
+	void		*sbuf;		/* 送信用ウィンドバッファ	*/
+	int_t		sbufsz;		/* 送信用ウィンドバッファサイズ	*/
+	void		*rbuf;		/* 受信用ウィンドバッファ	*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	t_tcp_callback	callback;	/* コールバック関数		*/
 
 	/*
-	 * TINET ç¬èªã®ã¡ã³ã
+	 * TINET 独自のメンバ
 	 */
-	uint32_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
-	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
-	ID		est_flgid;	/* ã³ãã¯ã·ã§ã³ç¶æ
-ã¤ãã³ããã©ã°	*/
-	ID		snd_flgid;	/* éä¿¡ã¤ãã³ããã©ã°		*/
-	ID		rcv_flgid;	/* åä¿¡ã¤ãã³ããã©ã°		*/
-	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	uint8_t		*sbuf_rptr;	/* éä¿¡ç¨èª­ã¿åºããã¤ã³ã¿	*/
-	uint8_t		*sbuf_wptr;	/* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿	*/
-	uint8_t		*rbuf_rptr;	/* åä¿¡ç¨èª­ã¿åºããã¤ã³ã¿	*/
-	uint8_t		*rbuf_wptr;	/* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿	*/
-	T_TCP_SEQ	snd_ssthresh;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)	*/
-					/* ã®ãããå¤			*/
-	T_TCP_TIME	rxtcur;		/* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã	*/
-	T_TCP_TIME	srtt;		/* å¹³æ»åããã RTT		*/
-	T_TCP_TIME	rttvar;		/* å¹³æ»åãããåæ£		*/
-	T_TCP_WND	snd_cwnd;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº		*/
+	uint32_t	flags;		/* 通信端点フラグ		*/
+	ID		semid_lock;	/* 通信端点ロック		*/
+	ID		est_flgid;	/* コネクション状態イベントフラグ	*/
+	ID		snd_flgid;	/* 送信イベントフラグ		*/
+	ID		rcv_flgid;	/* 受信イベントフラグ		*/
+	ID		snd_tskid;	/* 送信タスク識別子		*/
+	ID		rcv_tskid;	/* 受信タスク識別子		*/
+	uint8_t		*sbuf_rptr;	/* 送信用読み出しポインタ	*/
+	uint8_t		*sbuf_wptr;	/* 送信用書き込みポインタ	*/
+	uint8_t		*rbuf_rptr;	/* 受信用読み出しポインタ	*/
+	uint8_t		*rbuf_wptr;	/* 受信用書き込みポインタ	*/
+	T_TCP_SEQ	snd_ssthresh;	/* 輻輳ウィンドサイズ(snd_cwnd)	*/
+					/* のしきい値			*/
+	T_TCP_TIME	rxtcur;		/* 現在の再送タイムアウト	*/
+	T_TCP_TIME	srtt;		/* 平滑化された RTT		*/
+	T_TCP_TIME	rttvar;		/* 平滑化された分散		*/
+	T_TCP_WND	snd_cwnd;	/* 輻輳ウィンドサイズ		*/
 
 	/*
-	 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº	
+	 *  相手の最大受信セグメントサイズ	
 	 *
-	 *    ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxseg) ã¨ã
-	 *    ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxopd) ãå¥ã«
-	 *    ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã®
-	 *    ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã
-	 *    æ¬å®è£
-ã§ã¯ãæå¤§ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯
-	 *    å®è£
-ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã
+	 *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
+	 *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
+	 *    なっている。これは、現在のインターネットでは、オプション付きの
+	 *    セグメントのほうが多いからと説明されているためである。
+	 *    本実装では、最大セグメントサイズオプション以外のオプションは
+	 *    実装しないので、t_maxseg の使用する。
 	 */
 	T_TCP_SEG	maxseg;
 
-	int16_t		snd_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	int16_t		rcv_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
+	int16_t		snd_tfn;	/* 送信動作中の API 機能コード	*/
+	int16_t		rcv_tfn;	/* 受信動作中の API 機能コード	*/
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	T_IPEP 		*p_dstaddr;	/* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
-	T_IPEP	 	*p_myaddr;	/* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
+	T_IPEP 		*p_dstaddr;	/* 相手のアドレスへのポインタ	*/
+	T_IPEP	 	*p_myaddr;	/* 自分のアドレスへのポインタ	*/
 
 #if defined(_IP6_CFG) && defined(_IP4_CFG)
-	T_IPV4EP	*p_dstaddr4;	/* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
-	T_IPV4EP 	*p_myaddr4;	/* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
+	T_IPV4EP	*p_dstaddr4;	/* 相手のアドレスへのポインタ	*/
+	T_IPV4EP 	*p_myaddr4;	/* 自分のアドレスへのポインタ	*/
 #endif
 	
-	int16_t		snd_nblk_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	int16_t		rcv_nblk_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		**snd_p_buf;	/* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
-	void		**rcv_p_buf;	/* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
+	int16_t		snd_nblk_tfn;	/* 送信動作中の API 機能コード	*/
+	int16_t		rcv_nblk_tfn;	/* 受信動作中の API 機能コード	*/
+	void		*snd_data;	/* 送信データ領域の先頭アドレス	*/
+	int_t		snd_len;	/* 送信データ領域の長さ		*/
+	void		*rcv_data;	/* 受信データ領域の先頭アドレス	*/
+	int_t		rcv_len;	/* 受信データ領域の長さ		*/
+	void		**snd_p_buf;	/* 送信バッファへのポインタ	*/
+	void		**rcv_p_buf;	/* 受信バッファへのポインタ	*/
 
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
 #ifdef TCP_CFG_SWBUF_CSAVE
-	T_NET_BUF	*swbufq;	/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+	T_NET_BUF	*swbufq;	/* 送信ウィンドバッファキュー	*/
 #endif
 
 	/*
-	 *  ããä»¥éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ã­ã¯ãªã¢ã¼ãããã
+	 *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
 	 */
 
-	T_TCP_TIME	timer[NUM_TCP_TIMERS];	/* TCP ã®ã¿ã¤ã		*/
-	T_IPEP		dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
-	T_IPEP		myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	T_NET_BUF	*reassq;	/* åä¿¡åæ§æã­ã¥ã¼		*/
+	T_TCP_TIME	timer[NUM_TCP_TIMERS];	/* TCP のタイマ		*/
+	T_IPEP		dstaddr;	/* 相手のアドレス		*/
+	T_IPEP		myaddr;		/* 自分のアドレス		*/
+	T_NET_BUF	*reassq;	/* 受信再構成キュー		*/
 
 #if defined(_IP6_CFG)
@@ -311,9 +294,9 @@
 #if defined(_IP4_CFG)
 
-	T_TCP4_REP	*rep4;		/* IPv4 ç¨åä»å£		*/
+	T_TCP4_REP	*rep4;		/* IPv4 用受付口		*/
 
 #endif	/* of #if defined(_IP4_CFG) */
 
-	T_TCP6_REP	*rep;		/* IPv6 ç¨åä»å£		*/
+	T_TCP6_REP	*rep;		/* IPv6 用受付口		*/
 
 #else	/* of #if defined(_IP6_CFG) */
@@ -321,5 +304,5 @@
 #if defined(_IP4_CFG)
 
-	T_TCP4_REP	*rep;		/* IPv4 ç¨åä»å£		*/
+	T_TCP4_REP	*rep;		/* IPv4 用受付口		*/
 
 #endif	/* of #if defined(_IP4_CFG) */
@@ -329,49 +312,43 @@
 
 #ifdef TCP_CFG_RWBUF_CSAVE
-	T_NET_BUF	*rwbufq;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+	T_NET_BUF	*rwbufq;	/* 受信ウィンドバッファキュー	*/
 #endif
 
 #ifdef TCP_CFG_EXTENTIONS
-	T_TCP_HDR	*urg_tcph;	/* ç·æ¥ãã¼ã¿å
-¥ãã®ã»ã°ã¡ã³ãã® TCP ããã	*/
-	T_TCP_SEQ	snd_up;		/* éä¿¡ããç·æ¥ãã¤ã³ã¿		*/
-	T_TCP_SEQ	rcv_up;		/* åä¿¡ããç·æ¥ãã¤ã³ã¿		*/
+	T_TCP_HDR	*urg_tcph;	/* 緊急データ入りのセグメントの TCP ヘッダ	*/
+	T_TCP_SEQ	snd_up;		/* 送信した緊急ポインタ		*/
+	T_TCP_SEQ	rcv_up;		/* 受信した緊急ポインタ		*/
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
-					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
-	T_TCP_SEQ	snd_max;	/* éä¿¡ããæå¤§ SEQ		*/
-	T_TCP_SEQ	snd_nxt;	/* æ¬¡ã«éä¿¡ãã SEQ		*/
-	T_TCP_SEQ	snd_old_nxt;	/* å
-ã® snd_nxt			*/
-	T_TCP_SEQ	snd_wl1;	/* ååã¦ã£ã³ããæ´æ°ãã SEQ	*/
-	T_TCP_SEQ	snd_wl2;	/* ååã¦ã£ã³ããæ´æ°ãã ACK	*/
-	T_TCP_SEQ	iss;		/* èªåã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	irs;		/* ç¸æã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ	*/
-	T_TCP_SEQ	rcv_adv;	/* åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ	*/
-	T_TCP_SEQ	rcv_wnd;	/* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_SEQ	rtseq;		/* æéè¨æ¸¬ãå§ãã SEQ		*/
-	T_TCP_SEQ	last_ack_sent;	/* æå¾ã«éä¿¡ãã ACK		*/
-	T_TCP_TIME	idle;		/* ã¢ã¤ãã«æé			*/
-	ER		error;		/* éåæã«çºçããã¨ã©ã¼	*/
-	ER		net_error;	/* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ
-	*/
-	T_TCP_WND	snd_wnd;	/* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_WND	max_sndwnd;	/* ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_TIME	rtt;		/* å¾å¾©æé				*/
-	uint16_t	swbuf_count;	/* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint16_t	rcv_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
-	uint16_t	get_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
-	uint8_t		rxtshift;	/* åéä¿¡åæ°ã® log(2)		*/
-	uint8_t		fsm_state;	/* FSM ç¶æ
-			*/
-	uint8_t		dupacks;	/* åé ACK æ°			*/
+	T_TCP_SEQ	snd_una;	/* 未確認の最小送信 SEQ つまり	*/
+					/* 確認された最大送信 SEQ	*/
+	T_TCP_SEQ	snd_max;	/* 送信した最大 SEQ		*/
+	T_TCP_SEQ	snd_nxt;	/* 次に送信する SEQ		*/
+	T_TCP_SEQ	snd_old_nxt;	/* 元の snd_nxt			*/
+	T_TCP_SEQ	snd_wl1;	/* 前回ウィンドを更新した SEQ	*/
+	T_TCP_SEQ	snd_wl2;	/* 前回ウィンドを更新した ACK	*/
+	T_TCP_SEQ	iss;		/* 自分の SEQ の初期値		*/
+	T_TCP_SEQ	irs;		/* 相手の SEQ の初期値		*/
+	T_TCP_SEQ	rcv_nxt;	/* 受信を期待している最小の SEQ	*/
+	T_TCP_SEQ	rcv_adv;	/* 受信を期待している最大の SEQ	*/
+	T_TCP_SEQ	rcv_wnd;	/* 受信可能なウィンドサイズ	*/
+	T_TCP_SEQ	rtseq;		/* 時間計測を始めた SEQ		*/
+	T_TCP_SEQ	last_ack_sent;	/* 最後に送信した ACK		*/
+	T_TCP_TIME	idle;		/* アイドル時間			*/
+	ER		error;		/* 非同期に発生したエラー	*/
+	ER		net_error;	/* ネットワークのエラー状態	*/
+	T_TCP_WND	snd_wnd;	/* 相手の受信可能ウィンドサイズ	*/
+	T_TCP_WND	max_sndwnd;	/* 今までの最大送信ウィンドサイズ	*/
+	T_TCP_TIME	rtt;		/* 往復時間				*/
+	uint16_t	swbuf_count;	/* 送信ウィンドバッファの使用中サイズ	*/
+	uint16_t	rwbuf_count;	/* 受信ウィンドバッファの使用中サイズ	*/
+	uint16_t	rcv_buf_len;	/* tcp_rcv_buf の割当て長	*/
+	uint16_t	get_buf_len;	/* tcp_rcv_buf の割当て長	*/
+	uint8_t		rxtshift;	/* 再送信回数の log(2)		*/
+	uint8_t		fsm_state;	/* FSM 状態			*/
+	uint8_t		dupacks;	/* 再送 ACK 数			*/
 
 #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
-	uint16_t	rwbufq_entries;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ã¨ã³ããªæ°	*/
+	uint16_t	rwbufq_entries;	/* 受信ウィンドバッファキューのエントリ数	*/
 #endif
 
@@ -382,20 +359,18 @@
 
 /*
- * Time Wait ç¨ TCP éä¿¡ç«¯ç¹
+ * Time Wait 用 TCP 通信端点
  */
 
 typedef struct t_tcp_twcep {
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	T_TCP_TIME	timer_2msl;	/* 2MSL ã¿ã¤ã			*/
-	T_IPEP		dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
-	T_IPEP		myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
-					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
-	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ	*/
-	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint8_t		fsm_state;	/* FSM ç¶æ
-			*/
-	uint8_t	flags;			/* éä¿¡ç«¯ç¹ãã©ã°		*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	T_TCP_TIME	timer_2msl;	/* 2MSL タイマ			*/
+	T_IPEP		dstaddr;	/* 相手のアドレス		*/
+	T_IPEP		myaddr;		/* 自分のアドレス		*/
+	T_TCP_SEQ	snd_una;	/* 未確認の最小送信 SEQ つまり	*/
+					/* 確認された最大送信 SEQ	*/
+	T_TCP_SEQ	rcv_nxt;	/* 受信を期待している最小の SEQ	*/
+	uint16_t	rwbuf_count;	/* 受信ウィンドバッファの使用中サイズ	*/
+	uint8_t		fsm_state;	/* FSM 状態			*/
+	uint8_t	flags;			/* 通信端点フラグ		*/
 
 	} T_TCP_TWCEP;
@@ -404,89 +379,80 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®ç¶æ
-ãã©ã°
- */
-
-#define TCP_CEP_FLG_IPV4		ULONG_C(0x00000001)	/* IPv4 ç¨ã			*/
-#define TCP_CEP_FLG_ACK_NOW		ULONG_C(0x00000100)	/* ç´ã¡ã«ç¸æã« ACK ãéãã	*/
-#define TCP_CEP_FLG_DEL_ACK		ULONG_C(0x00000200)	/* ACK ãé
-å»¶ããã		*/
-#define TCP_CEP_FLG_SENT_FIN		ULONG_C(0x00000400)	/* FIN ãéã£ã¦ããã		*/
-#define TCP_CEP_FLG_NEED_SYN		ULONG_C(0x00000800)	/* SYN ãéä¿¡ããã		*/
-#define TCP_CEP_FLG_NEED_FIN		ULONG_C(0x00001000)	/* FIN ãéä¿¡ããã		*/
-#define TCP_CEP_FLG_FORCE		ULONG_C(0x00002000)	/* å¼·å¶éä¿¡ã			*/
-#define TCP_CEP_FLG_NO_PUSH		ULONG_C(0x00004000)	/* push ããªãã		*/
-#define TCP_CEP_FLG_NO_DELAY		ULONG_C(0x00008000)	/* é
-å»¶ããªãã			*/
-#define TCP_CEP_FLG_FORCE_CLEAR		ULONG_C(0x00010000)	/* å¼·å¶éä¿¡ããå¾ãã©ã°ãã¯ãªã¢ã¼ããã*/
-#define TCP_CEP_FLG_POST_OUTPUT		ULONG_C(0x00020000)	/* éä¿¡ãéå§ããã		*/
-#define TCP_CEP_FLG_RESERVE_OUTPUT	ULONG_C(0x00040000)	/* éä¿¡ãäºç´ããã		*/
-#define TCP_CEP_FLG_DYNAMIC		ULONG_C(0x00100000)	/* åççæã»åé¤å¯è½éä¿¡ç«¯ç¹ã	*/
-#define TCP_CEP_FLG_VALID		ULONG_C(0x00200000)	/* çææ¸ã¿ã§æå¹ãªéä¿¡ç«¯ç¹ã	*/
-#define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT	ULONG_C(0x00400000)	/* éä¿¡ããå¾ã³ãã¯ã·ã§ã³ãéããã*/
-#define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT	ULONG_C(0x00800000)	/* éä¿¡ããå¾ãsnd_nxt ãå
-ã«æ»ãã*/
-
-/* éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ */
-#define TCP_CEP_FLG_WBCS_NBUF_REQ	ULONG_C(0x80000000)	/* ãããã¯ã¼ã¯ãããã¡å²å½ã¦è¦æ±*/
-#define TCP_CEP_FLG_WBCS_MASK		ULONG_C(0x70000000)	/* ãã¹ã¯			*/
-#define TCP_CEP_FLG_WBCS_FREE		ULONG_C(0x00000000)	/* éä¿¡ã¦ã£ã³ããããã¡æªä½¿ç¨	*/
-#define TCP_CEP_FLG_WBCS_WOPEN_PEND	ULONG_C(0x10000000)	/* ç¸æã®åä¿¡ã¦ã£ã³ãã®éãå¾
-ã¡	*/
-#define TCP_CEP_FLG_WBCS_NBUF_PEND	ULONG_C(0x20000000)	/* ãããã¯ã¼ã¯ãããã¡äºç´å¾
-ã¡	*/
-#define TCP_CEP_FLG_WBCS_NBUF_RSVD	ULONG_C(0x30000000)	/* ãããã¯ã¼ã¯ãããã¡äºç´æ¸ã¿	*/
-#define TCP_CEP_FLG_WBCS_NBUF_READY	ULONG_C(0x40000000)	/* ãããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿*/
-#define TCP_CEP_FLG_WBCS_SEND_READY	ULONG_C(0x50000000)	/* éä¿¡å¯è½			*/
-#define TCP_CEP_FLG_WBCS_SENT		ULONG_C(0x60000000)	/* éä¿¡æ¸ã¿ã§ãACKå¾
-ã¡		*/
-#define TCP_CEP_FLG_WBCS_ACKED		ULONG_C(0x70000000)	/* éä¿¡æ¸ã¿ã§ãACKå®äº		*/
-
-/* åæåããé¤å¤ãããã©ã°ã®å®ç¾© */
+ *  TCP 通信端点の状態フラグ
+ */
+
+#define TCP_CEP_FLG_IPV4		ULONG_C(0x00000001)	/* IPv4 用。			*/
+#define TCP_CEP_FLG_ACK_NOW		ULONG_C(0x00000100)	/* 直ちに相手に ACK を送る。	*/
+#define TCP_CEP_FLG_DEL_ACK		ULONG_C(0x00000200)	/* ACK を遅延する。		*/
+#define TCP_CEP_FLG_SENT_FIN		ULONG_C(0x00000400)	/* FIN を送ってある。		*/
+#define TCP_CEP_FLG_NEED_SYN		ULONG_C(0x00000800)	/* SYN を送信する。		*/
+#define TCP_CEP_FLG_NEED_FIN		ULONG_C(0x00001000)	/* FIN を送信する。		*/
+#define TCP_CEP_FLG_FORCE		ULONG_C(0x00002000)	/* 強制送信。			*/
+#define TCP_CEP_FLG_NO_PUSH		ULONG_C(0x00004000)	/* push しない。		*/
+#define TCP_CEP_FLG_NO_DELAY		ULONG_C(0x00008000)	/* 遅延しない。			*/
+#define TCP_CEP_FLG_FORCE_CLEAR		ULONG_C(0x00010000)	/* 強制送信した後フラグをクリアーする。*/
+#define TCP_CEP_FLG_POST_OUTPUT		ULONG_C(0x00020000)	/* 送信を開始する。		*/
+#define TCP_CEP_FLG_RESERVE_OUTPUT	ULONG_C(0x00040000)	/* 送信を予約する。		*/
+#define TCP_CEP_FLG_DYNAMIC		ULONG_C(0x00100000)	/* 動的生成・削除可能通信端点。	*/
+#define TCP_CEP_FLG_VALID		ULONG_C(0x00200000)	/* 生成済みで有効な通信端点。	*/
+#define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT	ULONG_C(0x00400000)	/* 送信した後コネクションを閉じる。*/
+#define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT	ULONG_C(0x00800000)	/* 送信した後、snd_nxt を元に戻す。*/
+
+/* 送受信ウィンドバッファの省コピー機能 */
+#define TCP_CEP_FLG_WBCS_NBUF_REQ	ULONG_C(0x80000000)	/* ネットワークバッファ割当て要求*/
+#define TCP_CEP_FLG_WBCS_MASK		ULONG_C(0x70000000)	/* マスク			*/
+#define TCP_CEP_FLG_WBCS_FREE		ULONG_C(0x00000000)	/* 送信ウィンドバッファ未使用	*/
+#define TCP_CEP_FLG_WBCS_WOPEN_PEND	ULONG_C(0x10000000)	/* 相手の受信ウィンドの開き待ち	*/
+#define TCP_CEP_FLG_WBCS_NBUF_PEND	ULONG_C(0x20000000)	/* ネットワークバッファ予約待ち	*/
+#define TCP_CEP_FLG_WBCS_NBUF_RSVD	ULONG_C(0x30000000)	/* ネットワークバッファ予約済み	*/
+#define TCP_CEP_FLG_WBCS_NBUF_READY	ULONG_C(0x40000000)	/* ネットワークバッファ割当て済み*/
+#define TCP_CEP_FLG_WBCS_SEND_READY	ULONG_C(0x50000000)	/* 送信可能			*/
+#define TCP_CEP_FLG_WBCS_SENT		ULONG_C(0x60000000)	/* 送信済みで、ACK待ち		*/
+#define TCP_CEP_FLG_WBCS_ACKED		ULONG_C(0x70000000)	/* 送信済みで、ACK完了		*/
+
+/* 初期化から除外するフラグの定義 */
 #define TCP_CEP_FLG_NOT_CLEAR		(TCP_CEP_FLG_WBCS_NBUF_REQ|TCP_CEP_FLG_WBCS_MASK|\
 					 TCP_CEP_FLG_DYNAMIC|TCP_CEP_FLG_VALID|TCP_CEP_FLG_IPV4)
 
 /*
- *  éä¿¡ç«¯ç¹ã¤ãã³ããã©ã°
- */
-
-#define TCP_CEP_EVT_ESTABLISHED		ULONG_C(0x00000001)	/* ã³ãã¯ã·ã§ã³ç¢ºç«		*/
-#define TCP_CEP_EVT_CLOSED		ULONG_C(0x00000002)	/* æªä½¿ç¨ç¶æ
-			*/
-#define TCP_CEP_EVT_SWBUF_READY		ULONG_C(0x00000004)	/* éä¿¡ã¦ã£ã³ããããã¡ç©ºã	*/
-#define TCP_CEP_EVT_RWBUF_READY		ULONG_C(0x00000008)	/* éä¿¡ã¦ã£ã³ããããã¡ãã¼ã¿ãã*/
-#define TCP_CEP_EVT_ALL			ULONG_C(0xffffffff)	/* å
-¨ã¤ãã³ã			*/
-
-/*
- *  è¿½å  API æ©è½ã»äºè±¡ã³ã¼ã
- */
-
-/* TCP é¢ä¿ */
+ *  通信端点イベントフラグ
+ */
+
+#define TCP_CEP_EVT_ESTABLISHED		ULONG_C(0x00000001)	/* コネクション確立		*/
+#define TCP_CEP_EVT_CLOSED		ULONG_C(0x00000002)	/* 未使用状態			*/
+#define TCP_CEP_EVT_SWBUF_READY		ULONG_C(0x00000004)	/* 送信ウィンドバッファ空き	*/
+#define TCP_CEP_EVT_RWBUF_READY		ULONG_C(0x00000008)	/* 送信ウィンドバッファデータあり*/
+#define TCP_CEP_EVT_ALL			ULONG_C(0xffffffff)	/* 全イベント			*/
+
+/*
+ *  追加 API 機能・事象コード
+ */
+
+/* TCP 関係 */
 
 #define TFN_TCP_UNDEF		(0)
 
 /*
- *  srtt:   å¹³æ»åããã RTT
- *  rttvar: å¹³æ»åãããåæ£
- *  rtt:    æ¸¬å®ãããå¾å¾©æé
+ *  srtt:   平滑化された RTT
+ *  rttvar: 平滑化された分散
+ *  rtt:    測定された往復時間
  *
- *  å¹³æ»åããã RTT (srtt) ã¨å¹³æ»åãããåæ£ (rttvar) ã
- *  æ´æ°åã§è¨ç®ããããã«ãå·¦ã·ãããã¦ã¹ã±ã¼ã«ããã
- *  srtt ã¯ 2 é²å°æ°ç¹ä»¥ä¸ 3 ãããã
- *  rttvar ã¯ 2 é²å°æ°ç¹ä»¥ä¸ 2 ããããä¿æããã
+ *  平滑化された RTT (srtt) と平滑化された分散 (rttvar) を
+ *  整数型で計算するために、左シフトしてスケールする。
+ *  srtt は 2 進小数点以下 3 ビット、
+ *  rttvar は 2 進小数点以下 2 ビットを保持する。
  */
 
 #define TCP_DELTA_SHIFT		2
-			/* å·®å = rtt/8 + srtt*7/8 ã®è¨ç®ã®ããã®ã·ããå¤	*/
+			/* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値	*/
 #define TCP_SRTT_SHIFT		(TCP_DELTA_SHIFT + 3)
-					/* srtt ã®ã·ããå¤ã3(+2)ããã	*/
+					/* srtt のシフト値、3(+2)ビット	*/
 #define TCP_RTTVAR_SHIFT	(TCP_DELTA_SHIFT + 2)
-					/* rttvar ã®ã·ããå¤ã2(+2)ããã	*/
+					/* rttvar のシフト値、2(+2)ビット	*/
 #define TCP_SRTT_SCALE		(1<<TCP_SRTT_SHIFT)
 #define TCP_RTTVAR_SCALE	(1<<TCP_RTTVAR_SHIFT)
 
 /*
- *  é«éåè»¢éãéå§ããåé ACK æ°ã®ãããå¤
+ *  高速再転送を開始する再送 ACK 数のしきい値
  */
 
@@ -494,26 +460,21 @@
 
 /*
- *  åä¿¡åæ§æã­ã¥ã¼ã§ã® TCP ããã
+ *  受信再構成キューでの TCP ヘッダ
  */
 
 typedef struct t_tcp_q_hdr {
-	uint16_t	sport;		/* éä¿¡å
-ãã¼ãçªå·			*/
-	uint16_t	dport;		/* å®å
-ãã¼ãçªå·			*/
-
-	uint32_t	seq;		/* SEQ çªå·				*/
-
-	T_NET_BUF 	*next;		/* æ¬¡ã®ã»ã°ã¡ã³ããå
-ã¯ ACK çªå·(ack)	*/
-
-	uint8_t		doff;		/* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã)	*/
-	uint8_t		flags;		/* ãã©ã°(ä¸ä½6ããã)			*/
-	uint16_t	soff;		/* SDU ãªãã»ãããå
-ã¯ã¦ã£ã³ããµã¤ãº(win)	*/
-
-	uint16_t	slen;		/* SDU é·ãå
-ã¯ãã§ãã¯ãµã (sum)	*/
-	uint16_t	urp;		/* ç·æ¥ãã¤ã³ã¿ï¼SDU é·è£æ­£ï¼		*/
+	uint16_t	sport;		/* 送信元ポート番号			*/
+	uint16_t	dport;		/* 宛先ポート番号			*/
+
+	uint32_t	seq;		/* SEQ 番号				*/
+
+	T_NET_BUF 	*next;		/* 次のセグメント、元は ACK 番号(ack)	*/
+
+	uint8_t		doff;		/* データオフセット(上位4ビット)	*/
+	uint8_t		flags;		/* フラグ(下位6ビット)			*/
+	uint16_t	soff;		/* SDU オフセット、元はウィンドサイズ(win)	*/
+
+	uint16_t	slen;		/* SDU 長、元はチェックサム(sum)	*/
+	uint16_t	urp;		/* 緊急ポインタ（SDU 長補正）		*/
 	} __attribute__((packed, aligned(2)))T_TCP_Q_HDR;
 
@@ -521,19 +482,19 @@
 
 /*
- *  ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©
- */
-
-#define	TMIN_TCP_REPID		1			/* TCP      åä»å£ ID ã®æå°å¤			*/
-#define	TMIN_TCP6_REPID		1			/* TCP/IPv6 åä»å£ ID ã®æå°å¤			*/
-#define	TMIN_TCP4_REPID		(TNUM_TCP6_REPID+1)	/* TCP/IPv4 åä»å£ ID ã®æå°å¤			*/
-
-#define	TMIN_TCP_CEPID		1			/* TCP      éä¿¡ç«¯ç¹ ID ã®æå°å¤			*/
-#define	TMIN_TCP6_CEPID		1			/* TCP/IPv6 éä¿¡ç«¯ç¹ ID ã®æå°å¤			*/
-#define	TMIN_TCP4_CEPID		(TNUM_TCP6_CEPID+1)	/* TCP/IPv4 éä¿¡ç«¯ç¹ ID ã®æå°å¤			*/
-
-#define	TMIN_TCP_TWCEPID	1			/* Time Wait ç¨ TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤	*/
-
-/*
- *  å¶å¾¡ã»ã°ã¡ã³ãï¼ãã¼ã¿ãªãï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  オブジェクト ID の最小値の定義
+ */
+
+#define	TMIN_TCP_REPID		1			/* TCP      受付口 ID の最小値			*/
+#define	TMIN_TCP6_REPID		1			/* TCP/IPv6 受付口 ID の最小値			*/
+#define	TMIN_TCP4_REPID		(TNUM_TCP6_REPID+1)	/* TCP/IPv4 受付口 ID の最小値			*/
+
+#define	TMIN_TCP_CEPID		1			/* TCP      通信端点 ID の最小値			*/
+#define	TMIN_TCP6_CEPID		1			/* TCP/IPv6 通信端点 ID の最小値			*/
+#define	TMIN_TCP4_CEPID		(TNUM_TCP6_CEPID+1)	/* TCP/IPv4 通信端点 ID の最小値			*/
+
+#define	TMIN_TCP_TWCEPID	1			/* Time Wait 用 TCP 通信端点 ID の最小値	*/
+
+/*
+ *  制御セグメント（データなし）サイズのネットワークバッファ
  */
 
@@ -541,7 +502,7 @@
 
 typedef struct t_net_buf_cseg {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -551,5 +512,5 @@
 #endif
 	uint8_t		buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF_CSEG;
 
@@ -557,6 +518,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -575,8 +535,8 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
- */
-
-/* TCP åä»å£ */
+ *  関数シミュレーションマクロ
+ */
+
+/* TCP 受付口 */
 
 #define VALID_TCP6_REPID(id)	(TMIN_TCP6_REPID<=(id)&&(id)<=tmax_tcp6_repid)
@@ -604,5 +564,5 @@
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #define VALID_TCP_CEPID(id)	(TMIN_TCP_CEPID<=(id)&&(id)<=tmax_tcp_cepid)
@@ -634,6 +594,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -642,5 +601,5 @@
 extern T_TCP_STATS tcp_stats;
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 extern T_TCP6_REP tcp6_rep[];
@@ -663,5 +622,5 @@
 #endif
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 extern T_TCP_CEP tcp_cep[];
@@ -679,5 +638,5 @@
 
 /*
- *  Inline é¢æ°
+ *  Inline 関数
  */
 
@@ -685,10 +644,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã
- *  ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
- */
-
-/*
- *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が
+ *  無効の場合は何もしないためのダミーの関数
+ */
+
+/*
+ *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
  */
 
@@ -703,10 +662,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿ã
- *  æå¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
- */
-
-/*
- *  tcp_read_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能のみが
+ *  有効の場合は何もしないためのダミーの関数
+ */
+
+/*
+ *  tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。
  */
 
@@ -721,10 +680,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã
- *  ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
- */
-
-/*
- *  tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が
+ *  無効の場合は何もしないためのダミーの関数
+ */
+
+/*
+ *  tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。
  */
 
@@ -735,5 +694,5 @@
 
 /*
- *  tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããã
+ *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
  */
 
@@ -744,5 +703,5 @@
 
 /*
- *  tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããã
+ *  tcp_push_res_nbuf -- ネットワークバッファを予約する。
  */
 
@@ -754,5 +713,5 @@
 
 /*
- *  tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãã
+ *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。
  */
 
@@ -766,5 +725,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã­
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ
  */
 
@@ -800,5 +759,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã­
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ
  */
 
@@ -851,5 +810,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -886,10 +845,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°
- */
-
-/*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã
- *  é¢æ°ã®é¸æã«ä½¿ç¨ããã
+ *  TCP 通信端点の受信ウィンドバッファ用関数
+ */
+
+/*
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、
+ *  関数の選択に使用する。
  */
 
@@ -901,5 +860,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能用関数
  */
 
@@ -911,5 +870,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数
  */
 
@@ -921,10 +880,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°
- */
-
-/*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã
- *  é¢æ°ã®é¸æã«ä½¿ç¨ããã
+ *  TCP 通信端点の送信ウィンドバッファ用関数
+ */
+
+/*
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、
+ *  関数の選択に使用する。
  */
 
@@ -943,5 +902,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能用関数
  */
 
@@ -957,5 +916,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数
  */
 
@@ -973,10 +932,10 @@
 
 /*
- *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ç¨é¢æ°
+ *  TCP ヘッダのトレース出力機能用関数
  */
 extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep);
 extern void tcp_input_trace  (T_NET_BUF *input,  T_TCP_CEP *cep);
 
-/* TCP åºåã¿ã¹ã¯ */
+/* TCP 出力タスク */
 
 extern void	tcp_output_task(intptr_t exinf);
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcpn_usrreq.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcpn_usrreq.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcpn_usrreq.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -85,5 +73,5 @@
 
 /*
- *  tcp_cre_rep -- TCP åä»å£ã®çæãæ¡å¼µæ©è½ã
+ *  tcp_cre_rep -- TCP 受付口の生成【拡張機能】
  */
 
@@ -96,9 +84,9 @@
 	ER		error;
 
-	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	/* TCP 受付口 ID をチェックする。*/
 	if (!VALID_TCP_REPID(repid))
 		return E_ID;
 
-	/* pk_crep ã NULL ãªãã¨ã©ã¼ */
+	/* pk_crep が NULL ならエラー */
 	if (pk_crep == NULL)
 		return E_PAR;
@@ -107,6 +95,6 @@
 
 	/*
-	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
-	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
+	 * IPv4 射影アドレスが指定されたらエラー
 	 */
 	if (in6_is_addr_ipv4mapped(&pk_crep->myaddr.ipaddr))
@@ -115,16 +103,16 @@
 #endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
 
-	/* TCP åä»å£ãå¾ãã*/
+	/* TCP 受付口を得る。*/
 	rep = GET_TCP_REP(repid);
 
-	/* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 受付口が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_REP(rep))
 		return E_ID;
 
-	/* åä»å£ãã­ãã¯ããã*/
+	/* 受付口をロックする。*/
 	syscall(wai_sem(rep->semid_lock));
 
 	/*
-	 * TCP åä»å£ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 * TCP 受付口をチェックする。生成済みであればエラー
 	 */
 	if (VALID_TCP_REP(rep))
@@ -132,16 +120,15 @@
 	else {
 
-		/* TCP åä»å£çææ
-å ±ãã³ãã¼ããã*/
-		rep->repatr = pk_crep->repatr;			/* åä»å£å±æ§		*/
-		rep->myaddr.ipaddr = pk_crep->myaddr.ipaddr;	/* èªåã®ã¢ãã¬ã¹	*/
-		rep->myaddr.portno = pk_crep->myaddr.portno;	/* èªåã®ã¢ãã¬ã¹	*/
-
-		/* TCP åä»å£ãçææ¸ã¿ã«ããã*/
+		/* TCP 受付口生成情報をコピーする。*/
+		rep->repatr = pk_crep->repatr;			/* 受付口属性		*/
+		rep->myaddr.ipaddr = pk_crep->myaddr.ipaddr;	/* 自分のアドレス	*/
+		rep->myaddr.portno = pk_crep->myaddr.portno;	/* 自分のアドレス	*/
+
+		/* TCP 受付口を生成済みにする。*/
 		rep->flags |= TCP_REP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 受付口のロックを解除する。*/
 	syscall(sig_sem(rep->semid_lock));
 
@@ -154,5 +141,5 @@
 
 /*
- *  tcp_find_cep_rep -- TCP åä»å£ããªã³ã¯ãã¦ãã TCP éä¿¡ç«¯ç¹ãå¾ãã
+ *  tcp_find_cep_rep -- TCP 受付口をリンクしている TCP 通信端点を得る。
  */
 
@@ -176,5 +163,5 @@
 
 /*
- *  tcp_del_rep_body -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ãã®æ¬ä½
+ *  tcp_del_rep_body -- TCP 受付口の削除【拡張機能】の本体
  */
 
@@ -186,17 +173,17 @@
 	ER		error = E_OK;
 
-	/* TCP åä»å£ ID ã®ãã§ãã¯ã¯çµäºãã¦ããã*/
-
-	/* TCP åä»å£ãå¾ãã*/
+	/* TCP 受付口 ID のチェックは終了している。*/
+
+	/* TCP 受付口を得る。*/
 	rep = GET_TCP_REP(repid);
 
-	/* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 受付口が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_REP(rep))
 		return E_ID;
 
-	/* åä»å£ãã­ãã¯ããã*/
+	/* 受付口をロックする。*/
 	syscall(wai_sem(rep->semid_lock));
 
-	/* TCP åä»å£ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼ */
+	/* TCP 受付口をチェックする。未生成の場合はエラー */
 	if (!VALID_TCP_REP(rep))
 		error = E_NOEXS;
@@ -204,15 +191,15 @@
 		if ((cep = TCP_FIND_CEP_REP(rep)) != NULL) {
 			/*
-			 * ãã§ã«ååãªã¼ãã³ãã¦ããã¨ã
-			 *ï¼tcp_acp_cep ãå¼ã°ãã¦ããã¨ãï¼ã¯ã
-			 * tcp_acp_cep ãçµäºãããã
+			 * すでに受動オープンしているとき
+			 *（tcp_acp_cep が呼ばれているとき）は、
+			 * tcp_acp_cep を終了させる。
 			 */
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+			/* 通信端点をロックする。*/
 			syscall(wai_sem(cep->semid_lock));
 
 			/*
-			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 *  通信端点から受付口を解放し、
+			 *  イベントフラグをクローズに設定する。
 			 */
 			cep->rep = NULL;
@@ -254,5 +241,5 @@
 			cep->rcv_tfn   = TFN_TCP_UNDEF;
 
-			/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点のロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 
@@ -261,9 +248,9 @@
 			error = E_OK;
 
-		/* TCP åä»å£ãæªçæã«ããã*/
+		/* TCP 受付口を未生成にする。*/
 		rep->flags &= ~TCP_REP_FLG_VALID;
 		}
 
-	/* åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 受付口のロックを解除する。*/
 	syscall(sig_sem(rep->semid_lock));
 
@@ -280,6 +267,5 @@
 
 /*
- *  tcp_acp_cep -- æ¥ç¶è¦æ±å¾
-ã¡ (ååãªã¼ãã³)ãæ¨æºæ©è½ã
+ *  tcp_acp_cep -- 接続要求待ち (受動オープン)【標準機能】
  */
 
@@ -297,6 +283,6 @@
 
 	/*
-	 * API (tcp6_acp_cep ã¨ tcp_acp_cep) ã¨ã
-	 * TCPéä¿¡ç«¯ç¹ã®ãã­ãã³ã«ãçç¾ãã¦ããã°ã¨ã©ã¼
+	 * API (tcp6_acp_cep と tcp_acp_cep) と、
+	 * TCP通信端点のプロトコルが矛盾していればエラー
 	 */
 
@@ -317,5 +303,5 @@
 #endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
 
-	/* TCP åä»å£ããã§ãã¯ããã*/
+	/* TCP 受付口をチェックする。*/
 	if (!VALID_TCP_REPID(repid))
 		return E_ID;
@@ -323,5 +309,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* p_dstaddr ã NULL ãªãã¨ã©ã¼ */
+	/* p_dstaddr が NULL ならエラー */
 	if (p_dstaddr == NULL)
 		return E_PAR;
@@ -329,5 +315,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* p_dstaddr ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_dstaddr が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_dstaddr == NULL || tmout == TMO_NBLK)
 		return E_PAR;
@@ -338,6 +324,6 @@
 
 	/*
-	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
-	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
+	 * IPv4 射影アドレスが指定されたらエラー
 	 */
 	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
@@ -347,12 +333,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_ACP_CEP)) != E_OK)
 		return error;
 
-	/* CEP ã® FSM ãã¯ã­ã¼ãºç¶æ
-ã§ãªããã°ã¨ã©ã¼ã*/
+	/* CEP の FSM がクローズ状態でなければエラー。*/
 	if (cep->fsm_state != TCP_FSM_CLOSED) {
 		error = E_OBJ;
@@ -361,8 +346,8 @@
 	syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
 
-	/* TCP éä¿¡ç«¯ç¹ãåæåããã*/
+	/* TCP 通信端点を初期化する。*/
 	tcp_init_cep(cep);
 
-	/* TCP åä»å£ãå¾ãã*/
+	/* TCP 受付口を得る。*/
 
 	rep = GET_TCP_REP(repid);
@@ -370,8 +355,8 @@
 #ifdef TCP_CFG_EXTENTIONS
 
-	/* TCP åä»å£ãã­ãã¯ããã*/
+	/* TCP 受付口をロックする。*/
 	syscall(wai_sem(rep->semid_lock));
 
-	/* TCP åä»å£ããã§ãã¯ããã*/
+	/* TCP 受付口をチェックする。*/
 	if (!VALID_TCP_REP(rep)) {
 		syscall(sig_sem(rep->semid_lock));
@@ -382,5 +367,5 @@
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	/* TCP éä¿¡ç«¯ç¹ã«TCPåä»å£ãè¨é²ããã*/
+	/* TCP 通信端点にTCP受付口を記録する。*/
 
 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
@@ -404,10 +389,10 @@
 #ifdef TCP_CFG_EXTENTIONS
 
-	/* TCP åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	/* TCP 受付口のロックを解除する。*/
 	syscall(sig_sem(rep->semid_lock));
 
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	/* TCP åä»å£ã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+	/* TCP 受付口のアドレスをコピーする。*/
 
 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4)
@@ -428,17 +413,17 @@
 #if API_PROTO == API_PROTO_IPV4
 
-	/* TCP éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ãè¨­å®ããã*/
+	/* TCP 通信端点のネットワーク層プロトコルを設定する。*/
 	cep->flags |= TCP_CEP_FLG_IPV4;
 
 #endif	/* of #if API_PROTO == API_PROTO_IPV4 */
 
-	/* éä¿¡ç«¯ç¹ãè¨­å®ããã*/
+	/* 通信端点を設定する。*/
 	cep->fsm_state = TCP_FSM_LISTEN;
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	/* タイムアウトをチェックする。*/
 	if (tmout == TMO_NBLK) {
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 
 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
@@ -470,7 +455,6 @@
 
 		/*
-		 *  FSM ã ESTABLISHED ã«ãªãã¾ã§å¾
-ã¤ã
-		 *  FSM ã CLOSED ã«ãªã£ãå ´åã¯ãã¨ã©ã¼ãçºçãããã¨ãæå³ãã¦ããã
+		 *  FSM が ESTABLISHED になるまで待つ。
+		 *  FSM が CLOSED になった場合は、エラーが発生したことを意味している。
 		 */
 		error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
@@ -486,5 +470,5 @@
 
 		if (error == E_OK) {
-			/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+			/* 相手のアドレスをコピーする。*/
 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4)
 			p_dstaddr->ipaddr = ntohl(cep->dstaddr.ipaddr.s6_addr32[3]);
@@ -496,6 +480,6 @@
 		else {
 			/*
-			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 *  通信端点から受付口を解放し、
+			 *  イベントフラグをクローズに設定する。
 			 */
 			cep->rep = NULL;
@@ -526,5 +510,5 @@
 
 /*
- *  tcp_con_cep -- æ¥ç¶è¦æ± (è½åãªã¼ãã³)ãæ¨æºæ©è½ã
+ *  tcp_con_cep -- 接続要求 (能動オープン)【標準機能】
  */
 
@@ -541,6 +525,6 @@
 
 	/*
-	 * API (tcp6_acp_cep ã¨ tcp_acp_cep) ã¨ã
-	 * TCPéä¿¡ç«¯ç¹ã®ãã­ãã³ã«ãçç¾ãã¦ããã°ã¨ã©ã¼
+	 * API (tcp6_acp_cep と tcp_acp_cep) と、
+	 * TCP通信端点のプロトコルが矛盾していればエラー
 	 */
 
@@ -562,6 +546,5 @@
 
 	/*
-	 *  ãã¦å
-ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ãªãã¨ã©ã¼
+	 *  あて先がマルチキャストアドレスならエラー
 	 */
 
@@ -581,6 +564,6 @@
 
 	/*
-	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
-	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
+	 * IPv4 射影アドレスが指定されたらエラー
 	 */
 	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
@@ -592,5 +575,5 @@
 
 	/*
-	 *  p_dstaddr ã¾ãã¯ p_myaddr ã NULL ãªãã¨ã©ã¼
+	 *  p_dstaddr または p_myaddr が NULL ならエラー
 	 */
 	if (p_myaddr == NULL || p_dstaddr == NULL)
@@ -600,6 +583,6 @@
 
 	/*
-	 *  p_dstaddr ã¾ãã¯ p_myaddr ã NULL ã
-	 *  tmout ã TMO_NBLK ãªãã¨ã©ã¼
+	 *  p_dstaddr または p_myaddr が NULL 、
+	 *  tmout が TMO_NBLK ならエラー
 	 */
 	if (p_myaddr == NULL || p_dstaddr == NULL || tmout == TMO_NBLK)
@@ -609,12 +592,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CON_CEP)) != E_OK)
 		return error;
 
-	/* CEP ã® FSM ãã¯ã­ã¼ãºç¶æ
-ã§ãªããã°ã¨ã©ã¼ã*/
+	/* CEP の FSM がクローズ状態でなければエラー。*/
 	if (cep->fsm_state != TCP_FSM_CLOSED) {
 		error = E_OBJ;
@@ -623,15 +605,15 @@
 	syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
 
-	/* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	/* シーケンス番号を初期化する。*/
 	if (tcp_iss == 0)
 		tcp_init_iss();
 
-	/* éä¿¡ç«¯ç¹ãåæåããã*/
+	/* 通信端点を初期化する。*/
 	tcp_init_cep(cep);
 
 	/*
-	 *  IP ã¢ãã¬ã¹ãè¨­å®ããã
-	 *  p_myaddr ã NADR (-1) ã§ã¯ãªããèª IP ã¢ãã¬ã¹ã ANY ã§ãªããã°ã
-	 *  æå®ããã IP ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+	 *  IP アドレスを設定する。
+	 *  p_myaddr が NADR (-1) ではなく、自 IP アドレスが ANY でなければ、
+	 *  指定された IP アドレスを割り当てる。
 	 */
 
@@ -663,10 +645,10 @@
 #if API_PROTO == API_PROTO_IPV4
 
-	/* TCP éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ãè¨­å®ããã*/
+	/* TCP 通信端点のネットワーク層プロトコルを設定する。*/
 	cep->flags |= TCP_CEP_FLG_IPV4;
 
 #endif	/* of #if API_PROTO == API_PROTO_IPV4 */
 
-	/* éä¿¡ç«¯ç¹ãè¨­å®ããã*/
+	/* 通信端点を設定する。*/
 	//NET_DEBUG_TCP5("tcp_con_cep3[c=%d,d=%lI.%d,s=%lI.%d]\n",
 	cep->fsm_state = TCP_FSM_SYN_SENT;
@@ -678,7 +660,7 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	/* タイムアウトをチェックする。*/
 	if (tmout == TMO_NBLK) {
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 
 #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
@@ -709,5 +691,5 @@
 		cep->snd_nblk_tfn = TFN_TCP_CON_CEP;
 
-		/* ã³ãã¯ã·ã§ã³ã®éè¨­ããã¹ãããã*/
+		/* コネクションの開設をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -719,6 +701,6 @@
 
 		/*
-		 *  p_myaddr ã NADR (-1) ãã
-		 *  èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+		 *  p_myaddr が NADR (-1) か、
+		 *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
 		 */
 		if (p_myaddr == NADR || p_myaddr->portno == TCP_PORTANY)
@@ -727,13 +709,12 @@
 			goto err_ret;
 
-		/* ã³ãã¯ã·ã§ã³ã®éè¨­ããã¹ãããã*/
+		/* コネクションの開設をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
 
 		/*
-		 *  ã¤ãã³ãã ESTABLISHED ã«ãªãã¾ã§å¾
-ã¤ã
-		 *  ã¤ãã³ãã CLOSED ã«ãªã£ãå ´åã¯ãä½ããã®ã¨ã©ã¼ãçºçãããã
-		 *  æ¥ç¶è¦æ±ãæå¦ããããã¨ãæå³ãã¦ããã
+		 *  イベントが ESTABLISHED になるまで待つ。
+		 *  イベントが CLOSED になった場合は、何らかのエラーが発生したか、
+		 *  接続要求が拒否されたことを意味している。
 		 */
 		error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
@@ -750,6 +731,6 @@
 		if (error != E_OK) {
 			/*
-			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 *  通信端点から受付口を解放し、
+			 *  イベントフラグをクローズに設定する。
 			 */
 			cep->rep = NULL;
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp.cfg	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  UDP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  UDP で使用するカーネルオブジェクト
  */
 
@@ -51,5 +39,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯ã¨ã»ããã©
+ *  ノンブロッキングコールを行う場合に組み込むタスクとセマフォ
  */
 
@@ -65,5 +53,5 @@
 	});
 
-/* ã»ããã© */
+/* セマフォ */
 
 CRE_SEM(SEM_UDP_POST_OUTPUT,	{ TA_TPRI, 0, 1 });
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,16 +72,13 @@
 
 /*
- *  UDP ããããRFC768 åç
-§
+ *  UDP ヘッダ、RFC768 参照
  */
 
 typedef struct t_udp_hdr {
-	uint16_t	sport;		/* éä¿¡å
-ãã¼ãçªå·	*/
-	uint16_t	dport;		/* å®å
-ãã¼ãçªå·	*/
+	uint16_t	sport;		/* 送信元ポート番号	*/
+	uint16_t	dport;		/* 宛先ポート番号	*/
 
-	uint16_t	ulen;		/* ãã¼ã¿ã°ã©ã é·	*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	uint16_t	ulen;		/* データグラム長	*/
+	uint16_t	sum;		/* チェックサム		*/
 	} __attribute__((packed, aligned(2)))T_UDP_HDR;
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_input.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -78,6 +66,5 @@
 
 /*
- *  udp_reply_no_port -- éä¿¡å
-ã«ãã¼ããå®ç¾©ããã¦ããªããã¨ãéç¥ããã
+ *  udp_reply_no_port -- 送信元にポートが定義されていないことを通知する。
  */
 
@@ -91,10 +78,10 @@
 	NET_COUNT_MIB(udp_stats.udpNoPorts, 1);
 
-	/* ã­ã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/
+	/* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
 	if (ntohl(GET_IP4_HDR(input)->dst) == IF_GET_IFNET()->in4_ifaddr.addr) {
 		syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
 
 		icmp_error(ICMP4_UNREACH_PORT, input);
-		/* icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ä¸ã¸æããã*/
+		/* icmp_error では、ネットワークバッファ input を返却しないので下へ抜ける。*/
 	
 		}
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp4_subr.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -86,12 +74,10 @@
 #ifdef ETHER_CFG_MULTICAST
 /*
- *  udp4_is_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *  udp4_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
  *
- *    DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãä»¥ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *    DHCP_CFG が定義されているときは、以下のデータグラムを受信する。
  *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
- *      ã»ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©
+ *      ・あて先アドレスがブロードキャスト
+ *      ・ローカルアドレスが未定義
  */
 
@@ -116,12 +102,10 @@
 #else
 /*
- *  udp4_is_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *  udp4_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
  *
- *    DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãä»¥ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *    DHCP_CFG が定義されているときは、以下のデータグラムを受信する。
  *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
- *      ã»ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©
+ *      ・あて先アドレスがブロードキャスト
+ *      ・ローカルアドレスが未定義
  */
 
@@ -146,11 +130,9 @@
 
 /*
- *  udp_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
  *
- *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *    以下の場合もデータグラムを受信する。
  *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ *      ・あて先アドレスがブロードキャスト
  */
 
@@ -176,11 +158,9 @@
 
 /*
- *  udp4_is_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *  udp4_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
  *
- *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *    以下の場合もデータグラムを受信する。
  *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ *      ・あて先アドレスがブロードキャスト
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_input.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -125,6 +113,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -134,5 +121,5 @@
 
 /*
- *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ *  IPv6 と IPv4 で引数が異なる関数のコンパイル
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_output.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_output.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_output.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -124,5 +112,5 @@
 
 /*
- *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ *  IPv6 と IPv4 で引数が異なる関数のコンパイル
  */
 
@@ -166,6 +154,6 @@
 
 /*
- *  UDP åºåã¿ã¹ã¯
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ãä½¿ç¨ããã
+ *  UDP 出力タスク
+ *  ノンブロッキングコールを組み込んだとき使用する。
  */
 
@@ -182,5 +170,5 @@
 #if defined(_IP6_CFG) && !defined(SUPPORT_TCP)
 
-	/* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãå®è¡ããã*/
+	/* IPv6 のステートレス・アドレス自動設定を実行する。*/
 	in6_if_up(IF_GET_IFNET());
 
@@ -189,6 +177,5 @@
 	while (true) {
 
-		/* åºåããã¹ããããã¾ã§å¾
-ã¤ã*/
+		/* 出力がポストされるまで待つ。*/
 		syscall(wai_sem(SEM_UDP_POST_OUTPUT));
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_subr.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -126,15 +114,15 @@
 
 /*
- *  å±æå¤æ°
+ *  局所変数
  */
 
 #if (defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0) || (defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0)
 
-static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO;	/* èªåå²ãå½ã¦çªå·	*/
+static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO;	/* 自動割り当て番号	*/
 
 #endif	/* of #if (defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0) || (defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0) */
 
 /*
- *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ *  IPv6 と IPv4 で引数が異なる関数のコンパイル
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -81,5 +69,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµè¾¼ã¾ãªãå ´åã«ãªã³ã¯ãããé¢æ°ã®å®ç¾©
+ *  ノンブロッキングコールを組込まない場合にリンクされる関数の定義
  */
 
@@ -128,7 +116,6 @@
 
 /*
- *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
-¨ã¦ã®æ©è½ã
- *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ *  TINET をライブラリ化しない場合は、全ての機能を
+ *  オブジェクトファイルに出力するため、マクロを有効にする。
  */
 
@@ -149,5 +136,5 @@
 
 /*
- *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ *  IPv6 と IPv4 で引数が異なる関数のコンパイル
  */
 
@@ -252,5 +239,5 @@
 
 /*
- *  udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ *  udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
  */
 
@@ -260,15 +247,15 @@
 udp_can_cep (ID cepid, FN fncd)
 {
-	/* IPv6 ç¨ã® UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* IPv6 用の UDP 通信端点 ID をチェックする。*/
 	if (VALID_UDP6_CEPID(cepid)) {
 
-		/* UDP éä¿¡ç«¯ç¹ãå¾ã¦ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+		/* UDP 通信端点を得てメイン関数を呼び出す。*/
 		return udp6_cancel_cep(GET_UDP6_CEP(cepid), fncd);
 		}
 
-	/* IPv4 ç¨ã® UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* IPv4 用の UDP 通信端点 ID をチェックする。*/
 	else if (VALID_UDP4_CEPID(cepid)) {
 
-		/* UDP éä¿¡ç«¯ç¹ãå¾ã¦ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+		/* UDP 通信端点を得てメイン関数を呼び出す。*/
 		return udp4_cancel_cep(GET_UDP4_CEP(cepid), fncd);
 		}
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -125,7 +113,6 @@
 
 /*
- *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
-¨ã¦ã®æ©è½ã
- *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ *  TINET をライブラリ化しない場合は、全ての機能を
+ *  オブジェクトファイルに出力するため、マクロを有効にする。
  */
 
@@ -142,5 +129,5 @@
 
 /*
- *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ *  IPv6 と IPv4 で引数が異なる関数のコンパイル
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udp_var.h	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  UDP ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  UDP ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -95,5 +83,5 @@
 
 /*
- *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.1 との互換性のための定義
  */
 
@@ -108,5 +96,5 @@
 
 /*
- *  ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©
+ *  コールバック関数の定義
  */
 
@@ -124,44 +112,41 @@
 
 /*
- *  UDP éä¿¡ç«¯ç¹
- */
-
-/* IPv6 ç¨ UDP éä¿¡ç«¯ç¹ */
+ *  UDP 通信端点
+ */
+
+/* IPv6 用 UDP 通信端点 */
 
 typedef struct t_udp6_cep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 通信端点と同じメンバ
 	 */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	t_udp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス		*/
+	t_udp_callback	callback;	/* コールバック関数		*/
 
 	/*
-	 * TINET ç¬èªã®ã¡ã³ã
+	 * TINET 独自のメンバ
 	 */
-	uint16_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
-	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
-	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcvqid;		/* éã³ã¼ã«ããã¯ç¨åä¿¡ã­ã¥ã¼è­å¥å­*/
-	T_NET_BUF	*cb_netbuf;	/* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/
+	uint16_t	flags;		/* 通信端点フラグ		*/
+	ID		semid_lock;	/* 通信端点ロック		*/
+	ID		snd_tskid;	/* 送信タスク識別子		*/
+	ID		rcv_tskid;	/* 受信タスク識別子		*/
+	ID		rcvqid;		/* 非コールバック用受信キュー識別子*/
+	T_NET_BUF	*cb_netbuf;	/* コールバック用受信ネットワークバッファ*/
 
 #ifdef UDP_CFG_NON_BLOCKING
 
-	T_IPV6EP 	*snd_p_dstaddr;	/* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	T_IPV6EP 	*rcv_p_dstaddr;	/* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
+	T_IPV6EP 	*snd_p_dstaddr;	/* 送信相手のアドレスへのポインタ*/
+	T_IPV6EP 	*rcv_p_dstaddr;	/* 受信相手のアドレスへのポインタ*/
+	void		*snd_data;	/* 送信データ領域の先頭アドレス	*/
+	int_t		snd_len;	/* 送信データ領域の長さ		*/
+	void		*rcv_data;	/* 受信データ領域の先頭アドレス	*/
+	int_t		rcv_len;	/* 受信データ領域の長さ		*/
 
 #endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
 
 #ifdef UDP_CFG_EXTENTIONS
-	ER		error;		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼	*/
+	ER		error;		/* 待ち中に発生したエラー	*/
 #endif
 
@@ -174,41 +159,38 @@
 	} T_UDP6_CEP;
 
-/* IPv4 ç¨ UDP éä¿¡ç«¯ç¹ */
+/* IPv4 用 UDP 通信端点 */
 
 typedef struct t_udp4_cep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 通信端点と同じメンバ
 	 */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	t_udp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス		*/
+	t_udp_callback	callback;	/* コールバック関数		*/
 
 	/*
-	 * TINET ç¬èªã®ã¡ã³ã
+	 * TINET 独自のメンバ
 	 */
-	uint16_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
-	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
-	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcvqid;		/* éã³ã¼ã«ããã¯ç¨åä¿¡ã­ã¥ã¼è­å¥å­*/
-	T_NET_BUF	*cb_netbuf;	/* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/
+	uint16_t	flags;		/* 通信端点フラグ		*/
+	ID		semid_lock;	/* 通信端点ロック		*/
+	ID		snd_tskid;	/* 送信タスク識別子		*/
+	ID		rcv_tskid;	/* 受信タスク識別子		*/
+	ID		rcvqid;		/* 非コールバック用受信キュー識別子*/
+	T_NET_BUF	*cb_netbuf;	/* コールバック用受信ネットワークバッファ*/
 
 #ifdef UDP_CFG_NON_BLOCKING
 
-	T_IPV4EP 	*snd_p_dstaddr;	/* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	T_IPV4EP	*rcv_p_dstaddr;	/* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
+	T_IPV4EP 	*snd_p_dstaddr;	/* 送信相手のアドレスへのポインタ*/
+	T_IPV4EP	*rcv_p_dstaddr;	/* 受信相手のアドレスへのポインタ*/
+	void		*snd_data;	/* 送信データ領域の先頭アドレス	*/
+	int_t		snd_len;	/* 送信データ領域の長さ		*/
+	void		*rcv_data;	/* 受信データ領域の先頭アドレス	*/
+	int_t		rcv_len;	/* 受信データ領域の長さ		*/
 
 #endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
 
 #ifdef UDP_CFG_EXTENTIONS
-	ER		error;		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼	*/
+	ER		error;		/* 待ち中に発生したエラー	*/
 #endif
 
@@ -236,22 +218,21 @@
 
 /*
- *  UDP éä¿¡ç«¯ç¹ãã©ã°
- */
-
-#define UDP_CEP_FLG_POST_OUTPUT	UINT_C(0x0200)	/* éä¿¡ãéå§ããã		*/
-#define UDP_CEP_FLG_DYNAMIC	UINT_C(0x0400)	/* åççæã»åé¤å¯è½éä¿¡ç«¯ç¹ã	*/
-#define UDP_CEP_FLG_VALID	UINT_C(0x0800)	/* çææ¸ã¿ã§æå¹ãªéä¿¡ç«¯ç¹ã	*/
-
-/*
- *  ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©
- */
-
-#define	TMIN_UDP_CEPID		1			/* UDP      éä¿¡ç«¯ç¹ ID ã®æå°å¤ */
-#define	TMIN_UDP6_CEPID		1			/* UDP/IPv6 éä¿¡ç«¯ç¹ ID ã®æå°å¤ */
-#define	TMIN_UDP4_CEPID		(TNUM_UDP6_CEPID+1)	/* UDP/IPv4 éä¿¡ç«¯ç¹ ID ã®æå°å¤ */
-
-/*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  UDP 通信端点フラグ
+ */
+
+#define UDP_CEP_FLG_POST_OUTPUT	UINT_C(0x0200)	/* 送信を開始する。		*/
+#define UDP_CEP_FLG_DYNAMIC	UINT_C(0x0400)	/* 動的生成・削除可能通信端点。	*/
+#define UDP_CEP_FLG_VALID	UINT_C(0x0800)	/* 生成済みで有効な通信端点。	*/
+
+/*
+ *  オブジェクト ID の最小値の定義
+ */
+
+#define	TMIN_UDP_CEPID		1			/* UDP      通信端点 ID の最小値 */
+#define	TMIN_UDP6_CEPID		1			/* UDP/IPv6 通信端点 ID の最小値 */
+#define	TMIN_UDP4_CEPID		(TNUM_UDP6_CEPID+1)	/* UDP/IPv4 通信端点 ID の最小値 */
+
+/*
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -264,5 +245,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -286,11 +267,10 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
 extern T_UDP_STATS udp_stats;
 
-/* UDP éä¿¡ç«¯ç¹ */
+/* UDP 通信端点 */
 
 extern T_UDP6_CEP udp6_cep[];
@@ -314,5 +294,5 @@
 
 /*
- *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.3 との互換性のための定義
  */
 
@@ -321,5 +301,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -350,5 +330,5 @@
 extern void udp4_input_select (T_UDP4_CEP *cep, T_NET_BUF *input, uint_t off);
 
-/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯ */
+/* ノンブロッキングコールを行う場合に組み込むタスク */
 
 extern void	udp_output_task(intptr_t exinf);
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_input.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -80,6 +68,5 @@
 
 /*
- *  udp_input_select -- UDP ã®å
-¥åå¦çã®é¸æ
+ *  udp_input_select -- UDP の入力処理の選択
  */
 
@@ -93,5 +80,5 @@
 	para.len  = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE);
 
-	if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	if (cep->rcv_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 		if (psnd_dtq(cep->rcvqid, (intptr_t)input) != E_OK) {
 			NET_COUNT_UDP(net_count_udp.in_err_packets, 1);
@@ -103,11 +90,11 @@
 #ifdef UDP_CFG_NON_BLOCKING
 
-	else if (cep->rcv_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-
-		/* p_dstaddr ãè¨­å®ããã*/
+	else if (cep->rcv_p_dstaddr != NULL) {	/* ノンブロッキングコールでペンディング中 */
+
+		/* p_dstaddr を設定する。*/
 		cep->rcv_p_dstaddr->portno = ntohs(udph->sport);
 		IN_COPY_TO_HOST(&cep->rcv_p_dstaddr->ipaddr, input);
 
-		/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+		/* データをバッファに移す。*/
 		memcpy(cep->rcv_data, GET_UDP_SDU(input, off),
 		       (size_t)(para.len < cep->rcv_len ? para.len : cep->rcv_len));
@@ -130,5 +117,5 @@
 	else if (IS_PTR_DEFINED(cep->callback)) {
 
-		/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+		/* コールバック関数を呼び出す。*/
 		cep->cb_netbuf = input;
 
@@ -148,7 +135,6 @@
 #endif
 		/*
-		 *  ãããã¯ã¼ã¯ãããã¡ããã®ã¾ã¾ã§ããã°ãã³ã¼ã«ããã¯é¢æ°å
-ã§
-		 *  ãã¼ã¿ãèª­ã¿åºããªãã£ããã¨ã«ãªãã®ã§ãæ¨ã¦ãã
+		 *  ネットワークバッファがそのままであれば、コールバック関数内で
+		 *  データを読み出さなかったことになるので、捨てる。
 		 */
 		if (cep->cb_netbuf != NULL) {
@@ -169,6 +155,5 @@
 
 /*
- *  udp_input -- UDP ã®å
-¥åé¢æ°
+ *  udp_input -- UDP の入力関数
  */
 
@@ -191,5 +176,5 @@
 	NET_COUNT_MIB(udp_stats.udpInDatagrams, 1);
 
-	/* ãããé·ããã§ãã¯ããã*/
+	/* ヘッダ長をチェックする。*/
 	if (input->len < hlen + UDP_HDR_SIZE)
 		goto buf_rel;
@@ -197,11 +182,10 @@
 	udph = (T_UDP_HDR *)(input->buf + *offp);
 
-	/* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ãã */
+	/* データグラム長をチェックする */
 	ulen  = ntohs(udph->ulen);
 	if (ulen != input->len - hlen)
 		goto buf_rel;
 
-	/* å®å
-ãã¼ãã 0 ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ãããRFC768 */
+	/* 宛先ポートが 0 のデータグラムは破棄する。RFC768 */
 	if (udph->dport == 0)
 		goto buf_rel;
@@ -209,5 +193,5 @@
 #ifdef UDP_CFG_IN_CHECKSUM
 
-	/* ãã§ãã¯ãµã ããã§ãã¯ãã */
+	/* チェックサムをチェックする */
 	if (udph->sum && IN_CKSUM(input, IPPROTO_UDP, *offp, ulen) != 0)
 		goto buf_rel;
@@ -219,5 +203,5 @@
 #if TNUM_UDP4_CEPID > 0
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = udp4_find_cep(input, *offp);
 
@@ -233,5 +217,5 @@
 #else	/* of #if TNUM_UDP4_CEPID > 0 */
 
-	cep = 0;	/* warning åé¿ç¨ã®ããã¼ */
+	cep = 0;	/* warning 回避用のダミー */
 	if ((cep6 = udp6_find_cep(input, *offp)) != NULL)
 		udp6_input_select(cep6, input, *offp);
@@ -245,5 +229,5 @@
 #else	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) && API_PROTO == API_PROTO_IPV4 */
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = UDP_FIND_CEP(input, *offp);
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_output.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_output.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_output.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -78,6 +66,6 @@
 
 /*
- *  udp_output -- UDP ã®åºåé¢æ°
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ãä½¿ç¨ããã
+ *  udp_output -- UDP の出力関数
+ *  ノンブロッキングコールを組み込んだとき使用する。
  */
 
@@ -93,5 +81,5 @@
 #endif	/* of #ifdef UDP_CFG_OUT_CHECKSUM */
 
-	/* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/
+	/* IP データグラムを割り当てる。*/
 	if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + cep->snd_len), 0,
 	                             &cep->snd_p_dstaddr->ipaddr,
@@ -102,6 +90,5 @@
 		}
 
-	/* UDP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* UDP ヘッダに情報を設定する。*/
 	udph		= GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET(output));
 	udph->sport	= htons(cep->myaddr.portno);
@@ -110,5 +97,5 @@
 	udph->sum	= 0;
 
-	/* ãã¼ã¿ãã³ãã¼ããã*/
+	/* データをコピーする。*/
 	memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET(output)),
 	       cep->snd_data, (size_t)cep->snd_len);
@@ -119,6 +106,5 @@
 	               (uint_t)(UDP_HDR_SIZE + cep->snd_len));
 
-	/* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå
-¥ããã*/
+	/* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/
 	if (sum == 0)
 		sum = UINT_C(0xffff);
@@ -127,8 +113,8 @@
 #endif/* of #ifdef UDP_CFG_OUT_CHECKSUM */
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE(output) + cep->snd_len);
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	if ((error = IP_OUTPUT(output, TMO_UDP_OUTPUT)) != E_OK)
 		goto err_ret;
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_subr.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -78,5 +66,5 @@
 
 /*
- *  udp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨­å®ããã
+ *  udp_alloc_auto_port -- 自動割り当てポート番号を設定する。
  */
 
@@ -114,5 +102,5 @@
 
 /*
- *  udp_alloc_port -- æå®ããããã¼ãçªå·ãè¨­å®ããã
+ *  udp_alloc_port -- 指定されたポート番号を設定する。
  */
 
@@ -134,5 +122,5 @@
 
 /*
- *  udp_find_cep -- ãã¼ãçªå·ãã UDP éä¿¡ç«¯ç¹ãå¾ãã
+ *  udp_find_cep -- ポート番号から UDP 通信端点を得る。
  */
 
@@ -146,5 +134,5 @@
 	
 	/*
-	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããéä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 *  IP アドレスとポート番号が一致する通信端点を探索する。
 	 */
 	for (cep = &UDP_CEP[TMAX_UDP_CEPID]; cep -- != UDP_CEP; ) {
@@ -159,5 +147,5 @@
 
 /*
- *  udp_notify -- ICMP ã¨ã©ã¼ã®å¦ç
+ *  udp_notify -- ICMP エラーの処理
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,5 +71,5 @@
 
 /*
- *  udp_send_data -- ãã±ããéä¿¡ã®ä¸»è¦é¨
+ *  udp_send_data -- パケット送信の主要部
  */
 
@@ -101,9 +89,9 @@
 	NET_COUNT_UDP(net_count_udp.out_packets, 1);
 
-	/* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/
+	/* IP データグラム割り当ての時間を tmout から減ずる。*/
 	if (!(tmout == TMO_POL || tmout == TMO_FEVR))
 		syscall(get_tim(&before));
 
-	/* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/
+	/* IP データグラムを割り当てる。*/
 	if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + len), 0,
 	                             &p_dstaddr->ipaddr,
@@ -113,5 +101,5 @@
 		goto err_ret;
 
-	/* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/
+	/* IP データグラム割り当ての時間を tmout から減ずる。*/
 	if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
 		syscall(get_tim(&after));
@@ -124,6 +112,5 @@
 		}
 
-	/* UDP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* UDP ヘッダに情報を設定する。*/
 	udph		= GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET(output));
 	udph->sport	= htons(cep->myaddr.portno);
@@ -132,5 +119,5 @@
 	udph->sum	= 0;
 
-	/* ãã¼ã¿ãã³ãã¼ããã*/
+	/* データをコピーする。*/
 	memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET(output)), data, (size_t)len);
 
@@ -139,6 +126,5 @@
 	sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET(output), (uint_t)(UDP_HDR_SIZE + len));
 
-	/* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå
-¥ããã*/
+	/* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/
 	if (sum == 0)
 		sum = 0xffff;
@@ -147,8 +133,8 @@
 #endif	/* of #ifdef UDP_CFG_OUT_CHECKSUM */
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE(output) + len);
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	if ((error = IP_OUTPUT(output, tmout)) == E_OK) {
 		NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1);
@@ -166,7 +152,7 @@
 
 /*
- *  udp_cancel_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çãã­ã£ã³ã»ã«ããã
- *
- *    udp_can_cep ããå¼åºãããã¡ã¤ã³é¢æ°
+ *  udp_cancel_cep -- ペンディングしている処理をキャンセルする。
+ *
+ *    udp_can_cep から呼出されるメイン関数
  */
 
@@ -178,16 +164,16 @@
 	ER	error = E_OK, snd_err, rcv_err;
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
-	/* API æ©è½ã³ã¼ãããã§ãã¯ããã*/
+	/* API 機能コードをチェックする。*/
 	if (!VALID_TFN_UDP_CAN(fncd))
 		return E_PAR;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	if (fncd == TFN_UDP_ALL) {	/* TFN_UDP_ALL ã®å¦ç */
+	if (fncd == TFN_UDP_ALL) {	/* TFN_UDP_ALL の処理 */
 
 		snd_err = UDP_CAN_SND(cep, E_RLWAI);
@@ -195,6 +181,6 @@
 
 		/*
-		 *  snd_err ã¨ rcv_err ã®ã©ã¡ãã EV_NOPND
-		 *  ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+		 *  snd_err と rcv_err のどちらも EV_NOPND
+		 *  なら、ペンディングしていないのでエラー
 		 */
 		if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
@@ -212,9 +198,9 @@
 			}
 		}
-	else if (fncd == TFN_UDP_SND_DAT) {	/* éä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else if (fncd == TFN_UDP_SND_DAT) {	/* 送信処理のキャンセル */
 		if ((error = UDP_CAN_SND(cep, E_RLWAI)) == EV_NOPND)
 			error = E_OBJ;
 		}
-	else if (fncd == TFN_UDP_RCV_DAT) {	/* åä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else if (fncd == TFN_UDP_RCV_DAT) {	/* 受信処理のキャンセル */
 		if ((error = UDP_CAN_RCV(cep, E_RLWAI)) == EV_NOPND)
 			error = E_OBJ;
@@ -223,5 +209,5 @@
 		error = E_PAR;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点をロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -236,5 +222,5 @@
 
 /*
- *  udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ *  udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
  */
 
@@ -246,12 +232,12 @@
 	T_UDP_CEP	*cep;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	/* メイン関数を呼び出す。*/
 	return UDP_CANCEL_CEP(cep, fncd);
 	}
@@ -264,5 +250,5 @@
 
 /*
- *  udp_cre_cep -- UDP éä¿¡ç«¯ç¹ã®çæãæ¡å¼µæ©è½ã
+ *  udp_cre_cep -- UDP 通信端点の生成【拡張機能】
  */
 
@@ -275,9 +261,9 @@
 	ER		error;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* pk_ccep ã NULL ãªãã¨ã©ã¼ */
+	/* pk_ccep が NULL ならエラー */
 	if (pk_ccep == NULL)
 		return E_PAR;
@@ -286,6 +272,6 @@
 
 	/*
-	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
-	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
+	 * IPv4 射影アドレスが指定されたらエラー
 	 */
 	if (in6_is_addr_ipv4mapped(&pk_ccep->myaddr.ipaddr))
@@ -294,20 +280,20 @@
 #endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (VALID_UDP_CEP(cep))
 		return E_OBJ;
 
-	/* UDP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* UDP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_UDP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * UDP éä¿¡ç«¯ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 * UDP 通信端点をチェックする。生成済みであればエラー
 	 */
 	if (VALID_UDP_CEP(cep))
@@ -316,5 +302,5 @@
 
 		/*
-		 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+		 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
 		 */
 		if (pk_ccep->myaddr.portno == UDP_PORTANY)
@@ -324,16 +310,15 @@
 
 			if (error == E_OK) {
-				/* UDP éä¿¡ç«¯ç¹çææ
-å ±ãã³ãã¼ããã*/
-				cep->cepatr        = pk_ccep->cepatr;			/* éä¿¡ç«¯ç¹å±æ§		*/
-				cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;		/* èªåã®ã¢ãã¬ã¹	*/
-				cep->callback      = (void*)pk_ccep->callback;		/* ã³ã¼ã«ããã¯		*/
-
-				/* UDP éä¿¡ç«¯ç¹ãçææ¸ã¿ã«ããã*/
+				/* UDP 通信端点生成情報をコピーする。*/
+				cep->cepatr        = pk_ccep->cepatr;			/* 通信端点属性		*/
+				cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;		/* 自分のアドレス	*/
+				cep->callback      = (void*)pk_ccep->callback;		/* コールバック		*/
+
+				/* UDP 通信端点を生成済みにする。*/
 				cep->flags |= UDP_CEP_FLG_VALID;
 				}
 			}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -346,7 +331,7 @@
 
 /*
- *  udp_delete_cep -- UDP éä¿¡ç«¯ç¹ãåé¤ããã
- *
- *    udp_del_cep ããå¼åºãããã¡ã¤ã³é¢æ°
+ *  udp_delete_cep -- UDP 通信端点を削除する。
+ *
+ *    udp_del_cep から呼出されるメイン関数
  */
 
@@ -356,18 +341,18 @@
 	ER	error;
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
-	/* UDP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* UDP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_UDP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * UDP éä¿¡ç«¯ç¹ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼
-	 * ã»æªçæã
+	 * UDP 通信端点をチェックする。未生成の場合はエラー
+	 * ・未生成。
 	 */
 	if (!VALID_UDP_CEP(cep))
@@ -377,10 +362,10 @@
 		UDP_CAN_RCV(cep, E_DLT);
 
-		/* UDP éä¿¡ç«¯ç¹ãæªçæã«ããã*/
+		/* UDP 通信端点を未生成にする。*/
 		cep->flags &= ~UDP_CEP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -389,5 +374,5 @@
 
 /*
- *  udp_del_cep -- UDP éä¿¡ç«¯ç¹ã®åé¤ãæ¡å¼µæ©è½ã
+ *  udp_del_cep -- UDP 通信端点の削除【拡張機能】
  */
 
@@ -397,12 +382,12 @@
 	T_UDP_CEP	*cep;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	/* メイン関数を呼び出す。*/
 	return UDP_DELETE_CEP(cep);
 	}
@@ -413,7 +398,7 @@
 
 /*
- *  udp_set_option -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãè¨­å®ããã
- *
- *    udp_set_opt ããå¼åºãããã¡ã¤ã³é¢æ°
+ *  udp_set_option -- UDP 通信端点オプションを設定する。
+ *
+ *    udp_set_opt から呼出されるメイン関数
  */
 
@@ -421,5 +406,5 @@
 UDP_SET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen)
 {
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
@@ -463,7 +448,7 @@
 
 /*
- *  udp_set_opt -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
- *
- *  æ³¨æ: è¨­å®å¯è½ãª UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】
+ *
+ *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -473,12 +458,12 @@
 	T_UDP_CEP	*cep;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	/* メイン関数を呼び出す。*/
 	return UDP_SET_OPTION(cep, optname, optval, optlen);
 	}
@@ -489,7 +474,7 @@
 
 /*
- *  udp_get_option -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãç²å¾ããã
- *
- *    udp_get_opt ããå¼åºãããã¡ã¤ã³é¢æ°
+ *  udp_get_option -- UDP 通信端点オプションを獲得する。
+ *
+ *    udp_get_opt から呼出されるメイン関数
  */
 
@@ -497,5 +482,5 @@
 UDP_GET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen)
 {
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
@@ -529,7 +514,7 @@
 
 /*
- *  udp_get_opt -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®ç²å¾ãæ¡å¼µæ©è½ã
- *
- *  æ³¨æ: è¨­å®å¯è½ãª UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  udp_get_opt -- UDP 通信端点オプションの獲得【拡張機能】
+ *
+ *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -539,12 +524,12 @@
 	T_UDP_CEP	*cep;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	/* メイン関数を呼び出す。*/
 	return UDP_GET_OPTION(cep, optname, optval, optlen);
 	}
@@ -561,5 +546,5 @@
 
 /*
- *  udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_snd -- ペンディングしている送信のキャンセル
  */
 
@@ -567,11 +552,9 @@
 UDP_CAN_SND (T_UDP_CEP *cep, ER error)
 {
-	if (cep->snd_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	if (cep->snd_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -581,5 +564,5 @@
 		cep->snd_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -592,5 +575,5 @@
 
 /*
- *  udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_rcv -- ペンディングしている受信のキャンセル
  */
 
@@ -598,11 +581,9 @@
 UDP_CAN_RCV (T_UDP_CEP *cep, ER error)
 {
-	if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	if (cep->rcv_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -612,5 +593,5 @@
 		cep->rcv_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -623,5 +604,5 @@
 
 /*
- *  udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ *  udp_snd_dat -- パケットの送信【標準機能】
  */
 
@@ -632,9 +613,9 @@
 	ER		error;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_dstaddr == NULL || data == NULL || tmout == TMO_NBLK)
 		return E_PAR;
 
-	/* ãã¼ã¿é·ããã§ãã¯ããã*/
+	/* データ長をチェックする。*/
 	if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
 		return E_PAR;
@@ -643,6 +624,6 @@
 
 	/*
-	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
-	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
+	 * IPv4 射影アドレスが指定されたらエラー
 	 */
 	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
@@ -651,17 +632,17 @@
 #endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
 	/*
-	 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+	 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
 	 */
 	if (cep->myaddr.portno == UDP_PORTANY) {
@@ -670,39 +651,35 @@
 		}
 	
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	if (cep->snd_tskid != TA_NULL) {
 
-		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		/* 非ノンブロッキングコールでペンディング中 */
 		error = E_QOVR;
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		}
 	else {
-		/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+		/* 現在のタスク識別子を記録する。*/
 		get_tid(&(cep->snd_tskid));
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ããªã»ããããã*/
+		/* 待ち中に発生したエラー情報をリセットする。*/
 		cep->error = E_OK;
 
 #endif	/* of #ifdef UDP_CFG_EXTENTIONS */
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
-		/* ãã±ãããéä¿¡ããã*/
+		/* パケットを送信する。*/
 		error = UDP_SEND_DATA(cep, p_dstaddr, data, len, tmout);
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¿ãã*/
+		/* 待ち中に発生したエラー情報を返す。*/
 		if (error == E_RLWAI)
 			error = cep->error;
@@ -719,5 +696,5 @@
 
 /*
- *  udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ *  udp_rcv_dat -- パケットの受信【標準機能】
  */
 
@@ -731,57 +708,52 @@
 	uint_t		ulen, uhoff;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (p_dstaddr == NULL || data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	if (cep->rcv_tskid != TA_NULL) {
 
-		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		/* 非ノンブロッキングコールでペンディング中 */
 		error = E_QOVR;
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		}
 	else {
 
-		/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+		/* 現在のタスク識別子を記録する。*/
 		get_tid(&(cep->rcv_tskid));
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ããªã»ããããã*/
+		/* 待ち中に発生したエラー情報をリセットする。*/
 		cep->error = E_OK;
 
 #endif	/* of #ifdef UDP_CFG_EXTENTIONS */
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
-		/* å
-¥åãããã¾ã§å¾
-ã¤ã*/
+		/* 入力があるまで待つ。*/
 		if (cep->cb_netbuf != NULL) {
 
 			/*
-			 *  ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸­ãã
-			 *  udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã
-			 *  ãã§ã«å
-¥åæ¸ã¿ã§ããã
+			 *  ここにくる場合は、コールバック関数の中から
+			 *  udp_rcv_dat を呼び出していることになり、
+			 *  すでに入力済みである。
 			 */
 			input = cep->cb_netbuf;
@@ -792,7 +764,5 @@
 #ifdef UDP_CFG_EXTENTIONS
 
-			/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¿ãã*/
+			/* 待ち中に発生したエラー情報を返す。*/
 			if (error == E_RLWAI)
 				error = cep->error;
@@ -804,5 +774,5 @@
 			}
 
-		/* p_dstaddr ãè¨­å®ããã*/
+		/* p_dstaddr を設定する。*/
 		uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
 		udph = GET_UDP_HDR(input, uhoff);
@@ -810,5 +780,5 @@
 		IN_COPY_TO_HOST(&p_dstaddr->ipaddr, input);
 
-		/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+		/* データをバッファに移す。*/
 		ulen = ntohs(udph->ulen);
 		if (ulen - UDP_HDR_SIZE > len)
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c	(revision 389)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,5 +71,5 @@
 
 /*
- *  udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_snd -- ペンディングしている送信のキャンセル
  */
 
@@ -89,5 +77,5 @@
 UDP_CAN_SND (T_UDP_CEP *cep, ER error)
 {
-	if (cep->snd_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	if (cep->snd_p_dstaddr != NULL) {	/* ノンブロッキングコールでペンディング中 */
 		if (IS_PTR_DEFINED(cep->callback))
 
@@ -101,11 +89,9 @@
 		cep->snd_p_dstaddr = NULL;
 		}
-	else if (cep->snd_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	else if (cep->snd_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -115,5 +101,5 @@
 		cep->snd_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -126,5 +112,5 @@
 
 /*
- *  udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_rcv -- ペンディングしている受信のキャンセル
  */
 
@@ -132,5 +118,5 @@
 UDP_CAN_RCV (T_UDP_CEP *cep, ER error)
 {
-	if (cep->rcv_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	if (cep->rcv_p_dstaddr != NULL) {	/* ノンブロッキングコールでペンディング中 */
 		if (IS_PTR_DEFINED(cep->callback))
 
@@ -144,11 +130,9 @@
 		cep->rcv_p_dstaddr = NULL;
 		}
-	else if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	else if (cep->rcv_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -158,5 +142,5 @@
 		cep->rcv_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -169,5 +153,5 @@
 
 /*
- *  udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ *  udp_snd_dat -- パケットの送信【標準機能】
  */
 
@@ -178,9 +162,9 @@
 	ER		error;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL ならエラー */
 	if (p_dstaddr == NULL || data == NULL)
 		return E_PAR;
 
-	/* ãã¼ã¿é·ããã§ãã¯ããã*/
+	/* データ長をチェックする。*/
 	if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
 		return E_PAR;
@@ -189,6 +173,6 @@
 
 	/*
-	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
-	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
+	 * IPv4 射影アドレスが指定されたらエラー
 	 */
 	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
@@ -197,17 +181,17 @@
 #endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
 	/*
-	 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+	 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
 	 */
 	if (cep->myaddr.portno == UDP_PORTANY) {
@@ -217,25 +201,25 @@
 
 	/*
-	 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã
+	 * タイムアウトをチェックする。
 	 */
-	if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->snd_p_dstaddr != NULL) {
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else if (cep->snd_tskid != TA_NULL) {
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-			error = E_OBJ;
-
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 非ノンブロッキングコールでペンディング中 */
+			error = E_OBJ;
+
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
@@ -246,5 +230,5 @@
 			cep->snd_len	= len;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 
@@ -254,34 +238,34 @@
 			}
 		}
-	else {				/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else {				/* 非ノンブロッキングコール */
 	
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->snd_p_dstaddr != NULL) {
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-			error = E_OBJ;
-
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* ノンブロッキングコールでペンディング中 */
+			error = E_OBJ;
+
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else if (cep->snd_tskid != TA_NULL) {
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* 非ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else {
 
-			/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+			/* 現在のタスク識別子を記録する。*/
 			get_tid(&(cep->snd_tskid));
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
-			syscall(sig_sem(cep->semid_lock));
-
-			/* ãã±ãããéä¿¡ããã*/
+			/* 通信端点をロックを解除する。*/
+			syscall(sig_sem(cep->semid_lock));
+
+			/* パケットを送信する。*/
 			error = UDP_SEND_DATA(cep, p_dstaddr, data, len, tmout);
 			}
@@ -296,5 +280,5 @@
 
 /*
- *  udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ *  udp_rcv_dat -- パケットの受信【標準機能】
  */
 
@@ -308,36 +292,36 @@
 	uint_t		ulen, uhoff;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL か、len < 0 ならエラー */
 	if (p_dstaddr == NULL || data == NULL || len < 0)
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
 	/*
-	 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã
+	 * タイムアウトをチェックする。
 	 */
 
-	if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->rcv_p_dstaddr != NULL)
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
 		else if (cep->rcv_tskid != TA_NULL)
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* 非ノンブロッキングコールでペンディング中 */
 			error = E_OBJ;
 		else {
@@ -348,47 +332,44 @@
 			}
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		return error;
 		}
-	else {				/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	else {				/* 非ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->rcv_p_dstaddr != NULL) {
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-			error = E_OBJ;
-
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* ノンブロッキングコールでペンディング中 */
+			error = E_OBJ;
+
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else if (cep->rcv_tskid != TA_NULL) {
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* 非ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else {
 
-			/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+			/* 現在のタスク識別子を記録する。*/
 			get_tid(&(cep->rcv_tskid));
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
-			syscall(sig_sem(cep->semid_lock));
-
-			/* å
-¥åãããã¾ã§å¾
-ã¤ã*/
+			/* 通信端点をロックを解除する。*/
+			syscall(sig_sem(cep->semid_lock));
+
+			/* 入力があるまで待つ。*/
 			if (cep->cb_netbuf != NULL) {
 
 				/*
-				 *  ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸­ãã
-				 *  udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã
-				 *  ãã§ã«å
-¥åæ¸ã¿ã§ããã
+				 *  ここにくる場合は、コールバック関数の中から
+				 *  udp_rcv_dat を呼び出していることになり、
+				 *  すでに入力済みである。
 				 */
 				input = cep->cb_netbuf;
@@ -400,5 +381,5 @@
 				}
 
-			/* p_dstaddr ãè¨­å®ããã*/
+			/* p_dstaddr を設定する。*/
 			uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
 			udph = GET_UDP_HDR(input, uhoff);
@@ -406,5 +387,5 @@
 			IN_COPY_TO_HOST(&p_dstaddr->ipaddr, input);
 
-			/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+			/* データをバッファに移す。*/
 			ulen = ntohs(udph->ulen);
 			if (ulen - UDP_HDR_SIZE > len)
