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

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    115103
    116104/*
    117  *  ICMPv6 ヘッダ
     105 *  ICMPv6 ヘッダ
    118106 */
    119107
    120108typedef struct t_icmp6_hdr {
    121         uint8_t         type;           /* メッセージの型        */
    122         uint8_t         code;           /* サブ型            */
    123         uint16_t        sum;            /* チェックサム           */
     109        uint8_t         type;           /* メッセージの型      */
     110        uint8_t         code;           /* サブ型          */
     111        uint16_t        sum;            /* チェックサム               */
    124112        union {
    125113                uint32_t        data32;
     
    132120#define icmp6_data16                    data.data16
    133121#define icmp6_data8                     data.data8
    134 #define icmp6_pptr                      data.data32             /* パラメータ異常        */
    135 #define icmp6_mtu                       data.data32             /* パラメータ異常        */
    136 #define icmp6_id                        data.data16[0]          /* エコー要求と応答     */
    137 #define icmp6_seq                       data.data16[1]          /* エコー要求と応答     */
     122#define icmp6_pptr                      data.data32             /* パラメータ異常      */
     123#define icmp6_mtu                       data.data32             /* パラメータ異常      */
     124#define icmp6_id                        data.data16[0]          /* エコー要求と応答     */
     125#define icmp6_seq                       data.data16[1]          /* エコー要求と応答     */
    138126
    139127#define ICMP6_HDR_SIZE                  (sizeof(T_ICMP6_HDR))
     
    147135
    148136/*
    149  *  ICMP6 タイプ
    150  */
    151 
    152 #define ICMP6_DST_UNREACH               UINT_C(1)       /* 宛å
    153 ˆåˆ°é”不可能                */
    154 #define ICMP6_PACKET_TOO_BIG            UINT_C(2)       /* パケットが大きすぎる。    */
    155 #define ICMP6_TIME_EXCEEDED             UINT_C(3)       /* TTL をè¶
    156 éŽã—た。            */
    157 #define ICMP6_PARAM_PROB                UINT_C(4)       /* IPv6 ヘッダが不正。           */
    158 
    159 #define ICMP6_ECHO_REQUEST              UINT_C(128)     /* エコー要求                      */
    160 #define ICMP6_ECHO_REPLY                UINT_C(129)     /* エコー応答                      */
    161 
    162 #define ICMP6_MEMBERSHIP_QUERY          UINT_C(130)     /* グループメンバç
    163 §ä¼š            */
    164 #define ICMP6_MEMBERSHIP_REPORT         UINT_C(131)     /* グループメンバ報告          */
    165 #define ICMP6_MEMBERSHIP_REDUCTION      UINT_C(132)     /* グループメンバ終了          */
    166 
    167 #define MLD_LISTENER_QUERY              UINT_C(130)     /* マルチキャスト受信è€
    168 ç
    169 §ä¼š    */
    170 #define MLD_LISTENER_REPORT             UINT_C(131)     /* マルチキャスト受信è€
    171 å ±å‘Š  */
    172 #define MLD_LISTENER_DONE               UINT_C(132)     /* マルチキャスト受信è€
    173 çµ‚了  */
    174 
    175 #define ND_ROUTER_SOLICIT               UINT_C(133)     /* ルータ要請                      */
    176 #define ND_ROUTER_ADVERT                UINT_C(134)     /* ルータ通知                      */
    177 #define ND_NEIGHBOR_SOLICIT             UINT_C(135)     /* 近隣要請                 */
    178 #define ND_NEIGHBOR_ADVERT              UINT_C(136)     /* 近隣通知                 */
    179 #define ND_REDIRECT                     UINT_C(137)     /* 向け直し                 */
    180 
    181 #define ICMP6_ROUTER_RENUMBERING        UINT_C(138)     /* ルータ番号再設定             */
    182 
    183 #define ICMP6_WRU_REQUEST               UINT_C(139)     /* 要求ノード探索                */
    184 #define ICMP6_WRU_REPLY                 UINT_C(140)     /* 応答ノード探索                */
    185 
    186 #define ICMP6_FQDN_QUERY                UINT_C(139)     /* FQDN ç
    187 §ä¼š                    */
    188 #define ICMP6_FQDN_REPLY                UINT_C(140)     /* FQDN 応答                  */
    189 
    190 #define ICMP6_NI_QUERY                  UINT_C(139)     /* ノードæƒ
    191 å ±ç
    192 §ä¼š            */
    193 #define ICMP6_NI_REPLY                  UINT_C(140)     /* ノードæƒ
    194 å ±å¿œç­”               */
    195 
    196 #define ICMP6_MAX_TYPE                  UINT_C(203)     /* ICMP6 タイプの最大値          */
    197 
    198 /*
    199  *  ICMP6 コード
    200  */
    201 
    202 /* 宛å
    203 ˆåˆ°é”不可能 */
    204 
    205 #define ICMP6_DST_UNREACH_NOROUTE       UINT_C(0)       /* 到達ルートなし。             */
    206 #define ICMP6_DST_UNREACH_ADMIN         UINT_C(1)       /* 管理è€
    207 ã«ã‚ˆã‚Šç„¡åŠ¹åŒ–中。        */
    208 #define ICMP6_DST_UNREACH_NOTEIGHBOR    UINT_C(2)       /* 近隣è€
    209 ã§ã¯ãªããªã£ãŸã€‚        */
    210 #define ICMP6_DST_UNREACH_BEYOND_SCOPE  UINT_C(2)       /* スコープをè¶
    211 ãˆã¦ã„る。 */
    212 #define ICMP6_DST_UNREACH_ADDR          UINT_C(3)       /* 宛å
    213 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«åˆ°é”不可能。      */
    214 #define ICMP6_DST_UNREACH_NOPORT        UINT_C(4)       /* 宛å
    215 ˆãƒãƒ¼ãƒˆã«åˆ°é”不可能。 */
    216 
    217 /* TTL è¶
    218 éŽ */
    219 
    220 #define ICMP6_TIME_EXCEED_TRANSIT       UINT_C(0)       /* 転送時に TTL==0 になった。  */
    221 #define ICMP6_TIME_EXCEED_REASSEMBLY    UINT_C(1)       /* IP 再構成でタイムアウトした。*/
    222 
    223 /* ヘッダ不正 */
    224 
    225 #define ICMP6_PARAMPROB_HEADER          UINT_C(0)       /* ヘッダに不正があった。    */
    226 #define ICMP6_PARAMPROB_NEXT_HEADER     UINT_C(1)       /* 次ヘッダが認識できない。 */
    227 #define ICMP6_PARAMPROB_OPTION          UINT_C(2)       /* オプションが認識できない。      */
    228 
    229 /* å†
    230 éƒ¨ä½¿ç”¨ */
    231 #define ND_REDIRECT_ONLINK              UINT_C(0)       /* オンリンクへの向け直し    */
    232 #define ND_REDIRECT_ROUTER              UINT_C(1)       /* ルータへの向け直し          */
    233 
    234 /*
    235  *  制限値
    236  */
    237 
    238                                                         /* ICMPv6 の最大ペイロード長   */
     137 *  ICMP6 タイプ
     138 */
     139
     140#define ICMP6_DST_UNREACH               UINT_C(1)       /* 宛先到達不可能              */
     141#define ICMP6_PACKET_TOO_BIG            UINT_C(2)       /* パケットが大きすぎる。  */
     142#define ICMP6_TIME_EXCEEDED             UINT_C(3)       /* TTL を超過した。           */
     143#define ICMP6_PARAM_PROB                UINT_C(4)       /* IPv6 ヘッダが不正。         */
     144
     145#define ICMP6_ECHO_REQUEST              UINT_C(128)     /* エコー要求                        */
     146#define ICMP6_ECHO_REPLY                UINT_C(129)     /* エコー応答                        */
     147
     148#define ICMP6_MEMBERSHIP_QUERY          UINT_C(130)     /* グループメンバ照会            */
     149#define ICMP6_MEMBERSHIP_REPORT         UINT_C(131)     /* グループメンバ報告            */
     150#define ICMP6_MEMBERSHIP_REDUCTION      UINT_C(132)     /* グループメンバ終了            */
     151
     152#define MLD_LISTENER_QUERY              UINT_C(130)     /* マルチキャスト受信者照会 */
     153#define MLD_LISTENER_REPORT             UINT_C(131)     /* マルチキャスト受信者報告 */
     154#define MLD_LISTENER_DONE               UINT_C(132)     /* マルチキャスト受信者終了 */
     155
     156#define ND_ROUTER_SOLICIT               UINT_C(133)     /* ルータ要請                        */
     157#define ND_ROUTER_ADVERT                UINT_C(134)     /* ルータ通知                        */
     158#define ND_NEIGHBOR_SOLICIT             UINT_C(135)     /* 近隣要請                 */
     159#define ND_NEIGHBOR_ADVERT              UINT_C(136)     /* 近隣通知                 */
     160#define ND_REDIRECT                     UINT_C(137)     /* 向け直し                 */
     161
     162#define ICMP6_ROUTER_RENUMBERING        UINT_C(138)     /* ルータ番号再設定             */
     163
     164#define ICMP6_WRU_REQUEST               UINT_C(139)     /* 要求ノード探索              */
     165#define ICMP6_WRU_REPLY                 UINT_C(140)     /* 応答ノード探索              */
     166
     167#define ICMP6_FQDN_QUERY                UINT_C(139)     /* FQDN 照会                      */
     168#define ICMP6_FQDN_REPLY                UINT_C(140)     /* FQDN 応答                      */
     169
     170#define ICMP6_NI_QUERY                  UINT_C(139)     /* ノード情報照会              */
     171#define ICMP6_NI_REPLY                  UINT_C(140)     /* ノード情報応答              */
     172
     173#define ICMP6_MAX_TYPE                  UINT_C(203)     /* ICMP6 タイプの最大値                */
     174
     175/*
     176 *  ICMP6 コード
     177 */
     178
     179/* 宛先到達不可能 */
     180
     181#define ICMP6_DST_UNREACH_NOROUTE       UINT_C(0)       /* 到達ルートなし。             */
     182#define ICMP6_DST_UNREACH_ADMIN         UINT_C(1)       /* 管理者により無効化中。  */
     183#define ICMP6_DST_UNREACH_NOTEIGHBOR    UINT_C(2)       /* 近隣者ではなくなった。  */
     184#define ICMP6_DST_UNREACH_BEYOND_SCOPE  UINT_C(2)       /* スコープを超えている。  */
     185#define ICMP6_DST_UNREACH_ADDR          UINT_C(3)       /* 宛先アドレスに到達不可能。        */
     186#define ICMP6_DST_UNREACH_NOPORT        UINT_C(4)       /* 宛先ポートに到達不可能。 */
     187
     188/* TTL 超過 */
     189
     190#define ICMP6_TIME_EXCEED_TRANSIT       UINT_C(0)       /* 転送時に TTL==0 になった。    */
     191#define ICMP6_TIME_EXCEED_REASSEMBLY    UINT_C(1)       /* IP 再構成でタイムアウトした。*/
     192
     193/* ヘッダ不正 */
     194
     195#define ICMP6_PARAMPROB_HEADER          UINT_C(0)       /* ヘッダに不正があった。  */
     196#define ICMP6_PARAMPROB_NEXT_HEADER     UINT_C(1)       /* 次ヘッダが認識できない。 */
     197#define ICMP6_PARAMPROB_OPTION          UINT_C(2)       /* オプションが認識できない。        */
     198
     199/* 内部使用 */
     200#define ND_REDIRECT_ONLINK              UINT_C(0)       /* オンリンクへの向け直し  */
     201#define ND_REDIRECT_ROUTER              UINT_C(1)       /* ルータへの向け直し            */
     202
     203/*
     204 *  制限値
     205 */
     206
     207                                                        /* ICMPv6 の最大ペイロード長     */
    239208#define ICMPV6_PAYLOAD_MAXLEN           (IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE))
    240209
    241210/*
    242  *  近隣要請
     211 *  近隣要請
    243212 */
    244213
     
    246215        T_ICMP6_HDR     hdr;
    247216        T_IN6_ADDR      target;
    248         /* この後にオプションが続く */
     217        /* この後にオプションが続く */
    249218        } T_NEIGHBOR_SOLICIT_HDR;
    250219
     
    264233
    265234/*
    266  *  近隣通知
     235 *  近隣通知
    267236 */
    268237
     
    270239        T_ICMP6_HDR     hdr;
    271240        T_IN6_ADDR      target;
    272         /* この後にオプションが続く */
     241        /* この後にオプションが続く */
    273242        } __attribute__((packed, aligned(2))) T_NEIGHBOR_ADVERT_HDR;
    274243
    275 /* ICMP6 ヘッダのデータ部の定義 */
     244/* ICMP6 ヘッダのデータ部の定義 */
    276245
    277246#define nd_na_flags_reserved            hdr.data.data32
     
    295264
    296265/*
    297  *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
     266 *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
    298267 */
    299268
    300269#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
    301270
    302 #define ND_NA_FLG_OVERRIDE              ULONG_C(0x20000000)     /* 近隣キャッシュ上書き       */
    303 #define ND_NA_FLG_SOLICITED             ULONG_C(0x40000000)     /* 近隣要請への応答     */
    304 #define ND_NA_FLG_ROUTER                ULONG_C(0x80000000)     /* ルータ通知              */
     271#define ND_NA_FLG_OVERRIDE              ULONG_C(0x20000000)     /* 近隣キャッシュ上書き   */
     272#define ND_NA_FLG_SOLICITED             ULONG_C(0x40000000)     /* 近隣要請への応答     */
     273#define ND_NA_FLG_ROUTER                ULONG_C(0x80000000)     /* ルータ通知                */
    305274
    306275#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
    307276
    308 #define ND_NA_FLG_OVERRIDE              ULONG_C(0x00000020)     /* 近隣キャッシュ上書き       */
    309 #define ND_NA_FLG_SOLICITED             ULONG_C(0x00000040)     /* 近隣要請への応答     */
    310 #define ND_NA_FLG_ROUTER                ULONG_C(0x00000080)     /* ルータ通知              */
     277#define ND_NA_FLG_OVERRIDE              ULONG_C(0x00000020)     /* 近隣キャッシュ上書き   */
     278#define ND_NA_FLG_SOLICITED             ULONG_C(0x00000040)     /* 近隣要請への応答     */
     279#define ND_NA_FLG_ROUTER                ULONG_C(0x00000080)     /* ルータ通知                */
    311280
    312281#endif  /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
    313282
    314283/*
    315  *  ルータ通知
     284 *  ルータ通知
    316285 *
    317286 *    RFC4291: IP Version 6 Addressing Architecture
     
    322291typedef struct t_router_advert_hdr {
    323292        T_ICMP6_HDR     hdr;
    324         uint32_t        reachable;              /* [us] 到達可能時間      */
    325         uint32_t        retransmit;             /* [us] 近隣要請送信間隔        */
    326         /* この後にオプションが続く */
     293        uint32_t        reachable;              /* [us] 到達可能時間  */
     294        uint32_t        retransmit;             /* [us] 近隣要請送信間隔        */
     295        /* この後にオプションが続く */
    327296        } __attribute__((packed, aligned(2))) T_ROUTER_ADVERT_HDR;
    328297
    329 /* ICMP6 ヘッダのデータ部の定義 */
     298/* ICMP6 ヘッダのデータ部の定義 */
    330299
    331300#define nd_ra_current_hoplimit          hdr.data.data8[0]
    332301#define nd_ra_flags                     hdr.data.data8[1]
    333 #define nd_ra_router_lifetime           hdr.data.data16[1]      /* [s] ルータ有効時間    */
     302#define nd_ra_router_lifetime           hdr.data.data16[1]      /* [s] ルータ有効時間  */
    334303
    335304#define ROUTER_ADVERT_HDR_SIZE          (sizeof(T_ROUTER_ADVERT_HDR))
     
    349318
    350319/*
    351  *  ルータ通知ヘッダのフラグ
     320 *  ルータ通知ヘッダのフラグ
    352321 */
    353322
     
    357326
    358327/*
    359  *  M: RA以外の方法で自動的にアドレスを設定することを許可する。
    360  *  O: RA以外の方法で自動的にアドレス以外のæƒ
    361 å ±ã‚’設定することをを許可する。
     328 *  M: RA以外の方法で自動的にアドレスを設定することを許可する。
     329 *  O: RA以外の方法で自動的にアドレス以外の情報を設定することをを許可する。
    362330 *
    363331 *   M   O
    364  *  ON  ON      アドレスとそれ以外のæƒ
    365 å ±ã‚’DHCPv6で設定する(statefull)
    366  *  ON  OFF     ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯DHCPv6で設定するが、それ以外は手動で設定する。
    367  *  OFF ON      アドレスは RA で設定するが、それ以外のæƒ
    368 å ±ã‚’DHCPv6で設定する(stateless)
    369  *  OFF OFF     DHCPv6 は使用しない。
    370  */
    371 
    372 /*
    373  *  ルータ要請
     332 *  ON  ON      アドレスとそれ以外の情報をDHCPv6で設定する(statefull)
     333 *  ON  OFF     アドレスはDHCPv6で設定するが、それ以外は手動で設定する。
     334 *  OFF ON      アドレスは RA で設定するが、それ以外の情報をDHCPv6で設定する(stateless)
     335 *  OFF OFF     DHCPv6 は使用しない。
     336 */
     337
     338/*
     339 *  ルータ要請
    374340 */
    375341
     
    378344        } __attribute__((packed, aligned(2))) T_ROUTER_SOLICIT_HDR;
    379345
    380 /* ICMP6 ヘッダのデータ部の定義 */
     346/* ICMP6 ヘッダのデータ部の定義 */
    381347
    382348#define nd_rs_reserved                  hdr.data.data32
     
    399365
    400366/*
    401  *  近隣探索オプション
    402  */
    403 
    404 /* 近隣探索ヘッダ */
     367 *  近隣探索オプション
     368 */
     369
     370/* 近隣探索ヘッダ */
    405371
    406372typedef struct t_neighbor_hdr {
     
    409375        } __attribute__((packed, aligned(2))) T_NEIGHBOR_HDR;
    410376
    411 /* 近隣探索オプションヘッダ */
     377/* 近隣探索オプションヘッダ */
    412378
    413379typedef struct t_nd_opt_hdr {
    414         uint8_t         type;                   /* オプションタイプ                     */
    415         uint8_t         len;                    /* オプション長、単位は 8 バイト   */
     380        uint8_t         type;                   /* オプションタイプ                     */
     381        uint8_t         len;                    /* オプション長、単位は 8 バイト     */
    416382        } __attribute__((packed, aligned(2))) T_ND_OPT_HDR;
    417383
    418384#define ND_OPT_HDR_SIZE                 (sizeof(T_ND_OPT_HDR))
    419385
    420 #define ND_OPT_SOURCE_LINKADDR          UINT_C(1)       /* 送信å
    421 ˆãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
    422 #define ND_OPT_TARGET_LINKADDR          UINT_C(2)       /* 対象ネットワークインタフェースのアドレス */
    423 #define ND_OPT_PREFIX_INFORMATION       UINT_C(3)       /* プレフィックスæƒ
    424 å ±                             */
    425 #define ND_OPT_REDIRECTED_HEADER        UINT_C(4)       /* リダイレクト・ヘッダ                               */
     386#define ND_OPT_SOURCE_LINKADDR          UINT_C(1)       /* 送信先ネットワークインタフェースのアドレス        */
     387#define ND_OPT_TARGET_LINKADDR          UINT_C(2)       /* 対象ネットワークインタフェースのアドレス */
     388#define ND_OPT_PREFIX_INFORMATION       UINT_C(3)       /* プレフィックス情報                            */
     389#define ND_OPT_REDIRECTED_HEADER        UINT_C(4)       /* リダイレクト・ヘッダ                           */
    426390#define ND_OPT_MTU                      UINT_C(5)       /* MTU                                          */
    427391
    428 #define ND_OPT_PREFIX_INFO_COUNT        UINT_C(6)       /* プレフィックスæƒ
    429 å ±ã®å€‹æ•°                    */
    430 #define ND_OPT_OFF_ARRAY_SIZE           UINT_C(7)       /* ND オプションのオフセットを記録するé
    431 åˆ—サイズ*/
    432 
    433 #define ND_OPT_OFF_ARRAY_IX(t)          ((t)-1)         /* オフセットé
    434 åˆ—のインデックス                       */
    435 
    436 /* プレフィックスオプション */
     392#define ND_OPT_PREFIX_INFO_COUNT        UINT_C(6)       /* プレフィックス情報の個数                 */
     393#define ND_OPT_OFF_ARRAY_SIZE           UINT_C(7)       /* ND オプションのオフセットを記録する配列サイズ*/
     394
     395#define ND_OPT_OFF_ARRAY_IX(t)          ((t)-1)         /* オフセット配列のインデックス                       */
     396
     397/* プレフィックスオプション */
    437398
    438399typedef struct t_nd_opt_prefix_info {
    439         uint8_t         type;           /* 近隣探索オプションタイプ = 3     */
    440         uint8_t         len;            /* オプション長 = 8×4=32 */
    441         uint8_t         prefix_len;     /* プレフィックス長             */
    442         uint8_t         flags;          /* フラグ                    */
    443         uint32_t        valid;          /* [s] 有効時間                     */
    444         uint32_t        preferred;      /* [s] 推奨有効時間               */
     400        uint8_t         type;           /* 近隣探索オプションタイプ = 3     */
     401        uint8_t         len;            /* オプション長 = 8×4=32      */
     402        uint8_t         prefix_len;     /* プレフィックス長             */
     403        uint8_t         flags;          /* フラグ                  */
     404        uint32_t        valid;          /* [s] 有効時間                     */
     405        uint32_t        preferred;      /* [s] 推奨有効時間           */
    445406        uint32_t        reserved;
    446         T_IN6_ADDR      prefix;         /* プレフィックス                */
     407        T_IN6_ADDR      prefix;         /* プレフィックス              */
    447408        } __attribute__((packed, aligned(2))) T_ND_OPT_PREFIX_INFO;
    448409
    449 #define ND_OPT_PI_FLAG_ONLINK   UINT_C(0x80)            /* オンリンクプレフィックス */
    450 #define ND_OPT_PI_FLAG_AUTO     UINT_C(0x40)            /* ステートレス・アドレス自動設定*/
    451 
    452 /* MTU オプションヘッダ */
     410#define ND_OPT_PI_FLAG_ONLINK   UINT_C(0x80)            /* オンリンクプレフィックス */
     411#define ND_OPT_PI_FLAG_AUTO     UINT_C(0x40)            /* ステートレス・アドレス自動設定*/
     412
     413/* MTU オプションヘッダ */
    453414
    454415typedef struct t_nd_opt_mtu_hdr {
    455         uint8_t         type;           /* オプションタイプ             */
    456         uint8_t         len;            /* オプション長、単位は 8 バイト*/
     416        uint8_t         type;           /* オプションタイプ             */
     417        uint8_t         len;            /* オプション長、単位は 8 バイト*/
    457418        uint16_t        reserved;
    458419        uint32_t        mtu;            /* MTU                          */
     
    460421
    461422/*
    462  *  向け直し
     423 *  向け直し
    463424 */
    464425
    465426typedef struct t_nd_redirect_hdr {
    466427        T_ICMP6_HDR     hdr;
    467         T_IN6_ADDR      target;         /* ルータのアドレス             */
    468         T_IN6_ADDR      dst;            /* 向け直しの終点アドレス            */
    469         /* この後にオプションが続く */
     428        T_IN6_ADDR      target;         /* ルータのアドレス             */
     429        T_IN6_ADDR      dst;            /* 向け直しの終点アドレス          */
     430        /* この後にオプションが続く */
    470431        } __attribute__((packed, aligned(2))) T_ND_REDIRECT_HDR;
    471432
     
    475436
    476437/*
    477  *  SNMP の 管理æƒ
    478 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     438 *  SNMP の 管理情報ベース (MIB)
    479439 */
    480440
     
    521481
    522482/*
    523  *  関数
     483 *  関数
    524484 */
    525485
Note: See TracChangeset for help on using the changeset viewer.