OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
igmp_protocol.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  igmp_hdr_
 
struct  igmp_v1v2_pkt_
 
struct  igmp_v3_query_
 
struct  igmp_v3_rpt_rcrd_
 
struct  igmp_v3_report_
 
struct  igmp_naked_header_
 
union  igmp_packet_
 

Macros

#define IGMP_TYPE_QUERY   0x11 /* Query (all versions) */
 
#define IGMP_TYPE_V1_REPORT   0x12 /* Version 1 Report */
 
#define IGMP_TYPE_V2_REPORT   0x16 /* Version 2 Report */
 
#define IGMP_TYPE_V2_LEAVE   0x17 /* Version 2 Leave */
 
#define IGMP_TYPE_V3_REPORT   0x22 /* Version 3 Report */
 
#define IGMP_SUPP_RTR_PROC_MASK   0x8 /* "S" bit in s_qrv field */
 
#define IGMP_QRV_MASK   0x7 /* QRV value in s_qrv field */
 
#define IGMP_FIXFLOAT_FLAG   0x80 /* Set if floating point */
 
#define IGMP_FLOAT_EXP_MASK   0x70 /* Floating point exponent mask */
 
#define IGMP_FLOAT_EXP_SHIFT   4 /* Shift count for exponent */
 
#define IGMP_FLOAT_MANT_MASK   0x0F /* Floating point mantissa mask */
 
#define IGMP_FLOAT_MANT_HIGHBIT   0x10 /* High bit of mantissa */
 
#define IGMP_FLOAT_MAX_MANT   0x1F /* Max mantissa portion */
 
#define IGMP_FLOAT_MANT_SHIFT   0 /* Shift count for mantissa */
 
#define IGMP_FLOAT_EXP_OFFSET   3 /* Offset bits to add */
 
#define IGMP_FLOAT_MAX_EXP   0x07 /* Maximum exponent value */
 
#define IGMP_MAX_FLOAT_ENCODABLE
 
#define IGMP_MAX_RESP_MSEC   100 /* Max Resp is in units of 100 msec */
 
#define IGMP_MAX_RESP_DEFAULT   100 /* Default Max Resp val (* 100 msec) */
 
#define IGMP_V2_MAX_MAX_RESP   0xFF /* Maximum Max Resp value for V2 */
 

Typedefs

typedef struct igmp_hdr_ igmp_hdr
 
typedef struct igmp_v1v2_pkt_ igmp_v1v2_pkt
 
typedef struct igmp_v3_query_ igmp_v3_query
 
typedef struct igmp_v3_rpt_rcrd_ igmp_v3_rpt_rcrd
 
typedef struct igmp_v3_report_ igmp_v3_report
 
typedef struct igmp_naked_header_ igmp_naked_header
 
typedef union igmp_packet_ igmp_packet
 

Functions

static uint8_t * get_igmp_v3_rpt_source (igmp_v3_rpt_rcrd *ptr)
 
static boolean igmp_addr_is_mcast (const uint8_t *addr)
 

Macro Definition Documentation

#define IGMP_FIXFLOAT_FLAG   0x80 /* Set if floating point */

Definition at line 117 of file igmp_protocol.h.

#define IGMP_FLOAT_EXP_MASK   0x70 /* Floating point exponent mask */

Definition at line 118 of file igmp_protocol.h.

#define IGMP_FLOAT_EXP_OFFSET   3 /* Offset bits to add */

Definition at line 124 of file igmp_protocol.h.

#define IGMP_FLOAT_EXP_SHIFT   4 /* Shift count for exponent */

Definition at line 119 of file igmp_protocol.h.

#define IGMP_FLOAT_MANT_HIGHBIT   0x10 /* High bit of mantissa */

Definition at line 121 of file igmp_protocol.h.

#define IGMP_FLOAT_MANT_MASK   0x0F /* Floating point mantissa mask */

Definition at line 120 of file igmp_protocol.h.

#define IGMP_FLOAT_MANT_SHIFT   0 /* Shift count for mantissa */

Definition at line 123 of file igmp_protocol.h.

#define IGMP_FLOAT_MAX_EXP   0x07 /* Maximum exponent value */

Definition at line 125 of file igmp_protocol.h.

#define IGMP_FLOAT_MAX_MANT   0x1F /* Max mantissa portion */

Definition at line 122 of file igmp_protocol.h.

#define IGMP_MAX_FLOAT_ENCODABLE
Value:
#define IGMP_FLOAT_MANT_MASK
#define IGMP_FLOAT_MANT_HIGHBIT
#define IGMP_FLOAT_EXP_OFFSET
#define IGMP_FLOAT_MAX_EXP

Definition at line 126 of file igmp_protocol.h.

#define IGMP_MAX_RESP_DEFAULT   100 /* Default Max Resp val (* 100 msec) */

Definition at line 133 of file igmp_protocol.h.

#define IGMP_MAX_RESP_MSEC   100 /* Max Resp is in units of 100 msec */

Definition at line 132 of file igmp_protocol.h.

#define IGMP_QRV_MASK   0x7 /* QRV value in s_qrv field */

Definition at line 61 of file igmp_protocol.h.

#define IGMP_SUPP_RTR_PROC_MASK   0x8 /* "S" bit in s_qrv field */

Definition at line 60 of file igmp_protocol.h.

#define IGMP_TYPE_QUERY   0x11 /* Query (all versions) */

Definition at line 31 of file igmp_protocol.h.

#define IGMP_TYPE_V1_REPORT   0x12 /* Version 1 Report */

Definition at line 32 of file igmp_protocol.h.

#define IGMP_TYPE_V2_LEAVE   0x17 /* Version 2 Leave */

Definition at line 34 of file igmp_protocol.h.

#define IGMP_TYPE_V2_REPORT   0x16 /* Version 2 Report */

Definition at line 33 of file igmp_protocol.h.

#define IGMP_TYPE_V3_REPORT   0x22 /* Version 3 Report */

Definition at line 35 of file igmp_protocol.h.

#define IGMP_V2_MAX_MAX_RESP   0xFF /* Maximum Max Resp value for V2 */

Definition at line 134 of file igmp_protocol.h.

Typedef Documentation

typedef struct igmp_hdr_ igmp_hdr
typedef union igmp_packet_ igmp_packet
typedef struct igmp_v1v2_pkt_ igmp_v1v2_pkt
typedef struct igmp_v3_query_ igmp_v3_query

Function Documentation

static uint8_t* get_igmp_v3_rpt_source ( igmp_v3_rpt_rcrd ptr)
inlinestatic

Definition at line 77 of file igmp_protocol.h.

static boolean igmp_addr_is_mcast ( const uint8_t *  addr)
inlinestatic

Definition at line 143 of file igmp_protocol.h.