summaryrefslogtreecommitdiffstats
path: root/sys/netinet/igmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/igmp.h')
-rw-r--r--sys/netinet/igmp.h39
1 files changed, 38 insertions, 1 deletions
diff --git a/sys/netinet/igmp.h b/sys/netinet/igmp.h
index 05a70fc..4c2f9e0 100644
--- a/sys/netinet/igmp.h
+++ b/sys/netinet/igmp.h
@@ -55,7 +55,42 @@ struct igmp {
struct in_addr igmp_group; /* group address being reported */
}; /* (zero for queries) */
-#define IGMP_MINLEN 8
+struct igmpv3 {
+ u_char igmp_type; /* version & type of IGMP message */
+ u_char igmp_code; /* subtype for routing msgs */
+ u_short igmp_cksum; /* IP-style checksum */
+ struct in_addr igmp_group; /* group address being reported */
+ /* (zero for queries) */
+ u_char igmp_misc; /* reserved/suppress/robustness */
+ u_char igmp_qqi; /* querier's query interval */
+ u_short igmp_numsrc; /* number of sources */
+ /*struct in_addr igmp_sources[1];*/ /* source addresses */
+};
+
+struct igmp_grouprec {
+ u_char ig_type; /* record type */
+ u_char ig_datalen; /* length of auxiliary data */
+ u_short ig_numsrc; /* number of sources */
+ struct in_addr ig_group; /* group address being reported */
+ /*struct in_addr ig_sources[1];*/ /* source addresses */
+};
+
+struct igmp_report {
+ u_char ir_type; /* record type */
+ u_char ir_rsv1; /* reserved */
+ u_short ir_cksum; /* checksum */
+ u_short ir_rsv2; /* reserved */
+ u_short ir_numgrps; /* number of group records */
+ struct igmp_grouprec ir_groups[1]; /* group records */
+};
+
+#define IGMP_MINLEN 8
+#define IGMP_HDRLEN 8
+#define IGMP_GRPREC_HDRLEN 8
+#define IGMP_PREPEND 0
+
+#define IGMP_QRV(pigmp) ((pigmp)->igmp_misc & (0x07)) /* XXX */
+#define IGMP_MAXSOURCES(len) (((len) - 12) >> 2) /* XXX */
/*
* Message types, including version number.
@@ -71,6 +106,8 @@ struct igmp {
#define IGMP_MTRACE_RESP 0x1e /* traceroute resp.(to sender)*/
#define IGMP_MTRACE 0x1f /* mcast traceroute messages */
+#define IGMP_V3_MEMBERSHIP_REPORT 0x22 /* Ver. 3 membership report */
+
#define IGMP_MAX_HOST_REPORT_DELAY 10 /* max delay for response to */
/* query (in seconds) according */
/* to RFC1112 */
OpenPOWER on IntegriCloud