Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah.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$
@@ -80,5 +68,5 @@
 
 /*
- *  RFC2402 èªè¨¼ããã
+ *  RFC2402 認証ヘッダ
  */
 
@@ -86,9 +74,8 @@
 	uint8_t		next;	/* Next Header				*/
 	uint8_t		len;	
-	/* 4 ãªã¯ãããåä½ã®é·ãããã ãããã¼ã¿é· + 1 ãå
-¥ãã	*/
+	/* 4 オクテット単位の長さ。ただし、データ長 + 1 が入る。	*/
 	uint16_t	reserved;
 	uint32_t	spi;	/* Security Parameter Index (SPI)	*/
-	uint32_t	seq;	/* ã·ã¼ã±ã³ã¹çªå·			*/
+	uint32_t	seq;	/* シーケンス番号			*/
 	} __attribute__((packed, aligned(2))) T_IP6_AH_HDR;
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah6.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah6.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah6.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$
@@ -80,5 +68,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ah_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$
@@ -116,9 +104,7 @@
 
 /*
- *  ah6_input -- èªè¨¼ãããã®å
-¥åé¢æ°
+ *  ah6_input -- 認証ヘッダの入力関数
  *
- *    æ¬å®è£
-ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã
+ *    本実装では、データグラムを破棄する。
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/dest6.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/dest6.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/dest6.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$
@@ -114,10 +102,7 @@
 
 /*
- *  dest6_input -- çµç¹ãªãã·ã§ã³ãããã®å
-¥åé¢æ°
+ *  dest6_input -- 終点オプションヘッダの入力関数
  *
- *    æ¬å®è£
-ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå
-¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã
+ *    本実装では、パディング以外のオプションを全て未知オプションとして処理する。
  */
 
@@ -131,5 +116,5 @@
 	uint8_t		*opt;
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	/* ネットワークバッファの残りの長さをチェックする。*/
 	if (input->len - off < sizeof(T_IP6_DEST_HDR))
 		goto buf_rel;
@@ -138,5 +123,5 @@
 	len    = (desth->len + 1) << 3;
 
-	/* çµç¹ãªãã·ã§ã³ãããã®é·ãããã§ãã¯ããã*/
+	/* 終点オプションヘッダの長さをチェックする。*/
 	if (input->len < off + len)
 		goto buf_rel;
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp.h	(revision 389)
@@ -6,39 +6,27 @@
  *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, 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$
@@ -81,14 +69,14 @@
 
 /*
- *  RFC2406 æå·åããã
+ *  RFC2406 暗号化ヘッダ
  */
 
 typedef struct t_esp_hdr {
 	int32_t	spi;	/* Security Parameter Index (SPI)	*/
-	int32_t	seq;	/* ã·ã¼ã±ã³ã¹çªå·			*/
+	int32_t	seq;	/* シーケンス番号			*/
 	} __attribute__((packed, aligned(2)))T_ESP_HDR;
 
 typedef struct t_esp_tail {
-	int8_t	padlen;	/* ããã£ã³ã°é·				*/	
+	int8_t	padlen;	/* パディング長				*/	
 	int8_t	next;	/* Next Header				*/
 	} __attribute__((packed, aligned(2)))T_ESP_TAIL;
@@ -125,5 +113,5 @@
 
 /*
- * é¢æ°
+ * 関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp6.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp6.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp6.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$
@@ -80,5 +68,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/esp_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$
@@ -118,9 +106,7 @@
 
 /*
- *  esp6_input -- æå·åãããã®å
-¥åé¢æ°
+ *  esp6_input -- 暗号化ヘッダの入力関数
  *
- *    æ¬å®è£
-ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã
+ *    本実装では、データグラムを破棄する。
  */
 
@@ -129,7 +115,6 @@
 {
 #if 0
-	*nextp = <T_ESP_TAIL ã® next ãã£ã¼ã«ãã®ä½ç½®ï¼IPv6 ãããã®å
-é ­ããã®ãªãã»ããï¼>;
-	*offp  = <æ¬¡ãããã®ä½ç½®ï¼input->buf ããã®ãªãã»ããï¼>;
+	*nextp = <T_ESP_TAIL の next フィールドの位置（IPv6 ヘッダの先頭からのオフセット）>;
+	*offp  = <次ヘッダの位置（input->buf からのオフセット）>;
 #endif
 	syscall(rel_net_buf(*inputp));
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/frag6.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/frag6.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/frag6.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$
@@ -121,6 +109,5 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-å
+ *  データグラム再構成キュー配列
  */
 
@@ -129,5 +116,5 @@
 
 /*
- *  ip6_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãç²å¾ããã
+ *  ip6_get_frag_queue -- データグラム再構成キューを獲得する。
  */
 
@@ -139,8 +126,7 @@
 
 /*
- *  frag6_free_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã
+ *  frag6_free_queue -- データグラム再構成キューを解放する。
  *
- *    æ³¨æ: ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-åãã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: データグラム再構成キュー配列をロックしてから呼び出すこと。
  */
 
@@ -162,5 +148,5 @@
 
 /*
- *  frag6_timer -- ãã¼ã¿ã°ã©ã åæ§æç®¡çã¿ã¤ã
+ *  frag6_timer -- データグラム再構成管理タイマ
  */
 
@@ -184,24 +170,20 @@
 
 					/*
-					 *  å
-é ­ã®æ­çã®ãªãã»ããã 0 ã®æã®ã¿
-					 *  ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã
+					 *  先頭の断片のオフセットが 0 の時のみ
+					 *  ICMPv6 エラーメッセージを送信する。
 					 */
 
-					/* å
-é ­ã®æ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ããå¤ãã*/
+					/* 先頭の断片をデータグラム再構成キューから外す。*/
 					ip6_frag_queue[ix] = qip6h->next_frag;
 
-					/* ãã¦å
-ã¢ãã¬ã¹ãå
-ã«æ»ãã*/
+					/* あて先アドレスを元に戻す。*/
 					GET_IP6_HDR(frag)->dst = ip6_frag_dest[ix];
 
-					/* ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+					/* ICMPv6 エラーメッセージを送信する。*/
 					icmp6_error(frag, ICMP6_TIME_EXCEEDED,
 					                  ICMP6_TIME_EXCEED_REASSEMBLY, 0);
 					}
 
-				/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã*/
+				/* データグラム再構成キューを解放する。*/
 				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_TMOUT], 1);
 				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_DROP], 1);
@@ -216,6 +198,5 @@
 
 /*
- *  frag6_input -- æ­çãããã®å
-¥åé¢æ°
+ *  frag6_input -- 断片ヘッダの入力関数
  */
 
@@ -241,14 +222,13 @@
 #endif	/* #ifdef IP6_CFG_FRAGMENT */
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	/* ネットワークバッファの残りの長さをチェックする。*/
 	if (input->len - off < sizeof(T_IP6_FRAG_HDR))
 		goto buf_rel;
 
 	/* 
-	 *  å·¨å¤§ãã¤ã­ã¼ããªãã·ã§ã³ã¨æ­çããããåæã«ä½¿ç¨ãããã¨ã¯
-	 *  ã§ããªãããã¤ã­ã¼ãé·ãã 0 ãªããå·¨å¤§ãã¤ã­ã¼ããªãã·ã§ã³ã
-	 *  æå®ããã¦ãããã¨ã«ãªãã®ã§ ICMP ã§ã¨ã©ã¼ãéä¿¡è
-ã«
-	 *  éç¥ããã
+	 *  巨大ペイロードオプションと断片ヘッダを同時に使用することは
+	 *  できない。ペイロード長がが 0 なら、巨大ペイロードオプションが
+	 *  指定されていることになるので ICMP でエラーを送信者に
+	 *  通知する。
 	 */
 	ip6h = GET_IP6_HDR(input);
@@ -262,7 +242,7 @@
 
 	/*
-	 *  ãªãã»ããã 0 ã§ãæçµãã©ã°ã¡ã³ãã§ããã°ã
-	 *  åå²ä¸è¦ã®ãã¼ã¿ã°ã©ã ãªã®ã§ã
-	 *  æ¬¡ããããæãå¤æ°ãèª¿æ´ãã¦çµäºããã
+	 *  オフセットが 0 で、最終フラグメントであれば、
+	 *  分割不要のデータグラムなので、
+	 *  次ヘッダを指す変数を調整して終了する。
 	 */
 	ip6fh = (T_IP6_FRAG_HDR *)(input->buf + off);
@@ -276,5 +256,5 @@
 
 	/*
-	 *  ãã¤ã­ã¼ãé·ããã§ãã¯ããã
+	 *  ペイロード長をチェックする。
 	 */
 	if ((ip6fh->off_flag & IP6F_MORE_FRAG) && 
@@ -291,6 +271,5 @@
 
 	/*
- 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-åãããå¯¾å¿ããã¨ã³ããªãæ¢ãã
+ 	 *  データグラム再構成キュー配列から、対応するエントリを探す。
  	 */
 	for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
@@ -310,5 +289,5 @@
 
 		/*
-	 	 *  æ­çã®æ­£å½æ§ããã§ãã¯ããã
+	 	 *  断片の正当性をチェックする。
 		 */
 		unfraglen = 0;
@@ -317,8 +296,6 @@
 
 			/*
-		 	 *  å
-¥åããæ­çãå
-é ­ã®æ­ç
-			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+		 	 *  入力した断片が先頭の断片
+			 *  分割できない部分の長さ unfraglen を計算する。
 			 */
 			unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
@@ -352,11 +329,10 @@
 
 		/*
-	 	 *  ip6fq == NULL ã§ããã°ãå¯¾å¿ããã¨ã³ããªã¯ç¡ãã®ã§ã
-	 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-åã«ãã¨ã³ããªãè¿½å ããã
+	 	 *  ip6fq == NULL であれば、対応するエントリは無いので、
+	 	 *  データグラム再構成キュー配列に、エントリを追加する。
 	 	 */
 		for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
 
-			/* ç©ºãã¨ã³ããªãæ¢ãã*/
+			/* 空きエントリを探す。*/
 			if (ip6_frag_queue[ix] == NULL) {
 				ip6fq = &ip6_frag_queue[ix];
@@ -366,6 +342,6 @@
 
 		/*
-		 *  ip6fq == NULL ã§ããã°ãç©ºãã¨ã³ããªãç¡ãã®ã§ã
-		 *  ã¿ã¤ã ã¢ã¦ãï¼hlimï¼ãç­ãã¨ã³ããªãéæ¾ããã
+		 *  ip6fq == NULL であれば、空きエントリが無いので、
+		 *  タイムアウト（hlim）が短いエントリを開放する。
 		 */
  		if (ip6fq == NULL) {
@@ -385,5 +361,5 @@
 
 		/*
-		 *  ã¨ã³ããªãè¨­å®ããã
+		 *  エントリを設定する。
 		 */
 		*ip6fq = input; 
@@ -398,5 +374,5 @@
 
 		/*
-	 	 *  æ­çã®æ­£å½æ§ããã§ãã¯ããã
+	 	 *  断片の正当性をチェックする。
 		 */
 		unfraglen = 0;
@@ -405,7 +381,6 @@
 
 			/*
-		 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®æåã®æ­çãå
-é ­ã®æ­ç
-			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+		 	 *  データグラム再構成キューの最初の断片が先頭の断片
+			 *  分割できない部分の長さ unfraglen を計算する。
 			 */
 			unfraglen = (GET_QIP6_HDR(*ip6fq)->foff - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
@@ -416,8 +391,6 @@
 
 			/*
-		 	 *  å
-¥åããæ­çãå
-é ­ã®æ­ç
-			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+		 	 *  入力した断片が先頭の断片
+			 *  分割できない部分の長さ unfraglen を計算する。
 			 */
 			unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
@@ -453,18 +426,15 @@
 
 			/*
-		 	 *  å
-¥åããæ­çãå
-é ­ã®æ­ç
-		 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®æå¾ã®æ­çãã
-		 	 *  ãã¼ã¿ã°ã©ã ã®æå¤§é·ãè¶
-ãã¦ããªãããã§ãã¯ããã
-			 */
-
-			/* æå¾ã®æ­çãæ¢ç´¢ããã*/
+		 	 *  入力した断片が先頭の断片
+		 	 *  データグラム再構成キューの最後の断片が、
+		 	 *  データグラムの最大長を超えていないかチェックする。
+			 */
+
+			/* 最後の断片を探索する。*/
 			next = *ip6fq;
 			while ((qip6h = GET_QIP6_HDR(next))->next_frag != NULL)
 				next = qip6h->next_frag;
 
-			/* æå¾ã®æ­çã®ãªãã»ããã¨æ­çãµã¤ãºãè¨ç®ããã*/
+			/* 最後の断片のオフセットと断片サイズを計算する。*/
 			qip6fh = (T_IP6_FRAG_HDR *)(next->buf + qip6h->foff);
 			fragoff = ntohs(qip6fh->off_flag & IP6F_OFF_MASK);
@@ -473,8 +443,6 @@
 
 				/*
-				 *  ãã¼ã¿ã°ã©ã ã®æå¤§é·ãè¶
-ãã¦ããå ´åã¯ã
-			 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼å
-¨ä½ãç ´æ£ããã
+				 *  データグラムの最大長を超えている場合は、
+			 	 *  データグラム再構成キュー全体を破棄する。
 			 	 */
 				frag6_free_queue(ip6fq);
@@ -484,12 +452,9 @@
 			}
 
-		/* ECN ã®æ­£å½æ§ãã§ãã¯ã¯æªå®è£
- */
-
-		/*
-		 *  æ­çãã¨ã³ããªã«æ¿å
-¥ããã
-	 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãããå
-¥åããæ­çããåã®æ­çãæ¢ç´¢ããã
+		/* ECN の正当性チェックは未実装 */
+
+		/*
+		 *  断片をエントリに挿入する。
+	 	 *  データグラム再構成キューから、入力した断片より前の断片を探索する。
 		 */
 		prev = NULL;
@@ -505,12 +470,8 @@
 
 		/*
-		 *  prev ã¯ãå
-¥åããæ­çããåã®æ­çããã ã NULL ã®å ´åã¯ã
-		 *  å
-¥åããæ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã§æãåã®æ­çã
-		 *  next ã¯ãå
-¥åããæ­çããå¾ã®æ­çããã ã NULL ã®å ´åã¯ã
-		 *  å
-¥åããæ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã§æãå¾ã®æ­çã
+		 *  prev は、入力した断片より前の断片。ただし NULL の場合は、
+		 *  入力した断片がデータグラム再構成キューの中で最も前の断片。
+		 *  next は、入力した断片より後の断片。ただし NULL の場合は、
+		 *  入力した断片がデータグラム再構成キューの中で最も後の断片。
 		 */
 		fragoff = ntohs(ip6fh->off_flag & IP6F_OFF_MASK);
@@ -518,6 +479,5 @@
 
 			/*
-			 *  åã®æ­çã¨ãå
-¥åããæ­çãéãªã£ã¦ããªãããã§ãã¯ããã
+			 *  前の断片と、入力した断片が重なっていないかチェックする。
 			 *
 			 *    qfragoff
@@ -542,6 +502,5 @@
 			if (diff > 0) {
 
-				/* éãªã£ã¦ããã°ãå
-¥åããæ­çãç ´æ£ãã¦çµäºããã*/
+				/* 重なっていれば、入力した断片を破棄して終了する。*/
 				syscall(rel_net_buf(input));
 				goto sig_ret;
@@ -552,6 +511,5 @@
 
 			/*
-			 *  å¾ã®æ­çã¨ãå
-¥åããæ­çãéãªã£ã¦ããªãããã§ãã¯ããã
+			 *  後の断片と、入力した断片が重なっていないかチェックする。
 			 *
 			 *    fragoff
@@ -576,6 +534,5 @@
 			if (diff > 0) {
 
-				/* éãªã£ã¦ããã°ãå
-¥åããæ­çãç ´æ£ãã¦çµäºããã*/
+				/* 重なっていれば、入力した断片を破棄して終了する。*/
 				syscall(rel_net_buf(input));
 				goto sig_ret;
@@ -583,6 +540,5 @@
 			}
 
-		/* å
-¥åããæ­çãè¨­å®ããã*/
+		/* 入力した断片を設定する。*/
 		qip6h  = GET_QIP6_HDR(input);
 		qip6h->foff = off;
@@ -598,6 +554,5 @@
 
 		/*
-		 *  å
-¨ã¦ã®æ­çãåä¿¡ããããã§ãã¯ããã
+		 *  全ての断片を受信したかチェックする。
 		 */
 		plen = 0;
@@ -608,5 +563,5 @@
 			if (ntohs(qip6fh->off_flag & IP6F_OFF_MASK) != plen) {
 
-				/* æ­çãé£ç¶ãã¦ããªãã*/
+				/* 断片が連続していない。*/
 				goto sig_ret;
 				}
@@ -616,14 +571,13 @@
 		if (ntohs(qip6fh->off_flag & IP6F_MORE_FRAG) != 0) {
 
-			/* æå¾ã®æ­çãåä¿¡ãã¦ããªãã*/
+			/* 最後の断片を受信していない。*/
 			goto sig_ret;
 			}
 
 		/*
-		 *  å
-¨ã¦ã®æ­çãåä¿¡ããã®ã§ãåæ§æããã
-		 */
-
-		/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+		 *  全ての断片を受信したので、再構成する。
+		 */
+
+		/* ネットワークバッファを獲得する。*/
 		qip6h  = GET_QIP6_HDR(*ip6fq);
 		qip6fh = (T_IP6_FRAG_HDR *)((*ip6fq)->buf + qip6h->foff);
@@ -631,7 +585,6 @@
 
 			/*
-			 *  æ­çãããã®ç´åã®ãããã® NEXT ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãç²å¾ãã
-			 *  å
-ã«æ»ãã
+			 *  断片ヘッダの直前のヘッダの NEXT フィールドのアドレスを獲得し、
+			 *  元に戻す。
 			 */
 			if ((prev_next = ip6_get_prev_hdr(*ip6fq, qip6h->foff)) == NULL) {
@@ -646,26 +599,21 @@
 
 			/*
-			 *  IPv6 ãããã¨åå²ã§ããªãé¨åã
-			 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã®å
-é ­ã®æ­çããã³ãã¼ããã
+			 *  IPv6 ヘッダと分割できない部分を
+			 *  データグラム再構成キューの中の先頭の断片からコピーする。
 			 */
 			memcpy(input->buf, (*ip6fq)->buf, qip6h->foff);
 
-			/* éä¿¡å
-ã¢ãã¬ã¹ãå
-ã«æ»ãã*/
+			/* 送信先アドレスを元に戻す。*/
 			ip6h = GET_IP6_HDR(input);
 			memcpy(&ip6h->dst, &ip6_frag_dest[ip6fq - ip6_frag_queue], sizeof(T_IN6_ADDR));
 
-			/* offp ããåæ§æããæ­çã®å
-é ­ã«è¨­å®ããã*/
+			/* offp を、再構成した断片の先頭に設定する。*/
 			*offp = qip6h->foff;
 
-			/* ãããã¯ã¼ã¯ãããã¡é·ãè¨­å®ããã*/
+			/* ネットワークバッファ長を設定する。*/
 			input->len = plen + qip6h->foff;
 
 			/*
-			 *  å
-¨ã¦ã®æ­çãã³ãã¼ããã
+			 *  全ての断片をコピーする。
 			 */
 			frag = *ip6fq;
@@ -680,5 +628,5 @@
 				}
 
-			/* ãã¤ã­ã¼ãé·ãè¨­å®ããã*/
+			/* ペイロード長を設定する。*/
 			ip6h->plen = htons(plen);
 
@@ -692,5 +640,5 @@
 			}
 
-		/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã*/
+		/* データグラム再構成キューを解放する。*/
 		frag6_free_queue(ip6fq);
  		}
@@ -703,9 +651,7 @@
 
 	/*
-	 *  ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ããªãå ´åã¯ãå
-¨æ­çãç ´æ£ãã
-	 *  æå¾ã®æ­çãåä¿¡ããã¨ãã
-	 *  ICMP ã¨ã©ã¼ãéä¿¡è
-ã«éç¥ããã
+	 *  データグラムの分割・再構成行わない場合は、全断片を破棄し、
+	 *  最後の断片を受信したとき、
+	 *  ICMP エラーを送信者に通知する。
 	 */
 	if ((ip6fh->off_flag & IP6F_MORE_FRAG) == 0) {
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/icmp6.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/icmp6.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/icmp6.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$
@@ -157,5 +145,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -163,6 +151,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -172,5 +159,5 @@
 
 /*
- *  icmp6_output -- ICMP6 ãã±ãããéä¿¡ããã
+ *  icmp6_output -- ICMP6 パケットを送信する。
  */
 
@@ -184,8 +171,6 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	ip6h = GET_IP6_HDR(output);
@@ -199,10 +184,10 @@
 	icmp6h = GET_ICMP6_HDR(output, off);
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp6h->sum = 0;
 	icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)icmp6h - output->buf, 
 	                        ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -213,5 +198,5 @@
 
 /*
- *  icmp6_echo_request -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç
+ *  icmp6_echo_request -- エコー要求を受信したときの処理
  */
 
