Changeset 321 for EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h
- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 36 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 82 70 83 71 /* 84 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ï¼T_IFNETï¼ã®ãã©ã°85 */ 86 87 #define ND6_IFF_IFDISABLED UINT_C(0x01) /* ã¤ã³ã¿ãã§ã¼ã¹ãç¡å¹ã«ããã*/88 89 /* 90 * è¿é£ãã£ãã·ã¥72 * ネットワークインタフェース構造体(T_IFNET)のフラグ 73 */ 74 75 #define ND6_IFF_IFDISABLED UINT_C(0x01) /* インタフェースを無効にする。*/ 76 77 /* 78 * 近隣キャッシュ 91 79 */ 92 80 … … 95 83 T_NET_BUF *hold; 96 84 TMO tmout; 97 SYSTIM expire; /* [ms] æå¹æéãåããæå»*/85 SYSTIM expire; /* [ms] 有効時間が切れる時刻 */ 98 86 T_IF_ADDR ifaddr; 99 87 uint8_t state; … … 102 90 } T_LLINFO_ND6; 103 91 104 /* è¿é£ãã£ãã·ã¥ã®ç¶æ 105 */ 106 107 #define ND6_LLINFO_FREE 0 /* æªä½¿ç¨ */ 108 #define ND6_LLINFO_NO_STATE 1 /* ç¶æ 109 æªå®ç¾© */ 110 #define ND6_LLINFO_INCOMPLETE 2 /* æªè§£æ±º */ 111 #define ND6_LLINFO_REACHABLE 3 /* å°éå¯è½ */ 112 #define ND6_LLINFO_STALE 4 /* å°éå¯è½æ§ã¯æªç¢ºèª */ 113 #define ND6_LLINFO_DELAY 5 /* å°éå¯è½æ§ã®ç¢ºèªå¾ 114 æ© */ 115 #define ND6_LLINFO_PROBE 6 /* å°éå¯è½æ§ã確èªä¸ */ 92 /* 近隣キャッシュの状態 */ 93 94 #define ND6_LLINFO_FREE 0 /* 未使用 */ 95 #define ND6_LLINFO_NO_STATE 1 /* 状態未定義 */ 96 #define ND6_LLINFO_INCOMPLETE 2 /* 未解決 */ 97 #define ND6_LLINFO_REACHABLE 3 /* 到達可能 */ 98 #define ND6_LLINFO_STALE 4 /* 到達可能性は未確認 */ 99 #define ND6_LLINFO_DELAY 5 /* 到達可能性の確認待機 */ 100 #define ND6_LLINFO_PROBE 6 /* 到達可能性を確認中 */ 116 101 117 102 #define ND6_IS_LLINFO_PROBREACH(n) ((n)->state > ND6_LLINFO_INCOMPLETE) 118 103 119 /* è¿é£ãã£ãã·ã¥ã®å¶å¾¡ããã */ 120 121 #define ND6_LLIF_ROUTER UINT_C(0x80) /* ã«ã¼ã¿ */ 122 #define ND6_LLIF_ASKED UINT_C(0x40) /* éç¥æ¸ã¿ */ 123 #define ND6_LLIF_STATE_MASK UINT_C(0x07) /* ç¶æ 124 ãã¹ã¯ */ 125 126 /* è¿é£æ¢ç´¢ãã£ãã·ã¥ãæå¹æéã®å®ç¾© */ 104 /* 近隣キャッシュの制御ビット */ 105 106 #define ND6_LLIF_ROUTER UINT_C(0x80) /* ルータ */ 107 #define ND6_LLIF_ASKED UINT_C(0x40) /* 通知済み */ 108 #define ND6_LLIF_STATE_MASK UINT_C(0x07) /* 状態マスク */ 109 110 /* 近隣探索キャッシュ、有効時間の定義 */ 127 111 128 112 #define ND6_SLOW_TMO ((60*60*1000)/NET_TIMER_HZ) 129 /* 1 [ æé] */130 /* è¿é£æ¢ç´¢ãã£ãã·ã¥æ´æ°ã¿ã¤ã ã¢ã¦ã*/131 132 #define ND6_MAX_DAD_TRY 15 /* éè¤ã¢ãã¬ã¹æ¤åºã®åéåæ°*/133 #define ND6_MAX_MCAST_QUERY 3 /* ãã«ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°*/134 #define ND6_MAX_UCAST_QUERY 3 /* ã¦ããã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°*/113 /* 1 [時間] */ 114 /* 近隣探索キャッシュ更新タイムアウト */ 115 116 #define ND6_MAX_DAD_TRY 15 /* 重複アドレス検出の再送回数 */ 117 #define ND6_MAX_MCAST_QUERY 3 /* マルチキャストアドレス要請の再送回数 */ 118 #define ND6_MAX_UCAST_QUERY 3 /* ユニキャストアドレス要請の再送回数 */ 135 119 136 120 #define ND6_INFINITE_LIFETIME 0xffffffff 137 121 138 122 #define ND6_GCOLLECTION_TIME (60*60*24*SYSTIM_HZ) 139 /* ã´ãæ¾ãå¨æã1 æ¥ */ 140 #define ND6_DELAY_TIME (5*SYSTIM_HZ) /* 確èªå¾ 141 æ©é 142 延 */ 143 #define ND6_FIRST_DAD_DELAY_TIME (1*SYSTIM_HZ) /* æåã®éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é 144 延 */ 123 /* ゴミ拾い周期、1 日 */ 124 #define ND6_DELAY_TIME (5*SYSTIM_HZ) /* 確認待機遅延 */ 125 #define ND6_FIRST_DAD_DELAY_TIME (1*SYSTIM_HZ) /* 最初の重複アドレス検出送信遅延 */ 145 126 #define ND6_DAD_DELAY_TIME (5*SYSTIM_HZ/10) 146 /* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é 147 延 */ 148 149 /* è¿é£æ¢ç´¢ç¨ã¿ã¤ãã®è¨å® */ 150 151 #define ND6_TIMER_TMO ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] éé */ 152 153 /* 154 * å°éå¯è½ç¶æ 155 ã®æå¹æé 156 */ 157 158 #define ND6_DEF_REACHABLE_TIME (30*SYSTIM_HZ) /* å°éå¯è½ç¶æ 159 ã®æå¹æéã®æ¢å®å¤ */ 127 /* 重複アドレス検出送信遅延 */ 128 129 /* 近隣探索用タイマの設定 */ 130 131 #define ND6_TIMER_TMO ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] 間隔 */ 132 133 /* 134 * 到達可能状態の有効時間 135 */ 136 137 #define ND6_DEF_REACHABLE_TIME (30*SYSTIM_HZ) /* 到達可能状態の有効時間の既定値 */ 160 138 #define ND6_MAX_REACHABLE_TIME (60*60*SYSTIM_HZ) 161 /* å°éå¯è½ç¶æ 162 ã®æå¹æéã®æ¢å®å¤ */ 139 /* 到達可能状態の有効時間の既定値 */ 163 140 #define ND6_RECALC_REACHTM_INTERVAL (60*60*2*SYSTIM_HZ) 164 /* å°éå¯è½ç¶æ 165 ã®æå¹æéåè¨ç®éé */ 166 167 #define ND6_MIN_REACHTM_RAND_FACTOR 512 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 0.5 */ 168 169 #if 1 /* ã¿ã¤ãã¼ã®èµ·åééãèæ 170 ®ããè¦å®ããçãè¨å® */ 171 #define ND6_MAX_REACHTM_RAND_FACTOR 1484 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 1.45 */ 141 /* 到達可能状態の有効時間再計算間隔 */ 142 143 #define ND6_MIN_REACHTM_RAND_FACTOR 512 /* 最小乱数補正値、1,024 * 0.5 */ 144 145 #if 1 /* タイマーの起動間隔を考慮し、規定より短く設定 */ 146 #define ND6_MAX_REACHTM_RAND_FACTOR 1484 /* 最小乱数補正値、1,024 * 1.45 */ 172 147 #else 173 #define ND6_MAX_REACHTM_RAND_FACTOR 1536 /* æå°ä¹±æ°è£æ£å¤ã1,024 * 1.5 */148 #define ND6_MAX_REACHTM_RAND_FACTOR 1536 /* 最小乱数補正値、1,024 * 1.5 */ 174 149 #endif 175 150 176 /* å°éå¯è½ç¶æ 177 ã®æå¹æéã®è¨ç®ãã¯ã */ 151 /* 到達可能状態の有効時間の計算マクロ */ 178 152 179 153 #define ND6_CALC_REACH_TIME(b) \ … … 182 156 183 157 /* 184 * è¿é£æ¢ç´¢ã®éä¿¡éé158 * 近隣探索の送信間隔 185 159 */ 186 160 … … 188 162 189 163 /* 190 * ã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ãããå¤164 * ルータ通知により変更されることがある値 191 165 */ 192 166 193 167 #if NUM_ND6_DEF_RTR_ENTRY > 0 194 168 195 /* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤*/169 /* ルータ通知を受信する場合は、通知された値 */ 196 170 197 171 #define ND6_REACHABLE_TIME nd6_reachable_time … … 200 174 #else /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */ 201 175 202 /* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤*/176 /* ルータ通知を受信しない場合の値は既定値 */ 203 177 204 178 #define ND6_REACHABLE_TIME ND6_DEF_REACHABLE_TIME … … 208 182 209 183 /* 210 * ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã184 * ディフォルトルータ・リスト 211 185 */ 212 186 213 187 typedef struct t_def_router { 214 188 T_IN6_ADDR addr; 215 SYSTIM expire; /* [ms] æå¹æéãåããæå»*/216 uint32_t lifetime; /* [ms] æå¹æé*/217 uint16_t plistmap; /* ãã¬ãã£ãã¯ã¹ããã*/218 uint8_t flags; /* ã«ã¼ã¿éç¥ã®ãã©ã°*/189 SYSTIM expire; /* [ms] 有効時間が切れる時刻 */ 190 uint32_t lifetime; /* [ms] 有効時間 */ 191 uint16_t plistmap; /* プレフィックスマップ */ 192 uint8_t flags; /* ルータ通知のフラグ */ 219 193 uint8_t state; 220 194 } T_DEF_ROUTER; 221 195 222 /* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç¶æ 223 */ 224 225 #define ND6_DEF_RTR_BUSY 0xff /* 使ç¨ä¸ */ 226 227 /* ãã¬ãã£ãã¯ã¹ã®ã¤ã³ããã¯ã¹ */ 196 /* ディフォルトルータ・リストの状態 */ 197 198 #define ND6_DEF_RTR_BUSY 0xff /* 使用中 */ 199 200 /* プレフィックスのインデックス */ 228 201 229 202 #define ND6_PREFIX_IX_INVALID 0xff 230 203 231 204 /* 232 * ãã¬ãã£ãã¯ã¹ã»ãªã¹ã205 * プレフィックス・リスト 233 206 */ 234 207 235 208 typedef struct t_nd6_prefix { 236 T_IN6_ADDR prefix; /* ãã¬ãã£ãã¯ã¹*/237 uint32_t expire; /* [s] æå¹æéãåããæå»*/238 uint32_t preferred; /* [s] æ¨å¥¨æå¹æéãåããæå»*/239 uint32_t vltime; /* [s] æå¹æé*/240 uint32_t pltime; /* [s] æ¨å¥¨æå¹æé*/241 uint16_t routermap; /* ã«ã¼ã¿ããã*/242 uint8_t flags; /* ãã©ã°*/243 uint8_t prefix_len; /* ãã¬ãã£ãã¯ã¹é·*/209 T_IN6_ADDR prefix; /* プレフィックス */ 210 uint32_t expire; /* [s] 有効時間が切れる時刻 */ 211 uint32_t preferred; /* [s] 推奨有効時間が切れる時刻 */ 212 uint32_t vltime; /* [s] 有効時間 */ 213 uint32_t pltime; /* [s] 推奨有効時間 */ 214 uint16_t routermap; /* ルータマップ */ 215 uint8_t flags; /* フラグ */ 216 uint8_t prefix_len; /* プレフィックス長 */ 244 217 } T_ND6_PREFIX; 245 218 246 /* ãã©ã° */ 247 248 #define ND6_PREFIX_FLAG_ONLINK UINT_C(0x80) /* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹ */ 249 #define ND6_PREFIX_FLAG_AUTO UINT_C(0x40) /* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨å®*/ 250 251 #define ND6_PREFIX_STATE_BUSY UINT_C(0x01) /* 使ç¨ä¸ */ 252 #define ND6_PREFIX_STATE_ONLINK UINT_C(0x02) /* ãªã³ãªã³ã¯ç¶æ 253 */ 254 #define ND6_PREFIX_STATE_DETACHED UINT_C(0x04) /* é使ç¨ç¶æ 255 */ 256 257 /* 258 * å¤æ° 219 /* フラグ */ 220 221 #define ND6_PREFIX_FLAG_ONLINK UINT_C(0x80) /* オンリンクプレフィックス */ 222 #define ND6_PREFIX_FLAG_AUTO UINT_C(0x40) /* ステートレス・アドレス自動設定*/ 223 224 #define ND6_PREFIX_STATE_BUSY UINT_C(0x01) /* 使用中 */ 225 #define ND6_PREFIX_STATE_ONLINK UINT_C(0x02) /* オンリンク状態 */ 226 #define ND6_PREFIX_STATE_DETACHED UINT_C(0x04) /* 非使用状態 */ 227 228 /* 229 * 変数 259 230 */ 260 231 … … 266 237 267 238 /* 268 * é¢æ°239 * 関数 269 240 */ 270 241
Note:
See TracChangeset
for help on using the changeset viewer.