#define IGMP_MINLEN 8
#define IGMP_MEMBERSHIP_QUERY 0x11
#define IGMP_V1_MEMBERSHIP_REPORT 0x12
#define IGMP_V2_MEMBERSHIP_REPORT 0x16
#define IGMP_V3_MEMBERSHIP_REPORT 0x22
#define IGMP_V2_LEAVE_GROUP 0x17
#define IGMP_MAX_HOST_REPORT_DELAY 10
#define IGMP_TIMER_SCALE 10
#define IGMP_REPORT_MODE_IN 1
#define IGMP_REPORT_MODE_EX 2
#define IGMP_REPORT_TO_IN 3
#define IGMP_REPORT_TO_EX 4
#define IGMP_REPORT_ALLOW_NEW 5
#define IGMP_REPORT_BLOCK_OLD 6
#define IGMP_MASK_CUR_STATE 0x01
#define IGMP_MASK_ALLOW_NEW 0x02
#define IGMP_MASK_BLOCK_OLD 0x04
#define IGMP_MASK_TO_IN 0x08
#define IGMP_MASK_TO_EX 0x10
#define IGMP_MASK_STATE_T1 0x20
#define IGMP_MASK_STATE_T2 0x40
#define IGMP_MASK_IF_STATE 0x80
#define IGMP_MASK_STATE_TX
#define IGMP_MASK_PENDING
#define IGMP_EXCLUDE_LIST 1
#define IGMP_INCLUDE_LIST 2
#define IGMP_RECORDED_LIST 3
See: | Type struct igmp |
struct igmp | |
{ | |
u_char igmp_type; | |
u_char igmp_code; | |
u_short igmp_cksum; | |
u_long igmp_group; | |
} |
struct igmpv3 | |
{ | |
u_char igmp_type; | |
u_char igmp_code; | |
u_short igmp_cksum; | |
u_long igmp_group; | |
u_char igmp_misc; | |
u_char igmp_qqi; | |
u_short igmp_numsrc; | |
u_long igmp_sources[1]; | |
} |
struct igmp_grouprec | |
{ | |
u_char ig_type; | |
u_char ig_datalen; | |
u_short ig_numsrc; | |
u_long ig_group; | |
u_long ig_sources[1]; | |
} |
struct igmp_report | |
{ | |
u_char ir_type; | |
u_char ir_rsv1; | |
u_short ir_cksum; | |
u_short ir_rsv2; | |
u_short ir_numgrps; | |
struct igmp_grouprec ir_groups[1]; | |
} |