Changeset 429 for EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.h
- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.h
r331 r429 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ãLì ÒÍCÈºÌ (1)`(4) Ìð©CFree Software Foundation 8 * ÉæÁÄö\³êÄ¢é GNU General Public License Ì Version 2 ÉL 9 * q³êÄ¢éðð½·êÉÀèC{\tgEFAi{\tgEFA 10 * ðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»EüÏEÄzziȺC 11 * pÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌðð½·±ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 28 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±Æ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 責ãããã¨ï¼ 29 36 * 30 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 31 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄC»ÌKpÂ\«à 32 * ÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEFAÌpÉæè¼ 33 * ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»ÌÓCðíÈ¢D 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 34 42 * 35 43 * @(#) $Id$ … … 39 47 #define _IP_IGMP_H_ 40 48 41 #define NUM_IGMP_ENTRY 5 /* }`LXgO[vÌGg */ 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 /* ãã«ããã£ã¹ãã°ã«ã¼ãã®ã¨ã³ããªæ° */ 50 50 51 51 /* 52 * IGMPv1 wb_Ìè`ARFC 111252 * IGMPv1 ãããã®å®ç¾©ãRFC 1112 53 53 */ 54 54 55 55 typedef struct t_igmpv1_hdr 56 56 { 57 uint8_t type; /* bZ[WÌ^*/58 uint8_t unused; /* ¢gp*/59 uint16_t sum; /* `FbNT*/60 T_IN4_ADDR addr; /* O[vAhX*/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; 62 62 63 63 /* 64 * IGMPv2 wb_Ìè`ARFC 223664 * IGMPv2 ãããã®å®ç¾©ãRFC 2236 65 65 */ 66 66 67 67 typedef struct t_igmpv2_hdr 68 68 { 69 uint8_t type; /* bZ[WÌ^*/70 uint8_t time; /* ÅåÔ*/71 uint16_t sum; /* `FbNT*/72 T_IN4_ADDR addr; /* O[vAhX*/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; 74 74 75 75 typedef struct t_igmpv3_query_hdr 76 76 { 77 uint8_t type; /* bZ[WÌ^*/78 uint8_t time; /* ÅåÔ*/79 uint16_t sum; /* `FbNT*/80 T_IN4_ADDR grpaddr; /* O[vAhX*/81 uint8_t sqrv; /* S tOAQuerier 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 */ 82 82 uint8_t qqic; /* Qurier's Query Interval Code */ 83 uint16_t num; /* M³Ì */ 84 T_IN4_ADDR sdraddr; /* M³AhX */ 85 } T_IGMPV3Q_HDR; 83 uint16_t num; /* éä¿¡å 84 ã®æ° */ 85 T_IN4_ADDR sdraddr; /* éä¿¡å 86 ã¢ãã¬ã¹ */ 87 } __attribute__((packed)) T_IGMPV3Q_HDR; 86 88 87 89 typedef struct t_igmp_group_record 88 90 { 89 uint8_t type; /* bZ[WÌ^ */ 90 uint8_t len; /* âf[^· */ 91 uint16_t num; /* M³Ì */ 92 T_IN4_ADDR grpaddr; /* O[vAhX */ 93 T_IN4_ADDR sdraddr; /* M³AhX */ 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; 96 100 97 101 typedef struct t_igmpv3_report_hdr 98 102 { 99 uint8_t type; /* bZ[WÌ^ */ 100 uint8_t rsv1; /* \ñ */ 101 uint16_t sum; /* `FbNT */ 102 uint16_t rsv2; /* \ñ */ 103 uint16_t num; /* O[vR[hÌ */ 104 T_IGMP_GROUP_RECORD record; /* O[vR[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; 114 110 115 111 #define IGMP_HDR_SIZE (sizeof(T_IGMPV1_HDR)) … … 125 121 126 122 /* 127 * bZ[WÌ^123 * ã¡ãã»ã¼ã¸ã®å 128 124 */ 129 125 130 #define IGMP_MEMBERSHIP_QUERY 0x11 /* o[VbvNG[*/131 #define IGMP_MEMBERSHIP_REPORT 0x12 /* o[Vbv|[g*/132 #define IGMP_MEMBERSHIP_REPORT_V2 0x16 /* o[Vbv|[g*/133 #define IGMP_LEAVE_GROUP 0x17 /* [uO[v*/134 #define IGMP_MEMBERSHIP_REPORT_V3 0x22 /* o[Vbv|[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 /* ã¡ã³ãã¼ã·ããã¬ãã¼ã */ 135 131 136 132 /* 137 * UDP ÊM[_IvV133 * UDPé信端ç¹ãªãã·ã§ã³ 138 134 */ 139 135 … … 168 164 169 165 /* 170 * IGMP O[vGg166 * IGMP ã°ã«ã¼ãã¨ã³ã㪠171 167 */ 172 168 173 169 typedef struct igmp_entry 174 170 { 175 uint16_t timer; /* MÜÅÌÔ[b] */176 uint16_t resptime; /* ÅåÔ[b] */177 T_IN4_ADDR ip_addr; /* IP AhX*/171 int16_t timer; /* éä¿¡ã¾ã§ã®æé[ç§] */ 172 int16_t resptime; /* æ大å¿çæé[ç§] */ 173 T_IN4_ADDR ip_addr; /* IP ã¢ãã¬ã¹ */ 178 174 } T_IGMP_ENTRY; 179 175
Note:
See TracChangeset
for help on using the changeset viewer.