summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/igmp.4 3.html
blob: 7f412f35b0216c771b26339fc9273cf875f9bf8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<table class="head">
  <tr>
    <td class="head-ltitle">IGMP(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">IGMP(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">igmp</code> &#x2014; <span class="Nd">Internet
    Group Management Protocol</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="In">#include
    &lt;<a class="In">sys/types.h</a>&gt;</code>
  <br/>
  <code class="In">#include &lt;<a class="In">sys/socket.h</a>&gt;</code>
  <br/>
  <code class="In">#include &lt;<a class="In">netinet/in.h</a>&gt;</code>
  <br/>
  <code class="In">#include &lt;<a class="In">netinet/in_systm.h</a>&gt;</code>
  <br/>
  <code class="In">#include &lt;<a class="In">netinet/ip.h</a>&gt;</code>
  <br/>
  <code class="In">#include &lt;<a class="In">netinet/igmp.h</a>&gt;</code></p>
<p class="Pp"><var class="Ft">int</var>
  <br/>
  <code class="Fn">socket</code>(<var class="Fa" style="white-space: nowrap;">AF_INET</var>,
    <var class="Fa" style="white-space: nowrap;">SOCK_RAW</var>,
    <var class="Fa" style="white-space: nowrap;">IPPROTO_IGMP</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">IGMP is a control plane protocol used by IPv4 hosts and routers to
    propagate multicast group membership information. Normally this protocol is
    not used directly, except by the kernel itself, in response to multicast
    membership requests by user applications. Routing protocols may open a raw
    socket to directly interact with <code class="Nm">igmp</code>.</p>
<p class="Pp">As of <span class="Ux">FreeBSD 8.0</span>, IGMP version 3 is
    implemented. This adds support for Source-Specific Multicast (SSM), whereby
    applications may communicate to upstream multicast routers that they are
    only interested in receiving multicast streams from particular sources.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL
  VARIABLES</a></h1>
<dl class="Bl-tag">
  <dt>net.inet.igmp.stats</dt>
  <dd>This opaque read-only variable exposes the stack-wide IGMPv3 protocol
      statistics to <a class="Xr">netstat(1)</a>.</dd>
  <dt>net.inet.igmp.ifinfo</dt>
  <dd>This opaque read-only variable exposes the per-link IGMPv3 status to
      <a class="Xr">ifmcstat(8)</a>.</dd>
  <dt>net.inet.igmp.gsrdelay</dt>
  <dd>This variable specifies the time threshold, in seconds, for processing
      Group-and-Source Specific Queries (GSR). As GSR query processing requires
      maintaining state on the host, it may cause memory to be allocated, and is
      therefore a potential attack point for Denial-of-Service (DoS). If more
      than one GSR query is received within this threshold, it will be dropped,
      to mitigate the potential for DoS.</dd>
  <dt>net.inet.igmp.default_version</dt>
  <dd>This variable controls the default version of IGMP to be used on all
      links. This sysctl is normally set to 3 by default.</dd>
  <dt>net.inet.igmp.legacysupp</dt>
  <dd>If this variable is non-zero, then IGMP v1 and v2 membership reports
      received on a link will be allowed to suppress the IGMP v3 state-change
      reports which would otherwise be issued by this host. This sysctl is
      normally enabled by default.</dd>
  <dt>net.inet.igmp.v2enable</dt>
  <dd>If this variable is non-zero, then IGMP v2 membership queries will be
      processed by this host, and backwards compatibility will be enabled until
      the v2 'Old Querier Present' timer expires. This sysctl is normally
      enabled by default.</dd>
  <dt>net.inet.igmp.v1enable</dt>
  <dd>If this variable is non-zero, then IGMP v1 membership queries will be
      processed by this host, and backwards compatibility will be enabled until
      the v1 'Old Querier Present' timer expires. This sysctl is normally
      enabled by default.</dd>
  <dt>net.inet.igmp.sendlocal</dt>
  <dd>If this variable is non-zero, then IGMP state-changes for groups in the
      224.0.0.0/24 link-scope prefix will be issued. This behaviour is
      recommended if deploying <span class="Ux">FreeBSD</span> in a network
      environment with layer 2 devices which snoop IGMP traffic to mitigate
      multicast propagation throughout the network. This sysctl is normally
      enabled by default.</dd>
  <dt>net.inet.igmp.sendra</dt>
  <dd>If this variable is non-zero, then IGMP v2 and v3 reports will contain the
      IP Router Alert option. This sysctl is normally enabled by default.</dd>
  <dt>net.inet.igmp.recvifkludge</dt>
  <dd>If this variable is non-zero, then received IGMP reports which contain
      0.0.0.0 as their source will be rewritten to contain the subnet address.
      This is useful when there are hosts on-link which have not yet been
      configured with a primary IPv4 address. This sysctl is normally enabled by
      default.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">netstat(1)</a>, <a class="Xr">sourcefilter(3)</a>,
    <a class="Xr">inet(4)</a>, <a class="Xr">multicast(4)</a>,
    <a class="Xr">ifmcstat(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">igmp</code> manual page re-appeared in
    <span class="Ux">FreeBSD 8.0</span>.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">March 9, 2009</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>