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