@@ -231,13 +216,13 @@
 
 	/*
-	 *  IPv6 ãããã¨ ICMPv6 ãããéã®æ¡å¼µããããé¤å»ããã
+	 *  IPv6 ヘッダと ICMPv6 ヘッダ間の拡張ヘッダを除去する。
 	 */
 	diff = off - IF_IP6_HDR_SIZE;
 	if (diff > 0) {
-		/* ICMPv6 ããããåã«è©°ããã*/
+		/* ICMPv6 ヘッダを前に詰める。*/
 		memmove(input->buf + IF_IP6_HDR_SIZE, input->buf + off, input->len - off);
 		off = IF_IP6_HDR_SIZE;
 
-		/* ãã¤ã­ã¼ãé·ãèª¿æ´ããã*/
+		/* ペイロード長を調整する。*/
 		ip6h->plen  = htons(ntohs(ip6h->plen) - diff);
 		input->len -= diff;
@@ -252,13 +237,10 @@
 
 	/*
-	 *  ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (128) ãã
-	 *  ã¨ã³ã¼å¿ç­ (129) ã«å¤æ´ãã¦éãè¿ãã
+	 *  メッセージの型をエコー要求 (128) から
+	 *  エコー応答 (129) に変更して送り返す。
 	 */
 	icmp6h->type = ICMP6_ECHO_REPLY;
 
-	/* IPv6 ãããã®çºä¿¡å
-ã¢ãã¬ã¹ã¨å®å
-ã¢ãã¬ã¹ãå
-¥æ¿ããã*/
+	/* IPv6 ヘッダの発信元アドレスと宛先アドレスを入替える。*/
 	memcpy(&dst, &ip6h->dst, sizeof(T_IN6_ADDR));
 	memcpy(&ip6h->dst, &ip6h->src, sizeof(T_IN6_ADDR));
@@ -266,11 +248,7 @@
 
 	/*
-	 *  å
-ã®å®å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã®å ´åã¯ã
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  元の宛先アドレスがマルチキャストの場合は、
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	if (IN6_IS_ADDR_MULTICAST(&dst)) {
@@ -283,14 +261,14 @@
 		}
 
-	/* æ¬¡ãããã¨ããããªããããè¨­å®ããã*/
+	/* 次ヘッダとホップリミットを設定する。*/
 	ip6h->next = IPPROTO_ICMPV6;
 	ip6h->hlim = IP6_DEFTTL;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp6h->sum = 0;
 	icmp6h->sum = in6_cksum(input, IPPROTO_ICMPV6, (uint8_t*)icmp6h - input->buf, 
 	                        ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
 	               input->len - GET_IF_IP6_HDR_SIZE(input));
@@ -302,5 +280,5 @@
 
 /*
- *  icmp6_notify_error -- ã¨ã©ã¼ãéç¥ããã
+ *  icmp6_notify_error -- エラーを通知する。
  */
 
@@ -314,5 +292,5 @@
 	len  = input->len - poff;
 
-	/* ãã¼ã¿ã°ã©ã é·ã ICMP6 ãããé· + IP6 ãããé·ä»¥ä¸ãªãä½ãããªãã*/
+	/* データグラム長が ICMP6 ヘッダ長 + IP6 ヘッダ長以下なら何もしない。*/
 	if (len < ICMP6_HDR_SIZE + IP6_HDR_SIZE)
 		return;
@@ -320,8 +298,8 @@
 	icmp6h = GET_ICMP6_HDR(input, poff);
 
-	/* æçµããããæ¢ç´¢ããã*/
+	/* 最終ヘッダを探索する。*/
 	loff = ip6_lasthdr(input, poff + ICMP6_HDR_SIZE, IPPROTO_IPV6, &next);
 
-	/* æçµãããã TCP/UDP ã®ã¿å¯¾å¿ããã*/
+	/* 最終ヘッダが TCP/UDP のみ対応する。*/
 	if (loff >= 0 && (next == IPPROTO_TCP || next == IPPROTO_UDP)) {
 
@@ -354,5 +332,5 @@
 
 /*
- *  icmp6_mtudisc_update -- Path MTU ãæ´æ°ããã
+ *  icmp6_mtudisc_update -- Path MTU を更新する。
  */
 
@@ -379,5 +357,5 @@
 
 /*
- *  icmp6_redirect_input -- åãç´ãã¡ãã»ã¼ã¸ã®å¦ç
+ *  icmp6_redirect_input -- 向け直しメッセージの処理
  */
 
@@ -398,7 +376,7 @@
 
 	/*
-	 *  IP ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ãªã³ã¯ã­ã¼ã«ã«ä»¥å¤ããéããã¦ããã¡ãã»ã¼ã¸
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
+	 *  IP ヘッダのチェック、以下の場合は破棄する。
+	 *    ・リンクローカル以外から送られてきたメッセージ
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
 	 */
 	if (!IN6_IS_ADDR_LINKLOCAL(&ip6h->src) || ip6h->hlim != IPV6_MAXHLIM)
@@ -407,16 +385,15 @@
 	rdh  = (T_ND_REDIRECT_HDR *)(input->buf + off);
 
-	/* åãç´ãã®çµç¹ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯ç ´æ£ããã*/
+	/* 向け直しの終点アドレスがマルチキャストアドレスの場合は破棄する。*/
 	if (IN6_IS_ADDR_MULTICAST(&rdh->dst))
 		goto err_ret;
 
-	/* ã¿ã¼ã²ããã¢ãã¬ã¹ãçµè·¯è¡¨ã«ç»é²ããã¦ããããã§ãã¯ããã*/
+	/* ターゲットアドレスが経路表に登録されているかチェックする。*/
 	if ((gw = in6_rtalloc(ifp, &rdh->dst)) != NULL) {
-		/* GW ã¢ãã¬ã¹ã¨éä¿¡å
-ã¢ãã¬ã¹ãç°ãªã£ã¦ããã°ç ´æ£ããã*/
+		/* GW アドレスと送信元アドレスが異なっていれば破棄する。*/
 		if (!IN6_ARE_ADDR_EQUAL(gw, &ip6h->src))
 			goto err_ret;
 		}
-	else	/* çµè·¯è¡¨ã«ãªããã°ç ´æ£ããã*/
+	else	/* 経路表になければ破棄する。*/
 		goto err_ret;
 
@@ -424,6 +401,6 @@
 
 	/*
-	 *  ã¿ã¼ã²ããã¢ãã¬ã¹ããªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã§ããã°ã
-	 *  ã¿ã¼ã²ããã¯ã«ã¼ã¿
+	 *  ターゲットアドレスがリンクローカルアドレスであれば、
+	 *  ターゲットはルータ
 	 */
 	if (IN6_IS_ADDR_LINKLOCAL(&rdh->target))
@@ -431,5 +408,5 @@
 
 	/*
-	 *  ã¿ã¼ã²ããã¢ãã¬ã¹ã¨çµç¹ã¢ãã¬ã¹ãåä¸ã§ããã°ããªã³ãªã³ã¯
+	 *  ターゲットアドレスと終点アドレスが同一であれば、オンリンク
 	 */
 	if (IN6_ARE_ADDR_EQUAL(&rdh->target, &rdh->dst))
@@ -437,20 +414,19 @@
 		
 	/*
-	 *  ã«ã¼ã¿ã§ãããªã³ãªã³ã¯ã§ããªããã°ã¨ã©ã¼
+	 *  ルータでも、オンリンクでもなければエラー
 	 */
 	if (!router && !onlink)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf +  off + ND_REDIRECT_HDR_SIZE,
 	                            input->len - (off + ND_REDIRECT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹) */
+	/* 近隣探索オプション (向け直しのルータのリンクアドレス) */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ND_REDIRECT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -458,14 +434,14 @@
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
 		goto err_ret;
 
-	/* åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 向け直しのルータのリンクアドレスを近隣キャッシュに登録する。*/
 	nd6_cache_lladdr(ifp, &rdh->target, (T_IF_ADDR *)lladdr, ND_REDIRECT, 
 	                 onlink ? ND_REDIRECT_ONLINK : ND_REDIRECT_ROUTER);
 
-	/* ã«ã¼ãã£ã³ã°è¡¨ã«ç»é²ããã*/
+	/* ルーティング表に登録する。*/
 	in6_rtredirect(&rdh->target, &rdh->dst, 128, IN_RTF_REDIRECT, TMO_IN_REDIRECT);
 
@@ -482,6 +458,5 @@
 
 /*
- *  icmp6_input -- ICMP6 ã®å
-¥åé¢æ°
+ *  icmp6_input -- ICMP6 の入力関数
  */
 
@@ -500,5 +475,5 @@
 	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInMsgs, 1);
 
-	/* ICMP6 ãããã®é·ãããã§ãã¯ããã*/
+	/* ICMP6 ヘッダの長さをチェックする。*/
 	len  = input->len - off;
 	if (len < ICMP6_HDR_SIZE) {
@@ -511,5 +486,5 @@
 	icmp6h = GET_ICMP6_HDR(input, off);
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	if ((in6_cksum(input, IPPROTO_ICMPV6, off, ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE)) & 0xffff) != 0) {
 		NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1);
@@ -520,19 +495,18 @@
 	code = icmp6h->code;
 
-	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
+	/* メッセージの型により分岐する。*/
 	switch (icmp6h->type) {
 
-	case ICMP6_DST_UNREACH:			/* å®å
-å°éä¸å¯è½		*/
+	case ICMP6_DST_UNREACH:			/* 宛先到達不可能		*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInDestUnreachs, 1);
 		icmp6_notify_error(input, off);
 		break;
 
-	case ICMP6_ECHO_REQUEST:		/* ã¨ã³ã¼è¦æ±			*/
+	case ICMP6_ECHO_REQUEST:		/* エコー要求			*/
 		icmp6_echo_request(input, off);
 		return IPPROTO_DONE;
 		break;
 
-	case ICMP6_ECHO_REPLY:			/* ã¨ã³ã¼å¿ç­			*/
+	case ICMP6_ECHO_REPLY:			/* エコー応答			*/
 
 #ifdef ICMP_CFG_CALLBACK_ECHO_REPLY
@@ -544,5 +518,5 @@
 		break;
 
-	case ND_ROUTER_ADVERT:			/* ã«ã¼ã¿éç¥			*/
+	case ND_ROUTER_ADVERT:			/* ルータ通知			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRouterAdvertisements, 1);
 		if (code != 0 || len < ROUTER_ADVERT_HDR_SIZE)
@@ -552,5 +526,5 @@
 		break;
 
-	case ND_NEIGHBOR_SOLICIT:		/* è¿é£è¦è«			*/
+	case ND_NEIGHBOR_SOLICIT:		/* 近隣要請			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborSolicits, 1);
 		if (code != 0 || len < NEIGHBOR_SOLICIT_HDR_SIZE)
@@ -560,5 +534,5 @@
 		break;
 
-	case ND_NEIGHBOR_ADVERT:		/* è¿é£éç¥			*/
+	case ND_NEIGHBOR_ADVERT:		/* 近隣通知			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborAdvertisements, 1);
 		if (code != 0 || len < NEIGHBOR_ADVERT_HDR_SIZE)
@@ -568,5 +542,5 @@
 		break;
 
-	case ND_REDIRECT:			/* åãç´ã			*/
+	case ND_REDIRECT:			/* 向け直し			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRedirects, 1);
 
@@ -592,5 +566,5 @@
 		break;
 
-	case ICMP6_PACKET_TOO_BIG:		/* ãã±ãããå¤§ããããã	*/
+	case ICMP6_PACKET_TOO_BIG:		/* パケットが大きすぎる。	*/
 
 #if NUM_IN6_HOSTCACHE_ENTRY > 0
@@ -603,25 +577,19 @@
 		break;
 
-	case ICMP6_TIME_EXCEEDED:		/* TTL ãè¶
-éããã		*/
+	case ICMP6_TIME_EXCEEDED:		/* TTL を超過した。		*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInTimeExcds, 1);
 		break;
 
-	case ICMP6_PARAM_PROB:			/* IPv6 ããããä¸æ­£ã		*/
+	case ICMP6_PARAM_PROB:			/* IPv6 ヘッダが不正。		*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInParmProblems, 1);
 		break;
 
-	case MLD_LISTENER_QUERY:		/* ãã«ãã­ã£ã¹ãåä¿¡è
-ç
-§ä¼	*/
-	case MLD_LISTENER_REPORT:		/* ãã«ãã­ã£ã¹ãåä¿¡è
-å ±å	*/
-	case MLD_LISTENER_DONE:			/* ãã«ãã­ã£ã¹ãåä¿¡è
-çµäº	*/
-	case ND_ROUTER_SOLICIT:			/* ã«ã¼ã¿è¦è«			*/
-	case ICMP6_ROUTER_RENUMBERING:		/* ã«ã¼ã¿çªå·åè¨­å®		*/
-	case ICMP6_FQDN_QUERY:			/* FQDN ç
-§ä¼			*/
-	case ICMP6_FQDN_REPLY:			/* FQDN å¿ç­			*/
+	case MLD_LISTENER_QUERY:		/* マルチキャスト受信者照会	*/
+	case MLD_LISTENER_REPORT:		/* マルチキャスト受信者報告	*/
+	case MLD_LISTENER_DONE:			/* マルチキャスト受信者終了	*/
+	case ND_ROUTER_SOLICIT:			/* ルータ要請			*/
+	case ICMP6_ROUTER_RENUMBERING:		/* ルータ番号再設定		*/
+	case ICMP6_FQDN_QUERY:			/* FQDN 照会			*/
+	case ICMP6_FQDN_REPLY:			/* FQDN 応答			*/
 		syslog(LOG_INFO, "[ICMP6] unsupported type: %d.", icmp6h->type);
 		break;
@@ -640,5 +608,5 @@
 
 /*
- *  icmp6_error -- ICMP6 ã¨ã©ã¼éä¿¡é¢æ°
+ *  icmp6_error -- ICMP6 エラー送信関数
  */
 
@@ -655,10 +623,9 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ãããã«ãã­ã£ã¹ãã®å ´åã¯ã
-	 *  ä»¥ä¸ã®æ¡ä»¶ä»¥å¤ã®ã¨ãã¯å¦çãè¡ããªãã
+	 *  宛先アドレスが、マルチキャストの場合は、
+	 *  以下の条件以外のときは処理を行わない。
 	 *
-	 *    ã»ãã¼ã¿ã°ã©ã ãå¤§ããããã
-	 *    ã»IPv6 ãããã®ä¸æ­£ã§ããªãã·ã§ã³ãèªè­ã§ããªãã
+	 *    ・データグラムが大きすぎる。
+	 *    ・IPv6 ヘッダの不正で、オプションが認識できない。
 	 */
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst) &&
@@ -668,8 +635,8 @@
 
 	/*
-	 *  å§ç¹ã¢ãã¬ã¹ããä»¥ä¸ã®å ´åã¯å¦çãè¡ããªãã
+	 *  始点アドレスが、以下の場合は処理を行わない。
 	 *
-	 *    ã»ç¡æå®
-	 *    ã»ãã«ãã­ã£ã¹ã
+	 *    ・無指定
+	 *    ・マルチキャスト
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) ||
@@ -677,9 +644,9 @@
 		goto buf_rel;
 
-	/* æå¾ã®ããããæ¢ç´¢ããã*/
+	/* 最後のヘッダを探索する。*/
 	off = ip6_lasthdr(input, 0, IPPROTO_IPV6, &next);
 
 	/*
-	 *  ã¿ã¤ãããã¨ã©ã¼ãåãç´ãã® ICMP6 ãã±ããã®ã¨ã©ã¼ã«ã¯è¿ç­ããªãã
+	 *  タイプが、エラーか向け直しの ICMP6 パケットのエラーには返答しない。
 	 */
 	if (off >= 0 && next == IPPROTO_ICMPV6) {
@@ -695,9 +662,8 @@
 		}
 
-	/* DoS æ»æã«å¯¾ããé²å¾¡ã¯æªå®è£
- */
-
-	/*
-	 *  éãè¿ãã¡ãã»ã¼ã¸é·ããICMPv6 ã®æå¤§ãã¤ã­ã¼ãé·ã«èª¿æ´ããã
+	/* DoS 攻撃に対する防御は未実装 */
+
+	/*
+	 *  送り返すメッセージ長を、ICMPv6 の最大ペイロード長に調整する。
 	 *  IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE)
 	 */
@@ -707,5 +673,5 @@
 		len = input->len - IF_HDR_SIZE;
 
-	/* éä¿¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	/* 送信用のネットワークバッファを獲得する。*/
 	if (in6_get_datagram(&output, len + ICMP6_HDR_SIZE, 0,
 	                     &ip6h->src, &in6_addr_unspecified,
@@ -714,5 +680,5 @@
 		goto buf_rel;
 
-	/* ICMP6 ããããè¨­å®ããã*/
+	/* ICMP6 ヘッダを設定する。*/
  	icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET);
  	icmp6h->type       = type;
@@ -720,5 +686,5 @@
  	icmp6h->icmp6_pptr = htonl(param);
  
- 	/* ã¨ã©ã¼ãã¼ã¿ãè¨­å®ããã*/
+ 	/* エラーデータを設定する。*/
  	memcpy(GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET), (uint8_t *)ip6h, len);
 
@@ -741,5 +707,5 @@
 #endif	/* of #ifdef SUPPORT_MIB */
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	icmp6_output(output, IF_IP6_HDR_SIZE);
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/if6_ether.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/if6_ether.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/if6_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ãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -117,5 +105,5 @@
 
 /*
- *  ether_map_ipv6_multicast -- IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ
+ *  ether_map_ipv6_multicast -- IPv6 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/if6_ether.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/if6_ether.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/if6_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$
@@ -81,5 +69,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6.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$
@@ -156,6 +144,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -170,5 +157,5 @@
 
 /*
- *  in6_addmulti -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã
+ *  in6_addmulti -- マルチキャストアドレスを登録する。
  */
 
@@ -185,6 +172,5 @@
 
 /*
- *  in6_ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹æ
-å ±ãè¨­å®ããåæåããã
+ *  in6_ifinit -- インタフェースにアドレス情報を設定し、初期化する。
  */
 
@@ -192,13 +178,13 @@
 in6_ifinit (T_IFNET *ifp, T_IN6_IFADDR *ia, const T_IN6_ADDR *addr, uint_t prefix_len)
 {
-	/* ã¢ãã¬ã¹ã¨ãã¬ãã£ãã¯ã¹é·ãè¨­å®ããã*/
+	/* アドレスとプレフィックス長を設定する。*/
 	ia->addr       = *addr;
 	ia->prefix_len = prefix_len;
 
-	/* ãã©ã°ãåæåããã*/
+	/* フラグを初期化する。*/
 	ia->flags = 0;
 
 	/*
-	 *  åãã¦ã¢ãã¬ã¹ãè¨­å®ãããã¨ããã¤ã³ã¿ãã§ã¼ã¹ç¬èªã®åæåãè¡ãã
+	 *  初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。
 	 */
 
@@ -207,5 +193,5 @@
 
 /*
- *  in6_ifainit -- ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½ã®åæå
+ *  in6_ifainit -- インタフェースアドレス構造体の初期化
  */
 
@@ -226,5 +212,5 @@
 
 /*
- *  in6_if2idlen -- ã¤ã³ã¿ãã§ã¼ã¹ ID é·ãè¿ãã
+ *  in6_if2idlen -- インタフェース ID 長を返す。
  */
 
@@ -240,6 +226,5 @@
 
 /*
- *  in6_addr2ifaix -- ã¢ãã¬ã¹ããã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ
-å ±ã®ã¤ã³ããã¯ã¹ã«å¤æããã
+ *  in6_addr2ifaix -- アドレスからインタフェースアドレス情報のインデックスに変換する。
  */
 
@@ -262,5 +247,5 @@
 
 /*
- *  in6_addr2maix -- ã¢ãã¬ã¹ãããã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ã¤ã³ããã¯ã¹ã«å¤æããã
+ *  in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。
  */
 
@@ -283,6 +268,5 @@
 
 /*
- *  in6_update_ifa -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ
-å ±ãæ´æ°ããã
+ *  in6_update_ifa -- インタフェースのアドレス情報を更新する。
  */
 
@@ -296,11 +280,11 @@
 	SYSTIM		now;
 
-	/* å¼æ°ããã§ãã¯ããã*/
+	/* 引数をチェックする。*/
 	if (addr == NULL)
 		return E_PAR;
 
 	/*
-	 *  æå¹æéããã§ãã¯ããã
-	 *  vltime (æå¹æé) ã¨ pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
+	 *  有効時間をチェックする。
+	 *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
 	 */
 	syscall(get_tim(&now));
@@ -313,5 +297,5 @@
 		return E_PAR;
 
-	/* ã¤ã³ã¿ãã§ã¼ã¹ãåæåããã*/
+	/* インタフェースを初期化する。*/
 	if ((error = in6_ifinit(ifp, ia, addr, prefix_len)) != E_OK)
 		return error;
@@ -319,5 +303,5 @@
 	if (IN6_IS_ADDR_LINKLOCAL(addr)) {
 
-		/* è¦è«ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		/* 要請マルチキャストアドレスを登録する。*/
 		llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
 		llsol.s6_addr32[1] = 0x00000000;
@@ -328,6 +312,5 @@
 			return error;
 
-		/* å
-¨ãã¼ãã»ãªã³ã¯ã­ã¼ã«ã«ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		/* 全ノード・リンクローカル・マルチキャストアドレスを登録する。*/
 		llsol.s6_addr32[2] = 0x00000000;
 		llsol.s6_addr32[3] = IPV6_ADDR_INT32_ONE;
@@ -337,17 +320,17 @@
 		}
 
-	/* ã«ã¼ã¿ã¤ã³ããã¯ã¹ãè¨­å®ããã*/
+	/* ルータインデックスを設定する。*/
 	ia->router_index = router_index;
 
-	/* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹ãè¨­å®ããã*/
+	/* プレフィックスインデックスを設定する。*/
 	ia->prefix_index = prefix_index;
 
-	/* ãã©ã°ãè¨­å®ããã*/
+	/* フラグを設定する。*/
 	ia->flags  = flags & ~(IN6_IFF_DUPLICATED | IN6_IFF_NODAD);
 	ia->flags |= IN6_IFF_DEFINED;
 
  	/*
- 	 *  ã¢ãã¬ã¹æå¹æéãè¨­å®ããã
-	 *  vltime (æå¹æé) ã¨ pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
+ 	 *  アドレス有効時間を設定する。
+	 *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
  	 */
 	syscall(get_tim(&now));
@@ -366,8 +349,8 @@
  		ia->lifetime.preferred = 0;
 
-	/* è¿é£æ¢ç´¢ã®åæè¨­å®ãè¡ãã*/
+	/* 近隣探索の初期設定を行う。*/
 	nd6_ifattach(ifp);
 
-	/* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/
+	/* 重複アドレス検出を行う。*/
 	if ((flags & IN6_IFF_NODAD) == 0) {
 		ia->flags |= IN6_IFF_TENTATIVE;
@@ -379,6 +362,6 @@
 
 /*
- * in6ifa_ifpwithix -- ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
- *                     å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに
+ *                     割り当てられているアドレスを探索する。
  */
 
@@ -390,6 +373,6 @@
 
 /*
- * in6ifa_ifpwithrtrix -- ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
- *                        å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに
+ *                        割り当てられているアドレスを探索する。
  */
 
@@ -406,9 +389,6 @@
 
 /*
- * in6_ifawithifp -- å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹æ
-å ±ãã
- *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ * in6_ifawithifp -- 宛先アドレスにふさわしい送信元アドレス情報を、
+ *                   ネットワークインタフェースから探索する。
  */
 
@@ -419,6 +399,5 @@
 	int_t	ix;
 
-	/* å®å
-ã¢ãã¬ã¹ã¨åãã¹ã³ã¼ãã®ã¢ãã¬ã¹ãè¿ãã*/
+	/* 宛先アドレスと同じスコープのアドレスを返す。*/
 	if ((ix = in6_addr2ifaix(dst)) != IPV6_IFADDR_IX_INVALID)
 		return &ifp->in6_ifaddrs[ix];
@@ -440,8 +419,6 @@
 
 /*
- * in6_addrwithifp -- å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
- *                    ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ * in6_addrwithifp -- 宛先アドレスにふさわしい送信元アドレスを、
+ *                    ネットワークインタフェースから探索する。
  */
 
@@ -460,5 +437,5 @@
 
 /*
- * in6_if_up -- ã¤ã³ã¿ãã§ã¼ã¹èµ·åå¾ã®éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã
+ * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。
  */
 
@@ -466,5 +443,5 @@
 in6_if_up (T_IFNET *ifp)
 {
-#if 0						/* ä¿ç */
+#if 0						/* 保留 */
 	int_t dad_delay, ix;
 #endif	/* of #if 0 */
@@ -472,6 +449,6 @@
 	in6_ifattach(ifp);
 
-#if 0						/* ä¿ç */
-	/* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/
+#if 0						/* 保留 */
+	/* 重複アドレス検出を行う。*/
 	dad_delay = 0;
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; )
@@ -483,5 +460,5 @@
 #if NUM_ND6_RTR_SOL_RETRY > 0
 
-	/* ã«ã¼ã¿è¦è«ãåºåããã*/
+	/* ルータ要請を出力する。*/
 	nd6_rtrsol_ctl();
 
@@ -490,5 +467,5 @@
 
 /*
- *  in6_are_prefix_equal -- ãã¬ãã£ãã¯ã¹ãåä¸ãèª¿ã¹ãã
+ *  in6_are_prefix_equal -- プレフィックスが同一か調べる。
  */
 
@@ -511,5 +488,5 @@
 
 /*
- *  in6_ifaddr_timer -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®ç®¡çã¿ã¤ãã¼
+ *  in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー
  */
 
@@ -530,5 +507,5 @@
 
 			/*
-			 *  æå¹æéãéããã®ã§åé¤ããã
+			 *  有効時間を過ぎたので削除する。
 			 */
 			ia->flags &= ~IN6_IFF_DEFINED;
@@ -538,5 +515,5 @@
 
 			/*
-			 *  æ¨å¥¨æå¹æéãéããã®ã§éæ¨å¥¨ã«ããã
+			 *  推奨有効時間を過ぎたので非推奨にする。
 			 */
 			ia->flags |= IN6_IFF_DEPRECATED;
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6.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 @@
 
 /*
- *  IPv6 ã¢ãã¬ã¹æ§é 
- *
- *    RFC4291ï¼RFC1884ãRFC2373ãRFC3513 ã®ã¢ãããã¼ãï¼
- */
-
-/*
- *  IPv6 ã¢ãã¬ã¹
+ *  IPv6 アドレス構造
+ *
+ *    RFC4291（RFC1884、RFC2373、RFC3513 のアップデート）
+ */
+
+/*
+ *  IPv6 アドレス
  */
 
@@ -146,5 +134,5 @@
 
 /*
- *  IPv6 ã¢ãã¬ã¹ã®åæåãã¼ã¿
+ *  IPv6 アドレスの初期化データ
  */
 
@@ -168,13 +156,13 @@
 
 /*
- *  ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯
- */
-
-/* ç¡æå® */
+ *  特別なアドレスのチェック
+ */
+
+/* 無指定 */
 
 #define IN6_IS_ADDR_UNSPECIFIED(a)	\
 	(memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR)) == 0)
 
-/* ã«ã¼ãããã¯ */
+/* ループバック */
 
 #define IN6_IS_ADDR_LOOPBACK(a)		\
@@ -183,5 +171,5 @@
 
 /*
- *  ã¹ã³ã¼ã ID
+ *  スコープ ID
  */
 
@@ -193,21 +181,20 @@
 
 /*
- *  ã¦ãã­ã£ã¹ãã»ã¹ã³ã¼ã
- *
- *  æ³¨æ: ä¸ä½ 10 ãããã®ã¿ãã§ãã¯ããªããã°ãªããªããRFC2373 åç
-§
- */
-
-/* ãªã³ã¯ã­ã¼ã«ã« */
+ *  ユニキャスト・スコープ
+ *
+ *  注意: 上位 10 ビットのみチェックしなければならない。RFC2373 参照
+ */
+
+/* リンクローカル */
 
 #define IN6_IS_ADDR_LINKLOCAL(a)	\
 	(((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0x80)))
 
-/* ãµã¤ãã­ã¼ã«ã« */
+/* サイトローカル */
 
 #define IN6_IS_ADDR_SITELOCAL(a)	\
 	(((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0xc0)))
 
-/* éç´å¯è½ã¦ãã­ã£ã¹ã (ã°ã­ã¼ãã«) */
+/* 集約可能ユニキャスト (グローバル) */
 
 #define IN6_IS_ADDR_AGGREGATE_UNICAST(a)	\
@@ -215,5 +202,5 @@
 
 /*
- *  ãã«ãã­ã£ã¹ã
+ *  マルチキャスト
  */
 
@@ -221,5 +208,5 @@
 
 /*
- *  åä¸ã®ãã§ãã¯
+ *  同一のチェック
  */
 
@@ -227,23 +214,23 @@
 
 /*
- *  çµè·¯å¶å¾¡ç¨å®ç¾©
- */
-
-#define IPV6_RTHDR_TYPE_0		UINT_C(0)	/* IPv6 çµè·¯å¶å¾¡ãããã¿ã¤ã 0	*/
-
-/*
- *  è¦å®å¤ã¨å¶éå¤
- */
-
-#define IPV6_DEFAULT_MULTICAST_HOPS	1	/* ãã«ãã­ã£ã¹ãæã®ããããªãããã®è¦å®å¤	*/
-#define ND6_INFINITE_LIFETIME		0xffffffff	/* ã¢ãã¬ã¹ã®ç¡å¶éæå¹æé		*/
-
-/*
- *  ITRON TCP/IPv6 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©
+ *  経路制御用定義
+ */
+
+#define IPV6_RTHDR_TYPE_0		UINT_C(0)	/* IPv6 経路制御ヘッダタイプ 0	*/
+
+/*
+ *  規定値と制限値
+ */
+
+#define IPV6_DEFAULT_MULTICAST_HOPS	1	/* マルチキャスト時のホップリミットの規定値	*/
+#define ND6_INFINITE_LIFETIME		0xffffffff	/* アドレスの無制限有効時間		*/
+
+/*
+ *  ITRON TCP/IPv6 アドレス/ポート番号の定義
  */
 
 typedef struct t_ipv6ep {
-	T_IN6_ADDR	ipaddr;		/* IPv6 ã¢ãã¬ã¹	*/
-	uint16_t	portno;		/* ãã¼ãçªå·	*/
+	T_IN6_ADDR	ipaddr;		/* IPv6 アドレス	*/
+	uint16_t	portno;		/* ポート番号	*/
 	} T_IPV6EP;
 
@@ -251,5 +238,5 @@
 
 /*
- *  ITRON/TCP/IP ç¨ IP ã¢ãã¬ã¹ã®å®ç¾©
+ *  ITRON/TCP/IP 用 IP アドレスの定義
  */
 
@@ -257,31 +244,28 @@
 
 /*
- *  åççæç¨ IPv6 TCP åä»å£
+ *  動的生成用 IPv6 TCP 受付口
  */
 
 typedef struct t_tcp6_crep {
-	/* æ¨æº */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス	*/
+	/* 実装依存 */
 	} T_TCP6_CREP;
 
 /*
- *  åççæç¨ IPv6 UDP éä¿¡ç«¯ç¹
+ *  動的生成用 IPv6 UDP 通信端点
  */
 
 typedef struct t_udp6_ccep {
-	/* æ¨æº */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	FP		callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス		*/
+	FP		callback;	/* コールバック関数		*/
+	/* 実装依存 */
 	} T_UDP6_CCEP;
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -295,6 +279,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -306,5 +289,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.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$
@@ -114,5 +102,5 @@
 
 /*
- * EUI64 ã®å®ç¾©
+ * EUI64 の定義
  */
 
@@ -122,5 +110,5 @@
 
 /*
- * get_mac6_ifid -- MAC (6 ãªã¯ããã) ã¢ãã¬ã¹ã§ãã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã
+ * get_mac6_ifid -- MAC (6 オクテット) アドレスで、インタフェース識別子を設定する。
  */
 
@@ -145,5 +133,5 @@
 
 /*
- * get_rand_ifid -- ä¹±æ°ã«ãããã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã
+ * get_rand_ifid -- 乱数により、インタフェース識別子を設定する。
  */
 
@@ -159,5 +147,5 @@
 
 /*
- *  in6_ifattach_linklocal -- ã¤ã³ã¿ãã§ã¼ã¹ã«ãªã³ã¯ã­ã¼ã«ã«ã»ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+ *  in6_ifattach_linklocal -- インタフェースにリンクローカル・アドレスを割り当てる。
  */
 
@@ -169,15 +157,14 @@
 
 	/*
-	 *  ãªã³ã¯ã­ã¼ã«ã«ã»ãã¬ãã£ãã¯ã¹ fe80::/64 ãè¨­å®ããã
+	 *  リンクローカル・プレフィックス fe80::/64 を設定する。
 	 */
 	addr.s6_addr32[0] = IPV6_ADDR_INT32_ULL;
 	addr.s6_addr32[1] = ULONG_C(0);
 
-	/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã*/
+	/* インタフェース識別子を設定する。*/
 	if ((error = IF_IN6_IFID(ifp, &addr)) != E_OK)
 		return error;
 
-	/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ
-å ±ãæ´æ°ããã*/
+	/* インタフェースのアドレス情報を更新する。*/
 	if ((error = in6_update_ifa(ifp, &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL],
 	                            &addr, 64, ND6_INFINITE_LIFETIME,
@@ -192,5 +179,5 @@
 
 /*
- *  in6_ifattach -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+ *  in6_ifattach -- インタフェースにアドレスを割り当てる。
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.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$
@@ -80,5 +68,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_rename.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_rename.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_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/IPv6 ãã­ãã³ã«ã¹ã¿ãã¯å
-é¨åã®ãªãã¼ã 
+ *  TCP/IPv6 プロトコルスタック内部名のリネーム
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_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$
@@ -150,8 +138,8 @@
 
 /*
- *  in6_make_ipv4mapped -- IPv4 å°å½±ã¢ãã¬ã¹ãçæããã
- *
- *  æ³¨æ:
- *    src ã¯ãã¹ããã¤ããªã¼ãã¼
+ *  in6_make_ipv4mapped -- IPv4 射影アドレスを生成する。
+ *
+ *  注意:
+ *    src はホストバイトオーダー
  *
  */
@@ -173,5 +161,5 @@
 
 /*
- *  in6_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã
+ *  in6_rtinit -- ルーティング表を初期化する。
  */
 
@@ -189,5 +177,5 @@
 
 /*
- *  in6_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã
+ *  in6_rtnewentry -- 新しいエントリを獲得する。
  */
 
@@ -199,5 +187,5 @@
 	int_t		ix;
 
-	/* ç©ºãã¨ã³ããªãæ¢ãã*/
+	/* 空きエントリを探す。*/
 	for (ix = NUM_IN6_STATIC_ROUTE_ENTRY; ix < NUM_IN6_ROUTE_ENTRY; ix ++) {
 		rt = &routing6_tbl[ix];
@@ -208,10 +196,10 @@
 		}
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	syscall(get_tim(&now));
 	now /= SYSTIM_HZ;
 
 	if (frt == NULL) {
-		/* ç©ºãããªããã°ãæå¹æéããã£ã¨ãç­ãã¨ã³ããªãç©ºãã«ããã*/
+		/* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/
 		T_IN6_RTENTRY	*srt = NULL;
 		int_t		diff, sdiff = INT_MAX;
@@ -222,5 +210,5 @@
 			diff = (int_t)(rt->expire - now);
 			if (diff <= 0) {	/* rt->expire <= now */
-				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				/* 既に、有効時間が過ぎている。*/
 				frt = rt;
 				break;
@@ -243,5 +231,5 @@
 
 /*
- *  in6_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼
+ *  in6_rttimer -- ルーティング表の管理タイマー
  */
 
@@ -252,5 +240,5 @@
 	int_t	ix;
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	syscall(get_tim(&now));
 	now /= SYSTIM_HZ;
@@ -269,5 +257,5 @@
 
 /*
- *  ãã¹ãã­ã£ãã·ã¥
+ *  ホストキャッシュ
  */
 
@@ -277,5 +265,5 @@
 
 /*
- *  in6_lookup_ifaddr -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ *  in6_lookup_ifaddr -- ネットワークインタフェースに割り当てられているアドレスを探索する。
  */
 
@@ -294,5 +282,5 @@
 
 /*
- *  in6_lookup_multi -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãæ¤ç´¢ããã
+ *  in6_lookup_multi -- ネットワークインタフェースのマルチキャストアドレスを検索する。
  */
 
@@ -309,5 +297,5 @@
 
 /*
- *  in6_set_header -- IPv6 ããããè¨­å®ããã
+ *  in6_set_header -- IPv6 ヘッダを設定する。
  */
 
@@ -322,8 +310,6 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	if (srcaddr == NULL || !IN6_IS_ADDR_UNSPECIFIED(srcaddr))
@@ -334,5 +320,5 @@
 		srcaddr = &ia->addr;
 
-	/* IPv6 ããããè¨­å®ããã*/
+	/* IPv6 ヘッダを設定する。*/
 	ip6h		= GET_IP6_HDR(nbuf);
 	ip6h->vcf	= htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
@@ -355,5 +341,5 @@
 
 /*
- *  in6_get_datagram -- IPv6 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ *  in6_get_datagram -- IPv6 データグラムを獲得し、ヘッダを設定する。
  */
 
@@ -366,8 +352,8 @@
 	uint_t		align;
 
-	/* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã	*/
+	/* データ長は 4 オクテット境界に調整する。	*/
 	align = (len + 3) >> 2 << 2;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã	*/
+	/* ネットワークバッファを獲得する。	*/
 	if ((error = tget_net_buf_ex(nbuf, IF_IP6_HDR_SIZE + align,
 	                                   IF_IP6_HDR_SIZE + maxlen, nbatr, tmout)) != E_OK)
@@ -375,12 +361,12 @@
 
 	/*
-	 *  ããå¤§ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ããèª¿æ´ããã
-	 *  ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®
-	 *  çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã
+	 *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
+	 *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
+	 *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
 	 */
 	if ((nbatr & NBA_SEARCH_ASCENT) != 0)
 		(*nbuf)->len = IF_IP6_HDR_SIZE + len;
 
-	/* IPv6 ããããè¨­å®ããã*/
+	/* IPv6 ヘッダを設定する。*/
 	if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK) {
 		syscall(rel_net_buf(*nbuf));
@@ -389,5 +375,5 @@
 		}
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset(GET_IP6_SDU(*nbuf) + len, 0, align - len);
@@ -397,5 +383,5 @@
 
 /*
- *  in6_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®å¯è½ãªæå¤§ã¢ãã¬ã¹æ°ãè¿ãã
+ *  in6_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。
  */
 
@@ -407,5 +393,5 @@
 
 /*
- *  in6_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ããã¢ãã¬ã¹ãè¿ãã
+ *  in6_get_ifaddr -- インタフェースに設定されているアドレスを返す。
  */
 
@@ -423,5 +409,5 @@
 
 /*
- *  ipv62str -- IPv6 ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ *  ipv62str -- IPv6 アドレスを文字列に変換する。
  */
 
@@ -493,7 +479,7 @@
 
 /*
- *  in6_cksum -- IPv6 ã®ãã©ã³ã¹ãã¼ãå±¤ãããã®ãã§ãã¯ãµã ãè¨ç®ããã
- *
- *  æ³¨æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ *  in6_cksum -- IPv6 のトランスポート層ヘッダのチェックサムを計算する。
+ *
+ *  注意: 戻り値はネットワークバイトオーダ
  */
 
@@ -504,8 +490,8 @@
 	uint_t		align;
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)nbuf->buf + off + len, 0, align - len);
@@ -520,5 +506,5 @@
 
 /*
- *  get_ip6_hdr_size -- æ¡å¼µããããå«ãã IPv6 ãããé·ãè¿ãã
+ *  get_ip6_hdr_size -- 拡張ヘッダも含めた IPv6 ヘッダ長を返す。
  */
 
@@ -533,13 +519,13 @@
 	while (1) {
 		next = *hdr;
-		if (curr ==IPPROTO_NONE)		/* æ¬¡ãããç¡ã			*/
+		if (curr ==IPPROTO_NONE)		/* 次ヘッダ無し			*/
 			break;
-		else if (curr == IPPROTO_FRAGMENT)	/* æ­çå			*/
+		else if (curr == IPPROTO_FRAGMENT)	/* 断片化			*/
 			hsize = sizeof(T_IP6_FRAG_HDR);
-		else if (curr == IPPROTO_AH)		/* IPv6 èªè¨¼			*/
+		else if (curr == IPPROTO_AH)		/* IPv6 認証			*/
 			hsize = (((T_IP6_AH_HDR *)hdr)->len + 2) * 4;
-		else if (curr == IPPROTO_HOPOPTS ||	/* ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
-		         curr == IPPROTO_DSTOPTS ||	/* IPv6 çµç¹ãªãã·ã§ã³		*/
-		         curr == IPPROTO_ROUTING)	/* çµè·¯å¶å¾¡			*/
+		else if (curr == IPPROTO_HOPOPTS ||	/* 中継点 (Hop-by-Hop) オプション	*/
+		         curr == IPPROTO_DSTOPTS ||	/* IPv6 終点オプション		*/
+		         curr == IPPROTO_ROUTING)	/* 経路制御			*/
 			hsize = (((T_IP6_EXT_HDR *)hdr)->len + 1) * 8;
 		else
@@ -553,5 +539,5 @@
 
 /*
- *  in6_plen2pmask -- ãã¬ãã£ãã¯ã¹é·ãããã¹ã¯ãçæããã
+ *  in6_plen2pmask -- プレフィックス長からマスクを生成する。
  */
 
@@ -571,5 +557,5 @@
 
 /*
- *  in6_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã
+ *  in6_rtalloc -- ルーティング表を探索する。
  */
 
@@ -585,7 +571,6 @@
 
 		/*
-		 *  ãµã¤ãã­ã¼ã«ã«ã¢ãã¬ã¹ãéç´å¯è½ï¼ã°ã­ã¼ãã«ï¼ã¢ãã¬ã¹ã®å ´åã¯ã
-		 *  åä¸ãªã³ã¯å
-ã®ãã¼ãã§ãããããã§ãã¯ããã
+		 *  サイトローカルアドレスか集約可能（グローバル）アドレスの場合は、
+		 *  同一リンク内のノードであるかをチェックする。
 		 */
 
@@ -593,6 +578,5 @@
 		now /= SYSTIM_HZ;
 
-		/* æ¨å¥¨æå¹æéå
-ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/
+		/* 推奨有効時間内のアドレスを探索する。*/
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
 			ia = &ifp->in6_ifaddrs[ix];
@@ -605,6 +589,5 @@
 			}
 
-		/* æå¹æéå
-ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/
+		/* 有効時間内のアドレスを探索する。*/
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
 			ia = &ifp->in6_ifaddrs[ix];
@@ -617,5 +600,5 @@
 
 		/*
-		 *  ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+		 *  プレフィックスを探索する。
 		 */
 		if (nd6_onlink_prefix_lookup (dst) != NULL)
@@ -623,5 +606,5 @@
 
 		/*
-		 *  éççµè·¯è¡¨ãæ¢ç´¢ããã
+		 *  静的経路表を探索する。
 		 */
 
@@ -635,7 +618,7 @@
 
 				/*
-				 *  åãç´ãã«ããã¨ã³ããªã¯ãæå¹æéãåããæå»ãå»¶é·ããã
-				 *  expire ã®åä½ã¯ [s]ã
-				 *  TMO_IN_REDIRECT ã®åä½ã¯ [ms]ã
+				 *  向け直しによるエントリは、有効時間が切れる時刻を延長する。
+				 *  expire の単位は [s]。
+				 *  TMO_IN_REDIRECT の単位は [ms]。
 				 */
 				if (ix > NUM_IN6_STATIC_ROUTE_ENTRY) {
@@ -655,5 +638,5 @@
 
 		/*
-		 *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã
+		 *  ディフォルトルータ・リストを探索する。
 		 */
 		return nd6_router_lookup();
@@ -664,5 +647,5 @@
 
 /*
- *  in6_gateway_lookup -- ã«ã¼ãã£ã³ã°è¡¨ã®ã«ã¼ã¿ãæ¢ç´¢ããã
+ *  in6_gateway_lookup -- ルーティング表のルータを探索する。
  */
 
@@ -680,7 +663,7 @@
 
 /*
- *  in6_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã
- *
- *    æ³¨æ: å¼æ° tmo ã®åä½ã¯ [us]ã
+ *  in6_rtredirect -- ルーティング表にエントリを登録する。
+ *
+ *    注意: 引数 tmo の単位は [us]。
  */
 
@@ -701,5 +684,5 @@
 
 /*
- *  in6_hostcache_lookup -- IPv6 ãã¹ãã­ã£ãã·ã¥ãæ¢ç´¢ããã
+ *  in6_hostcache_lookup -- IPv6 ホストキャッシュを探索する。
  */
 
@@ -717,5 +700,5 @@
 
 /*
- *  in6_hostcache_update -- IPv6 ãã¹ãã­ã£ãã·ã¥ãæ´æ°ããã
+ *  in6_hostcache_update -- IPv6 ホストキャッシュを更新する。
  */
 
@@ -729,8 +712,8 @@
 	syscall(get_tim(&now));
 
-	/* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/
+	/* 既に登録されているか探索する。*/
 	if ((hc = in6_hostcache_lookup (dst)) == NULL) {
 
-		/* ç©ºãã®ãã¹ãã­ã£ãã·ã¥ãæ¢ãã*/
+		/* 空きのホストキャッシュを探す。*/
 		for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) {
 			if (IN6_IS_HOSTCACHE_FREE(&in6_hostcache[ix]))
@@ -740,6 +723,6 @@
 		if (ix < 0) {
 			/*
-			 *  ç©ºããç¡ãæã¯ãæå¹æéã®åããæéãã
-			 *  æãç­ããã¹ãã­ã£ãã·ã¥ãç½®æããã
+			 *  空きが無い時は、有効時間の切れる時間が、
+			 *  最も短いホストキャッシュを置換する。
 			 */
 			old = now - 1;
@@ -761,6 +744,6 @@
 
 		/*
-		 *  æ¢ã«ç»é²ããã¦ãã¦ãæ°ãã MTU ããç»é²ããã¦ãã MTU ããå¤§ããã¨ãã
-		 *  IN6_HOSTCACHE_INCREASEï¼æ¨å¥¨ 10 åï¼éã¯æ´æ°ããªãã
+		 *  既に登録されていて、新しい MTU が、登録されている MTU より大きいとき、
+		 *  IN6_HOSTCACHE_INCREASE（推奨 10 分）間は更新しない。
 		 */
 		return;
@@ -772,7 +755,7 @@
 
 /*
- *  in6_hostcache_getmtu -- IPv6 ãã¹ãã­ã£ãã·ã¥ããã MTU ãåå¾ããã
- *
- *    æ»ãå¤ã 0 ã§ããã°ããã¹ãã­ã£ãã·ã¥ã«ç»é²ããã¦ããªãã
+ *  in6_hostcache_getmtu -- IPv6 ホストキャッシュをから MTU を取得する。
+ *
+ *    戻り値が 0 であれば、ホストキャッシュに登録されていない。
  */
 
@@ -782,5 +765,5 @@
 	T_IN6_HOSTCACHE_ENTRY	*hc;
 
-	/* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/
+	/* 既に登録されているか探索する。*/
 	if ((hc = in6_hostcache_lookup(dst)) == NULL)
 		return 0;
@@ -790,7 +773,7 @@
 
 /*
- *  in6_hostcache_timer -- IPv6 ãã¹ãã­ã£ãã·ã¥æ´æ°ã¿ã¤ãã¼
- *
- *    1ç§å¨æã§èµ·åãããã
+ *  in6_hostcache_timer -- IPv6 ホストキャッシュ更新タイマー
+ *
+ *    1秒周期で起動される。
  */
 
@@ -812,8 +795,7 @@
 
 /*
- *  in6_timer -- IPv6 å
-±éã¿ã¤ãã¼
- *
- *    1ç§å¨æã§èµ·åãããã
+ *  in6_timer -- IPv6 共通タイマー
+ *
+ *    1秒周期で起動される。
  */
 
@@ -843,6 +825,5 @@
 
 /*
- *  in6_init -- IPv6 å
-±éæ©è½ãåæåããã
+ *  in6_init -- IPv6 共通機能を初期化する。
  */
 
@@ -861,6 +842,5 @@
 
 /*
- *  in6_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ *  in6_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
  */
 
@@ -877,7 +857,7 @@
 
 /*
- *  in6_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv6 ã¢ãã¬ã¹ãè¨­å®ããã
- *
- *    vltime ã¨ pltime ã®åä½ã¯[s]
+ *  in6_add_ifaddr -- インタフェースに IPv6 アドレスを設定する。
+ *
+ *    vltime と pltime の単位は[s]
  */
 
@@ -890,10 +870,10 @@
 	int_t		ix;
 
-	/* ç©ºãã®ã¨ã³ããªã¼ãæ¢ãã*/
+	/* 空きのエントリーを探す。*/
 	ix = 0;
 	while (true) {
 		ia = in6ifa_ifpwithix(ifp, ix ++);
 
-		/* ç©ºããç¡ããã°ã¨ã©ã¼ */
+		/* 空きが無ければエラー */
 		if (ia == NULL)
 			return E_OBJ;
@@ -903,5 +883,5 @@
 		}
 
-	/* ç»é²ããã*/
+	/* 登録する。*/
 	return in6_update_ifa(ifp, ia, addr, prefix_len, vltime, pltime,
 	                      IN6_RTR_IX_UNREACH, ND6_PREFIX_IX_INVALID, 0);
@@ -909,8 +889,8 @@
 
 /*
- *  in6_upd_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãæ´æ°ããã
- *
- *    ç»é²ããã¦ããªããã°ãè¿½å ããã
- *    vltime ã¨ pltime ã®åä½ã¯[s]
+ *  in6_upd_ifaddr -- インタフェースに設定されている IPv6 アドレスを更新する。
+ *
+ *    登録されていなければ、追加する。
+ *    vltime と pltime の単位は[s]
  */
 
@@ -924,6 +904,6 @@
 
 	/*
-	 *  ã¢ãã¬ã¹ãä¸è´ããã¨ã³ããªã¼ãæ¢ãã
-	 *  ç¡ããã°ç»é²ããã
+	 *  アドレスが一致するエントリーを探す。
+	 *  無ければ登録する。
 	 */
 	if ((ix = in6_addr2ifaix(addr)) == IPV6_IFADDR_IX_INVALID)
@@ -931,11 +911,11 @@
 
 	/*
-	 *  ã¤ã³ããã¯ã¹çªå·ãããã¨ã³ããªã¼ã«å¤æããã
-	 *  ã¨ã©ã¼ã«ãªããªãã¯ãã§ããããç¢ºèªããã
+	 *  インデックス番号から、エントリーに変換する。
+	 *  エラーにならないはずであるが、確認する。
 	 */
 	if ((ia = in6ifa_ifpwithix (ifp, ix)) == NULL)
 		return E_OBJ;
 
-	/* æ´æ°ããã*/
+	/* 更新する。*/
 	return in6_update_ifa(ifp, ia, addr, prefix_len, vltime, pltime,
 	                      IN6_RTR_IX_UNREACH, ND6_PREFIX_IX_INVALID, 0);
@@ -943,5 +923,5 @@
 
 /*
- *  in6_del_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãåé¤ããã
+ *  in6_del_ifaddr -- インタフェースに設定されている IPv6 アドレスを削除する。
  */
 
@@ -952,8 +932,8 @@
 	int_t		ix;
 
-	/* ã¢ãã¬ã¹ãä¸è´ããã¨ã³ããªã¼ãæ¢ãã*/
+	/* アドレスが一致するエントリーを探す。*/
 	if ((ix = in6_addr2ifaix(addr)) != IPV6_IFADDR_IX_INVALID) {
 
-		/* ã¨ã³ããªã¼ãç¡å¹ã«ããã*/
+		/* エントリーを無効にする。*/
 		ifp->in6_ifaddrs[ix].flags &= ~IN6_IFF_DEFINED;
 		return E_OK;
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/in6_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$
@@ -115,5 +103,5 @@
 
 /*
- *  ã¢ãã¬ã¹ã®å®ç¾©
+ *  アドレスの定義
  */
 
@@ -149,8 +137,8 @@
 
 /*
- *  ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯
- */
-
-/* IPv4 äºæ */
+ *  特別なアドレスのチェック
+ */
+
+/* IPv4 互換 */
 
 #ifdef _NET_CFG_BYTE_ORDER
@@ -160,5 +148,5 @@
 #endif
 
-/* IPv4 å°å½± */
+/* IPv4 射影 */
 
 #ifdef _NET_CFG_BYTE_ORDER
@@ -169,5 +157,5 @@
 #endif
 
-/* è¦è«ãã«ãã­ã£ã¹ã */
+/* 要請マルチキャスト */
 
 #ifdef _NET_CFG_BYTE_ORDER
@@ -182,5 +170,5 @@
 
 /*
- *  ã¢ãã¬ã¹æå¹æéæ§é ä½
+ *  アドレス有効時間構造体
  */
 
@@ -188,50 +176,47 @@
 
 	/*
-	 * expire ã¨ perferred ã¯ãã·ã¹ãã ãèµ·åãã¦ããã®çµéæé
+	 * expire と perferred は、システムが起動してからの経過時間
 	 */
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
-	uint32_t	preferred;	/* æ¨å¥¨æå¹æéãåããæå» [s]	*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]	*/
+	uint32_t	preferred;	/* 推奨有効時間が切れる時刻 [s]	*/
 
 	/*
-	 * vltime ã¨ pltime ã¯ãè¿½å /å¤æ´ãã¦ããã®ç¸å¯¾æé
+	 * vltime と pltime は、追加/変更してからの相対時間
 	 */
-	uint32_t	vltime;		/* æå¹æé [us]			*/
-	uint32_t	pltime;		/* æ¨å¥¨æå¹æé [us]		*/
+	uint32_t	vltime;		/* 有効時間 [us]			*/
+	uint32_t	pltime;		/* 推奨有効時間 [us]		*/
 	} __attribute__((packed, aligned(2)))T_IN6_ADDR_LIFETIME;
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½
+ *  インタフェースアドレス構造体
  */
 
 typedef struct t_in6_ifaddr {
-	T_IN6_ADDR		addr;		/* IPv6 ã¢ãã¬ã¹		*/
-	T_IN6_ADDR_LIFETIME	lifetime;	/* æå¹æé		*/
-	uint8_t			flags;		/* ãã©ã°		*/
-	uint8_t			prefix_len;	/* ãã¬ãã£ãã¯ã¹é·	*/
-	uint8_t			router_index;	/* ã«ã¼ã¿ã¤ã³ããã¯ã¹	*/
-	uint8_t			prefix_index;	/* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹	*/
-	uint8_t			na_icount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥ã®å
-¥ååæ°	*/
-	uint8_t			ns_icount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®å
-¥ååæ°	*/
-	uint8_t			ns_ocount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®åºååæ°	*/
+	T_IN6_ADDR		addr;		/* IPv6 アドレス		*/
+	T_IN6_ADDR_LIFETIME	lifetime;	/* 有効時間		*/
+	uint8_t			flags;		/* フラグ		*/
+	uint8_t			prefix_len;	/* プレフィックス長	*/
+	uint8_t			router_index;	/* ルータインデックス	*/
+	uint8_t			prefix_index;	/* プレフィックスインデックス	*/
+	uint8_t			na_icount;	/* 重複アドレス検出 (DAD) 通知の入力回数	*/
+	uint8_t			ns_icount;	/* 重複アドレス検出 (DAD) 要請の入力回数	*/
+	uint8_t			ns_ocount;	/* 重複アドレス検出 (DAD) 要請の出力回数	*/
 	} __attribute__((packed, aligned(2)))T_IN6_IFADDR;
 
 /*
- *  ã¢ãã¬ã¹ç¶æ
-ãã©ã°
- */
-
-#define IN6_IFF_ANYCAST		UINT_C(0x01)	/* ã¨ãã¼ã­ã£ã¹ã	*/
-#define IN6_IFF_DEFINED		UINT_C(0x02)	/* å®ç¾©æ¸ã¿		*/
-#define IN6_IFF_TENTATIVE	UINT_C(0x04)	/* éè¤æ¤åºä¸­		*/
-#define IN6_IFF_DUPLICATED	UINT_C(0x08)	/* éè¤ãæ¤åºãã	*/
-#define IN6_IFF_DEPRECATED	UINT_C(0x10)	/* éæ¨å¥¨		*/
-#define IN6_IFF_NODAD		UINT_C(0x20)	/* éè¤æ¤åºä¸è¦		*/
-#define IN6_IFF_AUTOCONF	UINT_C(0x40)	/* èªåè¨­å®ããã	*/
-#define IN6_IFF_DETACHED	UINT_C(0x80)	/* éä½¿ç¨		*/
-
-/*
- *  ã¢ãã¬ã¹ã®æå¹æ§ãã§ãã¯
+ *  アドレス状態フラグ
+ */
+
+#define IN6_IFF_ANYCAST		UINT_C(0x01)	/* エニーキャスト	*/
+#define IN6_IFF_DEFINED		UINT_C(0x02)	/* 定義済み		*/
+#define IN6_IFF_TENTATIVE	UINT_C(0x04)	/* 重複検出中		*/
+#define IN6_IFF_DUPLICATED	UINT_C(0x08)	/* 重複を検出した	*/
+#define IN6_IFF_DEPRECATED	UINT_C(0x10)	/* 非推奨		*/
+#define IN6_IFF_NODAD		UINT_C(0x20)	/* 重複検出不要		*/
+#define IN6_IFF_AUTOCONF	UINT_C(0x40)	/* 自動設定された	*/
+#define IN6_IFF_DETACHED	UINT_C(0x80)	/* 非使用		*/
+
+/*
+ *  アドレスの有効性チェック
  */
 
@@ -248,5 +233,5 @@
 
 /*
- *  ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹
+ *  ルータのインデックス
  */
 
@@ -254,13 +239,11 @@
 
 /*
- *  å¶éå¤
- */
-
-#define IP6_HDR_NEST_LIMIT	50	/* IPv6 ãããã®ãã¹ãå¶éå¤	*/
-
-/*
- *  ã¢ãã¬ã¹æ
-å ±é
-åã®ã¤ã³ããã¯ã¹
+ *  制限値
+ */
+
+#define IP6_HDR_NEST_LIMIT	50	/* IPv6 ヘッダのネスト制限値	*/
+
+/*
+ *  アドレス情報配列のインデックス
  */
 
@@ -269,42 +252,39 @@
 
 /*
- *  IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
-åã®ã¤ã³ããã¯ã¹
- */
-
-#define IPV6_MADDR_IX_SOL_NODE		0	/* è¦è«ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹			*/
-#define IPV6_MADDR_IX_LL_ALL_NODE	1	/* å
-¨ãã¼ãã»ãªã³ã¯ã­ã¼ã«ã«ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹	*/
+ *  IPv6 マルチキャストアドレス配列のインデックス
+ */
+
+#define IPV6_MADDR_IX_SOL_NODE		0	/* 要請マルチキャスト・アドレス			*/
+#define IPV6_MADDR_IX_LL_ALL_NODE	1	/* 全ノード・リンクローカル・マルチキャストアドレス	*/
 #define IPV6_MADDR_IX_EXTRA		2
 
 #define MAX_IN6_MADDR_CNT		MAX_IF_MADDR_CNT
-						/* IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
-åã®æå¤§ãµã¤ãº	*/
-
-/* ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ */
+						/* IPv6 マルチキャストアドレス配列の最大サイズ	*/
+
+/* ルーティング表エントリ構造体 */
 
 typedef struct t_in6_rtentry {
-	T_IN6_ADDR	target;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹	*/
-	T_IN6_ADDR	gateway;	/* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹	*/
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
-	uint8_t		flags;		/* ãã©ã°			*/
-	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
+	T_IN6_ADDR	target;		/* 目標ネットワークアドレス	*/
+	T_IN6_ADDR	gateway;	/* ゲートウェイの IP アドレス	*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]	*/
+	uint8_t		flags;		/* フラグ			*/
+	uint8_t		prefix_len;	/* プレフィックス長		*/
 	} __attribute__((packed, aligned(2)))T_IN6_RTENTRY;
 
 /*
- *  ãã¹ãã­ã£ãã·ã¥
- */
-
-/* ãã¹ãã­ã£ãã·ã¥æ§é ä½ */
+ *  ホストキャッシュ
+ */
+
+/* ホストキャッシュ構造体 */
 
 typedef struct t_in6_hostcache_entry {
-	T_IN6_ADDR	dst;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹	*/
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
+	T_IN6_ADDR	dst;		/* 目標ネットワークアドレス	*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]	*/
 	uint32_t	mtu;		/* Path MTU			*/
 	} __attribute__((packed, aligned(2)))T_IN6_HOSTCACHE_ENTRY;
 
-#define IN6_HOSTCACHE_EXPIRE	(60*60*SYSTIM_HZ)	/* æå¹æé	*/
-#define IN6_HOSTCACHE_PRUNE	(5*60*SYSTIM_HZ)	/* æ´æ°éé	*/
-#define IN6_HOSTCACHE_INCREASE	(10*60*SYSTIM_HZ)	/* å¢å ããå ´åã®ä¿è­·æé	*/
+#define IN6_HOSTCACHE_EXPIRE	(60*60*SYSTIM_HZ)	/* 有効時間	*/
+#define IN6_HOSTCACHE_PRUNE	(5*60*SYSTIM_HZ)	/* 更新間隔	*/
+#define IN6_HOSTCACHE_INCREASE	(10*60*SYSTIM_HZ)	/* 増加する場合の保護時間	*/
 
 #define IN6_IS_HOSTCACHE_FREE(e)	IN6_IS_ADDR_UNSPECIFIED(&((e)->dst))
@@ -312,5 +292,5 @@
 
 /*
- *  ã«ã¼ãã£ã³ã°è¡¨
+ *  ルーティング表
  */
 
@@ -318,6 +298,5 @@
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -331,5 +310,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -337,5 +316,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -345,5 +324,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6.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 @@
 
 /*
- *  IPv6 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  IPv6 で使用するカーネルオブジェクト
  */
 
 #ifdef _IP6_CFG
 
-/* è¿é£ã­ã£ãã·ã¥ */
+/* 近隣キャッシュ */
 
 CRE_SEM(SEM_ND6_CACHE, { TA_TPRI, 1, 1 });
@@ -56,5 +44,5 @@
 #if NUM_ND6_DEF_RTR_ENTRY > 0
 
-/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã */
+/* ディフォルトルータ・リスト */
 
 CRE_SEM(SEM_ND6_DEFRTRLIST, { TA_TPRI, 1, 1 });
@@ -64,5 +52,5 @@
 #ifdef IP6_CFG_FRAGMENT
 
-/* åå²ããã */
+/* 分割ヘッダ */
 
 CRE_SEM(SEM_IP6_FRAG_QUEUE, { TA_TPRI, 1, 1 });
@@ -72,5 +60,5 @@
 #if NUM_IN6_ROUTE_ENTRY > 0
 
-/* ã«ã¼ãã£ã³ã°è¡¨ */
+/* ルーティング表 */
 
 CRE_SEM(SEM_IN6_ROUTING_TBL, { TA_TPRI, 1, 1 });
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_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$
@@ -161,5 +149,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -167,21 +155,20 @@
 
 /*
- *  ä¸ä½ãã­ãã³ã«é¸ææ§é ä½
+ *  上位プロトコル選択構造体
  */
 
 typedef struct t_proto_switch {
-	uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *);	/* å
-¥åé¢æ°		*/
-	uint_t proto;						/* ãã­ãã³ã«çªå·	*/
+	uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *);	/* 入力関数		*/
+	uint_t proto;						/* プロトコル番号	*/
 	} T_PROTO_SWITCH;
 
 static const T_PROTO_SWITCH proto_switch[] = {
-	{ esp6_input,	IPPROTO_ESP		},	/* IPv6 æå·åããã	*/
-	{ ah6_input,	IPPROTO_AH		},	/* IPv6 èªè¨¼ããã	*/
-	{ frag6_input,	IPPROTO_FRAGMENT	},	/* æ­çããã		*/
-	{ route6_input,	IPPROTO_ROUTING		},	/* çµè·¯å¶å¾¡ããã	*/
-	{ dest6_input,	IPPROTO_DSTOPTS		},	/* IPv6 çµç¹ãªãã·ã§ã³	*/
+	{ esp6_input,	IPPROTO_ESP		},	/* IPv6 暗号化ヘッダ	*/
+	{ ah6_input,	IPPROTO_AH		},	/* IPv6 認証ヘッダ	*/
+	{ frag6_input,	IPPROTO_FRAGMENT	},	/* 断片ヘッダ		*/
+	{ route6_input,	IPPROTO_ROUTING		},	/* 経路制御ヘッダ	*/
+	{ dest6_input,	IPPROTO_DSTOPTS		},	/* IPv6 終点オプション	*/
 	{ ip6_no_header_input,
-			IPPROTO_NONE		},	/* æ¬¡ãããç¡ã		*/
+			IPPROTO_NONE		},	/* 次ヘッダ無し		*/
 	{ icmp6_input,	IPPROTO_ICMPV6		},
 
@@ -207,5 +194,5 @@
 
 /*
- *  get_upper_proto -- ä¸ä½ãã­ãã³ã«å¦çé¢æ°ãè¿ãã
+ *  get_upper_proto -- 上位プロトコル処理関数を返す。
  */
 
@@ -222,6 +209,5 @@
 
 /*
- *  ip6_no_header_input -- æ¬¡ããããç¡ãã®å ´åã®å
-¥åå¦ç
+ *  ip6_no_header_input -- 次ヘッダが無しの場合の入力処理
  */
 
@@ -234,16 +220,13 @@
 
 /*
- *  ip6_hopopts_input -- ä¸­ç¶ç¹ãªãã·ã§ã³å
-¥åå¦ç
- *
- *    æ¬å®è£
-ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå
-¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã
- *
- *    æ»ãå¤:
- *
- *      0 ä»¥ä¸ 		æ­£å¸¸
- *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
- *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ *  ip6_hopopts_input -- 中継点オプション入力処理
+ *
+ *    本実装では、パディング以外のオプションを全て未知オプションとして処理する。
+ *
+ *    戻り値:
+ *
+ *      0 以上 		正常
+ *      IP6_OPT_RET_ERR (-1)	エラー、呼出側でネットワークバッファを開放する。
+ *      IP6_OPT_RET_REL (-2)	エラー、ネットワークバッファは開放されている。
  */
 
@@ -293,7 +276,7 @@
 
 /*
- *  ip6_get_prev_hdr -- ç´åã®æ¡å¼µãããã® next ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãè¿ãã
- *
- *    æ³¨æ: off ã«ã¯ IF_HDR_SIZE ãå«ã¾ãã¦ããã
+ *  ip6_get_prev_hdr -- 直前の拡張ヘッダの next フィールドのアドレスを返す。
+ *
+ *    注意: off には IF_HDR_SIZE も含まれている。
  */
 
@@ -339,5 +322,5 @@
 
 /*
- *  ip6_init -- IPv6 ã®åæåé¢æ°
+ *  ip6_init -- IPv6 の初期化関数
  */
 
@@ -350,6 +333,5 @@
 
 /*
- *  ip6_input -- IPv6 ã®å
-¥åé¢æ°
+ *  ip6_input -- IPv6 の入力関数
  */
 
@@ -368,5 +350,5 @@
 	NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInReceives, 1);
 
-	/* IP ãããã®é·ãããã§ãã¯ããã*/
+	/* IP ヘッダの長さをチェックする。*/
 	if (input->len < IF_IP6_HDR_SIZE) {
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
@@ -377,5 +359,5 @@
 	ip6h = GET_IP6_HDR(input);
 
-	/* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/
+	/* バージョンをチェックする。*/
 	if (IP6_VCF_V(ntohl(ip6h->vcf)) != IPV6_VERSION) {
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_VER], 1);
@@ -385,22 +367,22 @@
 
 	/*
-	 *  æ¬¡ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã
+	 *  次のデータグラムは破棄する。
 	 *
-	 *    ã»å§ç¹ã¢ãã¬ã¹ããã«ãã­ã£ã¹ã
-	 *    ã»çµç¹ã¢ãã¬ã¹ãæªå®ç¾©
+	 *    ・始点アドレスがマルチキャスト
+	 *    ・終点アドレスが未定義
 	 *
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã«ã¼ãããã¯ã§ãªãã¨ãã
-	 *  æ¬¡ã®ãã¼ã¿ã°ã©ã ãç ´æ£ããã
+	 *  ネットワークインタフェースがループバックでないとき、
+	 *  次のデータグラムも破棄する。
 	 *
-	 *    ã»å§ç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯
-	 *    ã»çµç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯
+	 *    ・始点アドレスがループバック
+	 *    ・終点アドレスがループバック
 	 *
-	 *  æªæã®ããã¦ã¼ã¶ã TCP/UDP ã¹ã¿ãã¯ã®æ··ä¹±ã
-	 *  ã»ã­ã¥ãªãã£ãã§ãã¯ããã¤ãã¹ãããããIPv4
-	 *  ãããã¢ãã¬ã¹ãæªç¨ãããã¨ãé²ããã
-	 *  ä»¥ä¸ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã  
+	 *  悪意のあるユーザが TCP/UDP スタックの混乱や
+	 *  セキュリティチェックをバイパスするため、IPv4
+	 *  マップアドレスを悪用することを防ぐため
+	 *  以下のデータグラムは破棄する。  
 	 *
-	 *    ã»å§ç¹ã¢ãã¬ã¹ã ::ffff:127.0.0.1
-	 *    ã»çµç¹ã¢ãã¬ã¹ã ::ffff:127.0.0.1
+	 *    ・始点アドレスが ::ffff:127.0.0.1
+	 *    ・終点アドレスが ::ffff:127.0.0.1
 	 */
 
@@ -435,6 +417,5 @@
 
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
-		/* å®å
-ããã«ãã­ã£ã¹ãã®å ´åã®å¦ç */
+		/* 宛先がマルチキャストの場合の処理 */
 		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInMcastPkts, 1);
 		if (!in6_lookup_multi(ifp, &ip6h->dst)) {
@@ -451,5 +432,5 @@
 			}
 
