Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    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$
     
    152140
    153141/*
    154  *  å
    155 ¨åŸŸå¤‰æ•°
     142 *  全域変数
    156143 */
    157144
     
    166153
    167154/*
    168  *  in6_addmulti -- マルチキャストアドレスを登録する。
     155 *  in6_addmulti -- マルチキャストアドレスを登録する。
    169156 */
    170157
     
    181168
    182169/*
    183  *  in6_ifinit -- インタフェースにアドレスæƒ
    184 å ±ã‚’設定し、初期化する。
     170 *  in6_ifinit -- インタフェースにアドレス情報を設定し、初期化する。
    185171 */
    186172
     
    188174in6_ifinit (T_IFNET *ifp, T_IN6_IFADDR *ia, T_IN6_ADDR *addr, uint_t prefix_len)
    189175{
    190         /* アドレスとプレフィックス長を設定する。*/
     176        /* アドレスとプレフィックス長を設定する。*/
    191177        ia->addr       = *addr;
    192178        ia->prefix_len = prefix_len;
    193179
    194         /* フラグを初期化する。*/
     180        /* フラグを初期化する。*/
    195181        ia->flags = 0;
    196182
    197183        /*
    198          *  初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。
     184         *  初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。
    199185         */
    200186
     
    203189
    204190/*
    205  *  in6_ifainit -- インタフェースアドレス構造体の初期化
     191 *  in6_ifainit -- インタフェースアドレス構造体の初期化
    206192 */
    207193
     
    222208
    223209/*
    224  *  in6_if2idlen -- インタフェース ID 長を返す。
     210 *  in6_if2idlen -- インタフェース ID 長を返す。
    225211 */
    226212
     
    236222
    237223/*
    238  *  in6_addr2ifaix -- アドレスからインタフェースアドレスæƒ
    239 å ±ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã«å¤‰æ›ã™ã‚‹ã€‚
     224 *  in6_addr2ifaix -- アドレスからインタフェースアドレス情報のインデックスに変換する。
    240225 */
    241226
     
    258243
    259244/*
    260  *  in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。
     245 *  in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。
    261246 */
    262247
     
    279264
    280265/*
    281  *  in6_update_ifa -- インタフェースのアドレスæƒ
    282 å ±ã‚’更新する。
     266 *  in6_update_ifa -- インタフェースのアドレス情報を更新する。
    283267 */
    284268
     
    292276        SYSTIM          now;
    293277
    294         /* 引数をチェックする。*/
     278        /* 引数をチェックする。*/
    295279        if (addr == NULL)
    296280                return E_PAR;
    297281
    298282        /*
    299          *  有効時間をチェックする。
    300          *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
     283         *  有効時間をチェックする。
     284         *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
    301285         */
    302286        syscall(get_tim(&now));
     
    309293                return E_PAR;
    310294
    311         /* インタフェースを初期化する。*/
     295        /* インタフェースを初期化する。*/
    312296        if ((error = in6_ifinit(ifp, ia, addr, prefix_len)) != E_OK)
    313297                return error;
     
    315299        if (IN6_IS_ADDR_LINKLOCAL(addr)) {
    316300
    317                 /* 要請マルチキャストアドレスを登録する。*/
     301                /* 要請マルチキャストアドレスを登録する。*/
    318302                llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
    319303                llsol.s6_addr32[1] = 0x00000000;
     
    324308                        return error;
    325309
    326                 /* å
    327 ¨ãƒŽãƒ¼ãƒ‰ãƒ»ãƒªãƒ³ã‚¯ãƒ­ãƒ¼ã‚«ãƒ«ãƒ»ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’登録する。*/
     310                /* 全ノード・リンクローカル・マルチキャストアドレスを登録する。*/
    328311                llsol.s6_addr32[2] = 0x00000000;
    329312                llsol.s6_addr32[3] = IPV6_ADDR_INT32_ONE;
     
    333316                }
    334317
    335         /* ルータインデックスを設定する。*/
     318        /* ルータインデックスを設定する。*/
    336319        ia->router_index = router_index;
    337320
    338         /* プレフィックスインデックスを設定する。*/
     321        /* プレフィックスインデックスを設定する。*/
    339322        ia->prefix_index = prefix_index;
    340323
    341         /* フラグを設定する。*/
     324        /* フラグを設定する。*/
    342325        ia->flags  = flags & ~(IN6_IFF_DUPLICATED | IN6_IFF_NODAD);
    343326        ia->flags |= IN6_IFF_DEFINED;
    344327
    345328        /*
    346          *  アドレス有効時間を設定する。
    347          *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
     329         *  アドレス有効時間を設定する。
     330         *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
    348331         */
    349332        syscall(get_tim(&now));
     
    362345                ia->lifetime.preferred = 0;
    363346
    364         /* 近隣探索の初期設定を行う。*/
     347        /* 近隣探索の初期設定を行う。*/
    365348        nd6_ifattach(ifp);
    366349
    367         /* 重複アドレス検出を行う。*/
     350        /* 重複アドレス検出を行う。*/
    368351        if ((flags & IN6_IFF_NODAD) == 0) {
    369352                ia->flags |= IN6_IFF_TENTATIVE;
     
    375358
    376359/*
    377  * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに
    378  *                     å‰²ã‚Šå½“てられているアドレスを探索する。
     360 * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに
     361 *                     割り当てられているアドレスを探索する。
    379362 */
    380363
     
    386369
    387370/*
    388  * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに
    389  *                        割り当てられているアドレスを探索する。
     371 * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに
     372 *                        割り当てられているアドレスを探索する。
    390373 */
    391374
     
    402385
    403386/*
    404  * in6_ifawithifp -- 宛å
    405 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    406 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    407  *                   ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‹ã‚‰æŽ¢ç´¢ã™ã‚‹ã€‚
     387 * in6_ifawithifp -- 宛先アドレスにふさわしい送信元アドレスを、
     388 *                   ネットワークインタフェースから探索する。
    408389 */
    409390
     
    414395        int_t   ix;
    415396
    416         /* 宛å
    417 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¨åŒã˜ã‚¹ã‚³ãƒ¼ãƒ—のアドレスを返す。*/
     397        /* 宛先アドレスと同じスコープのアドレスを返す。*/
    418398        if ((ix = in6_addr2ifaix(dst)) != IPV6_IFADDR_IX_INVALID)
    419399                return &ifp->in_ifaddrs[ix];
     
    435415
    436416/*
    437  * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。
     417 * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。
    438418 */
    439419
     
    441421in6_if_up (T_IFNET *ifp)
    442422{
    443 #if 0                                           /* 保留 */
     423#if 0                                           /* 保留 */
    444424        int_t dad_delay, ix;
    445425#endif  /* of #if 0 */
     
    447427        in6_ifattach(ifp);
    448428
    449 #if 0                                           /* 保留 */
    450         /* 重複アドレス検出を行う。*/
     429#if 0                                           /* 保留 */
     430        /* 重複アドレス検出を行う。*/
    451431        dad_delay = 0;
    452432        for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; )
     
    458438#if NUM_ND6_RTR_SOL_RETRY > 0
    459439
    460         /* ルータ要請を出力する。*/
     440        /* ルータ要請を出力する。*/
    461441        nd6_rtrsol_ctl();
    462442
     
    465445
    466446/*
    467  *  in6_are_prefix_equal -- プレフィックスが同一か調べる。
     447 *  in6_are_prefix_equal -- プレフィックスが同一か調べる。
    468448 */
    469449
     
    486466
    487467/*
    488  *  in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー
     468 *  in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー
    489469 */
    490470
     
    505485
    506486                        /*
    507                          *  有効時間を過ぎたので削除する。
     487                         *  有効時間を過ぎたので削除する。
    508488                         */
    509489                        ia->flags &= ~IN6_IFF_DEFINED;
     
    513493
    514494                        /*
    515                          *  推奨有効時間を過ぎたので非推奨にする。
     495                         *  推奨有効時間を過ぎたので非推奨にする。
    516496                         */
    517497                        ia->flags |= IN6_IFF_DEPRECATED;
Note: See TracChangeset for help on using the changeset viewer.