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/netinet/icmp6.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    117105
    118106/*
    119  *  ICMPv6 ヘッダ
     107 *  ICMPv6 ヘッダ
    120108 */
    121109
    122110typedef struct t_icmp6_hdr {
    123         uint8_t         type;           /* メッセージの型        */
    124         uint8_t         code;           /* サブ型            */
    125         uint16_t        sum;            /* チェックサム           */
     111        uint8_t         type;           /* メッセージの型      */
     112        uint8_t         code;           /* サブ型          */
     113        uint16_t        sum;            /* チェックサム               */
    126114        union {
    127115                uint32_t        data32;
     
    134122#define icmp6_data16                    data.data16
    135123#define icmp6_data8                     data.data8
    136 #define icmp6_pptr                      data.data32             /* パラメータ異常        */
    137 #define icmp6_mtu                       data.data32             /* パラメータ異常        */
    138 #define icmp6_id                        data.data16[0]          /* エコー要求と応答     */
    139 #define icmp6_seq                       data.data16[1]          /* エコー要求と応答     */
     124#define icmp6_pptr                      data.data32             /* パラメータ異常      */
     125#define icmp6_mtu                       data.data32             /* パラメータ異常      */
     126#define icmp6_id                        data.data16[0]          /* エコー要求と応答     */
     127#define icmp6_seq                       data.data16[1]          /* エコー要求と応答     */
    140128
    141129#define ICMP6_HDR_SIZE                  (sizeof(T_ICMP6_HDR))
     
    149137
    150138/*
    151  *  ICMP6 タイプ
    152  */
    153 
    154 #define ICMP6_DST_UNREACH               UINT_C(1)       /* 宛å
    155 ˆåˆ°é”不可能                */
    156 #define ICMP6_PACKET_TOO_BIG            UINT_C(2)       /* パケットが大きすぎる。    */
    157 #define ICMP6_TIME_EXCEEDED             UINT_C(3)       /* TTL をè¶
    158 éŽã—た。            */
    159 #define ICMP6_PARAM_PROB                UINT_C(4)       /* IPv6 ヘッダが不正。           */
    160 
    161 #define ICMP6_ECHO_REQUEST              UINT_C(128)     /* エコー要求                      */
    162 #define ICMP6_ECHO_REPLY                UINT_C(129)     /* エコー応答                      */
    163 
    164 #define ICMP6_MEMBERSHIP_QUERY          UINT_C(130)     /* グループメンバç
    165 §ä¼š            */
    166 #define ICMP6_MEMBERSHIP_REPORT         UINT_C(131)     /* グループメンバ報告          */
    167 #define ICMP6_MEMBERSHIP_REDUCTION      UINT_C(132)     /* グループメンバ終了          */
    168 
    169 #define MLD_LISTENER_QUERY              UINT_C(130)     /* マルチキャスト受信è€
    170 ç
    171 §ä¼š    */
    172 #define MLD_LISTENER_REPORT             UINT_C(131)     /* マルチキャスト受信è€
    173 å ±å‘Š  */
    174 #define MLD_LISTENER_DONE               UINT_C(132)     /* マルチキャスト受信è€
    175 çµ‚了  */
    176 
    177 #define ND_ROUTER_SOLICIT               UINT_C(133)     /* ルータ要請                      */
    178 #define ND_ROUTER_ADVERT                UINT_C(134)     /* ルータ通知                      */
    179 #define ND_NEIGHBOR_SOLICIT             UINT_C(135)     /* 近隣要請                 */
    180 #define ND_NEIGHBOR_ADVERT              UINT_C(136)     /* 近隣通知                 */
    181 #define ND_REDIRECT                     UINT_C(137)     /* 向け直し                 */
    182 
    183 #define ICMP6_ROUTER_RENUMBERING        UINT_C(138)     /* ルータ番号再設定             */
    184 
    185 #define ICMP6_WRU_REQUEST               UINT_C(139)     /* 要求ノード探索                */
    186 #define ICMP6_WRU_REPLY                 UINT_C(140)     /* 応答ノード探索                */
    187 
    188 #define ICMP6_FQDN_QUERY                UINT_C(139)     /* FQDN ç
    189 §ä¼š                    */
    190 #define ICMP6_FQDN_REPLY                UINT_C(140)     /* FQDN 応答                  */
    191 
    192 #define ICMP6_NI_QUERY                  UINT_C(139)     /* ノードæƒ
    193 å ±ç
    194 §ä¼š            */
    195 #define ICMP6_NI_REPLY                  UINT_C(140)     /* ノードæƒ
    196 å ±å¿œç­”               */
    197 
    198 #define ICMP6_MAX_TYPE                  UINT_C(203)     /* ICMP6 タイプの最大値          */
    199 
    200 /*
    201  *  ICMP6 コード
    202  */
    203 
    204 /* 宛å
    205 ˆåˆ°é”不可能 */
    206 
    207 #define ICMP6_DST_UNREACH_NOROUTE       UINT_C(0)       /* 到達ルートなし。             */
    208 #define ICMP6_DST_UNREACH_ADMIN         UINT_C(1)       /* 管理è€
    209 ã«ã‚ˆã‚Šç„¡åŠ¹åŒ–中。        */
    210 #define ICMP6_DST_UNREACH_NOTEIGHBOR    UINT_C(2)       /* 近隣è€
    211 ã§ã¯ãªããªã£ãŸã€‚        */
    212 #define ICMP6_DST_UNREACH_BEYOND_SCOPE  UINT_C(2)       /* スコープをè¶
    213 ãˆã¦ã„る。 */
    214 #define ICMP6_DST_UNREACH_ADDR          UINT_C(3)       /* 宛å
    215 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«åˆ°é”不可能。      */
    216 #define ICMP6_DST_UNREACH_NOPORT        UINT_C(4)       /* 宛å
    217 ˆãƒãƒ¼ãƒˆã«åˆ°é”不可能。 */
    218 
    219 /* TTL è¶
    220 éŽ */
    221 
    222 #define ICMP6_TIME_EXCEED_TRANSIT       UINT_C(0)       /* 転送時に TTL==0 になった。  */
    223 #define ICMP6_TIME_EXCEED_REASSEMBLY    UINT_C(1)       /* IP 再構成でタイムアウトした。*/
    224 
    225 /* ヘッダ不正 */
    226 
    227 #define ICMP6_PARAMPROB_HEADER          UINT_C(0)       /* ヘッダに不正があった。    */
    228 #define ICMP6_PARAMPROB_NEXT_HEADER     UINT_C(1)       /* 次ヘッダが認識できない。 */
    229 #define ICMP6_PARAMPROB_OPTION          UINT_C(2)       /* オプションが認識できない。      */
    230 
    231 /* å†
    232 éƒ¨ä½¿ç”¨ */
    233 #define ND_REDIRECT_ONLINK              UINT_C(0)       /* オンリンクへの向け直し    */
    234 #define ND_REDIRECT_ROUTER              UINT_C(1)       /* ルータへの向け直し          */
    235 
    236 /*
    237  *  制限値
    238  */
    239 
    240                                                         /* ICMPv6 の最大ペイロード長   */
     139 *  ICMP6 タイプ
     140 */
     141
     142#define ICMP6_DST_UNREACH               UINT_C(1)       /* 宛先到達不可能              */
     143#define ICMP6_PACKET_TOO_BIG            UINT_C(2)       /* パケットが大きすぎる。  */
     144#define ICMP6_TIME_EXCEEDED             UINT_C(3)       /* TTL を超過した。           */
     145#define ICMP6_PARAM_PROB                UINT_C(4)       /* IPv6 ヘッダが不正。         */
     146
     147#define ICMP6_ECHO_REQUEST              UINT_C(128)     /* エコー要求                        */
     148#define ICMP6_ECHO_REPLY                UINT_C(129)     /* エコー応答                        */
     149
     150#define ICMP6_MEMBERSHIP_QUERY          UINT_C(130)     /* グループメンバ照会            */
     151#define ICMP6_MEMBERSHIP_REPORT         UINT_C(131)     /* グループメンバ報告            */
     152#define ICMP6_MEMBERSHIP_REDUCTION      UINT_C(132)     /* グループメンバ終了            */
     153
     154#define MLD_LISTENER_QUERY              UINT_C(130)     /* マルチキャスト受信者照会 */
     155#define MLD_LISTENER_REPORT             UINT_C(131)     /* マルチキャスト受信者報告 */
     156#define MLD_LISTENER_DONE               UINT_C(132)     /* マルチキャスト受信者終了 */
     157
     158#define ND_ROUTER_SOLICIT               UINT_C(133)     /* ルータ要請                        */
     159#define ND_ROUTER_ADVERT                UINT_C(134)     /* ルータ通知                        */
     160#define ND_NEIGHBOR_SOLICIT             UINT_C(135)     /* 近隣要請                 */
     161#define ND_NEIGHBOR_ADVERT              UINT_C(136)     /* 近隣通知                 */
     162#define ND_REDIRECT                     UINT_C(137)     /* 向け直し                 */
     163
     164#define ICMP6_ROUTER_RENUMBERING        UINT_C(138)     /* ルータ番号再設定             */
     165
     166#define ICMP6_WRU_REQUEST               UINT_C(139)     /* 要求ノード探索              */
     167#define ICMP6_WRU_REPLY                 UINT_C(140)     /* 応答ノード探索              */
     168
     169#define ICMP6_FQDN_QUERY                UINT_C(139)     /* FQDN 照会                      */
     170#define ICMP6_FQDN_REPLY                UINT_C(140)     /* FQDN 応答                      */
     171
     172#define ICMP6_NI_QUERY                  UINT_C(139)     /* ノード情報照会              */
     173#define ICMP6_NI_REPLY                  UINT_C(140)     /* ノード情報応答              */
     174
     175#define ICMP6_MAX_TYPE                  UINT_C(203)     /* ICMP6 タイプの最大値                */
     176
     177/*
     178 *  ICMP6 コード
     179 */
     180
     181/* 宛先到達不可能 */
     182
     183#define ICMP6_DST_UNREACH_NOROUTE       UINT_C(0)       /* 到達ルートなし。             */
     184#define ICMP6_DST_UNREACH_ADMIN         UINT_C(1)       /* 管理者により無効化中。  */
     185#define ICMP6_DST_UNREACH_NOTEIGHBOR    UINT_C(2)       /* 近隣者ではなくなった。  */
     186#define ICMP6_DST_UNREACH_BEYOND_SCOPE  UINT_C(2)       /* スコープを超えている。  */
     187#define ICMP6_DST_UNREACH_ADDR          UINT_C(3)       /* 宛先アドレスに到達不可能。        */
     188#define ICMP6_DST_UNREACH_NOPORT        UINT_C(4)       /* 宛先ポートに到達不可能。 */
     189
     190/* TTL 超過 */
     191
     192#define ICMP6_TIME_EXCEED_TRANSIT       UINT_C(0)       /* 転送時に TTL==0 になった。    */
     193#define ICMP6_TIME_EXCEED_REASSEMBLY    UINT_C(1)       /* IP 再構成でタイムアウトした。*/
     194
     195/* ヘッダ不正 */
     196
     197#define ICMP6_PARAMPROB_HEADER          UINT_C(0)       /* ヘッダに不正があった。  */
     198#define ICMP6_PARAMPROB_NEXT_HEADER     UINT_C(1)       /* 次ヘッダが認識できない。 */
     199#define ICMP6_PARAMPROB_OPTION          UINT_C(2)       /* オプションが認識できない。        */
     200
     201/* 内部使用 */
     202#define ND_REDIRECT_ONLINK              UINT_C(0)       /* オンリンクへの向け直し  */
     203#define ND_REDIRECT_ROUTER              UINT_C(1)       /* ルータへの向け直し            */
     204
     205/*
     206 *  制限値
     207 */
     208
     209                                                        /* ICMPv6 の最大ペイロード長     */
    241210#define ICMPV6_PAYLOAD_MAXLEN           (IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE))
    242211
    243212/*
    244  *  近隣要請
     213 *  近隣要請
    245214 */
    246215
     
    248217        T_ICMP6_HDR     hdr;
    249218        T_IN6_ADDR      target;
    250         /* この後にオプションが続く */
     219        /* この後にオプションが続く */
    251220        } __attribute__((packed, aligned(2)))T_NEIGHBOR_SOLICIT_HDR;
    252221
     
    266235
    267236/*
    268  *  近隣通知
     237 *  近隣通知
    269238 */
    270239
     
    272241        T_ICMP6_HDR     hdr;
    273242        T_IN6_ADDR      target;
    274         /* この後にオプションが続く */
     243        /* この後にオプションが続く */
    275244        } __attribute__((packed, aligned(2)))T_NEIGHBOR_ADVERT_HDR;
    276245
    277 /* ICMP6 ヘッダのデータ部の定義 */
     246/* ICMP6 ヘッダのデータ部の定義 */
    278247
    279248#define nd_na_flags_reserved            hdr.data.data32
     
    297266
    298267/*
    299  *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
     268 *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
    300269 */
    301270
    302271#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
    303272
    304 #define ND_NA_FLG_OVERRIDE              ULONG_C(0x20000000)     /* 近隣キャッシュ上書き       */
    305 #define ND_NA_FLG_SOLICITED             ULONG_C(0x40000000)     /* 近隣要請への応答     */
    306 #define ND_NA_FLG_ROUTER                ULONG_C(0x80000000)     /* ルータ通知              */
     273#define ND_NA_FLG_OVERRIDE              ULONG_C(0x20000000)     /* 近隣キャッシュ上書き   */
     274#define ND_NA_FLG_SOLICITED             ULONG_C(0x40000000)     /* 近隣要請への応答     */
     275#define ND_NA_FLG_ROUTER                ULONG_C(0x80000000)     /* ルータ通知                */
    307276
    308277#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
    309278
    310 #define ND_NA_FLG_OVERRIDE              ULONG_C(0x00000020)     /* 近隣キャッシュ上書き       */
    311 #define ND_NA_FLG_SOLICITED             ULONG_C(0x00000040)     /* 近隣要請への応答     */
    312 #define ND_NA_FLG_ROUTER                ULONG_C(0x00000080)     /* ルータ通知              */
     279#define ND_NA_FLG_OVERRIDE              ULONG_C(0x00000020)     /* 近隣キャッシュ上書き   */
     280#define ND_NA_FLG_SOLICITED             ULONG_C(0x00000040)     /* 近隣要請への応答     */
     281#define ND_NA_FLG_ROUTER                ULONG_C(0x00000080)     /* ルータ通知                */
    313282
    314283#endif  /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
    315284
    316285/*
    317  *  ルータ通知
     286 *  ルータ通知
    318287 */
    319288
    320289typedef struct t_router_advert_hdr {
    321290        T_ICMP6_HDR     hdr;
    322         uint32_t        reachable;              /* [ms] 到達可能時間      */
    323         uint32_t        retransmit;             /* [ms] 近隣要請送信間隔        */
    324         /* この後にオプションが続く */
     291        uint32_t        reachable;              /* [ms] 到達可能時間  */
     292        uint32_t        retransmit;             /* [ms] 近隣要請送信間隔        */
     293        /* この後にオプションが続く */
    325294        } __attribute__((packed, aligned(2)))T_ROUTER_ADVERT_HDR;
    326295
    327 /* ICMP6 ヘッダのデータ部の定義 */
     296/* ICMP6 ヘッダのデータ部の定義 */
    328297
    329298#define nd_ra_current_hoplimit          hdr.data.data8[0]
    330299#define nd_ra_flags                     hdr.data.data8[1]
    331 #define nd_ra_router_lifetime           hdr.data.data16[1]      /* [s] ルータ有効時間    */
     300#define nd_ra_router_lifetime           hdr.data.data16[1]      /* [s] ルータ有効時間  */
    332301
    333302#define ROUTER_ADVERT_HDR_SIZE          (sizeof(T_ROUTER_ADVERT_HDR))
     
    347316
    348317/*
    349  *  ルータ通知ヘッダのフラグ
     318 *  ルータ通知ヘッダのフラグ
    350319 */
    351320
     
    355324
    356325/*
    357  *  ルータ要請
     326 *  ルータ要請
    358327 */
    359328
     
    362331        } __attribute__((packed, aligned(2)))T_ROUTER_SOLICIT_HDR;
    363332
    364 /* ICMP6 ヘッダのデータ部の定義 */
     333/* ICMP6 ヘッダのデータ部の定義 */
    365334
    366335#define nd_rs_reserved                  hdr.data.data32
     
    383352
    384353/*
    385  *  近隣探索オプション
    386  */
    387 
    388 /* 近隣探索ヘッダ */
     354 *  近隣探索オプション
     355 */
     356
     357/* 近隣探索ヘッダ */
    389358
    390359typedef struct t_neighbor_hdr {
     
    393362        } __attribute__((packed, aligned(2)))T_NEIGHBOR_HDR;
    394363
    395 /* 近隣探索オプションヘッダ */
     364/* 近隣探索オプションヘッダ */
    396365
    397366typedef struct t_nd_opt_hdr {
    398         uint8_t         type;                   /* オプションタイプ                     */
    399         uint8_t         len;                    /* オプション長、単位は 8 バイト   */
     367        uint8_t         type;                   /* オプションタイプ                     */
     368        uint8_t         len;                    /* オプション長、単位は 8 バイト     */
    400369        } __attribute__((packed, aligned(2)))T_ND_OPT_HDR;
    401370
    402371#define ND_OPT_HDR_SIZE                 (sizeof(T_ND_OPT_HDR))
    403372
    404 #define ND_OPT_SOURCE_LINKADDR          UINT_C(1)       /* 送信å
    405 ˆãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
    406 #define ND_OPT_TARGET_LINKADDR          UINT_C(2)       /* 対象ネットワークインタフェースのアドレス */
    407 #define ND_OPT_PREFIX_INFORMATION       UINT_C(3)       /* プレフィックスæƒ
    408 å ±                             */
    409 #define ND_OPT_REDIRECTED_HEADER        UINT_C(4)       /* リダイレクト・ヘッダ                               */
     373#define ND_OPT_SOURCE_LINKADDR          UINT_C(1)       /* 送信先ネットワークインタフェースのアドレス        */
     374#define ND_OPT_TARGET_LINKADDR          UINT_C(2)       /* 対象ネットワークインタフェースのアドレス */
     375#define ND_OPT_PREFIX_INFORMATION       UINT_C(3)       /* プレフィックス情報                            */
     376#define ND_OPT_REDIRECTED_HEADER        UINT_C(4)       /* リダイレクト・ヘッダ                           */
    410377#define ND_OPT_MTU                      UINT_C(5)       /* MTU                                          */
    411378
    412 #define ND_OPT_PREFIX_INFO_COUNT        UINT_C(6)       /* プレフィックスæƒ
    413 å ±ã®å€‹æ•°                    */
    414 #define ND_OPT_OFF_ARRAY_SIZE           UINT_C(7)       /* ND オプションのオフセットを記録するé
    415 åˆ—サイズ*/
    416 
    417 #define ND_OPT_OFF_ARRAY_IX(t)          ((t)-1)         /* オフセットé
    418 åˆ—のインデックス                       */
    419 
    420 /* プレフィックスオプション */
     379#define ND_OPT_PREFIX_INFO_COUNT        UINT_C(6)       /* プレフィックス情報の個数                 */
     380#define ND_OPT_OFF_ARRAY_SIZE           UINT_C(7)       /* ND オプションのオフセットを記録する配列サイズ*/
     381
     382#define ND_OPT_OFF_ARRAY_IX(t)          ((t)-1)         /* オフセット配列のインデックス                       */
     383
     384/* プレフィックスオプション */
    421385
    422386typedef struct t_nd_opt_prefix_info {
    423         uint8_t         type;           /* 近隣探索オプションタイプ = 3     */
    424         uint8_t         len;            /* オプション長 = 8×4=32 */
    425         uint8_t         prefix_len;     /* プレフィックス長             */
    426         uint8_t         flags;          /* フラグ                    */
    427         uint32_t        valid;          /* [s] 有効時間                     */
    428         uint32_t        preferred;      /* [s] 推奨有効時間               */
     387        uint8_t         type;           /* 近隣探索オプションタイプ = 3     */
     388        uint8_t         len;            /* オプション長 = 8×4=32      */
     389        uint8_t         prefix_len;     /* プレフィックス長             */
     390        uint8_t         flags;          /* フラグ                  */
     391        uint32_t        valid;          /* [s] 有効時間                     */
     392        uint32_t        preferred;      /* [s] 推奨有効時間           */
    429393        uint32_t        reserved;
    430         T_IN6_ADDR      prefix;         /* プレフィックス                */
     394        T_IN6_ADDR      prefix;         /* プレフィックス              */
    431395        } __attribute__((packed, aligned(2)))T_ND_OPT_PREFIX_INFO;
    432396
    433 #define ND_OPT_PI_FLAG_ONLINK   UINT_C(0x80)            /* オンリンクプレフィックス */
    434 #define ND_OPT_PI_FLAG_AUTO     UINT_C(0x40)            /* ステートレス・アドレス自動設定*/
    435 
    436 /* MTU オプションヘッダ */
     397#define ND_OPT_PI_FLAG_ONLINK   UINT_C(0x80)            /* オンリンクプレフィックス */
     398#define ND_OPT_PI_FLAG_AUTO     UINT_C(0x40)            /* ステートレス・アドレス自動設定*/
     399
     400/* MTU オプションヘッダ */
    437401
    438402typedef struct t_nd_opt_mtu_hdr {
    439         uint8_t         type;           /* オプションタイプ             */
    440         uint8_t         len;            /* オプション長、単位は 8 バイト*/
     403        uint8_t         type;           /* オプションタイプ             */
     404        uint8_t         len;            /* オプション長、単位は 8 バイト*/
    441405        uint16_t        reserved;
    442406        uint32_t        mtu;            /* MTU                          */
     
    444408
    445409/*
    446  *  向け直し
     410 *  向け直し
    447411 */
    448412
    449413typedef struct t_nd_redirect_hdr {
    450414        T_ICMP6_HDR     hdr;
    451         T_IN6_ADDR      target;         /* ルータのアドレス             */
    452         T_IN6_ADDR      dst;            /* 向け直しの終点アドレス            */
    453         /* この後にオプションが続く */
     415        T_IN6_ADDR      target;         /* ルータのアドレス             */
     416        T_IN6_ADDR      dst;            /* 向け直しの終点アドレス          */
     417        /* この後にオプションが続く */
    454418        } __attribute__((packed, aligned(2)))T_ND_REDIRECT_HDR;
    455419
     
    459423
    460424/*
    461  *  SNMP の 管理æƒ
    462 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     425 *  SNMP の 管理情報ベース (MIB)
    463426 */
    464427
     
    505468
    506469/*
    507  *  関数
     470 *  関数
    508471 */
    509472
Note: See TracChangeset for help on using the changeset viewer.