-		/*  ã¢ãã¬ã¹ãæªè§£æ±ºã®å ´åã¯ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/
+		/*  アドレスが未解決の場合はデータグラムを破棄する。*/
 		if (IFA6_IS_NOTREADY(ia6)) {
 			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
@@ -459,20 +440,20 @@
 		}
 
-	/* ãªãã»ãããè¨­å®ããã*/
+	/* オフセットを設定する。*/
 	offp  = GET_IP6_NEXT_HDR(input) - input->buf;
 
-	/* ãã¤ã­ã¼ãé·ãåãåºãã*/
+	/* ペイロード長を取り出す。*/
 	plen = ntohs(ip6h->plen);
 
 
-	/* æ¬¡ãããã®ä½ç½®ãåæåããã*/
+	/* 次ヘッダの位置を初期化する。*/
 	nextp = offsetof(T_IP6_HDR, next);
 
 	/*
-	 *  ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ãããã®ãã§ãã¯
+	 *  中継点 (Hop-by-Hop) オプションヘッダのチェック
 	 */
 	if (ip6h->next == IPPROTO_HOPOPTS) {
 
-		/* ä¸­ç¶ç¹ãããã®é·ãããã§ãã¯ããã*/
+		/* 中継点ヘッダの長さをチェックする。*/
 		if (plen < sizeof(T_IP6_HBH_HDR)) {
 			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
@@ -495,12 +476,10 @@
 
 		/*
-		 *  ãã¤ã­ã¼ãé·ã 0 ã§ãä¸­ç¶ç¹ãªãã·ã§ã³ãããã¨ãã¯ã
-		 *  å·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ãå«ã¾ããªããã°ãªããªãã
-		 *  ãã®ã¨ããå·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ã«ãã
-		 *  ãã¤ã­ã¼ãé·ããã§ãã¯ããå¿
-è¦ãããããæ¬å®è£
-ã§ã¯ã
-		 *  å·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ãæªç¥ã®ãªãã·ã§ã³ã¨ãã¦
-		 *  æ±ãã®ã§ãä½ãããªãã
+		 *  ペイロード長が 0 で、中継点オプションがあるときは、
+		 *  巨大ペイロード・オプションが含まれなければならない。
+		 *  このとき、巨大ペイロード・オプションにある
+		 *  ペイロード長をチェックする必要があるが、本実装では、
+		 *  巨大ペイロード・オプションを未知のオプションとして
+		 *  扱うので、何もしない。
 		 */
 		next = ((T_IP6_HBH_HDR *)(ip6h + 1))->next;
@@ -509,5 +488,5 @@
 		next = ip6h->next;
 
-	/* IPv6 ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/
+	/* IPv6 データグラム長をチェックする。*/
 	if (input->len - IF_IP6_HDR_SIZE < plen) {
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
@@ -518,5 +497,5 @@
 		input->len = IF_IP6_HDR_SIZE + plen;
 
-	/* ä¸ä½ãã­ãã³ã«å¦çé¢æ°ãå¼ã³åºãã*/
+	/* 上位プロトコル処理関数を呼び出す。*/
 	nest = 0;
 	while (next != IPPROTO_DONE) {
@@ -531,5 +510,5 @@
 			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInUnknownProtos, 1);
 
-			/* icmp6_error ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã*/
+			/* icmp6_error でネットワークバッファを開放する。*/
 			icmp6_error(input, ICMP6_PARAM_PROB,
 			                   ICMP6_PARAMPROB_NEXT_HEADER, nextp);
@@ -548,8 +527,8 @@
 
 /*
- *  ip6_nexthdr -- æ¬¡ã®ãããã®ãªãã»ãããè¿ãã
- *
- *    æ»ãå¤ == -1 : æå¾ã®ããããã¾ãã¯ã¨ã©ã¼ã
- *    æ»ãå¤ >   0 : ããã«ããããç¶ãã
+ *  ip6_nexthdr -- 次のヘッダのオフセットを返す。
+ *
+ *    戻り値 == -1 : 最後のヘッダ、またはエラー。
+ *    戻り値 >   0 : さらにヘッダが続く。
  */
 
@@ -569,9 +548,9 @@
 		break;
 
-	case IPPROTO_FRAGMENT:			/* æ­çããã */
+	case IPPROTO_FRAGMENT:			/* 断片ヘッダ */
 		if (nbuf->len < off + sizeof(T_IP6_FRAG_HDR))
 			return (ER_UINT)-1;
 
-		/* ä¸­éã®ãã©ã°ã¡ã³ãã®å ´åã¯å¦çããããã*/
+		/* 中間のフラグメントの場合は処理をやめる。*/
 		ip6fh = (T_IP6_FRAG_HDR *)(nbuf->buf + off);
 		if (ntohs(ip6fh->off_flag) & IP6F_MORE_FRAG)
@@ -582,8 +561,8 @@
 		break;
 
-	case IPPROTO_AH:		/* IPv6 èªè¨¼ããã			*/
-	case IPPROTO_HOPOPTS:		/* IPv6 ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
-	case IPPROTO_ROUTING:		/* çµè·¯å¶å¾¡ããã			*/
-	case IPPROTO_DSTOPTS:		/* IPv6 çµç¹ãªãã·ã§ã³			*/
+	case IPPROTO_AH:		/* IPv6 認証ヘッダ			*/
+	case IPPROTO_HOPOPTS:		/* IPv6 中継点 (Hop-by-Hop) オプション	*/
+	case IPPROTO_ROUTING:		/* 経路制御ヘッダ			*/
+	case IPPROTO_DSTOPTS:		/* IPv6 終点オプション			*/
 		if (nbuf->len < off + sizeof(T_IP6_EXT_HDR))
 			return (ER_UINT)-1;
@@ -602,5 +581,5 @@
 
 /*
- *  ip6_lasthdr -- æå¾ã®ãããã®ãªãã»ãããè¿ãã
+ *  ip6_lasthdr -- 最後のヘッダのオフセットを返す。
  */
 
@@ -621,11 +600,11 @@
 
 /*
- *  ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç
- *
- *    æ»ãå¤:
- *
- *      0 ä»¥ä¸ 			æ­£å¸¸ããªãã·ã§ã³é·ã
- *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
- *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ *  ip6_unknown_opt -- 未知のオプションの処理
+ *
+ *    戻り値:
+ *
+ *      0 以上 			正常、オプション長。
+ *      IP6_OPT_RET_ERR (-1)	エラー、呼出側でネットワークバッファを開放する。
+ *      IP6_OPT_RET_REL (-2)	エラー、ネットワークバッファは開放されている。
  */
 
@@ -634,12 +613,12 @@
 {
 	switch (IP6OPT_TYPE(*opt)) {
-	case IP6OPT_TYPE_SKIP:		/* ç¡è¦ããã			*/
+	case IP6OPT_TYPE_SKIP:		/* 無視する。			*/
 		return *(opt + 1);
 		break;
-	case IP6OPT_TYPE_ICMP:		/* ç ´æ£ãã¦ããã«ãã­ã£ã¹ãã§ãªããã° ICMP ãè¿éããã	*/
+	case IP6OPT_TYPE_ICMP:		/* 破棄して、マルチキャストでなければ ICMP を返送する。	*/
 		if (IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst))
 			return IP6_OPT_RET_ERR;
 		/* no break; */
-	case IP6OPT_TYPE_FORCEICMP:	/* ç ´æ£ãã¦ãICMP ãè¿éããã	*/
+	case IP6OPT_TYPE_FORCEICMP:	/* 破棄して、ICMP を返送する。	*/
 		icmp6_error(input, ICMP6_PARAM_PROB,
 		                   ICMP6_PARAMPROB_OPTION,
@@ -647,5 +626,5 @@
 		return IP6_OPT_RET_REL;
 		break;
-	/*case IP6OPT_TYPE_DISCARD:	ãã¼ã¿ã°ã©ã ãç ´æ£ããã	*/
+	/*case IP6OPT_TYPE_DISCARD:	データグラムを破棄する。	*/
 		}
 
@@ -654,5 +633,5 @@
 
 /*
- *  ip6_remove_exthdrs -- IPv6 æ¡å¼µããããåé¤ããä»¥éãåã«è©°ããã
+ *  ip6_remove_exthdrs -- IPv6 拡張ヘッダを削除し、以降を前に詰める。
  */
 
@@ -663,8 +642,8 @@
 	uint_t	next;
 
-	/* éå§ãªãã»ããã IP ãããã«è¨­å®ããã*/
+	/* 開始オフセットを IP ヘッダに設定する。*/
 	off = ((uint8_t *)GET_IP6_HDR(nbuf)) - nbuf->buf;
 
-	/* æçµããããæ¢ç´¢ããã*/
+	/* 最終ヘッダを探索する。*/
 	off = ip6_lasthdr(nbuf, off, IPPROTO_IPV6, &next);
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_output.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_output.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_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$
@@ -154,14 +142,13 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/* ãªã³ã¯ MTU */
+ *  全域変数
+ */
+
+/* リンク MTU */
 
 uint32_t	linkmtu = IF_MTU;
 
 /*
- *  å±æå¤æ°
+ *  局所変数
  */
 
@@ -173,5 +160,5 @@
 
 /*
- *  ip6_output -- IPv6 ã®åºåé¢æ°
+ *  ip6_output -- IPv6 の出力関数
  */
 
@@ -204,7 +191,6 @@
 
 	/*
-	 *  éè¤ã¢ãã¬ã¹æ¤åºè¦è«ä»¥å¤ã«ã¯ãéä¿¡å
-ã¢ãã¬ã¹ã«
-	 *  ç¡æå®ãæå®ã§ããªãã
+	 *  重複アドレス検出要請以外には、送信元アドレスに
+	 *  無指定を指定できない。
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) && (flags & IPV6_OUT_FLG_DAD) == 0) {
@@ -213,6 +199,5 @@
 		}
 
-	/* éä¿¡å
-ã¢ãã¬ã¹ã«ã¯ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãæå®ã§ããªãã*/
+	/* 送信元アドレスにはマルチキャストアドレスを指定できない。*/
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->src)) {
 		error = E_PAR;
@@ -221,5 +206,5 @@
 
 	/*
-	 *  çµè·¯é¸æãè¡ãã
+	 *  経路選択を行う。
 	 */
 	if ((gw = in6_rtalloc(ifp, &ip6h->dst)) == NULL) {
@@ -229,8 +214,8 @@
 
 	if (!IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
-		/* ã¦ãã­ã£ã¹ãã¢ãã¬ã¹ã®å¦ç */
+		/* ユニキャストアドレスの処理 */
 		}
 	else {
-		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å¦ç */
+		/* マルチキャストアドレスの処理 */
 		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutMcastPkts, 1);
 		if (flags & IPV6_OUT_FLG_HOP_LIMIT)
@@ -240,5 +225,5 @@
 		}
 
-	/* Traffic Class ã¨ Flow Label ããµãã¼ãããªãã®ã§ 0 ã«è¨­å®ããã*/
+	/* Traffic Class と Flow Label をサポートしないので 0 に設定する。*/
 	ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
 
@@ -253,7 +238,7 @@
 
 		/*
-		 *  Path MTU ãç»é²ããã¦ããå ´åã
-		 *  MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ã®å ´åã¯ã
-		 *  MTU ã IPv6 MMTU ã«è¨­å®ãåå²ãã¦éä¿¡ããã
+		 *  Path MTU が登録されている場合、
+		 *  MTU が IPv6 MMTU（1280 オクテット）以下の場合は、
+		 *  MTU を IPv6 MMTU に設定し分割して送信する。
 		 */
 		mtu = IPV6_MMTU;
@@ -272,6 +257,5 @@
 	if (plen + IP6_HDR_SIZE <= mtu && !alwaysfrag) {
 
-		/* åå²ããå¿
-è¦ããªãã¨ãã®å¦ç */
+		/* 分割する必要がないときの処理 */
 		if ((error = nd6_output(ifp, output, gw, NULL, tmout)) != E_OK) {
 			NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1);
@@ -281,18 +265,16 @@
 	else {
 
-		/* æ­ç ID ãè¨­å®ããã*/
+		/* 断片 ID を設定する。*/
 		id = ip6_id ++;
 
-		/* MTU ã IPv6 ã®æå¤§ãã±ãããµã¤ãºãè¶
-ããªãããã«ããã*/
+		/* MTU が IPv6 の最大パケットサイズを超えないようにする。*/
 		if (mtu > IPV6_MAXPACKET)
 			mtu = IPV6_MAXPACKET;
 
 		/*
-		 *  MTU ãããåå²ä¸è½é¨åï¼TINET-1.4 ã§ã¯ãåå²ãããä»¥å¤ã®
-		 *  æ¡å¼µãããã®åºåã¯æªå®è£
-ã®ãã 0 ãªã¯ãããï¼
-		 *  ã¨æ­çãããã®ãµã¤ãºãå¼ããã¨ãã8 ãªã¯ãããä»¥ä¸ãªããã°
-		 *  åå²ãã¦éä¿¡ã§ããªãããã¨ã©ã¼ã«ããã
+		 *  MTU から、分割不能部分（TINET-1.4 では、分割ヘッダ以外の
+		 *  拡張ヘッダの出力は未実装のため 0 オクテット）
+		 *  と断片ヘッダのサイズを引いたとき、8 オクテット以上なければ
+		 *  分割して送信できないためエラーにする。
 		 */
 		if (((mtu - sizeof(T_IP6_FRAG_HDR)) & ~7) < 8) {
@@ -302,17 +284,16 @@
 
 		/*
-		 *  IPv6 ãããã® next ãã£ã¼ã«ãã«è¨­å®ããå¤ã¯ãæ­çãããã
-		 *  æ­çãããã®  next ãã£ã¼ã«ãã«è¨­å®ããå¤ã¯ã
-		 *  å
-ã®ãã¼ã¿ã°ã©ã ã® next ãã£ã¼ã«ãã®å¤ã
+		 *  IPv6 ヘッダの next フィールドに設定する値は、断片ヘッダ。
+		 *  断片ヘッダの  next フィールドに設定する値は、
+		 *  元のデータグラムの next フィールドの値。
 		 */
 		nextproto  = ip6h->next;
 		ip6h->next = IPPROTO_FRAGMENT;
 
-		/* åå²ãã¦éä¿¡ããã*/
+		/* 分割して送信する。*/
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT], 1);
 		for (foff = 0; foff < plen; foff += flen) {
 
-			/* æ­çã®é·ããè¨ç®ãã8 ãªã¯ãããå¢çã«èª¿æ´ããã*/
+			/* 断片の長さを計算し、8 オクテット境界に調整する。*/
 			if (foff + (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) < plen)
 				flen = (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) >> 3 << 3;
@@ -320,15 +301,15 @@
 				flen = plen - foff;
 
-			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			/* ネットワークバッファを獲得する。*/
 			if (tget_net_buf(&frag, flen + IF_IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR), TMO_IP6_FRAG_GET_NET_BUF) == E_OK) {
 
-				/* IPv6 ããããã³ãã¼ããã*/
+				/* IPv6 ヘッダをコピーする。*/
 				fip6h = GET_IP6_HDR(frag);
 				*fip6h = *ip6h;
 
-				/* IPv6 ããããåããã*/
+				/* IPv6 ヘッダを埋める。*/
 				fip6h->plen	= htons(flen + sizeof(T_IP6_FRAG_HDR));
 
-				/* æ­çããããåããã*/
+				/* 断片ヘッダを埋める。*/
 				fip6f = (T_IP6_FRAG_HDR *)GET_IP6_NEXT_HDR(frag);
 				fip6f->off_flag	= htons((uint16_t)(foff & ~7));
@@ -339,10 +320,10 @@
 				fip6f->next	= nextproto;
 
-				/* SDU ãã³ãã¼ããã*/
+				/* SDU をコピーする。*/
 				memcpy((uint8_t*)(fip6f + 1), GET_IP6_NEXT_HDR(output) + foff, flen);
 				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT_FRAGS], 1);
 				NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragCreates, 1);
 
-				/* éä¿¡ããã*/
+				/* 送信する。*/
 				if ((error = nd6_output(ifp, frag, gw, NULL, tmout)) != E_OK) {
 					NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragFails, 1);
@@ -351,5 +332,5 @@
 				}
 			else {
-				/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ã§ããªããã°ãéä¿¡ããããããã*/
+				/* ネットワークバッファが獲得できなければ、送信をあきらめる。*/
 				error = E_NOMEM;
 				goto drop;
@@ -357,5 +338,5 @@
 			}
 
-		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		/* IF でネットワークバッファを開放しないフラグをチェックする。*/
 		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 			syscall(rel_net_buf(output));
@@ -379,5 +360,5 @@
 
 drop:
-	/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+	/* IF でネットワークバッファを開放しないフラグをチェックする。*/
 	if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 		syscall(rel_net_buf(output));
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_var.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_var.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ip6_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$
@@ -115,5 +103,5 @@
 
 /*
- *  IPv6 ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv6 ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -131,10 +119,10 @@
 #define SET_IP6_SDU_SIZE(nbuf,slen)	(GET_IP6_HDR(nbuf)->plen=htons(slen))
 
-/* ip6_output ã®ãã©ã° */
-
-#define IPV6_OUT_FLG_DAD		0x0100	/* éè¤ã¢ãã¬ã¹æ¤åº	*/
-#define IPV6_OUT_FLG_HOP_LIMIT		0x0200	/* ããããªãããæå®	*/
-
-/* ããããªããããã©ã°ãä»ãæãããããªãããå¤ãæä½ãããã¯ã­ */
+/* ip6_output のフラグ */
+
+#define IPV6_OUT_FLG_DAD		0x0100	/* 重複アドレス検出	*/
+#define IPV6_OUT_FLG_HOP_LIMIT		0x0200	/* ホップリミット指定	*/
+
+/* ホップリミットフラグが付く時、ホップリミット値を操作するマクロ */
 
 #define IPV6_OUT_GET_HOP_LIMIT(f)	((f)&0x00ff)
@@ -142,11 +130,11 @@
 
 /*
- *  ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç
- *
- *    æ»ãå¤:
- *
- *      0 ä»¥ä¸ 			æ­£å¸¸ããªãã·ã§ã³é·ã
- *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
- *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ *  ip6_unknown_opt -- 未知のオプションの処理
+ *
+ *    戻り値:
+ *
+ *      0 以上 			正常、オプション長。
+ *      IP6_OPT_RET_ERR (-1)	エラー、呼出側でネットワークバッファを開放する。
+ *      IP6_OPT_RET_REL (-2)	エラー、ネットワークバッファは開放されている。
  */
 
@@ -155,5 +143,5 @@
 
 /*
- *  IPv6 ã® MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  IPv6 の MMTU サイズのネットワークバッファ
  */
 
@@ -161,7 +149,7 @@
 
 typedef struct t_net_buf_ipv6_mmtu {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		unit;	/* ã¤ã³ã¿ãã§ã¼ã¹çªå·	*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		unit;	/* インタフェース番号	*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -171,5 +159,5 @@
 #endif
 	uint8_t		buf[IF_HDR_SIZE + IPV6_MMTU];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF_IPV6_MMTU;
 
@@ -177,11 +165,11 @@
 
 /*
- *  65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  65536 オクテットサイズのネットワークバッファ
  */
 
 typedef struct t_net_buf6_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];
@@ -191,8 +179,8 @@
 #endif
 	uint8_t		buf[IF_IP6_HDR_SIZE + 65536];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 #if defined(IF_PDU_HDR_PADDING)
 	uint8_t		padding[IF_PDU_HDR_PADDING];
-#endif				/* ãããã®ä½å		*/
+#endif				/* ヘッダの余分		*/
 	} T_NET_BUF6_65536;
 
