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/ip6.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  *  IPv6 の定義、RFC2460 参ç
    120 §
     107 *  IPv6 の定義、RFC2460 参照
    121108 */
    122109
     
    124111
    125112/*
    126  *  IPv6 ヘッダの定義
     113 *  IPv6 ヘッダの定義
    127114 */
    128115
     
    141128
    142129/*
    143  *  IPv6 ヘッダ構造体メンバアクセスマクロ
     130 *  IPv6 ヘッダ構造体メンバアクセスマクロ
    144131 */
    145132
     
    151138
    152139/*
    153  *  拡張ヘッダ
     140 *  拡張ヘッダ
    154141 */
    155142
    156143typedef struct t_ip6_ext_hdr {
    157144        uint8_t         next;           /* Next Header                  */
    158         uint8_t         len;            /* 8 オクテット単位の長さ     */
     145        uint8_t         len;            /* 8 オクテット単位の長さ */
    159146        } __attribute__((packed, aligned(2)))T_IP6_EXT_HDR;
    160147
    161148/*
    162  *  中継点 (Hop-by-Hop) オプションヘッダ
     149 *  中継点 (Hop-by-Hop) オプションヘッダ
    163150 */
    164151
    165152typedef struct t_ip6_hbh_hdr {
    166153        uint8_t         next;           /* Next Header                  */
    167         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    168                                          * このオプションヘッダå
    169 ¨ä½“のオクテット数を
    170                                          * 8 で割った値の - 1 がå
    171 ¥ã‚‹ã€‚
     154        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     155                                         * このオプションヘッダ全体のオクテット数を
     156                                         * 8 で割った値の - 1 が入る。
    172157                                         */
    173158        } __attribute__((packed, aligned(2)))T_IP6_HBH_HDR;
    174159
    175160/*
    176  *  終点 (Destination) オプションヘッダ
     161 *  終点 (Destination) オプションヘッダ
    177162 */
    178163
    179164typedef struct t_ip6_dest_hdr {
    180165        uint8_t         next;           /* Next Header                  */
    181         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    182                                          * このオプションヘッダå
    183 ¨ä½“のオクテット数を
    184                                          * 8 で割った値の - 1 がå
    185 ¥ã‚‹ã€‚
     166        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     167                                         * このオプションヘッダ全体のオクテット数を
     168                                         * 8 で割った値の - 1 が入る。
    186169                                         */
    187170        } __attribute__((packed, aligned(2)))T_IP6_DEST_HDR;
    188171
    189 /* 中継点 (Hop-by-Hop) オプション */
     172/* 中継点 (Hop-by-Hop) オプション */
    190173
    191174#define IP6OPT_PAD1             UINT_C(0x00)    /* 00 0 00000 */
     
    196179#define IP6OPT_RTR_ALERT        UINT_C(0x05)    /* 00 0 00101 */
    197180
    198 #define IP6OPT_MINLEN           2       /* オプションの最短長          */
    199 
    200 /* 未知のオプションの処理の指定 */
    201 
    202 #define IP6OPT_TYPE_SKIP        UINT_C(0x00)    /* 無視する。                      */
    203 #define IP6OPT_TYPE_DISCARD     UINT_C(0x40)    /* データグラムを破棄する。 */
    204 #define IP6OPT_TYPE_FORCEICMP   UINT_C(0x80)    /* 破棄して、ICMP を返送する。       */
     181#define IP6OPT_MINLEN           2       /* オプションの最短長            */
     182
     183/* 未知のオプションの処理の指定 */
     184
     185#define IP6OPT_TYPE_SKIP        UINT_C(0x00)    /* 無視する。                        */
     186#define IP6OPT_TYPE_DISCARD     UINT_C(0x40)    /* データグラムを破棄する。 */
     187#define IP6OPT_TYPE_FORCEICMP   UINT_C(0x80)    /* 破棄して、ICMP を返送する。     */
    205188#define IP6OPT_TYPE_ICMP        UINT_C(0xc0)
    206                 /* 破棄して、マルチキャストでなければ ICMP を返送する。  */
     189                /* 破棄して、マルチキャストでなければ ICMP を返送する。        */
    207190
    208191#define IP6OPT_TYPE(o)          ((o)&UINT_C(0xc0))
    209192
    210193/*
    211  *  経路制御ヘッダ
     194 *  経路制御ヘッダ
    212195 */
    213196
    214197typedef struct t_ip6_rt_hdr {
    215198        uint8_t         next;           /* Next Header                  */
    216         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    217                                          * このオプションヘッダå
    218 ¨ä½“のオクテット数を
    219                                          * 8 で割った値の - 1 がå
    220 ¥ã‚‹ã€‚
    221                                          */
    222         uint8_t         type;           /* 経路制御タイプ                */
    223         uint8_t         segleft;        /* セグメントの残り             */
     199        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     200                                         * このオプションヘッダ全体のオクテット数を
     201                                         * 8 で割った値の - 1 が入る。
     202                                         */
     203        uint8_t         type;           /* 経路制御タイプ              */
     204        uint8_t         segleft;        /* セグメントの残り             */
    224205        } __attribute__((packed, aligned(2)))T_IP6_RT_HDR;
    225206
    226207/*
    227  *  タイプ 0 経路制御ヘッダ
     208 *  タイプ 0 経路制御ヘッダ
    228209 */
    229210
    230211typedef struct t_ip6_rt0_hdr {
    231212        uint8_t         next;           /* Next Header                  */
    232         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    233                                          * このオプションヘッダå
    234 ¨ä½“のオクテット数を
    235                                          * 8 で割った値の - 1 がå
    236 ¥ã‚‹ã€‚
    237                                          */
    238         uint8_t         type;           /* 経路制御タイプ                */
    239         uint8_t         segleft;        /* セグメントの残り             */
    240         uint32_t        reserved;       /* 予約                               */
     213        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     214                                         * このオプションヘッダ全体のオクテット数を
     215                                         * 8 で割った値の - 1 が入る。
     216                                         */
     217        uint8_t         type;           /* 経路制御タイプ              */
     218        uint8_t         segleft;        /* セグメントの残り             */
     219        uint32_t        reserved;       /* 予約                           */
    241220        } __attribute__((packed, aligned(2)))T_IP6_RT0_HDR;
    242221
    243222/*
    244  *  断片ヘッダ
     223 *  断片ヘッダ
    245224 */
    246225
     
    248227        uint8_t         next;           /* Next Header                  */
    249228        uint8_t         reserved;
    250         uint16_t        off_flag;       /* オフセットとフラグ          */
    251         uint32_t        ident;          /* 分割識別子                      */
     229        uint16_t        off_flag;       /* オフセットとフラグ            */
     230        uint32_t        ident;          /* 分割識別子                        */
    252231        } __attribute__((packed, aligned(2)))T_IP6_FRAG_HDR;
    253232
    254 /* 断片ヘッダのオフセットとフラグ */
     233/* 断片ヘッダのオフセットとフラグ */
    255234
    256235#ifdef _NET_CFG_BYTE_ORDER
     
    258237#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
    259238
    260 #define IP6F_OFF_MASK           UINT_C(0xfff8)          /* オフセットを取出すマスク */
    261 #define IP6F_RESERVED_MASK      UINT_C(0x0006)          /* 予約を取出すマスク          */
    262 #define IP6F_MORE_FRAG          UINT_C(0x0001)          /* 中間フラグメント             */
     239#define IP6F_OFF_MASK           UINT_C(0xfff8)          /* オフセットを取出すマスク */
     240#define IP6F_RESERVED_MASK      UINT_C(0x0006)          /* 予約を取出すマスク            */
     241#define IP6F_MORE_FRAG          UINT_C(0x0001)          /* 中間フラグメント             */
    263242
    264243#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
    265244
    266 #define IP6F_OFF_MASK           UINT_C(0xf8ff)          /* オフセットを取出すマスク */
    267 #define IP6F_RESERVED_MASK      UINT_C(0x0600)          /* 予約を取出すマスク          */
    268 #define IP6F_MORE_FRAG          UINT_C(0x0100)          /* 中間フラグメント             */
     245#define IP6F_OFF_MASK           UINT_C(0xf8ff)          /* オフセットを取出すマスク */
     246#define IP6F_RESERVED_MASK      UINT_C(0x0600)          /* 予約を取出すマスク            */
     247#define IP6F_MORE_FRAG          UINT_C(0x0100)          /* 中間フラグメント             */
    269248
    270249#endif  /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
     
    273252
    274253/*
    275  *  制限値
    276  */
    277 
    278 #define IPV6_MAXHLIM    UINT_C(255)     /* ホップリミットの最大値                            */
    279 #define IPV6_DEFHLIM    UINT_C(64)      /* ホップリミットの規定値                            */
    280 #define IPV6_FRAGTTL    UINT_C(60)      /* 分割されたデータグラムの生存時間(秒)    */
    281 #define IPV6_MMTU       UINT_C(1280)    /* 最小 MTU。ペイロード (1024) + ヘッダ (256)        */
    282 #define IPV6_MAXPACKET  UINT_C(65535)   /* ジャンボペイロードを除く最大パケットサイズ      */
    283 
    284 /*
    285  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    286  */
    287 
    288 /*
    289  *  ホップリミットの規定値は、ルータ通知により変更されることがある
     254 *  制限値
     255 */
     256
     257#define IPV6_MAXHLIM    UINT_C(255)     /* ホップリミットの最大値                          */
     258#define IPV6_DEFHLIM    UINT_C(64)      /* ホップリミットの規定値                          */
     259#define IPV6_FRAGTTL    UINT_C(60)      /* 分割されたデータグラムの生存時間(秒)  */
     260#define IPV6_MMTU       UINT_C(1280)    /* 最小 MTU。ペイロード (1024) + ヘッダ (256)      */
     261#define IPV6_MAXPACKET  UINT_C(65535)   /* ジャンボペイロードを除く最大パケットサイズ        */
     262
     263/*
     264 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     265 */
     266
     267/*
     268 *  ホップリミットの規定値は、ルータ通知により変更されることがある
    290269 */
    291270
    292271#if NUM_ND6_DEF_RTR_ENTRY > 0
    293272
    294 /* ルータ通知を受信する場合は、通知された値 */
     273/* ルータ通知を受信する場合は、通知された値 */
    295274
    296275#define IP_DEFTTL       ip6_defhlim
     
    298277#else   /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
    299278
    300 /* ルータ通知を受信しない場合の値は既定値 */
     279/* ルータ通知を受信しない場合の値は既定値 */
    301280
    302281#define IP_DEFTTL       IPV6_DEFHLIM
Note: See TracChangeset for help on using the changeset viewer.