Ignore:
Timestamp:
Jul 3, 2020, 7:19:17 PM (4 years ago)
Author:
coas-nagasima
Message:

ASP3, TINET, mbed を更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.h

    r331 r429  
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    8  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    9  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    10  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    11  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    12  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    13  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    14  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    15  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    16  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    17 ƒƒ“ƒgi—˜—p
    18  *      ŽÒƒ}ƒjƒ
    19 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    20  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    21  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    22  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    23  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    26  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     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è²¬ã™ã‚‹ã“と.
    2936 *
    30  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    31  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    32  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    33  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     37 *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
     38お
     39 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     40 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     41 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    3442 *
    3543 *  @(#) $Id$
     
    3947#define _IP_IGMP_H_
    4048
    41 #define NUM_IGMP_ENTRY                          5       /* ƒ}ƒ‹ƒ`ƒLƒƒƒXƒgƒOƒ‹[ƒv‚̃Gƒ“ƒgƒŠ” */
    42 
    43 #ifdef __CA850__
    44 #pragma pack(1)
    45 #elif __RX
    46 #pragma pack
    47 #elif _MSC_VER
    48 #pragma pack(push, 1)
    49 #endif
     49#define NUM_IGMP_ENTRY                          5       /* マルチキャストグループのエントリ数 */
    5050
    5151 /*
    52   *  IGMPv1 ƒwƒbƒ_‚Ì’è‹`ARFC 1112
     52  *  IGMPv1 ヘッダの定義、RFC 1112
    5353  */
    5454
    5555typedef struct t_igmpv1_hdr
    5656{
    57         uint8_t         type;           /* ƒƒbƒZ[ƒW‚ÌŒ^       */
    58         uint8_t         unused;         /* –¢Žg—p                       */
    59         uint16_t        sum;            /* ƒ`ƒFƒbƒNƒTƒ€         */
    60         T_IN4_ADDR      addr;           /* ƒOƒ‹[ƒvƒAƒhƒŒƒX */
    61 } T_IGMPV1_HDR;
     57        uint8_t         type;           /* メッセージの型        */
     58        uint8_t         unused;         /* 未使用                    */
     59        uint16_t        sum;            /* チェックサム           */
     60        T_IN4_ADDR      addr;           /* グループアドレス */
     61}  __attribute__((packed)) T_IGMPV1_HDR;
    6262
    6363/*
    64 *  IGMPv2 ƒwƒbƒ_‚Ì’è‹`ARFC 2236
     64*  IGMPv2 ヘッダの定義、RFC 2236
    6565*/
    6666
    6767typedef struct t_igmpv2_hdr
    6868{
    69         uint8_t         type;           /* ƒƒbƒZ[ƒW‚ÌŒ^       */
    70         uint8_t         time;           /* Å‘剞“šŽžŠÔ         */
    71         uint16_t        sum;            /* ƒ`ƒFƒbƒNƒTƒ€         */
    72         T_IN4_ADDR      addr;           /* ƒOƒ‹[ƒvƒAƒhƒŒƒX */
    73 } T_IGMPV2_HDR;
     69        uint8_t         type;           /* メッセージの型        */
     70        uint8_t         time;           /* 最大応答時間           */
     71        uint16_t        sum;            /* チェックサム           */
     72        T_IN4_ADDR      addr;           /* グループアドレス */
     73}  __attribute__((packed)) T_IGMPV2_HDR;
    7474
    7575typedef struct t_igmpv3_query_hdr
    7676{
    77         uint8_t         type;           /* ƒƒbƒZ[ƒW‚ÌŒ^       */
    78         uint8_t         time;           /* Å‘剞“šŽžŠÔ         */
    79         uint16_t        sum;            /* ƒ`ƒFƒbƒNƒTƒ€         */
    80         T_IN4_ADDR      grpaddr;        /* ƒOƒ‹[ƒvƒAƒhƒŒƒX */
    81         uint8_t         sqrv;           /* Sƒtƒ‰ƒOAQuerier Robustness Value */
     77        uint8_t         type;           /* メッセージの型        */
     78        uint8_t         time;           /* 最大応答時間           */
     79        uint16_t        sum;            /* チェックサム           */
     80        T_IN4_ADDR      grpaddr;        /* グループアドレス */
     81        uint8_t         sqrv;           /* Sフラグ、Querier Robustness Value */
    8282        uint8_t         qqic;           /* Qurier's Query Interval Code */
    83         uint16_t        num;            /* ‘—MŒ³‚̐” */
    84         T_IN4_ADDR      sdraddr;        /* ‘—MŒ³ƒAƒhƒŒƒX */
    85 } T_IGMPV3Q_HDR;
     83        uint16_t        num;            /* 送信å
     84ƒã®æ•° */
     85        T_IN4_ADDR      sdraddr;        /* 送信å
     86ƒã‚¢ãƒ‰ãƒ¬ã‚¹ */
     87}  __attribute__((packed)) T_IGMPV3Q_HDR;
    8688
    8789typedef struct t_igmp_group_record
    8890{
    89         uint8_t         type;           /* ƒƒbƒZ[ƒW‚ÌŒ^       */
    90         uint8_t         len;            /* •â•ƒf[ƒ^’·         */
    91         uint16_t        num;            /* ‘—MŒ³‚̐” */
    92         T_IN4_ADDR      grpaddr;        /* ƒOƒ‹[ƒvƒAƒhƒŒƒX */
    93         T_IN4_ADDR      sdraddr;        /* ‘—MŒ³ƒAƒhƒŒƒX       */
    94                                                         /* •â•ƒf[ƒ^           */
    95 } T_IGMP_GROUP_RECORD;
     91        uint8_t         type;           /* メッセージの型        */
     92        uint8_t         len;            /* 補助データ長           */
     93        uint16_t        num;            /* 送信å
     94ƒã®æ•° */
     95        T_IN4_ADDR      grpaddr;        /* グループアドレス */
     96        T_IN4_ADDR      sdraddr;        /* 送信å
     97ƒã‚¢ãƒ‰ãƒ¬ã‚¹   */
     98                                                        /* 補助データ              */
     99}  __attribute__((packed)) T_IGMP_GROUP_RECORD;
    96100
    97101typedef struct t_igmpv3_report_hdr
    98102{
    99         uint8_t         type;           /* ƒƒbƒZ[ƒW‚ÌŒ^       */
    100         uint8_t         rsv1;           /* —\–ñ                         */
    101         uint16_t        sum;            /* ƒ`ƒFƒbƒNƒTƒ€         */
    102         uint16_t        rsv2;           /* —\–ñ                         */
    103         uint16_t        num;            /* ƒOƒ‹[ƒvƒŒƒR[ƒh‚̐” */
    104         T_IGMP_GROUP_RECORD record;     /* ƒOƒ‹[ƒvƒŒƒR[ƒh */
    105 } T_IGMPV3R_HDR;
    106 
    107 #ifdef __CA850__
    108 #pragma pack(8)
    109 #elif __RX
    110 #pragma unpack
    111 #elif _MSC_VER
    112 #pragma pack(pop)
    113 #endif
     103        uint8_t         type;           /* メッセージの型        */
     104        uint8_t         rsv1;           /* 予約                               */
     105        uint16_t        sum;            /* チェックサム           */
     106        uint16_t        rsv2;           /* 予約                               */
     107        uint16_t        num;            /* グループレコードの数 */
     108        T_IGMP_GROUP_RECORD record;     /* グループレコード */
     109}  __attribute__((packed)) T_IGMPV3R_HDR;
    114110
    115111#define IGMP_HDR_SIZE                   (sizeof(T_IGMPV1_HDR))
     
    125121
    126122/*
    127 ƒƒbƒZ[ƒW‚ÌŒ^
     123メッセージの型
    128124*/
    129125
    130 #define IGMP_MEMBERSHIP_QUERY           0x11    /* ƒƒ“ƒo[ƒVƒbƒvƒNƒGƒŠ[               */
    131 #define IGMP_MEMBERSHIP_REPORT          0x12    /* ƒƒ“ƒo[ƒVƒbƒvƒŒƒ|[ƒg               */
    132 #define IGMP_MEMBERSHIP_REPORT_V2       0x16    /* ƒƒ“ƒo[ƒVƒbƒvƒŒƒ|[ƒg               */
    133 #define IGMP_LEAVE_GROUP                        0x17    /* ƒŠ[ƒuƒOƒ‹[ƒv                               */
    134 #define IGMP_MEMBERSHIP_REPORT_V3       0x22    /* ƒƒ“ƒo[ƒVƒbƒvƒŒƒ|[ƒg               */
     126#define IGMP_MEMBERSHIP_QUERY           0x11    /* メンバーシップクエリー            */
     127#define IGMP_MEMBERSHIP_REPORT          0x12    /* メンバーシップレポート            */
     128#define IGMP_MEMBERSHIP_REPORT_V2       0x16    /* メンバーシップレポート            */
     129#define IGMP_LEAVE_GROUP                        0x17    /* リーブグループ                                */
     130#define IGMP_MEMBERSHIP_REPORT_V3       0x22    /* メンバーシップレポート            */
    135131
    136132/*
    137 *  UDP’ʐM’[“_ƒIƒvƒVƒ‡ƒ“
     133*  UDP通信端点オプション
    138134*/
    139135
     
    168164
    169165/*
    170  *  IGMP ƒOƒ‹[ƒvƒGƒ“ƒgƒŠ
     166 *  IGMP グループエントリ
    171167 */
    172168
    173169typedef struct igmp_entry
    174170{
    175         uint16_t        timer;          /* ‘—M‚Ü‚Å‚ÌŽžŠÔ[•b]   */
    176         uint16_t        resptime;       /* Å‘剞“šŽžŠÔ[•b]     */
    177         T_IN4_ADDR      ip_addr;        /* IP ƒAƒhƒŒƒX                  */
     171        int16_t         timer;          /* 送信までの時間[秒]   */
     172        int16_t         resptime;       /* 最大応答時間[秒]      */
     173        T_IN4_ADDR      ip_addr;        /* IP アドレス                      */
    178174} T_IGMP_ENTRY;
    179175
Note: See TracChangeset for help on using the changeset viewer.