@@ -200,5 +188,5 @@
 
 /*
- *  åæ§æã­ã¥ã¼ç¨ IPv6 ãããã®å®ç¾©
+ *  再構成キュー用 IPv6 ヘッダの定義
  */
 
@@ -211,8 +199,8 @@
 	uint8_t		hlim;		/* Hop Limit				*/
 	T_IN6_ADDR	src;		/* Source Address			*/
-	T_NET_BUF	*next_frag;	/* æ¬¡ã® IPv6 ãã©ã°ã¡ã³ã	*/
-	uint16_t	foff;		/* æ­çãããã®ãªãã»ãã		*/
-	uint16_t	flen;		/* æ­çé·				*/
-	uint16_t	ftim;		/* åæ§æã¿ã¤ã ã¢ã¦ã			*/
+	T_NET_BUF	*next_frag;	/* 次の IPv6 フラグメント	*/
+	uint16_t	foff;		/* 断片ヘッダのオフセット		*/
+	uint16_t	flen;		/* 断片長				*/
+	uint16_t	ftim;		/* 再構成タイムアウト			*/
 	uint16_t	dummy1;
 	uint8_t		dummy2[sizeof(T_IN6_ADDR) - (sizeof(T_NET_BUF*) + sizeof(uint16_t) * 4)];
