Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/tinet/netinet6/nd6.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r388 r389  
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
    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 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    132120
    133121/*
    134  *  近隣キャッシュ
     122 *  近隣キャッシュ
    135123 */
    136124
     
    138126
    139127/*
    140  *  nd6_free -- ルータを削除する。
     128 *  nd6_free -- ルータを削除する。
    141129 */
    142130
     
    150138                ln->state = ND6_LLINFO_INCOMPLETE;
    151139
    152                 /* プレフィックス・リストからルータを削除する。*/
     140                /* プレフィックス・リストからルータを削除する。*/
    153141                nd6_defrtrlist_del(dr);
    154142                }
     
    156144
    157145/*
    158  *  nd6_timer -- 近隣探索管理タイマー
     146 *  nd6_timer -- 近隣探索管理タイマー
    159147 */
    160148
     
    167155        int_t           ix;
    168156
    169         /* 近隣キャッシュの処理 */
     157        /* 近隣キャッシュの処理 */
    170158        syscall(wai_sem(SEM_ND6_CACHE));
    171159        syscall(get_tim(&now));
     
    177165                        switch (ln->state) {
    178166
    179                         case ND6_LLINFO_INCOMPLETE:     /* 未解決            */
     167                        case ND6_LLINFO_INCOMPLETE:     /* 未解決          */
    180168                                if (ln->asked < ND6_MAX_MCAST_QUERY) {
    181169                                        /*
    182                                          *  マルチキャストアドレス要請の再送回数以下の場合の処理
     170                                         *  マルチキャストアドレス要請の再送回数以下の場合の処理
    183171                                         */
    184172                                        ln->asked ++;
    185                                         ln->expire = now + ND6_RETRANS_TIME;    /* 近隣探索送信間隔 */
     173                                        ln->expire = now + ND6_RETRANS_TIME;    /* 近隣探索送信間隔 */
    186174                                        nd6_ns_output(ifp, &in6_addr_unspecified, &ln->addr, ln, false);
    187175                                        }
     
    189177                                        if (ln->hold != NULL) {
    190178                                                /*
    191                                                  *  最終的には、保留されているネットワークバッファが
    192                                                  *  あれば、ICMP6 ERROR を自分自身に返したあと、
    193                                                  *  ネットワークバッファを開放する。
    194                                                  *  しかし、現在、icmp6_error の実è£
    195 ãŒä¸å®Œå
    196 ¨ã®ãŸã‚ã€
    197                                                  *  ネットワークバッファの開放のみ行う。
     179                                                 *  最終的には、保留されているネットワークバッファが
     180                                                 *  あれば、ICMP6 ERROR を自分自身に返したあと、
     181                                                 *  ネットワークバッファを開放する。
     182                                                 *  しかし、現在、icmp6_error の実装が不完全のため、
     183                                                 *  ネットワークバッファの開放のみ行う。
    198184                                                 */
    199 #if 0   /* 保留 */
     185#if 0   /* 保留 */
    200186                                                icmp6_error(ln->hold, ICMP6_DST_UNREACH,
    201187                                                                      ICMP6_DST_UNREACH_ADDR, 0);
     
    209195                                break;
    210196
    211                         case ND6_LLINFO_REACHABLE:      /* 到達可能         */
     197                        case ND6_LLINFO_REACHABLE:      /* 到達可能         */
    212198                                if (ln->expire) {
    213199                                        ln->expire = now + ND6_GCOLLECTION_TIME;
     
    216202                                break;
    217203
    218                         case ND6_LLINFO_STALE:          /* 到達可能性は未確認  */
     204                        case ND6_LLINFO_STALE:          /* 到達可能性は未確認    */
    219205                                if (ln->expire) {
    220206                                        if (ln->hold != NULL) {
     
    227213                                break;
    228214
    229                         case ND6_LLINFO_DELAY:          /* 到達可能性の確認å¾
    230 æ©Ÿ     */
     215                        case ND6_LLINFO_DELAY:          /* 到達可能性の確認待機   */
    231216                                ln->asked = 1;
    232                                 ln->expire = now + ND6_RETRANS_TIME;            /* 近隣探索送信間隔 */
     217                                ln->expire = now + ND6_RETRANS_TIME;            /* 近隣探索送信間隔 */
    233218                                ln->state = ND6_LLINFO_PROBE;
    234219                                nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
    235220                                break;
    236221
    237                         case ND6_LLINFO_PROBE:          /* 到達可能性を確認中  */
     222                        case ND6_LLINFO_PROBE:          /* 到達可能性を確認中    */
    238223                                if (ln->asked < ND6_MAX_UCAST_QUERY) {
    239224                                        /*
    240                                          *  ユニキャストアドレス要請の再送回数以下の場合の処理
     225                                         *  ユニキャストアドレス要請の再送回数以下の場合の処理
    241226                                         */
    242227                                        ln->asked ++;
    243                                         ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
     228                                        ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
    244229                                        nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
    245230                                        }
     
    259244        syscall(sig_sem(SEM_ND6_CACHE));
    260245
    261         /* ディフォルトルータ・リストの処理 */
     246        /* ディフォルトルータ・リストの処理 */
    262247        nd6_defrtrlist_timer();
    263248
    264         /* プレフィックス・リストの処理 */
     249        /* プレフィックス・リストの処理 */
    265250        nd6_prelist_timer();
    266251
    267         /* ネットワークインタフェースのアドレスの処理 */
     252        /* ネットワークインタフェースのアドレスの処理 */
    268253        in6_ifaddr_timer(ifp);
    269254
    270255        /*
    271          *  到達可能状æ
    272 ‹ã®æœ‰åŠ¹æ™‚間の更新
     256         *  到達可能状態の有効時間の更新
    273257         */
    274258        if ((int32_t)(nd6_recalc_reachtm_interval - now) < 0) {
     
    281265
    282266/*
    283  *  nd6_get_cache -- 近隣キャッシュを獲得する。
     267 *  nd6_get_cache -- 近隣キャッシュを獲得する。
    284268 */
    285269
     
    291275
    292276/*
    293  *  nd6_ifattach -- 近隣探索の初期設定を行う。
     277 *  nd6_ifattach -- 近隣探索の初期設定を行う。
    294278 */
    295279
     
    300284
    301285/*
    302  *  nd6_output_hold -- 近隣探索キャッシュに保留されている
    303  *                     ã‚¢ãƒ‰ãƒ¬ã‚¹è§£æ±ºå¾
    304 ã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ãŒã‚れば送信する。
    305  *
    306  *    注意: セマフォ SEM_ND6_CACHE によりロック状æ
    307 ‹ã§å‘¼å‡ºã™ã“と。
     286 *  nd6_output_hold -- 近隣探索キャッシュに保留されている
     287 *                     アドレス解決待ちのデータグラムがあれば送信する。
     288 *
     289 *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
    308290 */
    309291
     
    313295        SYSTIM now;
    314296
    315         /* アドレス解決å¾
    316 ã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ãŒã‚れば送信する。*/
     297        /* アドレス解決待ちのデータグラムがあれば送信する。*/
    317298        if (ln->hold) {
    318299
    319                 /* タイムアウトの処理 */
     300                /* タイムアウトの処理 */
    320301                if (ln->tmout != TMO_FEVR) {
    321302
    322303                        /*
    323                          *  タイムアウトの指定が永ä¹
    324 ã§ãªãã€æ™‚間を過ぎていれば、
    325                          *  出力しないで終了する。
     304                         *  タイムアウトの指定が永久でなく、時間を過ぎていれば、
     305                         *  出力しないで終了する。
    326306                         */
    327307                        syscall(get_tim(&now));
     
    341321
    342322/*
    343  *  nd6_lookup -- 近隣探索キャッシュを探索する。
    344  *
    345  *    注意: セマフォ SEM_ND6_CACHE によりロック状æ
    346 ‹ã§å‘¼å‡ºã™ã“と。
     323 *  nd6_lookup -- 近隣探索キャッシュを探索する。
     324 *
     325 *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
    347326 *
    348327 */
     
    356335        for (ix = NUM_ND6_CACHE_ENTRY; ix -- > 0; ) {
    357336                if (nd6_cache[ix].state == 0) {
    358                         /* 未使用エントリのインデックスを記録する。*/
     337                        /* 未使用エントリのインデックスを記録する。*/
    359338                        if (fix == -1)
    360339                                fix = ix;
     
    364343                        }
    365344                else if ((int32_t)(nd6_cache[ix].expire - min) < 0) {   /* nd6_cache[ix].expire < min */
    366                         /* 有効期限が最短エントリのインデックスを記録する。*/
     345                        /* 有効期限が最短エントリのインデックスを記録する。*/
    367346                        min = nd6_cache[ix].expire;
    368347                        mix = ix;
     
    388367
    389368/*
    390  *  nd6_cache_lladdr -- 近隣探索キャッシュに登録する。
     369 *  nd6_cache_lladdr -- 近隣探索キャッシュに登録する。
    391370 */
    392371
     
    400379        int_t           newstate = ND6_LLINFO_INCOMPLETE;
    401380
    402         /* アドレスが無指定なら何もしない。*/
     381        /* アドレスが無指定なら何もしない。*/
    403382        if (IN6_IS_ADDR_UNSPECIFIED(from))
    404383                return NULL;
    405384
    406         /* 近隣キャッシュに登録する。*/
     385        /* 近隣キャッシュに登録する。*/
    407386        syscall(wai_sem(SEM_ND6_CACHE));
    408387        if ((ln = nd6_lookup(from, false)) == NULL) {
     
    422401
    423402        /*
    424          *  状æ
    425 ‹é·ç§»è¡¨
     403         *  状態遷移表
    426404         *
    427405         *  nd_na_flags
    428          *  newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する)
     406         *  newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する)
    429407         *
    430408         *      F       F       N       -    (1)
     
    437415         */
    438416
    439         /* データリンク層のアドレスが通知されていれば更新する。*/
     417        /* データリンク層のアドレスが通知されていれば更新する。*/
    440418        if (lladdr != NULL) {
    441419                ln->ifaddr = *(T_IF_ADDR *)lladdr;
     
    459437                }
    460438
    461         /* 近隣キャッシュエントリを更新する。*/
     439        /* 近隣キャッシュエントリを更新する。*/
    462440        if (doupdate) {
    463441                ln->state = newstate;
     
    467445                        ln->expire = now + ND6_GCOLLECTION_TIME;
    468446
    469                         /* アドレス解決å¾
    470 ã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ãŒã‚れば送信する。*/
     447                        /* アドレス解決待ちのデータグラムがあれば送信する。*/
    471448                        nd6_output_hold(ifp, ln);
    472449                        }
     
    477454
    478455
    479         /* ルータ通知の処理 */
     456        /* ルータ通知の処理 */
    480457        switch (type) {
    481458
     
    507484
    508485/*
    509  *  nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。
     486 *  nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。
    510487 */
    511488
     
    526503
    527504/*
    528  *  nd6_output -- 近隣探索の出力関数
    529  *
    530  *    注意: セマフォ SEM_ND6_CACHE によりロック状æ
    531 ‹ã§å‘¼å‡ºã™ã“と。
     505 *  nd6_output -- 近隣探索の出力関数
     506 *
     507 *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
    532508 */
    533509
     
    539515
    540516        /*
    541          *  あてå
    542 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‹ã€è¿‘隣キャッシュが
    543          *  不要の場合は直ちに送信する。
     517         *  あて先アドレスがマルチキャストか、近隣キャッシュが
     518         *  不要の場合は直ちに送信する。
    544519         */
    545520        if (!(IN6_IS_ADDR_MULTICAST(dst) || !IF_IN6_NEED_CACHE(ifp))) {
    546521                if (ln == NULL) {
    547                         /* 近隣キャッシュが未定義の場合 */
     522                        /* 近隣キャッシュが未定義の場合 */
    548523                        if (nd6_is_addr_neighbor(ifp, dst)) {
    549524                                /*
    550                                  *  指定されたアドレスのノードが同一リンクにある時は、
    551                                  *  近隣キャッシュを探索し、未定義の場合は登録する。
     525                                 *  指定されたアドレスのノードが同一リンクにある時は、
     526                                 *  近隣キャッシュを探索し、未定義の場合は登録する。
    552527                                 */
    553528                                ln = nd6_lookup(dst, true);
     
    560535
    561536                /*
    562                  *  近隣キャッシュの状æ
    563 ‹ãŒã€ãƒ‡ãƒ¼ã‚¿ãƒªãƒ³ã‚¯å±¤ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒåˆ†ã‹ã£ã¦ã„ても、
    564                  *  到達可能性が確認されていないときは、到達不能通知を開始する。
     537                 *  近隣キャッシュの状態が、データリンク層のアドレスが分かっていても、
     538                 *  到達可能性が確認されていないときは、到達不能通知を開始する。
    565539                 */
    566540                if (ln->state == ND6_LLINFO_STALE) {
     
    572546
    573547                /*
    574                  *  近隣キャッシュの状æ
    575 ‹ãŒã€ãƒ‡ãƒ¼ã‚¿ãƒªãƒ³ã‚¯å±¤ã®ã‚¢ãƒ‰ãƒ¬ã‚¹æœªè§£æ±ºã®å ´åˆã¯
    576                  *  近隣探索を行う。
     548                 *  近隣キャッシュの状態が、データリンク層のアドレス未解決の場合は
     549                 *  近隣探索を行う。
    577550                 */
    578551                if (ln->state <= ND6_LLINFO_INCOMPLETE) {
    579552
    580                         /* タイムアウトの指定がポーリングならタイムアウトで終了する。*/
     553                        /* タイムアウトの指定がポーリングならタイムアウトで終了する。*/
    581554                        if (tmout == TMO_POL) {
    582555                                error = E_TMOUT;
     
    587560                                ln->state = ND6_LLINFO_INCOMPLETE;
    588561
    589                         /* すでに、未解決のネットワークバッファがあれば、開放する。*/
     562                        /* すでに、未解決のネットワークバッファがあれば、開放する。*/
    590563                        if (ln->hold != NULL) {
    591564                                syscall(rel_net_buf(ln->hold));
     
    594567
    595568                        /*
    596                          *  送信をペンディングする。
    597                          *  IF でネットワークバッファを開放しないフラグが設定されているときは、
    598                          *  送信をペンディングしない。
     569                         *  送信をペンディングする。
     570                         *  IF でネットワークバッファを開放しないフラグが設定されているときは、
     571                         *  送信をペンディングしない。
    599572                         */
    600573                        if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
    601574                                ln->hold = output;
    602575
    603                                 /* タイムアウトの設定 */
     576                                /* タイムアウトの設定 */
    604577                                if (tmout == TMO_FEVR)
    605578                                        ln->tmout = tmout;
     
    620593                                        if ((int32_t)(ln->expire - now) < 0) {
    621594                                                   /* ln->expire < now */
    622                                                 ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
     595                                                ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
    623596                                                ln->asked ++;
    624597                                                nd6_ns_output(ifp, &in6_addr_unspecified, dst, ln, false);
     
    631604
    632605        /*
    633          *  重複が検出されたインタフェースには出力しない。
     606         *  重複が検出されたインタフェースには出力しない。
    634607         */
    635608        if ((ifp->flags & ND6_IFF_IFDISABLED) != 0) {
     
    647620
    648621/*
    649  *  nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。
     622 *  nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。
    650623 */
    651624
     
    664637
    665638/*
    666  *  nd6_option -- 近隣探索オプションの処理
    667  *
    668  *    注意: オプションオフセットé
    669 åˆ—には、オフセット + 8 が設定されている。
     639 *  nd6_option -- 近隣探索オプションの処理
     640 *
     641 *    注意: オプションオフセット配列には、オフセット + 8 が設定されている。
    670642 */
    671643
     
    675647        T_ND_OPT_HDR    *opth;
    676648        ER              error = E_OK;
    677         int_t           pi_count = 0;   /* プレフィックスæƒ
    678 å ±ã®å€‹æ•° */
     649        int_t           pi_count = 0;   /* プレフィックス情報の個数 */
    679650
    680651        opth = (T_ND_OPT_HDR *)nh;
     
    683654        while (error == E_OK && ((uint8_t *)opth - (uint8_t *)nh) < (256 - 8) && len > 0) {
    684655
    685                 /* オプション長が 0 の時は、不正なオプションとして処理する。*/
     656                /* オプション長が 0 の時は、不正なオプションとして処理する。*/
    686657                if (opth->len == 0) {
    687658                        error = E_PAR;
     
    689660                        }
    690661
    691                 /* オプションのタイプにより分岐する。*/
     662                /* オプションのタイプにより分岐する。*/
    692663                switch (opth->type) {
    693                 case ND_OPT_SOURCE_LINKADDR:            /* 送信å
    694 ˆãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
    695                 case ND_OPT_TARGET_LINKADDR:            /* 対象ネットワークインタフェースのアドレス */
    696                 case ND_OPT_REDIRECTED_HEADER:          /* リダイレクト・ヘッダ                               */
     664                case ND_OPT_SOURCE_LINKADDR:            /* 送信先ネットワークインタフェースのアドレス        */
     665                case ND_OPT_TARGET_LINKADDR:            /* 対象ネットワークインタフェースのアドレス */
     666                case ND_OPT_REDIRECTED_HEADER:          /* リダイレクト・ヘッダ                           */
    697667                case ND_OPT_MTU:                        /* MTU                                          */
    698668                        if (opt[ND_OPT_OFF_ARRAY_IX(opth->type)]) {
    699                                 /* プレフィックスæƒ
    700 å ±ä»¥å¤–の同じオプションが複数指定されている。*/
     669                                /* プレフィックス情報以外の同じオプションが複数指定されている。*/
    701670                                error = E_PAR;
    702671                                }
     
    705674                                }
    706675                        break;
    707                 case ND_OPT_PREFIX_INFORMATION:         /* プレフィックスæƒ
    708 å ±                             */
     676                case ND_OPT_PREFIX_INFORMATION:         /* プレフィックス情報                            */
    709677                        if (!opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)]) {
    710678                                /*
    711                                  *  プレフィックスæƒ
    712 å ±ã¯æœ€åˆã«ç¾ã‚ŒãŸã‚ªãƒ•ã‚»ãƒƒãƒˆã®ã¿è¨˜éŒ²ã™ã‚‹ã€‚
     679                                 *  プレフィックス情報は最初に現れたオフセットのみ記録する。
    713680                                 */
    714681                                opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8;
     
    718685                default:
    719686                        /*
    720                          *  将来定義されるプロトコルへの拡張に対応するため、
    721                          *  認識できないオプションは単に無視し、処理を続行する。
     687                         *  将来定義されるプロトコルへの拡張に対応するため、
     688                         *  認識できないオプションは単に無視し、処理を続行する。
    722689                         */
    723690                        break;
    724691                        }
    725                 len -= opth->len << 3;          /* オプション長の単位は 8 バイト */
     692                len -= opth->len << 3;          /* オプション長の単位は 8 バイト */
    726693                opth = (T_ND_OPT_HDR *)((uint8_t *)opth + (opth->len << 3));
    727694                }
Note: See TracChangeset for help on using the changeset viewer.