Nut/OS  4.10.3
API Reference
igmp.h File Reference

IGMP protocol definitions. More...

#include <sys/types.h>
#include <dev/netbuf.h>
#include <net/if_var.h>
Include dependency graph for igmp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  igmp
 IGMP packet structure. More...
struct  igmpv3
 IGMPv3 query format. More...
struct  igmp_grouprec
 IGMPv3 group record. More...
struct  igmp_report
 IGMPv3 report. More...

Defines

#define IGMP_MINLEN   8
 Minimum IGMP packet length.
#define IGMP_MEMBERSHIP_QUERY   0x11
 Membership query.
#define IGMP_V1_MEMBERSHIP_REPORT   0x12
 Ver. 1 membership report.
#define IGMP_V2_MEMBERSHIP_REPORT   0x16
 Ver. 2 membership report.
#define IGMP_V3_MEMBERSHIP_REPORT   0x22
 Ver. 3 membership report.
#define IGMP_V2_LEAVE_GROUP   0x17
 Leave-group message.
#define IGMP_MAX_HOST_REPORT_DELAY   10
 Maximum delay for response query.
#define IGMP_TIMER_SCALE   10
 Code field time scale.
#define IGMP_EXCLUDE_LIST   1
 List identifiers.
#define IGMP_INCLUDE_LIST   2
#define IGMP_RECORDED_LIST   3

Typedefs

typedef struct igmp IGMP
 IGMP packet type.
typedef struct igmp_report IGMP_REPORT

Functions

void NutIgmpInput (NUTDEVICE *dev, NETBUF *nb)
 Process incoming IGMP packets.
int NutIgmpOutput (uint8_t type, uint32_t dest, NETBUF *nb)
 Send an IGMP datagram.
void NutIgmpJoinGroup (NUTDEVICE *dev, uint32_t ip_addr)
void NutIgmpLeaveGroup (NUTDEVICE *dev, uint32_t ip_addr)

IGMPv3 Report Types

#define IGMP_REPORT_MODE_IN   1
 Mode-is-include.
#define IGMP_REPORT_MODE_EX   2
 Mode-is-exclude.
#define IGMP_REPORT_TO_IN   3
 Change-to-include.
#define IGMP_REPORT_TO_EX   4
 Change-to-exclude.
#define IGMP_REPORT_ALLOW_NEW   5
 Allow-new-sources.
#define IGMP_REPORT_BLOCK_OLD   6
 Block-old-sources.

IGMPv3 Report Type Flags

#define IGMP_MASK_CUR_STATE   0x01
 Report current-state.
#define IGMP_MASK_ALLOW_NEW   0x02
 Report source as allow-new.
#define IGMP_MASK_BLOCK_OLD   0x04
 Report source as block-old.
#define IGMP_MASK_TO_IN   0x08
 Report source as to_in.
#define IGMP_MASK_TO_EX   0x10
 Report source as to_ex.
#define IGMP_MASK_STATE_T1   0x20
 State at T1.
#define IGMP_MASK_STATE_T2   0x40
 State at T2.
#define IGMP_MASK_IF_STATE   0x80
 Report current-state per interface.
#define IGMP_MASK_STATE_TX   (IGMP_MASK_STATE_T1 | IGMP_MASK_STATE_T2)
#define IGMP_MASK_PENDING   (IGMP_MASK_CUR_STATE | IGMP_MASK_ALLOW_NEW | IGMP_MASK_BLOCK_OLD)

Detailed Description

IGMP protocol definitions.

Definition in file igmp.h.