@@ -229,11 +217,11 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡
+ *  データグラム再構成用ネットワークバッファ
  */
 
 typedef struct t_net_buf6_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];
@@ -243,5 +231,5 @@
 #endif
 	uint8_t		buf[IP6_CFG_FRAG_REASSM_SIZE];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF6_REASSM;
 
@@ -249,5 +237,5 @@
 
 /*
- *  TCP ã®åæ§æã­ã¥ã¼ã«ããã IPv6 ãããã®å®ç¾©
+ *  TCP の再構成キューにおける IPv6 ヘッダの定義
  */
 
@@ -256,5 +244,5 @@
 	uint8_t cf;		/* Traffic Class:  8 bit		*/
 			/* Flow Label:     4 bit (20 bit)	*/
-	uint16_t thoff;	/* TCP ãããã®ãªãã»ãã		*/
+	uint16_t thoff;	/* TCP ヘッダのオフセット		*/
 	uint16_t plen;	/* Payload Length			*/
 	uint8_t next;	/* Next Header				*/
@@ -267,6 +255,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -299,5 +286,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -305,5 +292,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg	(revision 389)
@@ -7,39 +7,27 @@
  *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, 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,5 +35,5 @@
 
 /*
- *  IPsec ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  IPsec で使用するカーネルオブジェクト
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6.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$
@@ -132,5 +120,5 @@
 
 /*
- *  è¿é£ã­ã£ãã·ã¥
+ *  近隣キャッシュ
  */
 
@@ -138,5 +126,5 @@
 
 /*
- *  nd6_free -- ã«ã¼ã¿ãåé¤ããã
+ *  nd6_free -- ルータを削除する。
  */
 
@@ -150,5 +138,5 @@
 		ln->state = ND6_LLINFO_INCOMPLETE;
 
-		/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/
+		/* プレフィックス・リストからルータを削除する。*/
 		nd6_defrtrlist_del(dr);
 		}
@@ -156,5 +144,5 @@
 
 /*
- *  nd6_timer -- è¿é£æ¢ç´¢ç®¡çã¿ã¤ãã¼
+ *  nd6_timer -- 近隣探索管理タイマー
  */
 
@@ -167,5 +155,5 @@
 	int_t		ix;
 
-	/* è¿é£ã­ã£ãã·ã¥ã®å¦ç */
+	/* 近隣キャッシュの処理 */
 	syscall(wai_sem(SEM_ND6_CACHE));
 	syscall(get_tim(&now));
@@ -177,11 +165,11 @@
 			switch (ln->state) {
 
-			case ND6_LLINFO_INCOMPLETE:	/* æªè§£æ±º		*/
+			case ND6_LLINFO_INCOMPLETE:	/* 未解決		*/
 				if (ln->asked < ND6_MAX_MCAST_QUERY) {
 					/*
-					 *  ãã«ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç
+					 *  マルチキャストアドレス要請の再送回数以下の場合の処理
 					 */
 					ln->asked ++;
-					ln->expire = now + ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+					ln->expire = now + ND6_RETRANS_TIME;	/* 近隣探索送信間隔 */
 					nd6_ns_output(ifp, &in6_addr_unspecified, &ln->addr, ln, false);
 					}
@@ -189,13 +177,11 @@
 					if (ln->hold != NULL) {
 						/*
-						 *  æçµçã«ã¯ãä¿çããã¦ãããããã¯ã¼ã¯ãããã¡ã
-						 *  ããã°ãICMP6 ERROR ãèªåèªèº«ã«è¿ãããã¨ã
-						 *  ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
-						 *  ããããç¾å¨ãicmp6_error ã®å®è£
-ãä¸å®å
-¨ã®ããã
-						 *  ãããã¯ã¼ã¯ãããã¡ã®éæ¾ã®ã¿è¡ãã
+						 *  最終的には、保留されているネットワークバッファが
+						 *  あれば、ICMP6 ERROR を自分自身に返したあと、
+						 *  ネットワークバッファを開放する。
+						 *  しかし、現在、icmp6_error の実装が不完全のため、
+						 *  ネットワークバッファの開放のみ行う。
 						 */
-#if 0	/* ä¿ç */
+#if 0	/* 保留 */
 						icmp6_error(ln->hold, ICMP6_DST_UNREACH,
 						                      ICMP6_DST_UNREACH_ADDR, 0);
@@ -209,5 +195,5 @@
 				break;
 
-			case ND6_LLINFO_REACHABLE:	/* å°éå¯è½		*/
+			case ND6_LLINFO_REACHABLE:	/* 到達可能		*/
 				if (ln->expire) {
 					ln->expire = now + ND6_GCOLLECTION_TIME;
@@ -216,5 +202,5 @@
 				break;
 
-			case ND6_LLINFO_STALE:		/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
+			case ND6_LLINFO_STALE:		/* 到達可能性は未確認	*/
 				if (ln->expire) {
 					if (ln->hold != NULL) {
@@ -227,19 +213,18 @@
 				break;
 
-			case ND6_LLINFO_DELAY:		/* å°éå¯è½æ§ã®ç¢ºèªå¾
-æ©	*/
+			case ND6_LLINFO_DELAY:		/* 到達可能性の確認待機	*/
 				ln->asked = 1;
-				ln->expire = now + ND6_RETRANS_TIME;		/* è¿é£æ¢ç´¢éä¿¡éé */
+				ln->expire = now + ND6_RETRANS_TIME;		/* 近隣探索送信間隔 */
 				ln->state = ND6_LLINFO_PROBE;
 				nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
 				break;
 
-			case ND6_LLINFO_PROBE:		/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+			case ND6_LLINFO_PROBE:		/* 到達可能性を確認中	*/
 				if (ln->asked < ND6_MAX_UCAST_QUERY) {
 					/*
-					 *  ã¦ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç
+					 *  ユニキャストアドレス要請の再送回数以下の場合の処理
 					 */
 					ln->asked ++;
-					ln->expire += ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+					ln->expire += ND6_RETRANS_TIME;	/* 近隣探索送信間隔 */
 					nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
 					}
@@ -259,16 +244,15 @@
 	syscall(sig_sem(SEM_ND6_CACHE));
 
-	/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®å¦ç */
+	/* ディフォルトルータ・リストの処理 */
 	nd6_defrtrlist_timer();
 
-	/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®å¦ç */
+	/* プレフィックス・リストの処理 */
 	nd6_prelist_timer();
 
-	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®å¦ç */
+	/* ネットワークインタフェースのアドレスの処理 */
 	in6_ifaddr_timer(ifp);
 
 	/*
-	 *  å°éå¯è½ç¶æ
-ã®æå¹æéã®æ´æ°
+	 *  到達可能状態の有効時間の更新
 	 */
 	if ((int32_t)(nd6_recalc_reachtm_interval - now) < 0) {
@@ -281,5 +265,5 @@
 
 /*
- *  nd6_get_cache -- è¿é£ã­ã£ãã·ã¥ãç²å¾ããã
+ *  nd6_get_cache -- 近隣キャッシュを獲得する。
  */
 
@@ -291,5 +275,5 @@
 
 /*
- *  nd6_ifattach -- è¿é£æ¢ç´¢ã®åæè¨­å®ãè¡ãã
+ *  nd6_ifattach -- 近隣探索の初期設定を行う。
  */
 
@@ -300,10 +284,8 @@
 
 /*
- *  nd6_output_hold -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ã«ä¿çããã¦ãã
- *                     ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã
- *
- *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
-ã§å¼åºããã¨ã
+ *  nd6_output_hold -- 近隣探索キャッシュに保留されている
+ *                     アドレス解決待ちのデータグラムがあれば送信する。
+ *
+ *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
  */
 
@@ -313,15 +295,13 @@
 	SYSTIM now;
 
-	/* ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+	/* アドレス解決待ちのデータグラムがあれば送信する。*/
 	if (ln->hold) {
 
-		/* ã¿ã¤ã ã¢ã¦ãã®å¦ç */
+		/* タイムアウトの処理 */
 		if (ln->tmout != TMO_FEVR) {
 
 			/*
-			 *  ã¿ã¤ã ã¢ã¦ãã®æå®ãæ°¸ä¹
-ã§ãªããæéãéãã¦ããã°ã
-			 *  åºåããªãã§çµäºããã
+			 *  タイムアウトの指定が永久でなく、時間を過ぎていれば、
+			 *  出力しないで終了する。
 			 */
 			syscall(get_tim(&now));
@@ -341,8 +321,7 @@
 
 /*
- *  nd6_lookup -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæ¢ç´¢ããã
- *
- *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
-ã§å¼åºããã¨ã
+ *  nd6_lookup -- 近隣探索キャッシュを探索する。
+ *
+ *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
  *
  */
@@ -356,5 +335,5 @@
 	for (ix = NUM_ND6_CACHE_ENTRY; ix -- > 0; ) {
 		if (nd6_cache[ix].state == 0) {
-			/* æªä½¿ç¨ã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/
+			/* 未使用エントリのインデックスを記録する。*/
 			if (fix == -1)
 				fix = ix;
@@ -364,5 +343,5 @@
 			}
 		else if ((int32_t)(nd6_cache[ix].expire - min) < 0) {	/* nd6_cache[ix].expire < min */
-			/* æå¹æéãæç­ã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/
+			/* 有効期限が最短エントリのインデックスを記録する。*/
 			min = nd6_cache[ix].expire;
 			mix = ix;
@@ -388,5 +367,5 @@
 
 /*
- *  nd6_cache_lladdr -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ã«ç»é²ããã
+ *  nd6_cache_lladdr -- 近隣探索キャッシュに登録する。
  */
 
@@ -400,9 +379,9 @@
 	int_t		newstate = ND6_LLINFO_INCOMPLETE;
 
-	/* ã¢ãã¬ã¹ãç¡æå®ãªãä½ãããªãã*/
+	/* アドレスが無指定なら何もしない。*/
 	if (IN6_IS_ADDR_UNSPECIFIED(from))
 		return NULL;
 
-	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 近隣キャッシュに登録する。*/
 	syscall(wai_sem(SEM_ND6_CACHE));
 	if ((ln = nd6_lookup(from, false)) == NULL) {
@@ -422,9 +401,8 @@
 
 	/*
-	 *  ç¶æ
-é·ç§»è¡¨
+	 *  状態遷移表
 	 *
 	 *  nd_na_flags
-	 *  newnetry olladdr lladdr llchange å¦ç (L: lladdr ãç»é²ãã)
+	 *  newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する)
 	 *
 	 *      F       F       N       -    (1)
@@ -437,5 +415,5 @@
 	 */
 
-	/* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/
+	/* データリンク層のアドレスが通知されていれば更新する。*/
 	if (lladdr != NULL) {
 		ln->ifaddr = *(T_IF_ADDR *)lladdr;
@@ -459,5 +437,5 @@
 		}
 
-	/* è¿é£ã­ã£ãã·ã¥ã¨ã³ããªãæ´æ°ããã*/
+	/* 近隣キャッシュエントリを更新する。*/
 	if (doupdate) {
 		ln->state = newstate;
@@ -467,6 +445,5 @@
 			ln->expire = now + ND6_GCOLLECTION_TIME;
 
-			/* ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+			/* アドレス解決待ちのデータグラムがあれば送信する。*/
 			nd6_output_hold(ifp, ln);
 			}
@@ -477,5 +454,5 @@
 
 
-	/* ã«ã¼ã¿éç¥ã®å¦ç */
+	/* ルータ通知の処理 */
 	switch (type) {
 
@@ -507,5 +484,5 @@
 
 /*
- *  nd6_is_addr_neighbor -- æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããããã§ãã¯ããã
+ *  nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。
  */
 
@@ -526,8 +503,7 @@
 
 /*
- *  nd6_output -- è¿é£æ¢ç´¢ã®åºåé¢æ°
- *
- *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
-ã§å¼åºããã¨ã
+ *  nd6_output -- 近隣探索の出力関数
+ *
+ *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
  */
 
@@ -539,15 +515,14 @@
 
 	/*
-	 *  ãã¦å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãããè¿é£ã­ã£ãã·ã¥ã
-	 *  ä¸è¦ã®å ´åã¯ç´ã¡ã«éä¿¡ããã
+	 *  あて先アドレスがマルチキャストか、近隣キャッシュが
+	 *  不要の場合は直ちに送信する。
 	 */
 	if (!(IN6_IS_ADDR_MULTICAST(dst) || !IF_IN6_NEED_CACHE(ifp))) {
 		if (ln == NULL) {
-			/* è¿é£ã­ã£ãã·ã¥ãæªå®ç¾©ã®å ´å */
+			/* 近隣キャッシュが未定義の場合 */
 			if (nd6_is_addr_neighbor(ifp, dst)) {
 				/*
-				 *  æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããæã¯ã
-				 *  è¿é£ã­ã£ãã·ã¥ãæ¢ç´¢ããæªå®ç¾©ã®å ´åã¯ç»é²ããã
+				 *  指定されたアドレスのノードが同一リンクにある時は、
+				 *  近隣キャッシュを探索し、未定義の場合は登録する。
 				 */
 				ln = nd6_lookup(dst, true);
@@ -560,7 +535,6 @@
 
 		/*
-		 *  è¿é£ã­ã£ãã·ã¥ã®ç¶æ
-ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãåãã£ã¦ãã¦ãã
-		 *  å°éå¯è½æ§ãç¢ºèªããã¦ããªãã¨ãã¯ãå°éä¸è½éç¥ãéå§ããã
+		 *  近隣キャッシュの状態が、データリンク層のアドレスが分かっていても、
+		 *  到達可能性が確認されていないときは、到達不能通知を開始する。
 		 */
 		if (ln->state == ND6_LLINFO_STALE) {
@@ -572,11 +546,10 @@
 
 		/*
-		 *  è¿é£ã­ã£ãã·ã¥ã®ç¶æ
-ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´åã¯
-		 *  è¿é£æ¢ç´¢ãè¡ãã
+		 *  近隣キャッシュの状態が、データリンク層のアドレス未解決の場合は
+		 *  近隣探索を行う。
 		 */
 		if (ln->state <= ND6_LLINFO_INCOMPLETE) {
 
-			/* ã¿ã¤ã ã¢ã¦ãã®æå®ããã¼ãªã³ã°ãªãã¿ã¤ã ã¢ã¦ãã§çµäºããã*/
+			/* タイムアウトの指定がポーリングならタイムアウトで終了する。*/
 			if (tmout == TMO_POL) {
 				error = E_TMOUT;
@@ -587,5 +560,5 @@
 				ln->state = ND6_LLINFO_INCOMPLETE;
 
-			/* ãã§ã«ãæªè§£æ±ºã®ãããã¯ã¼ã¯ãããã¡ãããã°ãéæ¾ããã*/
+			/* すでに、未解決のネットワークバッファがあれば、開放する。*/
 			if (ln->hold != NULL) {
 				syscall(rel_net_buf(ln->hold));
@@ -594,12 +567,12 @@
 
 			/*
-			 *  éä¿¡ããã³ãã£ã³ã°ããã
-			 *  IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨­å®ããã¦ããã¨ãã¯ã
-			 *  éä¿¡ããã³ãã£ã³ã°ããªãã
+			 *  送信をペンディングする。
+			 *  IF でネットワークバッファを開放しないフラグが設定されているときは、
+			 *  送信をペンディングしない。
 			 */
 			if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 				ln->hold = output;
 
-				/* ã¿ã¤ã ã¢ã¦ãã®è¨­å® */
+				/* タイムアウトの設定 */
 				if (tmout == TMO_FEVR)
 					ln->tmout = tmout;
@@ -620,5 +593,5 @@
 					if ((int32_t)(ln->expire - now) < 0) {
 					           /* ln->expire < now */
-						ln->expire += ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+						ln->expire += ND6_RETRANS_TIME;	/* 近隣探索送信間隔 */
 						ln->asked ++;
 						nd6_ns_output(ifp, &in6_addr_unspecified, dst, ln, false);
@@ -631,5 +604,5 @@
 
 	/*
-	 *  éè¤ãæ¤åºãããã¤ã³ã¿ãã§ã¼ã¹ã«ã¯åºåããªãã
+	 *  重複が検出されたインタフェースには出力しない。
 	 */
 	if ((ifp->flags & ND6_IFF_IFDISABLED) != 0) {
@@ -647,5 +620,5 @@
 
 /*
- *  nd6_storelladdr -- åºåãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿ãã
+ *  nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。
  */
 
@@ -664,8 +637,7 @@
 
 /*
- *  nd6_option -- è¿é£æ¢ç´¢ãªãã·ã§ã³ã®å¦ç
- *
- *    æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã
+ *  nd6_option -- 近隣探索オプションの処理
+ *
+ *    注意: オプションオフセット配列には、オフセット + 8 が設定されている。
  */
 
@@ -675,6 +647,5 @@
 	T_ND_OPT_HDR	*opth;
 	ER		error = E_OK;
-	int_t		pi_count = 0;	/* ãã¬ãã£ãã¯ã¹æ
-å ±ã®åæ° */
+	int_t		pi_count = 0;	/* プレフィックス情報の個数 */
 
 	opth = (T_ND_OPT_HDR *)nh;
@@ -683,5 +654,5 @@
 	while (error == E_OK && ((uint8_t *)opth - (uint8_t *)nh) < (256 - 8) && len > 0) {
 
-		/* ãªãã·ã§ã³é·ã 0 ã®æã¯ãä¸æ­£ãªãªãã·ã§ã³ã¨ãã¦å¦çããã*/
+		/* オプション長が 0 の時は、不正なオプションとして処理する。*/
 		if (opth->len == 0) {
 			error = E_PAR;
@@ -689,14 +660,12 @@
 			}
 
-		/* ãªãã·ã§ã³ã®ã¿ã¤ãã«ããåå²ããã*/
+		/* オプションのタイプにより分岐する。*/
 		switch (opth->type) {
-		case ND_OPT_SOURCE_LINKADDR:		/* éä¿¡å
-ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-		case ND_OPT_TARGET_LINKADDR:		/* å¯¾è±¡ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-		case ND_OPT_REDIRECTED_HEADER:		/* ãªãã¤ã¬ã¯ãã»ããã				*/
+		case ND_OPT_SOURCE_LINKADDR:		/* 送信先ネットワークインタフェースのアドレス	*/
+		case ND_OPT_TARGET_LINKADDR:		/* 対象ネットワークインタフェースのアドレス	*/
+		case ND_OPT_REDIRECTED_HEADER:		/* リダイレクト・ヘッダ				*/
 		case ND_OPT_MTU:			/* MTU						*/
 			if (opt[ND_OPT_OFF_ARRAY_IX(opth->type)]) {
-				/* ãã¬ãã£ãã¯ã¹æ
-å ±ä»¥å¤ã®åããªãã·ã§ã³ãè¤æ°æå®ããã¦ããã*/
+				/* プレフィックス情報以外の同じオプションが複数指定されている。*/
 				error = E_PAR;
 				}
@@ -705,10 +674,8 @@
 				}
 			break;
-		case ND_OPT_PREFIX_INFORMATION:		/* ãã¬ãã£ãã¯ã¹æ
-å ±				*/
+		case ND_OPT_PREFIX_INFORMATION:		/* プレフィックス情報				*/
 			if (!opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)]) {
 				/*
-				 *  ãã¬ãã£ãã¯ã¹æ
-å ±ã¯æåã«ç¾ãããªãã»ããã®ã¿è¨é²ããã
+				 *  プレフィックス情報は最初に現れたオフセットのみ記録する。
 				 */
 				opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8;
@@ -718,10 +685,10 @@
 		default:
 			/*
-			 *  å°æ¥å®ç¾©ããããã­ãã³ã«ã¸ã®æ¡å¼µã«å¯¾å¿ããããã
-			 *  èªè­ã§ããªããªãã·ã§ã³ã¯åã«ç¡è¦ããå¦çãç¶è¡ããã
+			 *  将来定義されるプロトコルへの拡張に対応するため、
+			 *  認識できないオプションは単に無視し、処理を続行する。
 			 */
 			break;
 			}
-		len -= opth->len << 3;		/* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã */
+		len -= opth->len << 3;		/* オプション長の単位は 8 バイト */
 		opth = (T_ND_OPT_HDR *)((uint8_t *)opth + (opth->len << 3));
 		}
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6.h
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6.h	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6.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$
@@ -80,11 +68,11 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ï¼T_IFNETï¼ã®ãã©ã°
- */
-
-#define ND6_IFF_IFDISABLED	UINT_C(0x01)	/* ã¤ã³ã¿ãã§ã¼ã¹ãç¡å¹ã«ããã*/
-
-/*
- *  è¿é£ã­ã£ãã·ã¥ 
+ *  ネットワークインタフェース構造体（T_IFNET）のフラグ
+ */
+
+#define ND6_IFF_IFDISABLED	UINT_C(0x01)	/* インタフェースを無効にする。*/
+
+/*
+ *  近隣キャッシュ 
  */
 
@@ -93,5 +81,5 @@
 	T_NET_BUF	*hold;
 	TMO		tmout;
-	SYSTIM		expire;		/* [us] æå¹æéãåããæå»	*/
+	SYSTIM		expire;		/* [us] 有効時間が切れる時刻	*/
 	T_IF_ADDR	ifaddr;
 	uint8_t		state;
@@ -100,76 +88,62 @@
 	} T_LLINFO_ND6;
 
-/* è¿é£ã­ã£ãã·ã¥ã®ç¶æ
- */
-
-#define ND6_LLINFO_FREE			0	/* æªä½¿ç¨		*/
-#define ND6_LLINFO_NO_STATE		1	/* ç¶æ
-æªå®ç¾©		*/
-#define ND6_LLINFO_INCOMPLETE		2	/* æªè§£æ±º		*/
-#define ND6_LLINFO_REACHABLE		3	/* å°éå¯è½		*/
-#define ND6_LLINFO_STALE		4	/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
-#define ND6_LLINFO_DELAY		5	/* å°éå¯è½æ§ã®ç¢ºèªå¾
-æ©	*/
-#define ND6_LLINFO_PROBE		6	/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+/* 近隣キャッシュの状態 */
+
+#define ND6_LLINFO_FREE			0	/* 未使用		*/
+#define ND6_LLINFO_NO_STATE		1	/* 状態未定義		*/
+#define ND6_LLINFO_INCOMPLETE		2	/* 未解決		*/
+#define ND6_LLINFO_REACHABLE		3	/* 到達可能		*/
+#define ND6_LLINFO_STALE		4	/* 到達可能性は未確認	*/
+#define ND6_LLINFO_DELAY		5	/* 到達可能性の確認待機	*/
+#define ND6_LLINFO_PROBE		6	/* 到達可能性を確認中	*/
 
 #define ND6_IS_LLINFO_PROBREACH(n)	((n)->state > ND6_LLINFO_INCOMPLETE)
 
-/* è¿é£ã­ã£ãã·ã¥ã®å¶å¾¡ããã */
-
-#define ND6_LLIF_ROUTER			UINT_C(0x80)	/* ã«ã¼ã¿		*/
-#define ND6_LLIF_ASKED			UINT_C(0x40)	/* éç¥æ¸ã¿		*/
-#define ND6_LLIF_STATE_MASK		UINT_C(0x07)	/* ç¶æ
-ãã¹ã¯		*/
-
-/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæå¹æéã®å®ç¾© */
+/* 近隣キャッシュの制御ビット */
+
+#define ND6_LLIF_ROUTER			UINT_C(0x80)	/* ルータ		*/
+#define ND6_LLIF_ASKED			UINT_C(0x40)	/* 通知済み		*/
+#define ND6_LLIF_STATE_MASK		UINT_C(0x07)	/* 状態マスク		*/
+
+/* 近隣探索キャッシュ、有効時間の定義 */
 
 #define ND6_SLOW_TMO			((60*60*1000)/NET_TIMER_HZ)
-							/* 1 [æé]				*/
-							/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥æ´æ°ã¿ã¤ã ã¢ã¦ã	*/
-
-#define ND6_MAX_DAD_TRY			15		/* éè¤ã¢ãã¬ã¹æ¤åºã®åéåæ°		*/
-#define ND6_MAX_MCAST_QUERY		3		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°	*/
-#define ND6_MAX_UCAST_QUERY		3		/* ã¦ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°	*/
+							/* 1 [時間]				*/
+							/* 近隣探索キャッシュ更新タイムアウト	*/
+
+#define ND6_MAX_DAD_TRY			15		/* 重複アドレス検出の再送回数		*/
+#define ND6_MAX_MCAST_QUERY		3		/* マルチキャストアドレス要請の再送回数	*/
+#define ND6_MAX_UCAST_QUERY		3		/* ユニキャストアドレス要請の再送回数	*/
 
 #define ND6_GCOLLECTION_TIME		(60*60*24*SYSTIM_HZ)
-							/* ã´ãæ¾ãå¨æã1 æ¥			*/
-#define	ND6_DELAY_TIME			(5*SYSTIM_HZ)	/* ç¢ºèªå¾
-æ©é
-å»¶				*/
-#define ND6_FIRST_DAD_DELAY_TIME	(1*SYSTIM_HZ)	/* æåã®éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é
-å»¶	*/
+							/* ゴミ拾い周期、1 日			*/
+#define	ND6_DELAY_TIME			(5*SYSTIM_HZ)	/* 確認待機遅延				*/
+#define ND6_FIRST_DAD_DELAY_TIME	(1*SYSTIM_HZ)	/* 最初の重複アドレス検出送信遅延	*/
 #define ND6_DAD_DELAY_TIME		(5*SYSTIM_HZ/10)
-							/* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é
-å»¶		*/
-
-/* è¿é£æ¢ç´¢ç¨ã¿ã¤ãã®è¨­å® */
-
-#define ND6_TIMER_TMO			((SYSTIM_HZ/NET_TIMER_CYCLE)/5)	/* 0.2[s] éé		*/
-
-/*
- *  å°éå¯è½ç¶æ
-ã®æå¹æé
- */
-
-#define	ND6_DEF_REACHABLE_TIME		(30*SYSTIM_HZ)	/* å°éå¯è½ç¶æ
-ã®æå¹æéã®æ¢å®å¤		*/
+							/* 重複アドレス検出送信遅延		*/
+
+/* 近隣探索用タイマの設定 */
+
+#define ND6_TIMER_TMO			((SYSTIM_HZ/NET_TIMER_CYCLE)/5)	/* 0.2[s] 間隔		*/
+
+/*
+ *  到達可能状態の有効時間
+ */
+
+#define	ND6_DEF_REACHABLE_TIME		(30*SYSTIM_HZ)	/* 到達可能状態の有効時間の既定値		*/
 #define	ND6_MAX_REACHABLE_TIME		(60*60*SYSTIM_HZ)
-							/* å°éå¯è½ç¶æ
-ã®æå¹æéã®æ¢å®å¤		*/
+							/* 到達可能状態の有効時間の既定値		*/
 #define	ND6_RECALC_REACHTM_INTERVAL	(60*60*2*SYSTIM_HZ)
-							/* å°éå¯è½ç¶æ
-ã®æå¹æéåè¨ç®éé	*/
-
-#define	ND6_MIN_REACHTM_RAND_FACTOR	512		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 0.5		*/
-
-#if 1							/* ã¿ã¤ãã¼ã®èµ·åééãèæ
-®ããè¦å®ããç­ãè¨­å®	*/
-#define	ND6_MAX_REACHTM_RAND_FACTOR	1484		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 1.45			*/
+							/* 到達可能状態の有効時間再計算間隔	*/
+
+#define	ND6_MIN_REACHTM_RAND_FACTOR	512		/* 最小乱数補正値、1,024 * 0.5		*/
+
+#if 1							/* タイマーの起動間隔を考慮し、規定より短く設定	*/
+#define	ND6_MAX_REACHTM_RAND_FACTOR	1484		/* 最小乱数補正値、1,024 * 1.45			*/
 #else
-#define	ND6_MAX_REACHTM_RAND_FACTOR	1536		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 1.5			*/
+#define	ND6_MAX_REACHTM_RAND_FACTOR	1536		/* 最小乱数補正値、1,024 * 1.5			*/
 #endif
 
-/* å°éå¯è½ç¶æ
-ã®æå¹æéã®è¨ç®ãã¯ã­ */
+/* 到達可能状態の有効時間の計算マクロ */
 
 #define ND6_CALC_REACH_TIME(b)		\
@@ -178,5 +152,5 @@
 
 /*
- *  è¿é£æ¢ç´¢ã®éä¿¡éé
+ *  近隣探索の送信間隔
  */
 
@@ -184,10 +158,10 @@
 
 /*
- *  ã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ãããå¤
+ *  ルータ通知により変更されることがある値
  */
 
 #if NUM_ND6_DEF_RTR_ENTRY > 0
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤ */
+/* ルータ通知を受信する場合は、通知された値 */
 
 #define	ND6_REACHABLE_TIME		nd6_reachable_time
@@ -196,5 +170,5 @@
 #else	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤ */
+/* ルータ通知を受信しない場合の値は既定値 */
 
 #define	ND6_REACHABLE_TIME		ND6_DEF_REACHABLE_TIME
@@ -204,53 +178,50 @@
 
 /*
- *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã
+ *  ディフォルトルータ・リスト
  */
 
 typedef struct t_def_router {
 	T_IN6_ADDR	addr;
-	SYSTIM		expire;		/* [us] æå¹æéãåããæå»	*/
-	uint32_t	lifetime;	/* [us] æå¹æé			*/
-	uint16_t	plistmap;	/* ãã¬ãã£ãã¯ã¹ããã		*/
-	uint8_t		flags;		/* ã«ã¼ã¿éç¥ã®ãã©ã°		*/
+	SYSTIM		expire;		/* [us] 有効時間が切れる時刻	*/
+	uint32_t	lifetime;	/* [us] 有効時間			*/
+	uint16_t	plistmap;	/* プレフィックスマップ		*/
+	uint8_t		flags;		/* ルータ通知のフラグ		*/
 	uint8_t		state;
 	} T_DEF_ROUTER;
 
-/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç¶æ
- */
-
-#define ND6_DEF_RTR_BUSY		0xff	/* ä½¿ç¨ä¸­		*/
-
-/* ãã¬ãã£ãã¯ã¹ã®ã¤ã³ããã¯ã¹ */
+/* ディフォルトルータ・リストの状態 */
+
+#define ND6_DEF_RTR_BUSY		0xff	/* 使用中		*/
+
+/* プレフィックスのインデックス */
 
 #define ND6_PREFIX_IX_INVALID		0xff
 
 /*
- *  ãã¬ãã£ãã¯ã¹ã»ãªã¹ã
+ *  プレフィックス・リスト
  */
 
 typedef struct t_nd6_prefix {
-	T_IN6_ADDR	prefix;		/* ãã¬ãã£ãã¯ã¹		*/
-	uint32_t	expire;		/* [s] æå¹æéãåããæå»	*/
-	uint32_t	preferred;	/* [s] æ¨å¥¨æå¹æéãåããæå»	*/
-	uint32_t	vltime;		/* [s] æå¹æé			*/
-	uint32_t	pltime;		/* [s] æ¨å¥¨æå¹æé		*/
-	uint16_t	routermap;	/* ã«ã¼ã¿ããã			*/
-	uint8_t		flags;		/* ãã©ã°			*/
-	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
+	T_IN6_ADDR	prefix;		/* プレフィックス		*/
+	uint32_t	expire;		/* [s] 有効時間が切れる時刻	*/
+	uint32_t	preferred;	/* [s] 推奨有効時間が切れる時刻	*/
+	uint32_t	vltime;		/* [s] 有効時間			*/
+	uint32_t	pltime;		/* [s] 推奨有効時間		*/
+	uint16_t	routermap;	/* ルータマップ			*/
+	uint8_t		flags;		/* フラグ			*/
+	uint8_t		prefix_len;	/* プレフィックス長		*/
 	} T_ND6_PREFIX;
 
-/* ãã©ã° */
-
-#define ND6_PREFIX_FLAG_ONLINK		UINT_C(0x80)	/* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹	*/
-#define ND6_PREFIX_FLAG_AUTO		UINT_C(0x40)	/* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®*/
-
-#define ND6_PREFIX_STATE_BUSY		UINT_C(0x01)	/* ä½¿ç¨ä¸­		*/
-#define ND6_PREFIX_STATE_ONLINK		UINT_C(0x02)	/* ãªã³ãªã³ã¯ç¶æ
-	*/
-#define ND6_PREFIX_STATE_DETACHED	UINT_C(0x04)	/* éä½¿ç¨ç¶æ
-	*/
-
-/*
- *  å¤æ°
+/* フラグ */
+
+#define ND6_PREFIX_FLAG_ONLINK		UINT_C(0x80)	/* オンリンクプレフィックス	*/
+#define ND6_PREFIX_FLAG_AUTO		UINT_C(0x40)	/* ステートレス・アドレス自動設定*/
+
+#define ND6_PREFIX_STATE_BUSY		UINT_C(0x01)	/* 使用中		*/
+#define ND6_PREFIX_STATE_ONLINK		UINT_C(0x02)	/* オンリンク状態	*/
+#define ND6_PREFIX_STATE_DETACHED	UINT_C(0x04)	/* 非使用状態	*/
+
+/*
+ *  変数
  */
 
@@ -261,5 +232,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.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$
@@ -124,5 +112,5 @@
 
 /*
- *  å±æé¢æ°
+ *  局所関数
  */
 
@@ -134,5 +122,5 @@
 
 /*
- *  nd6_dad_duplicated -- éè¤ã¢ãã¬ã¹ãæ¤åºããæã®å¦ç
+ *  nd6_dad_duplicated -- 重複アドレスを検出した時の処理
  */
 
@@ -147,13 +135,13 @@
 		ifa->flags |=  IN6_IFF_DUPLICATED;
 
-		/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+		/* タイマーを停止する。*/
 		untimeout((callout_func)nd6_dad_timer, ifa);
 
 		/*
-		 *  ãã IPv6 ã¢ãã¬ã¹ããã¦ãã¼ã¯ã«å²ãå½ã¦ãã
-		 * ï¼ã¤ã¼ãµãããç¨ã® EUI-64ï¼ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ããã¼ã¹ã¨ãã
-		 *  ã¤ã³ã¿ãã§ã¼ã¹ ID ã§çæãããã®ã§ããã°ã
-		 *  ãã®ã¤ã³ã¿ãã§ã¼ã¹ã§ã® IPv6 ã®åä½ã¯ç¡å¹ã«ãã¹ãã§ãã
-		 * ï¼RFC2462bis-03 ã»ã¯ã·ã§ã³ 5.4.5ï¼ã
+		 *  もし IPv6 アドレスが、ユニークに割り当てらた
+		 * （イーサネット用の EUI-64）ハードウェアアドレスをベースとした
+		 *  インタフェース ID で生成されたのであれば、
+		 *  このインタフェースでの IPv6 の動作は無効にすべきである
+		 * （RFC2462bis-03 セクション 5.4.5）。
 		 */
 		if (IN6_IS_ADDR_LINKLOCAL(&ifa->addr))
@@ -163,5 +151,5 @@
 
 /*
- *  nd6_dad_ns_output -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ãåºåããã
+ *  nd6_dad_ns_output -- 重複アドレス検出 (DAD) 要請を出力する。
  */
 
@@ -176,6 +164,5 @@
 
 /*
- *  nd6_dad_ns_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«å
-¥å
+ *  nd6_dad_ns_input -- 重複アドレス検出 (DAD) 要請入力
  */
 
@@ -186,5 +173,5 @@
 
 	/*
-	 *  ã¾ã ãéè¤ã¢ãã¬ã¹æ¤åºè¦è«ãåºåãã¦ããªãå ´å
+	 *  まだ、重複アドレス検出要請を出力していない場合
 	 */
 	if (ifa->ns_ocount == 0)
@@ -195,6 +182,5 @@
 
 /*
- *  nd6_dad_na_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥å
-¥å
+ *  nd6_dad_na_input -- 重複アドレス検出 (DAD) 通知入力
  */
 
@@ -208,5 +194,5 @@
 
 /*
- *  nd6_dad_timer -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ã¿ã¤ãã¼
+ *  nd6_dad_timer -- 重複アドレス検出 (DAD) タイマー
  */
 
@@ -229,5 +215,5 @@
 		nd6_dad_ns_output(ifp, ifa);
 
-		/* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨­å®ããã*/
+		/* タイムアウトを近隣探索の送信間隔に設定する。*/
 		timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
 		}
@@ -241,6 +227,5 @@
 
 /*
- *  nd6_ns_input -- è¿é£è¦è«ã®å
-¥åå¦çã
+ *  nd6_ns_input -- 近隣要請の入力処理。
  */
 
@@ -264,7 +249,7 @@
 
 	/*
-	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
-	 *    ã»ãããé·ãç­ã
+	 *  ヘッダのチェック、以下の場合は破棄する。
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
+	 *    ・ヘッダ長が短い
 	 */
 	if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_SOLICIT_HDR_SIZE)
@@ -275,7 +260,6 @@
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
 		/*
-		 *  å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéè¤ã¢ãã¬ã¹æ¤åº
-		 *  ãã¦å
-ã¢ãã¬ã¹ã¯ãè¦è«ãã«ãã­ã£ã¹ãã§ãªããã°ãªããªãã
+		 *  始点アドレスが無指定なら、重複アドレス検出
+		 *  あて先アドレスは、要請マルチキャストでなければならない。
 		 */
 		if (!IN6_IS_ADDR_NS_MULTICAST(&ip6h->dst))
@@ -283,19 +267,18 @@
 		}
 
-	/* ç®çã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	/* 目的アドレスがマルチキャストならエラー */
 	if (IN6_IS_ADDR_MULTICAST(&nsh->target))
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_SOLICIT_HDR_SIZE),
 	                            input->len - (off + NEIGHBOR_SOLICIT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (å§ç¹ãªã³ã¯ã¢ãã¬ã¹) */
+	/* 近隣探索オプション (始点リンクアドレス) */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_SOLICIT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -305,6 +288,5 @@
 		goto err_ret;
 
-	/* å®å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãè¿é£éç¥ã«ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãä»ããã*/
+	/* 宛先アドレスがマルチキャストなら近隣通知にデータリンク層のアドレスを付ける。*/
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst))
 		tlladdr = true;
@@ -313,8 +295,7 @@
 
 	/*
-	 *  ç®çã¢ãã¬ã¹ããèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
-	 *  å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãèª¿ã¹ãã
-	 *  ãªããä»£çãµã¼ãã¹ã¯å®è£
-ãã¦ããªãã
+	 *  目的アドレスが、自分のネットワークインタフェースに
+	 *  割り当てられているアドレスか調べる。
+	 *  なお、代理サービスは実装していない。
 	 */
 	ifa = in6_lookup_ifaddr(ifp, &nsh->target);
@@ -323,10 +304,10 @@
 		goto free_ret;
 
-	/* æ¢ç´¢çµæã¢ãã¬ã¹ãéè¤ãã¦ããã°å¿ç­ããªãã§çµäºããã*/
+	/* 探索結果アドレスが重複していれば応答しないで終了する。*/
 	if (ifa->flags & IN6_IFF_DUPLICATED)
 		goto err_ret;
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
@@ -334,10 +315,10 @@
 
 	/*
-	 *  å§ç¹ã¢ãã¬ã¹ãèªåã®ã¢ãã¬ã¹ã¨ä¸è´ããã°éè¤ãã¦ããã
+	 *  始点アドレスが自分のアドレスと一致すれば重複している。
 	 */
 	if (IN6_ARE_ADDR_EQUAL(&ifa->addr, &ip6h->src))
 		goto free_ret;
 
-	/* éè¤æ¤åºä¸­ã«ãè¿é£è¦è«ãåä¿¡ããã¨ãã®å¦ç */
+	/* 重複検出中に、近隣要請を受信したときの処理 */
 	if (ifa->flags & IN6_IFF_TENTATIVE) {
 		if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src))
@@ -352,8 +333,7 @@
 
 	/*
-	 *  å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéä¿¡ç¸æã¯éè¤ã¢ãã¬ã¹æ¤åºä¸­ã§ã
-	 *  ç´æ¥éä¿¡ãããã¨ã¯ã§ããªãã®ã§ãå
-¨ãã¼ããã«ãã­ã£ã¹ã
-	 *  ã¢ãã¬ã¹ã«éä¿¡ããã
+	 *  始点アドレスが無指定なら、送信相手は重複アドレス検出中で、
+	 *  直接送信することはできないので、全ノードマルチキャスト
+	 *  アドレスに送信する。
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
@@ -362,5 +342,5 @@
 		}
 
-	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 近隣キャッシュに登録する。*/
 	nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_NEIGHBOR_SOLICIT, 0);
 
@@ -377,5 +357,5 @@
 
 /*
- *  nd6_ns_output -- è¿é£è¦è«ãåºåããã
+ *  nd6_ns_output -- 近隣要請を出力する。
  */
 
@@ -396,5 +376,5 @@
 		return;
 
-	/* è¿é£è¦è«ãã¤ã­ã¼ãé·ãè¨ç®ããã*/
+	/* 近隣要請ペイロード長を計算する。*/
 	if (!dad && IF_SOFTC_TO_IFADDR(ifp->ic))
 		len = (NEIGHBOR_SOLICIT_HDR_SIZE + ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3;
@@ -403,12 +383,12 @@
 
 	/*
-	 *  è¦è«ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹å®ã®è¿é£æ¢ç´¢ã§ã¯ã
-	 *  ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã
-	 *  æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨­å®ããã
+	 *  要請マルチキャスト・アドレス宛の近隣探索では、
+	 *  他のリンクからの偽造されたデータグラムを
+	 *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(daddr) || IN6_IS_ADDR_MULTICAST(daddr))
 		ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	/* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
 	if (in6_get_datagram(&output, len, 0, daddr, NULL,
 	                     IPPROTO_ICMPV6, IPV6_MAXHLIM,
@@ -420,6 +400,5 @@
 	if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
 
-		/* å®å
-ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ãè¦è«ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¨­å®ããã*/
+		/* 宛先アドレスが無指定の場合は、要請マルチキャストアドレスを設定する。*/
 		ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
 		ip6h->dst.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
@@ -428,17 +407,14 @@
 		}
 
-	/* éä¿¡å
-ã¢ãã¬ã¹ã®è¨­å® */
+	/* 送信元アドレスの設定 */
 	if (!dad) {
 
-		/* éè¤ã¢ãã¬ã¹æ¤åºã§ã¯ãªãæã®éä¿¡å
-ã¢ãã¬ã¹æ±ºå®å¦çã*/
+		/* 重複アドレス検出ではない時の送信元アドレス決定処理。*/
 		T_IN6_ADDR *saddr;
 
 		if (ln && ln->hold) {
 			/*
-			 * éä¿¡ããã³ãã£ã³ã°ããã¦ãããã¼ã¿ã°ã©ã ã®
-			 * éä¿¡å
-ã¢ãã¬ã¹ãå©ç¨ããã
+			 * 送信がペンディングされているデータグラムの
+			 * 送信元アドレスを利用する。
 			 */
 			if (ln->hold->len > IF_IP6_HDR_SIZE)
@@ -454,8 +430,6 @@
 		else {
 			/*
-			 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-			 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+			 *  宛先アドレスにふさわしい送信元アドレスを、
+			 *  ネットワークインタフェースから探索して利用する。
 			 */
 			T_IN6_IFADDR *ifa;
@@ -470,10 +444,9 @@
 	else {
 
-		/* éè¤ã¢ãã¬ã¹æ¤åºæã®éä¿¡å
-ã¢ãã¬ã¹ã¯ç¡æå®ã*/
+		/* 重複アドレス検出時の送信元アドレスは無指定。*/
 		memset(&ip6h->src, 0, sizeof(T_IN6_ADDR));
 		}
 
- 	/* è¿é£è¦è«ããããè¨­å®ããã*/
+ 	/* 近隣要請ヘッダを設定する。*/
  	nsh = GET_NEIGHBOR_SOLICIT_HDR(output, IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET);
  	nsh->hdr.type        = ND_NEIGHBOR_SOLICIT;
@@ -484,5 +457,5 @@
 	if (!dad && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
 
-		/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¨ãã¦ãæ¢ç´¢ç®æ¨ã® MAC ã¢ãã¬ã¹ãè¨­å®ããã*/
+		/* 近隣探索オプションとして、探索目標の MAC アドレスを設定する。*/
 		T_ND_OPT_HDR	*opth;
 		uint_t		optlen;
@@ -496,9 +469,9 @@
 		}
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	nsh->hdr.sum = 0;
 	nsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nsh - output->buf, len);
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -510,6 +483,5 @@
 
 /*
- *  nd6_na_input -- è¿é£éç¥ã®å
-¥åå¦çã
+ *  nd6_na_input -- 近隣通知の入力処理。
  */
 
@@ -534,7 +506,7 @@
 
 	/*
-	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
-	 *    ã»ãããé·ãç­ã
+	 *  ヘッダのチェック、以下の場合は破棄する。
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
+	 *    ・ヘッダ長が短い
 	 */
 	if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_ADVERT_HDR_SIZE)
@@ -543,25 +515,23 @@
 	nah  = (T_NEIGHBOR_ADVERT_HDR *)(input->buf + off);
 
-	/* ç®çã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	/* 目的アドレスがマルチキャストならエラー */
 	if (IN6_IS_ADDR_MULTICAST(&nah->target))
 		goto err_ret;
 
-	/* è¿é£è¦è«ã¸ã®å¿ç­ã§ãå®å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	/* 近隣要請への応答で、宛先アドレスがマルチキャストならエラー */
 	if ((nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) &&
 	    IN6_IS_ADDR_MULTICAST(&ip6h->dst))
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_ADVERT_HDR_SIZE), 
 	                            input->len - (off + NEIGHBOR_ADVERT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (ç®çãªã³ã¯ã¢ãã¬ã¹) */
+	/* 近隣探索オプション (目的リンクアドレス) */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_ADVERT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -571,6 +541,6 @@
 
 	/*
-	 *  ç®çã¢ãã¬ã¹ãèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ã®
-	 *  ããããã«ä¸è´ããã¨ãã¯ãéè¤ãã¦ãããã¨ãæå³ãã¦ããã
+	 *  目的アドレスが自分のネットワークインタフェースに割り当てられているアドレスの
+	 *  いずれかに一致したときは、重複していることを意味している。
 	 */
 	if (ifa) {
@@ -583,18 +553,17 @@
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
 		goto err_ret;
 
-	/* è¿é£ã­ã£ãã·ã¥ãæ¢ç´¢ããã*/
+	/* 近隣キャッシュを探索する。*/
 	syscall(wai_sem(SEM_ND6_CACHE));
 	if ((ln = nd6_lookup(&nah->target, false)) == NULL)
 		goto free_ret;
 
-	/* è¿é£ã­ã£ãã·ã¥ã®ç¶æ
-ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´å */
+	/* 近隣キャッシュの状態が、データリンク層のアドレス未解決の場合 */
 	if (ln->state == ND6_LLINFO_INCOMPLETE) {
-		/* éç¥ããããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ã®é·ãã 0 ã®å ´å */
+		/* 通知されたデータリンク層のアドレスの長さが 0 の場合 */
 		if (lladdr == NULL)
 			goto free_ret;
@@ -631,9 +600,8 @@
 
 		/*
-		 *  ç¶æ
-é·ç§»è¡¨
+		 *  状態遷移表
 		 *
 		 *  nd_na_flags_reserved
-		 *  OVERRIDE    SOLICTED lladdr llchange å¦ç (L: lladdr ãç»é²ãã)
+		 *  OVERRIDE    SOLICTED lladdr llchange 処理 (L: lladdr を登録する)
 		 *
 		 *      F           F       N      -    (2c)
@@ -651,6 +619,5 @@
 		 */
 		if ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) == 0 && (lladdr != NULL && llchange)) {	/* (1) */
-			/* ç¶æ
-ã REACHABLE ãªã STALE ã«é·ç§»ããã*/
+			/* 状態が REACHABLE なら STALE に遷移する。*/
 			if (ln->state == ND6_LLINFO_REACHABLE) {
 				syscall(get_tim(&now));
@@ -664,9 +631,9 @@
 		         lladdr == NULL) {										/* (2c) */
 
-			/* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/
+			/* データリンク層のアドレスが通知されていれば更新する。*/
 			if (lladdr != NULL)
 				ln->ifaddr = *(T_IF_ADDR *)lladdr;
 
-			/* è¿é£è¦è«ã¸ã®å¿ç­ãªã REACHABLE ã«é·ç§»ããã*/
+			/* 近隣要請への応答なら REACHABLE に遷移する。*/
 			if (nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) {
 				ln->state = ND6_LLINFO_REACHABLE;
@@ -678,6 +645,6 @@
 				}
 			/*
-			 *  ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã
-			 *  ç°ãªãã¢ãã¬ã¹ãªãæ´æ°ããã
+			 *  データリンク層のアドレスが通知され、
+			 *  異なるアドレスなら更新する。
 			 */
 			else if (lladdr != NULL && llchange) {
@@ -688,11 +655,11 @@
 			}
 
-		/* ã«ã¼ã¿éç¥ãã©ã°ã®å¦ç */
+		/* ルータ通知フラグの処理 */
 		if ((ln->flags        & ND6_LLIF_ROUTER ) != 0 &&
 		    (nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) == 0) {
 			/*
-			 *  éä¿¡ç¸æãã«ã¼ã¿éç¥ãã©ã°ãç¡å¹ã«ããå ´åã
-			 *  ãã£ãã©ã«ãã»ã«ã¼ã¿ãªã¹ãããå¯¾è±¡ã®ã«ã¼ã¿ãåé¤ãã
-			 *  è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæ´æ°ããã
+			 *  送信相手がルータ通知フラグを無効にした場合。
+			 *  ディフォルト・ルータリストから対象のルータを削除し、
+			 *  近隣探索キャッシュを更新する。
 			 */
 			T_DEF_ROUTER	*dr = NULL;
@@ -712,6 +679,5 @@
 	ln->asked = 0;
 
-	/* ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+	/* アドレス解決待ちのデータグラムがあれば送信する。*/
 	nd6_output_hold(ifp, ln);
 
@@ -727,5 +693,5 @@
 
 /*
- *  nd6_na_output -- è¿é£éç¥ãåºåããã
+ *  nd6_na_output -- 近隣通知を出力する。
  */
 
@@ -745,6 +711,6 @@
 
 	/*
-	 *  è¿é£éç¥ãã¤ã­ã¼ãé·ãè¨ç®ããã
-	 *  tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿½å ããã
+	 *  近隣通知ペイロード長を計算する。
+	 *  tlladdr が真ならネットワークインタフェースのアドレスを追加する。
 	 */
 	if (tlladdr && IF_SOFTC_TO_IFADDR(ifp->ic))
@@ -754,10 +720,10 @@
 
 	/*
-	 *  ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã
-	 *  æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨­å®ããã
+	 *  他のリンクからの偽造されたデータグラムを
+	 *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
 	 */
 	ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	/* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
 	if (in6_get_datagram(&output, len, 0, daddr, NULL,
 	                     IPPROTO_ICMPV6, IPV6_MAXHLIM,
@@ -769,8 +735,6 @@
 	if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
 		/*
-		 *  å®å
-ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ã
-		 *  ãªã³ã¯ã­ã¼ã«ã«å
-¨ãã¼ãã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¨­å®ããã
+		 *  宛先アドレスが無指定の場合は、
+		 *  リンクローカル全ノード・マルチキャストアドレスを設定する。
 		 */
 		ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
@@ -784,8 +748,6 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	if ((ifa = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) {
@@ -795,5 +757,5 @@
 	memcpy(&ip6h->src, &ifa->addr, sizeof(T_IN6_ADDR));
 
-	/* è¿é£éç¥ããããè¨­å®ããã*/
+	/* 近隣通知ヘッダを設定する。*/
 	nah = GET_NEIGHBOR_ADVERT_HDR(output, IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET);
 	nah->hdr.type        = ND_NEIGHBOR_ADVERT;
@@ -801,5 +763,5 @@
 	memcpy(&nah->target, taddr, sizeof(T_IN6_ADDR));
 
-	/* tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿½å ããã*/
+	/* tlladdr が真ならネットワークインタフェースのアドレスを追加する。*/
 	if (tlladdr && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
 
@@ -819,9 +781,9 @@
 	nah->nd_na_flags_reserved = flags;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	nah->hdr.sum = 0;
 	nah->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nah - output->buf, len);
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -833,9 +795,8 @@
 
 /*
- *  nd6_dad_start -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ãéå§ããã
+ *  nd6_dad_start -- 重複アドレス検出 (DAD) を開始する。
  *
- *    ç¬¬3å¼æ°ã®tick ã¯ãã¤ã³ã¿ãã§ã¼ã¹ãèµ·åããã¦ãããéè¤æ¤åºã
- *    éä¿¡ããã¾ã§ã®æå°é
-å»¶å¤ã§ããã
+ *    第3引数のtick は、インタフェースが起動されてから、重複検出を
+ *    送信するまでの最小遅延値である。
  */
 
@@ -843,5 +804,5 @@
 nd6_dad_start (T_IFNET *ifp, T_IN6_IFADDR *ifa, int_t *tick)
 {
-	/* ãã©ã°ããã§ãã¯ããã*/
+	/* フラグをチェックする。*/
 	if (!(ifa->flags & IN6_IFF_TENTATIVE))
 		return;
@@ -860,16 +821,15 @@
 		return;
 
-	/* éè¤ã¢ãã¬ã¹æ¤åºã«ã¦ã³ã¿ããªã»ããããã*/
+	/* 重複アドレス検出カウンタをリセットする。*/
 	ifa->ns_icount = ifa->na_icount = ifa->ns_ocount = 0;
 
 	/*
-	 *  éè¤ã¢ãã¬ã¹æ¤åºè¦è«ãéä¿¡ããããã ããã¤ã³ã¿ãã§ã¼ã¹ã
-	 *  åæåããç´å¾ã«ãæåã«éä¿¡ããå ´åã¯ãã©ã³ãã ãªé
-å»¶ãè¡ãã
+	 *  重複アドレス検出要請を送信する。ただし、インタフェースを
+	 *  初期化した直後に、最初に送信する場合は、ランダムな遅延を行う。
 	 */
 	if (tick == NULL) {
 		nd6_dad_ns_output(ifp, ifa);
 
-		/* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨­å®ããã*/
+		/* タイムアウトを近隣探索の送信間隔に設定する。*/
 		timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
 		}
@@ -877,5 +837,5 @@
 		int_t ntick;
 
-		if (*tick == 0)	/* æåã®éä¿¡ */
+		if (*tick == 0)	/* 最初の送信 */
 			ntick = net_rand() % (ND6_FIRST_DAD_DELAY_TIME * NET_TIMER_HZ / SYSTIM_HZ);
 		else
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.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$
@@ -123,5 +111,5 @@
 
 /*
- *  å¤é¨é¢æ°ã®å®ç¾©
+ *  外部関数の定義
  */
 
@@ -133,21 +121,19 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-SYSTIM	nd6_base_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ã«ã¼ã¿ããéç¥ãããå¤		*/
-SYSTIM	nd6_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ã«ã¼ã¿ããéç¥ãããå¤ã®è£æ­£å¤	*/
-SYSTIM	nd6_recalc_reachtm_interval	= ND6_RECALC_REACHTM_INTERVAL;	/* å°éå¯è½ç¶æ
-ã®æå¹æéåè¨ç®éé	*/
-SYSTIM	nd6_retrans_time		= ND6_DEF_RETRANS_TIME;		/* è¿é£æ¢ç´¢ã®éä¿¡éé			*/
-uint8_t	ip6_defhlim			= IPV6_DEFHLIM;			/* ããããªãããã®è¦å®å¤		*/
-
-/*
- *  å±æå¤æ°
- */
-
-/*
- *  ãã¬ãã£ãã¯ã¹ã»ãªã¹ã
+ *  全域変数
+ */
+
+SYSTIM	nd6_base_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ルータから通知された値		*/
+SYSTIM	nd6_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ルータから通知された値の補正値	*/
+SYSTIM	nd6_recalc_reachtm_interval	= ND6_RECALC_REACHTM_INTERVAL;	/* 到達可能状態の有効時間再計算間隔	*/
+SYSTIM	nd6_retrans_time		= ND6_DEF_RETRANS_TIME;		/* 近隣探索の送信間隔			*/
+uint8_t	ip6_defhlim			= IPV6_DEFHLIM;			/* ホップリミットの規定値		*/
+
+/*
+ *  局所変数
+ */
+
+/*
+ *  プレフィックス・リスト
  */
 
@@ -155,12 +141,12 @@
 
 /*
- *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã
+ *  ディフォルトルータ・リスト
  */
 
 static T_DEF_ROUTER	nd6_def_router[NUM_ND6_DEF_RTR_ENTRY];
-static uint_t		def_router_count = 0;				/* ãªã¹ãã«ããã«ã¼ã¿æ° */
-
-/*
- *  make_mask -- ãããç¨ã®ãã¹ã¯ãçæããã
+static uint_t		def_router_count = 0;				/* リストにあるルータ数 */
+
+/*
+ *  make_mask -- マップ用のマスクを生成する。
  */
 
@@ -171,5 +157,5 @@
 	int_t	ix;
 
-	/* ãã¹ã¯ãçæããã*/
+	/* マスクを生成する。*/
 	mask = 1;
 	for (ix = index; ix -- > 0; )
@@ -181,5 +167,5 @@
 /*
  *  find_pfxlist_reachable_router --
- *      æå®ãããã¬ãã£ãã¯ã¹ãéç¥ããã«ã¼ã¿ããªã³ã¯ä¸ã«å­å¨ããããã§ãã¯ããã
+ *      指定したプレフィックスを通知したルータがリンク上に存在するかチェックする。
  */
 
@@ -205,9 +191,8 @@
 
 /*
- *  pfxlist_onlink_check -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ãªã³ãªã³ã¯ç¶æ
-ããã§ãã¯ããã
+ *  pfxlist_onlink_check -- プレフィックス・リストのオンリンク状態をチェックする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -230,10 +215,7 @@
 	if (ix >= 0) {
 		/*
-		 *  ãªã³ãªã³ã¯ç¶æ
-ã®ãã¬ãã£ãã¯ã¹ãæä½ä¸ã¤å­å¨ããã¨ãã®å¦çã
-		 *  åãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ
-ããããããéç¥ãã¦ããã«ã¼ã¿ã®
-		 *  ç¶æ
-ã«å¾ã£ã¦è¨­å®ããã
+		 *  オンリンク状態のプレフィックスが最低一つ存在するときの処理。
+		 *  各プレフィックスのオンリンク状態を、それらを通知してきたルータの
+		 *  状態に従って設定する。
 		 */
 
@@ -256,8 +238,7 @@
 	else {
 		/*
-		 *  ã©ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã§ã¯ãªãã
-		 *  ãã£ãã©ã«ãã«ã¼ã¿ãå­å¨ããªãã¨ãã®å¦çã
-		 *  ãã¹ã¦ã®ãã¬ãã£ãã¯ã¹ãä½¿ç¨å¯è½ç¶æ
-ã«è¨­å®ããã
+		 *  どのプレフィックスもオンリンクではなく、
+		 *  ディフォルトルータも存在しないときの処理。
+		 *  すべてのプレフィックスを使用可能状態に設定する。
 		 */
 
@@ -275,9 +256,6 @@
 
 	/*
-	 *  åãã¬ãã£ãã¯ã¹æ¯ã«ãéç¥ãã¦ããã«ã¼ã¿ã®ç¶æ
-ã¨
-	 *  ãªã³ãªã³ã¯ã®ç¶æ
-ãä¸è´ããªããã°ããªã³ãªã³ã¯ç¶æ
-ãæ´æ°ããã
+	 *  各プレフィックス毎に、通知してきたルータの状態と
+	 *  オンリンクの状態が一致しなければ、オンリンク状態を更新する。
 	 */
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
@@ -302,6 +280,6 @@
 
 	/*
-	 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
-	 *  å°ãªãã¨ã 1 å°å­å¨ãããç¢ºèªããã
+	 *  リンク上にプレフィックスを通知しているルータが
+	 *  少なくとも 1 台存在するか確認する。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
@@ -317,6 +295,6 @@
 	if (ix >= 0) {
 		/*
-		 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
-		 *  å°ãªãã¨ã 1 å°å­å¨ããæã®å¦çã
+		 *  リンク上にプレフィックスを通知しているルータが
+		 *  少なくとも 1 台存在する時の処理。
 		 */
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
@@ -334,7 +312,6 @@
 	else {
 		/*
-		 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
-		 *  1 å°å­å¨ããªãæã¯å
-¨ã¦ã®ã¢ãã¬ã¹ãå©ç¨ã§ããããã«ããã
+		 *  リンク上にプレフィックスを通知しているルータが
+		 *  1 台存在しない時は全てのアドレスを利用できるようにする。
 		 */
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
@@ -347,8 +324,8 @@
 
 /*
- *  pfxrtr_add -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã
+ *  pfxrtr_add -- プレフィックスエントリとディフォルトルータ・エントリをリンクする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -356,5 +333,5 @@
 pfxrtr_add (int_t prefix_index, int_t rtr_index)
 {
-	/*  ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã*/
+	/*  プレフィックスエントリとディフォルトルータ・エントリをリンクする。*/
 	nd6_prefix[prefix_index].routermap |= make_mask(rtr_index);
 	nd6_def_router[rtr_index].plistmap |= make_mask(prefix_index);
@@ -364,5 +341,5 @@
 
 /*
- *  nd6_pfxrtr_lookup -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªããã«ã¼ã¿ãæ¢ç´¢ããã
+ *  nd6_pfxrtr_lookup -- プレフィックスエントリからルータを探索する。
  */
 
@@ -374,9 +351,8 @@
 
 /*
- *  defrouter_select -- åªå
-ãã£ãã©ã«ãã»ã«ã¼ã¿ãé¸æããªããã
+ *  defrouter_select -- 優先ディフォルト・ルータを選択しなおす。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -392,6 +368,5 @@
 		if ((ln = nd6_lookup(&dr->addr, false)) != NULL && ND6_IS_LLINFO_PROBREACH(ln)) {
 		
-			/* é¸æããã«ã¼ã¿ãå
-é ­ã«ç§»ãã*/
+			/* 選択したルータを先頭に移す。*/
 			router = *dr;
 			for (tix = ix; tix > 0; tix --)
@@ -404,8 +379,8 @@
 
 /*
- *  defrtrlist_update -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ´æ°ããã
+ *  defrtrlist_update -- ディフォルトルータ・リストを更新する。
  *
- *  	æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã
- *      ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã
+ *  	戻り値は、ルータのインデックス。
+ *      ただし、値が -1 なら、プレフィックス・リストは更新しない。
  */
 
@@ -420,7 +395,7 @@
 	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
 
-	/* ç»é²æ¸ãèª¿ã¹ãã*/
+	/* 登録済か調べる。*/
 	if ((fdr = nd6_defrtrlist_lookup(src)) != NULL) {
-		/* ç»é²æ¸ã¿ã®å ´åã®å¦ç */
+		/* 登録済みの場合の処理 */
 		if (lifetime == 0) {
 			nd6_defrtrlist_del(fdr);
@@ -429,5 +404,5 @@
 			}
 		else {
-			fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime ã®åä½ã¯ç§ */
+			fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime の単位は秒 */
 			fdr->flags    = flags;
 			fdr->expire   = now + fdr->lifetime;
@@ -443,11 +418,11 @@
 	if (fdr == NULL && def_router_count < NUM_ND6_DEF_RTR_ENTRY) {
 		/*
-		 *  def_router_count < NUM_ND6_DEF_RTR_ENTRY ã§ããã°ã
-		 *  nd6_def_router[def_router_count]; ãç©ºãã¨ã³ããª
+		 *  def_router_count < NUM_ND6_DEF_RTR_ENTRY であれば、
+		 *  nd6_def_router[def_router_count]; が空きエントリ
 		 */
 		fdr = &nd6_def_router[def_router_count];
 		}
 
-	/* ç©ºãã¨ã³ããªããªããã°ãæå¹æéãç­ãã¨ã³ããªãåé¤ããã*/
+	/* 空きエントリがなければ、有効時間が短いエントリを削除する。*/
 	if (fdr == NULL) {
 		T_DEF_ROUTER	*sdr = NULL;
@@ -458,5 +433,5 @@
 			diff = (int32_t)(dr->expire - now);
 			if (diff <= 0) {	/* dr->expire <= now */
-				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				/* 既に、有効時間が過ぎている。*/
 				sdr = dr;
 				break;
@@ -471,8 +446,8 @@
 		}
 
-	/* åã¡ã³ãã«å¤ãè¨­å®ããã*/
+	/* 各メンバに値を設定する。*/
 	fdr->plistmap = 0;
 	memcpy(&fdr->addr, src, sizeof(T_IN6_ADDR));
-	fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime ã®åä½ã¯ç§ */
+	fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime の単位は秒 */
 	fdr->flags    = flags;
 	fdr->expire   = now + fdr->lifetime;
@@ -481,6 +456,6 @@
 
 	/*
-	 *  ãã£ãã©ã«ãã«ã¼ã¿ã¨ãã¦ç»é²ãããã
-	 *  æ¢ã«ãã£ãã©ã«ãã«ã¼ã¿ãããã°é¸æããªãããªãã
+	 *  ディフォルトルータとして登録するが、
+	 *  既にディフォルトルータがあれば選択しなおさない。
 	 */
 	if (fdr - nd6_def_router != 0)
@@ -492,5 +467,5 @@
 
 /*
- *  in6_ifadd -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãè¿½å ããã
+ *  in6_ifadd -- インタフェースにアドレスを追加する。
  */
 
@@ -506,5 +481,5 @@
 
 	/*
-	 *  ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã
+	 *  リンクローカルアドレスが未登録であれば何もしない。
 	 */
 	if ((lla->flags & IN6_IFF_DEFINED) == 0)
@@ -512,20 +487,20 @@
 
 	/*
-	 *  ã«ã¼ã¿ããéç¥ããããã¬ãã£ãã¯ã¹é·ãã
-	 *  ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®ãã¬ãã£ãã¯ã¹é·ã¨
-	 *  ç°ãªã£ã¦ããã°ã¨ã©ã¼
+	 *  ルータから通知されたプレフィックス長が、
+	 *  リンクローカルアドレスのプレフィックス長と
+	 *  異なっていればエラー
 	 */
 	if (lla->prefix_len != pr->prefix_len)
 		return E_PAR;
 
-	/* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/
+	/* プレフィックスマスクを生成する。*/
 	in6_plen2pmask(&mask, pr->prefix_len);
 
-	/* ã¢ãã¬ã¹ãçæããã*/
+	/* アドレスを生成する。*/
 	for (ix = 0; ix < 4; ix ++)
 		addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
 		                   | ( lla->addr.s6_addr32[ix] & ~mask.s6_addr32[ix]);
 
-	/* ãã©ã°ãåæåããã*/
+	/* フラグを初期化する。*/
 	ia->flags = 0;
 
@@ -536,5 +511,5 @@
 
 /*
- *  nd6_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+ *  nd6_prefix_lookup -- プレフィックスを探索する。
  */
 
@@ -556,8 +531,8 @@
 
 /*
- *  prelist_remove -- ãã¬ãã£ãã¯ã¹ãªã¹ããããã¬ãã£ãã¯ã¹ãåé¤ããã
+ *  prelist_remove -- プレフィックスリストからプレフィックスを削除する。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -569,5 +544,5 @@
 	int_t	rix;
 
-	/* æå¹æéåãã«ããã*/
+	/* 有効時間切れにする。*/
 	pr->vltime = 0;
 	pr->pltime = 0;
@@ -579,5 +554,5 @@
 		}
 
-	/*  ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªã®ãªã³ã¯ãè§£é¤ããã*/
+	/*  プレフィックスエントリとディフォルトルータ・エントリのリンクを解除する。*/
 	pr->routermap = 0;
 	mask = make_mask(pr - nd6_prefix);
@@ -585,5 +560,5 @@
 		nd6_def_router[rix].plistmap &= ~mask;
 
-	/* ãã¬ãã£ãã¯ã¹ãç¡å¹ã«ããã*/
+	/* プレフィックスを無効にする。*/
 	pr->flags &= ~ND6_PREFIX_STATE_BUSY;
 
@@ -592,8 +567,8 @@
 
 /*
- *  nd6_prefix_onlink -- ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨­å®ããã¢ãã¬ã¹ãä½¿ç¨å¯è½ã«ããã
+ *  nd6_prefix_onlink -- プレフィックスをオンリンクに設定し、アドレスを使用可能にする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -605,10 +580,9 @@
 	int_t		ix;
 
-	/* æ¢ã«ãªã³ãªã³ã¯ç¶æ
-ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/
+	/* 既にオンリンク状態になっている場合はエラー。*/
 	if ((pr->flags & ND6_PREFIX_STATE_ONLINK) != 0)
 		return E_OBJ;
 
-	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã*/
+	/* リンクローカルアドレスが未登録であれば何もしない。*/
 	lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
 	if ((lla->flags & IN6_IFF_DEFINED) == 0)
@@ -616,7 +590,6 @@
 
 	/*
-	 *  æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
-	 *  ã¢ãã¬ã¹æ
-å ±ãæ¢ãã
+	 *  指定されたプレフィックスが割り当てられているインタフェースの
+	 *  アドレス情報を探す。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
@@ -628,9 +601,8 @@
 	if (ix >= 0) {
 
-		/* ã¢ãã¬ã¹æ
-å ±ãä½¿ç¨å¯è½ã«ããã*/
+		/* アドレス情報を使用可能にする。*/
 		ia->flags &= ~IN6_IFF_DETACHED;
 
-		/* ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨­å®ããã*/
+		/* プレフィックスをオンリンクに設定する。*/
 		pr->flags |= ND6_PREFIX_STATE_ONLINK;
 		}
@@ -640,8 +612,8 @@
 
 /*
- *  nd6_prefix_offlink -- ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨­å®ããã¢ãã¬ã¹ãä½¿ç¨ä¸å¯ã«ããã
+ *  nd6_prefix_offlink -- プレフィックスをオフリンクに設定し、アドレスを使用不可にする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -653,13 +625,11 @@
 	int_t		ix;
 
-	/* æ¢ã«ãªããªã³ã¯ç¶æ
-ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/
+	/* 既にオフリンク状態になっている場合はエラー。*/
 	if ((pr->flags & ND6_PREFIX_STATE_ONLINK) == 0)
 		return E_OBJ;
 
 	/*
-	 *  æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
-	 *  ã¢ãã¬ã¹æ
-å ±ãæ¢ãã
+	 *  指定されたプレフィックスが割り当てられているインタフェースの
+	 *  アドレス情報を探す。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
@@ -671,9 +641,8 @@
 	if (ix >= 0) {
 
-		/* ã¢ãã¬ã¹æ
-å ±ãä½¿ç¨ä¸å¯ã«ããã*/
+		/* アドレス情報を使用不可にする。*/
 		ia->flags |= IN6_IFF_DETACHED;
 
-		/* ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨­å®ããã*/
+		/* プレフィックスをオフリンクに設定する。*/
 		pr->flags &= ~ND6_PREFIX_STATE_ONLINK;
 		}
@@ -683,5 +652,5 @@
 
 /*
- *  in6_init_prefix_ltimes -- ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨­å®ããã
+ *  in6_init_prefix_ltimes -- プレフィックスの有効時間を設定する。
  */
 
@@ -691,5 +660,5 @@
 	SYSTIM		now;
 
-	/* æ¨å¥¨æå¹æéãæå¹æéããé·ãã¨ãã¯ã¨ã©ã¼ */
+	/* 推奨有効時間が有効時間より長いときはエラー */
 	if (pr->pltime > pr->vltime)
 		return E_PAR;
@@ -712,8 +681,8 @@
 
 /*
- *  nd6_prelist_add -- ãã¬ãã£ãã¯ã¹ãªã¹ãã«ãã¬ãã£ãã¯ã¹ãè¿½å ããã
+ *  nd6_prelist_add -- プレフィックスリストにプレフィックスを追加する。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -724,5 +693,5 @@
 	int_t		ix;
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãããç©ºãã®ãã¬ãã£ãã¯ã¹ã¨ã³ããªãæ¢ç´¢ããã*/
+	/* プレフィックスリストから空きのプレフィックスエントリを探索する。*/
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix --; ) {
 		pr = &nd6_prefix[ix];
@@ -731,5 +700,5 @@
 		}
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã«ç©ºãããªããã°ã¨ã©ã¼ */
+	/* プレフィックスリストに空きがなければエラー */
 	if (ix < 0)
 		return NULL;
@@ -737,9 +706,9 @@
 	pr->flags |= ND6_PREFIX_STATE_BUSY;
 
-	/* ãã¬ãã£ãã¯ã¹ãè¿½å ããã*/
+	/* プレフィックスを追加する。*/
 	pr->prefix     = pi->prefix;
 	pr->prefix_len = pi->prefix_len;
 
-	/* ãã©ã°ãè¨­å®ããã*/
+	/* フラグを設定する。*/
 	if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0)
 		pr->flags |= ND6_PREFIX_FLAG_ONLINK;
@@ -747,5 +716,5 @@
 		pr->flags |= ND6_PREFIX_FLAG_AUTO;
 
-	/* ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨­å®ããã*/
+	/* プレフィックスの有効時間を設定する。*/
 	pr->vltime = ntohl(pi->valid);
 	pr->pltime = ntohl(pi->preferred);
@@ -757,8 +726,8 @@
 		}
 
-	/* ã«ã¼ã¿ããããåæåããã*/
+	/* ルータマップを初期化する。*/
 	pr->routermap = 0;
 
-	/* ã«ã¼ã¿ãè¿½å ããã*/
+	/* ルータを追加する。*/
 	pfxrtr_add(pr - nd6_prefix, rtr_index);
 
@@ -767,5 +736,5 @@
 
 /*
- *  prelist_update -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã
+ *  prelist_update -- プレフィックス・リストを更新する。
  */
 
@@ -781,11 +750,11 @@
 	if ((pr = nd6_prefix_lookup(&pi->prefix, pi->prefix_len)) != NULL) {
 		/*
-		 *  ç»é²æ¸ã¿ã®å ´åã¯ããã¬ãã£ãã¯ã¹ãªã¹ããæ´æ°ããã
+		 *  登録済みの場合は、プレフィックスリストを更新する。
 		 */
 
 		/*
-		 *  ãã©ã°ã®æ´æ°ã®æ³¨æ:
-		 *    on-link ãããã¨ autonomous ãããã¯
-		 *    1 ãã 0 ã«å¤æ´ãã¦ã¯ãªããªãã
+		 *  フラグの更新の注意:
+		 *    on-link ビットと autonomous ビットは
+		 *    1 から 0 に変更してはならない。
 		 */
 
@@ -797,6 +766,6 @@
 		if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) {
 			/*
-			 *  éç¥ããããã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã®æã¯ã
-			 *  æå¹æéãæ´æ°ããã
+			 *  通知されたプレフィックスがオンリンクの時は、
+			 *  有効時間を更新する。
 			 */
 			pr->vltime = ntohl(pi->valid);
@@ -808,5 +777,5 @@
 		    (pr->flags & ND6_PREFIX_STATE_ONLINK) == 0) {
 			/*
-			 *  ãªããªã³ã¯ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«ãªã£ãæã®å¦çãå®è¡ããã
+			 *  オフリンクのプレフィックスがオンリンクになった時の処理を実行する。
 			 */
 			if (nd6_prefix_onlink(pr) != E_OK) {
@@ -820,7 +789,7 @@
 			pfxrtr_add(pr - nd6_prefix, router_index);
 		}
-	else {	/* æªç»é²ã®å ´å */
-
-		/* æå¹æé 0 ã®ãã¬ãã£ãã¯ã¹ã¯è¿½å ããªãã*/
+	else {	/* 未登録の場合 */
+
+		/* 有効時間 0 のプレフィックスは追加しない。*/
 		if (pi->valid == 0) {
 			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
@@ -828,5 +797,5 @@
 			}
 
-		/* ãªããªã³ã¯ã§ã¢ãã¬ã¹èªåè¨­å®ã«ä½¿ç¨ããªããã°è¿½å ããªãã*/
+		/* オフリンクでアドレス自動設定に使用しなければ追加しない。*/
 		if ((pi->flags & (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) !=
 		                 (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) {
@@ -835,5 +804,5 @@
 			}
 
-		/* ãã¬ãã£ãã¯ã¹ãè¿½å ããã*/
+		/* プレフィックスを追加する。*/
 		if ((pr = nd6_prelist_add(pi, router_index)) == NULL) {
 			syslog(LOG_ERROR, "[ND6 RTR] prefix add failed.");
@@ -842,5 +811,5 @@
 			}
 
-#if 1		/* ãã¬ãã£ãã¯ã¹ãæªç»é²ã®å ´åã ãè¡¨ç¤ºããã*/
+#if 1		/* プレフィックスが未登録の場合だけ表示する。*/
 		syslog(LOG_NOTICE, "[ND6 RTR] add prefix: flags[MOH]: %02x, addr: %s\n"
 		                   "                                      from: %s.",
@@ -851,6 +820,6 @@
 		if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0) {
 			/*
-			 *  ãªããªã³ã¯ã»ãã¬ãã£ãã¯ã¹ã®å ´åã¯ãæå¹æéã 0 ã«è¨­å®ããã
-			 *  ãã¨ã§æå¹æéåãã¨ãªãããªã¹ãããåé¤ãããã
+			 *  オフリンク・プレフィックスの場合は、有効時間を 0 に設定する。
+			 *  あとで有効期限切れとなり、リストから削除される。
 			 */
 			pr->vltime = 0;
@@ -861,5 +830,5 @@
 
 	/*
-	 *  ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãè¡ãã
+	 *  ステートレス・アドレス自動設定を行う。
 	 */
 	if ((pr->flags & ND6_PREFIX_FLAG_AUTO) == 0) {
@@ -869,7 +838,6 @@
 
 	/*
-	 *  éç¥ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
-	 *  ã¢ãã¬ã¹æ
-å ±ãæ¢ãã
+	 *  通知されたプレフィックスが割り当てられているインタフェースの
+	 *  アドレス情報を探す。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
@@ -881,9 +849,9 @@
 		}
 
-	if (ix >= 0) {	/* ç»é²æ¸ã¿ã®ã¨ã */
+	if (ix >= 0) {	/* 登録済みのとき */
 		if ((ia->flags & IN6_IFF_AUTOCONF) == 0) {
 			/*
-			 *  ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ã«ãã
-			 *  è¨­å®ããã¦ããªããã°æ´æ°ããªãã
+			 *  ステートレス・アドレス自動設定により
+			 *  設定されていなければ更新しない。
 			 */
 			;
@@ -891,5 +859,5 @@
 		else if (ia->flags & IN6_IFF_TENTATIVE) {
 			/*
-			 *  éè¤æ¤åºä¸­ãªãæ´æ°ããªãã
+			 *  重複検出中なら更新しない。
 			 */
 			;
@@ -902,5 +870,5 @@
 			int_t		ix;
 
-			/* æå¹æéãè¨­å®ããã*/
+			/* 有効時間を設定する。*/
 			syscall(get_tim(&now));
 
@@ -914,8 +882,8 @@
 			if (pr->vltime > (2 * 60 * 60) || pr->vltime > vltime) {
 				/*
-				 *  lifetime.expireãpi->valid (æå¹æé) ã¨
-				 *  pi->preferred (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
-				 *  éç¥ãããæå¹æéã 2 æéä»¥ä¸ããç¾å¨ã®æ®ãæéãã
-				 *  é·ããã°ãæ°ããæå¹æéã«ã¯ãéç¥ãããæå¹æéãè¨­å®ããã
+				 *  lifetime.expire、pi->valid (有効時間) と
+				 *  pi->preferred (推奨有効時間) の単位は [s]。
+				 *  通知された有効時間が 2 時間以上か、現在の残り時間より
+				 *  長ければ、新しい有効時間には、通知された有効時間を設定する。
 				 */
 				vltime = pr->vltime;
@@ -925,6 +893,5 @@
 			else {
 				/*
-				 *  IPsec ã¯æªå®è£
-ã®ããã2 æéãè¨­å®ããã
+				 *  IPsec は未実装のため、2 時間を設定する。
 				 */
 				vltime = 2 * 60 * 60;
@@ -933,8 +900,8 @@
 			lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
 
-			/* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/
+			/* プレフィックスマスクを生成する。*/
 			in6_plen2pmask(&mask, pr->prefix_len);
 
-			/* ã¢ãã¬ã¹ãçæããã*/
+			/* アドレスを生成する。*/
 			for (ix = 0; ix < 4; ix ++)
 				addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
@@ -947,11 +914,10 @@
 		}
 
-	else { /* æªç»é²ã®ã¨ã */
+	else { /* 未登録のとき */
 
 		/*
-		 *  ãã¬ãã£ãã¯ã¹é·ããã§ãã¯ããã
-		 *  ããããã¬ãã£ãã¯ã¹é·ã¨ã¤ã³ã¿ãã§ã¼ã¹ ID ã®åè¨ã
-		 *  128 ãããã«ä¸è´ããªãæã¯ããã¬ãã£ãã¯ã¹æ
-å ±ãç¡è¦ããã
+		 *  プレフィックス長をチェックする。
+		 *  もし、プレフィックス長とインタフェース ID の合計が
+		 *  128 ビットに一致しない時は、プレフィックス情報を無視する。
 		 */
 		if ((ifidlen = in6_if2idlen(ifp)) < 0)
@@ -978,5 +944,5 @@
 
 /*
- *  nd6_prelist_timer -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼
+ *  nd6_prelist_timer -- プレフィックス・リストの管理タイマー
  */
 
@@ -989,5 +955,5 @@
 
 	syscall(get_tim(&now));
-	now /= SYSTIM_HZ;		/* æå¹æéã®åä½ã¯ [s] */
+	now /= SYSTIM_HZ;		/* 有効時間の単位は [s] */
 
 	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
@@ -1002,5 +968,5 @@
 
 /*
- *  nd6_rs_output -- ã«ã¼ã¿è¦è«ãåºåããã
+ *  nd6_rs_output -- ルータ要請を出力する。
  */
 
@@ -1017,7 +983,6 @@
 
 	/*
-	 *  éä¿¡å
-ã¢ãã¬ã¹ã«ã¯ããªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãè¨­å®ãããã
-	 *  ã¾ã è¨­å®ããããªããã°ãç¡æå®ãè¨­å®ããã
+	 *  送信元アドレスには、リンクローカルアドレスを設定するが、
+	 *  まだ設定されいなければ、無指定を設定する。
 	 */
 	if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) != NULL && !IFA6_IS_NOTREADY(ifa))
@@ -1028,5 +993,5 @@
 	len = (ROUTER_SOLICIT_HDR_SIZE + 7) >> 3 << 3;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	/* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
 	if (in6_get_datagram(&output, len, 0, &in6_addr_linklocal_allrouters,
 	                     saddr, IPPROTO_ICMPV6,
@@ -1034,5 +999,5 @@
 		return;
 
-	/* ã«ã¼ã¿è¦è«ããããè¨­å®ããã*/
+	/* ルータ要請ヘッダを設定する。*/
 	rsh = GET_ROUTER_SOLICIT_HDR(output, IF_IP6_ROUTER_SOLICIT_HDR_OFFSET);
 	rsh->hdr.type       = ND_ROUTER_SOLICIT;
@@ -1040,9 +1005,9 @@
 	rsh->nd_rs_reserved = 0;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	rsh->hdr.sum = 0;
 	rsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)rsh - output->buf, len);
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -1054,5 +1019,5 @@
 
 /*
- *  nd6_defrtrlist_lookup -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã
+ *  nd6_defrtrlist_lookup -- ディフォルトルータ・リストを探索する。
  */
 
@@ -1073,5 +1038,5 @@
 
 /*
- *  nd6_router_lookup -- ã«ã¼ã¿ã®ã¢ãã¬ã¹ãè¿ãã
+ *  nd6_router_lookup -- ルータのアドレスを返す。
  *
  */
@@ -1087,8 +1052,8 @@
 
 /*
- *  nd6_defrtrlist_del -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã
+ *  nd6_defrtrlist_del -- ディフォルトルータ・リストからルータを削除する。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -1104,23 +1069,23 @@
 	if ((ia = in6ifa_ifpwithrtrix(ifp, rtrix)) != NULL) {
 		/*
-		 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã¬ãã£ãã¯ã¹ãéç¥ãã
-		 *  ã«ã¼ã¿ãå°éä¸è½ã«ããã
+		 *  ネットワークインタフェースのプレフィックスを通知した
+		 *  ルータを到達不能にする。
 		 */
 		ia->router_index = IN6_RTR_IX_UNREACH;
 		}
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/
+	/* プレフィックスリストからルータを削除する。*/
 	mask = make_mask(rtrix);
 	for (pix = NUM_ND6_PREFIX_ENTRY; pix --; )
 		nd6_prefix[pix].routermap &= ~mask;
 
-	/* åé¤ããã«ã¼ã¿ä»¥éãåã«è©°ããã*/
+	/* 削除したルータ以降を前に詰める。*/
 	for (rix = rtrix + 1; rix < def_router_count; rix ++)
 		nd6_def_router[rix - 1] = nd6_def_router[rix];
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã«ã¼ã¿ãæ´æ°ããã*/
+	/* プレフィックスリストのルータも更新する。*/
 	if (dr != nd6_def_router) {
 
-		/* ãã¹ã¯ãçæããã*/
+		/* マスクを生成する。*/
 		mask = 1;
 		for (ix = rtrix - 1; ix -- > 0; )
@@ -1134,13 +1099,10 @@
 	def_router_count --;
 
-	/* ãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ
-ãç¢ºèªããã*/
+	/* プレフィックスのオンリンク状態を確認する。*/
 	pfxlist_onlink_check();
 
 	/*
-	 *  åé¤ããã«ã¼ã¿ãåªå
-ãã£ãã©ã«ãã«ã¼ã¿ã®å ´åã¯ã
-	 *  åªå
-ãã£ãã©ã«ãã«ã¼ã¿ãé¸æããªããã
+	 *  削除するルータが優先ディフォルトルータの場合は、
+	 *  優先ディフォルトルータを選択しなおす。
 	 */
 	if (rtrix == 0)
@@ -1149,5 +1111,5 @@
 
 /*
- *  nd6_defrtrlist_timer -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼
+ *  nd6_defrtrlist_timer -- ディフォルトルータ・リストの管理タイマー
  */
 
@@ -1173,5 +1135,5 @@
 
 /*
- *  nd6_get_drl -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããç²å¾ããã
+ *  nd6_get_drl -- ディフォルトルータ・リストを獲得する。
  */
 
@@ -1184,5 +1146,5 @@
 
 /*
- *  nd6_get_prl -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããç²å¾ããã
+ *  nd6_get_prl -- プレフィックス・リストを獲得する。
  */
 
@@ -1196,6 +1158,5 @@
 
 /*
- *  nd6_ra_input -- ã«ã¼ã¿éç¥ã®å
-¥åå¦çã
+ *  nd6_ra_input -- ルータ通知の入力処理。
  */
 
@@ -1221,8 +1182,8 @@
 
 	/*
-	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
-	 *    ã»ãããé·ãç­ã
-	 *    ã»å§ç¹ã¢ãã¬ã¹ãããªã³ã¯ã­ã¼ã«ã«ã§ã¯ãªã (RFC2461)
+	 *  ヘッダのチェック、以下の場合は破棄する。
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
+	 *    ・ヘッダ長が短い
+	 *    ・始点アドレスが、リンクローカルではない (RFC2461)
 	 */
 	if (ip6h->hlim != IPV6_MAXHLIM                ||
@@ -1233,15 +1194,14 @@
 	rah  = GET_ROUTER_ADVERT_HDR(input, off);
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf + (off + ROUTER_ADVERT_HDR_SIZE),
 	                            input->len - (off + ROUTER_ADVERT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 	/*
-	 *  å°éå¯è½ç¶æ
-ã®æå¹æéã®æ´æ°
+	 *  到達可能状態の有効時間の更新
 
 	 */
 	if (rah->reachable) {
-		advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000;	/* rah->reachable ã®åä½ã¯ ms */
+		advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000;	/* rah->reachable の単位は ms */
 		if (advrea <= ND6_MAX_REACHABLE_TIME &&
 		    advrea != nd6_base_reachable_time) {
@@ -1255,21 +1215,21 @@
 		}
 
-	/* è¿é£æ¢ç´¢ã®éä¿¡ééã®æ´æ° */
+	/* 近隣探索の送信間隔の更新 */
 	if (rah->retransmit) {
 		nd6_retrans_time = ntohl(rah->retransmit) * SYSTIM_HZ / 1000;
-									/* rah->retransmit ã®åä½ã¯ ms */
-		}
-
-	/* ããããªãããã®è¦å®å¤ã®æ´æ° */
+									/* rah->retransmit の単位は ms */
+		}
+
+	/* ホップリミットの規定値の更新 */
 	if (rah->nd_ra_current_hoplimit) {
 		ip6_defhlim = rah->nd_ra_current_hoplimit;
 		}
 
-	/* ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®æ´æ° */
+	/* ディフォルトルータリストの更新 */
 	rix = defrtrlist_update(&ip6h->src,
 	                       ntohs(rah->nd_ra_router_lifetime),
-	                       rah->nd_ra_flags);		/* rah->nd_ra_router_lifetime ã®åä½ã¯ç§ */
-
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã®æ´æ° */
+	                       rah->nd_ra_flags);		/* rah->nd_ra_router_lifetime の単位は秒 */
+
+	/* プレフィックスリストの更新 */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)]) {
 		T_ND_OPT_PREFIX_INFO	*pi;
@@ -1279,35 +1239,32 @@
 		pi_off   = off + ROUTER_ADVERT_HDR_SIZE
 		               + nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)] - 8;
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		while (pi_count -- > 0) {
 			pi = (T_ND_OPT_PREFIX_INFO*)(input->buf + pi_off);
 			if (pi->type != ND_OPT_PREFIX_INFORMATION)
-				/* ãªãã·ã§ã³ã¿ã¤ãããã¬ãã£ãã¯ã¹æ
-å ±ã§ãªããã°ä½ãããªãã*/
+				/* オプションタイプがプレフィックス情報でなければ何もしない。*/
 				;
 			else if (pi->len != 4)
-			    	/* ãã¬ãã£ãã¯ã¹æ
-å ±ã®é·ãã 32 (8Ã4) ã§ãªããã°ä¸æ­£ */
+			    	/* プレフィックス情報の長さが 32 (8×4) でなければ不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] prefix opt len: %d.", pi->len);
 			else if (pi->prefix_len > 128)
-				/* ãã¬ãã£ãã¯ã¹é·ã¯ 128 ãããä»¥ä¸ */
+				/* プレフィックス長は 128 ビット以下 */
 				syslog(LOG_NOTICE, "[ND6 RTR] prefix len: %d.", pi->prefix_len);
 			else if (IN6_IS_ADDR_MULTICAST(&pi->prefix) ||
 			         IN6_IS_ADDR_LINKLOCAL(&pi->prefix))
-				/* ãã«ãã­ã£ã¹ãã¨ãªã³ã¯ã­ã¼ã«ã«ã¯ä¸æ­£ */
+				/* マルチキャストとリンクローカルは不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] invalid addr: %s from %s.",
 				                   ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src));
-#if 0	/* FreeBSD 6.3 ã§åé¤ããã¦ããã*/
+#if 0	/* FreeBSD 6.3 で削除されている。*/
 			else if (IN6_IS_ADDR_AGGREGATE_UNICAST(&pi->prefix) &&		
 			         (pi->prefix_len != 64)                       )
-				/* éç´å¯è½ã¦ãã­ã£ã¹ãã§ããã¬ãã£ãã¯ã¹é·ã 64 ãããä»¥å¤ã¯ä¸æ­£ */
+				/* 集約可能ユニキャストで、プレフィックス長が 64 ビット以外は不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] invalid prefix len for global: %d.", pi->prefix_len);
 #endif
 			else if (ntohl(pi->preferred) > ntohl(pi->valid))
-				/* æ¨å¥¨æå¹æéãæå¹æéããé·ããã°ä¸æ­£ */
+				/* 推奨有効時間が有効時間より長ければ不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] preferred(%d) > valid time(%d).", ntohl(pi->preferred), ntohl(pi->valid));
 			else {
-#if 0	/* ãã¬ãã£ãã¯ã¹ãæªç»é²ã®å ´åã ãè¡¨ç¤ºããã*/
+#if 0	/* プレフィックスが未登録の場合だけ表示する。*/
 				syslog(LOG_NOTICE, "[ND6 RTR] update prefix: flags[MOH]: %02x, addr: %s\n"
 				                   "                                         from: %s.",
@@ -1316,15 +1273,15 @@
 				if (rix >= 0) {
 					/*
-					 *  defrtrlist_update ã®æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã
-					 *  ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã
+					 *  defrtrlist_update の戻り値は、ルータのインデックス。
+					 *  ただし、値が -1 なら、プレフィックス・リストは更新しない。
 					 */
-					prelist_update(pi, rix);	/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã*/
+					prelist_update(pi, rix);	/* プレフィックス・リストを更新する。*/
 					}
 				}
-			pi_off += pi->len << 3;		/* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã */
-			}
-		}
-
-	/* MTU ã®æ´æ° */
+			pi_off += pi->len << 3;		/* オプション長の単位は 8 バイト */
+			}
+		}
+
+	/* MTU の更新 */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_MTU)]) {
 		T_ND_OPT_MTU_HDR	*optmtuh;
@@ -1335,13 +1292,13 @@
 
 		/*
-		 *  å¤ã®ãã§ãã¯
+		 *  値のチェック
 		 *
-		 *    ãªãã·ã§ã³é·: 1
-		 *    äºç´:         0
+		 *    オプション長: 1
+		 *    予約:         0
 		 */
 		if (optmtuh->len != 1 || optmtuh->reserved != 0)
 			goto err_ret;
 
-		/* MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ãªãç¡è¦ããã*/
+		/* MTU が IPv6 MMTU（1280 オクテット）以下なら無視する。*/
 		mtu = ntohl(optmtuh->mtu);
 		if (mtu >= IPV6_MMTU) {
@@ -1352,11 +1309,10 @@
 
 	/*
-	 *  ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã
+	 *  ルータの始点リンクアドレスを近隣キャッシュに登録する。
 	 */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ROUTER_ADVERT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -1364,16 +1320,15 @@
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
 		goto err_ret;
 
-	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 近隣キャッシュに登録する。*/
 	nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_ROUTER_ADVERT, 0);
 
 	/*
-	 *  ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã®ã§ã
-	 *  ãªã³ãªã³ã¯ç¶æ
-ãå¤åããå¯è½æ§ããããããããããã§ãã¯ããã
+	 *  ルータの始点リンクアドレスを近隣キャッシュに登録したので、
+	 *  オンリンク状態が変化する可能性があるため、それをチェックする。
 	 */
 	pfxlist_onlink_check();
@@ -1389,5 +1344,5 @@
 
 	/*
-	 *  ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã¯ãç ´æ£ãã¦çµäºããã
+	 *  ルータ通知を受信しない場合は、破棄して終了する。
 	 */
 	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RA_IN_PACKETS], 1);
@@ -1400,5 +1355,5 @@
 
 /*
- *  nd6_rtrsol_ctl -- ã«ã¼ã¿è¦è«åºåã®å¶å¾¡
+ *  nd6_rtrsol_ctl -- ルータ要請出力の制御
  */
 
@@ -1409,18 +1364,14 @@
 	int_t		try;
 
-	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®ã¢ãã¬ã¹æ
-å ±ãå¾ãã*/
+	/* リンクローカルアドレスのアドレス情報を得る。*/
 	if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) == NULL)
 		return;
 
-	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºãå¾
-ã¤ã*/
+	/* リンクローカルアドレスの重複検出終了を待つ。*/
 	do {
-		/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºå¾
-ã¡æéãè¨­å®ããã*/
+		/* リンクローカルアドレスの重複検出終了待ち時間を設定する。*/
 		syscall(dly_tsk(net_rand() % TMO_ND6_RTR_SOL_DELAY));
 
-		/* å¾
-ã£ã¦ããéã«éè¤ãæ¤åºããããçµäºããã*/
+		/* 待っている間に重複が検出されたら終了する。*/
 		if (ifa->flags & IN6_IFF_DUPLICATED)
 			return;
@@ -1430,13 +1381,12 @@
 	for (try = 0; try < NUM_ND6_RTR_SOL_RETRY; try ++) {
 
-		/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã«ã¨ã³ããªãããã°çµäº */
+		/* ディフォルトルータ・リストにエントリがあれば終了 */
 		if (def_router_count > 0)
 			return;
 
-		/* ã«ã¼ã¿è¦è«ãåºåããã*/
+		/* ルータ要請を出力する。*/
 		nd6_rs_output();
 
-		/* åºåã® 2 åç®ä»¥éã®é
-å»¶æéãè¨­å®ããã*/
+		/* 出力の 2 回目以降の遅延時間を設定する。*/
 		syscall(dly_tsk(TMO_ND6_RTR_SOL_INTERVAL));
 		}
@@ -1446,5 +1396,5 @@
 
 /*
- *  nd6_onlink_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+ *  nd6_onlink_prefix_lookup -- プレフィックスを探索する。
  */
 
@@ -1459,6 +1409,5 @@
 	now /= SYSTIM_HZ;
 
-	/* æ¨å¥¨æå¹æéå
-ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/
+	/* 推奨有効時間内のプレフィックスを探索する。*/
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
 		pr = &nd6_prefix[ix];
@@ -1472,6 +1421,5 @@
 		}
 
-	/* æå¹æéå
-ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/
+	/* 有効時間内のプレフィックスを探索する。*/
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
 		pr = &nd6_prefix[ix];
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/route6.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/route6.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/route6.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$
@@ -115,11 +103,10 @@
 #if 0
 /*
- *  éä¿¡å¸¯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã
- *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã
- */
-
-/*
- *  ip6_rthdr0 -- ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å
-¥åé¢æ°
+ *  通信帯域を食いつぶす攻撃への対応のため、
+ *  タイプ 0 経路制御ヘッダの処理を行わない。
+ */
+
+/*
+ *  ip6_rthdr0 -- タイプ 0 経路制御ヘッダの入力関数
  */
 
@@ -128,9 +115,9 @@
 {
 	if (rt0h->segleft == 0) {
-		/* ä¸­ç¶ãã¼ãæ°ã¯ 0 ãªã®ã§ãçµç¹ãã¼ã */
+		/* 中継ノード数は 0 なので、終点ノード */
 		return E_OK;
 		}
 
-	/* len ã¨ segleft ã®æ­£å½æ§ãã§ãã¯ */
+	/* len と segleft の正当性チェック */
 #ifdef IP6_CFG_COMPAT_RFC1883
 	if ((rt0h->len % 2) || (rt0h->len > 46)) {
@@ -139,6 +126,6 @@
 #endif
 		/*
-		 *  len ã¯å¶æ°ã§ã(23 * 2) ã¾ã§ã
-		 *  ãã ãã(23 * 2) ã®å¶éã¯ RFC 2462 ã§åé¤ããã¦ããã
+		 *  len は偶数で、(23 * 2) まで。
+		 *  ただし、(23 * 2) の制限は RFC 2462 で削除されている。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
@@ -148,10 +135,10 @@
 		}
 
-	/* len ãä¸­ç¶ãã¼ãæ°ã¨çç¾ãã¦ããªãããã§ãã¯ããã*/
+	/* len が中継ノード数と矛盾していないかチェックする。*/
 	if ((rt0h->len / 2) < rt0h->segleft) {
 		/*
-		 *  len ã¯ 8ãªã¯ãããåä½ãsegleft ã¯ 16ãªã¯ãããåä½ãªã®ã§ã
-		 *  len / 2 == segleft ã¨ãªãã¯ãã
-		 *  len / 2 <  segleft ã¯ã¨ã©ã¼ã
+		 *  len は 8オクテット単位、segleft は 16オクテット単位なので、
+		 *  len / 2 == segleft となるはず。
+		 *  len / 2 <  segleft はエラー。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
@@ -162,9 +149,7 @@
 
 	/*
-	 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
-	 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
-ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
-	 *  å
-¥åãã¼ã¿ã°ã©ã ã®å¦çãçµäºããã
+	 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
+	 *  終点ノードではない。本実装では、中継をしないので、
+	 *  入力データグラムの処理を終了する。
 	 */
 	syscall(rel_net_buf(input));
@@ -175,6 +160,5 @@
 
 /*
- *  route6_input -- çµè·¯å¶å¾¡ãããã®å
-¥åé¢æ°
+ *  route6_input -- 経路制御ヘッダの入力関数
  */
 
@@ -186,5 +170,5 @@
 	uint_t		len, off = *offp;
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	/* ネットワークバッファの残りの長さをチェックする。*/
 	if (input->len - off < sizeof(T_IP6_RT_HDR))
 		goto buf_rel;
@@ -193,5 +177,5 @@
 	len = (rth->len + 1) << 3;
 
-	/* çµè·¯å¶å¾¡ãããã®é·ãããã§ãã¯ããã*/
+	/* 経路制御ヘッダの長さをチェックする。*/
 	if (input->len < off + len)
 		goto buf_rel;
@@ -199,11 +183,11 @@
 #if 0
 	/*
-	 *  éä¿¡å¸¯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã
-	 *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã
+	 *  通信帯域を食いつぶす攻撃への対応のため、
+	 *  タイプ 0 経路制御ヘッダの処理を行わない。
 	 */
 	if (rth->type == IPV6_RTHDR_TYPE_0) {
 		if (ip6_rthdr0(input, (T_IP6_RT0_HDR*)rth) != E_OK) {
 
-			/* ã¨ã©ã¼ã®å ´åã¯ãip6_rthdr0 ã§ãããã¡ãéæ¾ãã¦ããã*/
+			/* エラーの場合は、ip6_rthdr0 でバッファを開放している。*/
 			return IPPROTO_DONE;
 			}
@@ -212,8 +196,7 @@
 
 		/*
-		 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
-		 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
-ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
-		 *  ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã
+		 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
+		 *  終点ノードではない。本実装では、中継をしないので、
+		 *  ICMP6 エラーを返送して処理を終了する。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
@@ -226,8 +209,7 @@
 
 		/*
-		 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
-		 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
-ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
-		 *  ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã
+		 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
+		 *  終点ノードではない。本実装では、中継をしないので、
+		 *  ICMP6 エラーを返送して処理を終了する。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/scope6.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/scope6.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/scope6.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$
@@ -147,5 +135,5 @@
 
 /*
- *  in6_addrscope -- ã¢ãã¬ã¹ã®ã¹ã³ã¼ã ID ãè¿ãã
+ *  in6_addrscope -- アドレスのスコープ ID を返す。
  */
 
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_input.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_input.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_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 -- 送信元にポートが定義されていないことを通知する。
  */
 
@@ -93,9 +80,9 @@
 	if (GET_IP_VER(input)==IPV6_VERSION) {
 
-		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã¯ ICMP ã¨ã©ã¼ãéç¥ããªãã*/
+		/* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/
 		if (!IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) {
 			syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
 
-			/* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/
+			/* icmp6_error で、ネットワークバッファ input を返却する。*/
 			icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0);
 			}
@@ -105,10 +92,10 @@
 	else /*if (GET_IP_VER(input)==IPV4_VERSION)*/ {
 
-		/* ã­ã¼ã«ã« 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 を返却しないので下へ抜ける。*/
 			}
 		syscall(rel_net_buf(input));
@@ -119,9 +106,9 @@
 	NET_COUNT_MIB(udp_stats.udpNoPorts, 1);
 
-	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã¯ ICMP ã¨ã©ã¼ãéç¥ããªãã*/
+	/* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/
 	if (!IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) {
 		syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
 
-		/* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/
+		/* icmp6_error で、ネットワークバッファ input を返却する。*/
 		icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0);
 		}
Index: azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_subr.c
===================================================================
--- azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_subr.c	(revision 388)
+++ azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/udp6_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,11 +66,9 @@
 
 /*
- *  udp6_is_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *  udp6_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
  *
- *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *    以下の場合もデータグラムを受信する。
  *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ã
+ *      ・あて先アドレスがマルチキャスト
  */
 
@@ -105,12 +91,10 @@
 
 /*
- *  udpn_is_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *  udpn_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
  *
- *    DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãä»¥ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *    DHCP_CFG が定義されているときは、以下のデータグラムを受信する。
  *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
- *      ã»ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©
+ *      ・あて先アドレスがブロードキャスト
+ *      ・ローカルアドレスが未定義
  */
 
@@ -139,11 +123,9 @@
 
 /*
- *  udpn_is_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *  udpn_is_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
  *
- *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *    以下の場合もデータグラムを受信する。
  *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ *      ・あて先アドレスがブロードキャスト
  */
 
