1
0
mirror of https://github.com/rtbrick/bngblaster.git synced 2024-05-06 15:54:57 +00:00
Files
Christian Giese 00aa14c8e4 github pages
2024-03-25 22:01:36 +00:00

482 lines
32 KiB
HTML

<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Multicast and IPTV &mdash; BNG Blaster 0.8 documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
<link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=a5c4661c" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=411f5019" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=a0e24af7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Legal Interception (LI)" href="li.html" />
<link rel="prev" title="Session Traffic" href="traffic.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home">
BNG Blaster
<img src="../_static/rtbrick_logo.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../quickstart.html">Quickstart Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../interfaces.html">Interfaces</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Access Protocols</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pppoe.html">PPPoE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ipoe.html">IPoE</a></li>
<li class="toctree-l2"><a class="reference internal" href="l2tp.html">L2TP</a></li>
<li class="toctree-l2"><a class="reference internal" href="l2bsa.html">L2BSA</a></li>
<li class="toctree-l2"><a class="reference internal" href="traffic.html">Session Traffic</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Multicast and IPTV</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#generate-multicast-traffic">Generate Multicast Traffic</a></li>
<li class="toctree-l3"><a class="reference internal" href="#manual-join-leave-testing">Manual Join/Leave Testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="#iptv-zapping-test">IPTV Zapping Test</a></li>
<li class="toctree-l3"><a class="reference internal" href="#multicast-limitations">Multicast Limitations</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="li.html">Legal Interception (LI)</a></li>
<li class="toctree-l2"><a class="reference internal" href="monkey.html">Monkey</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../routing/index.html">Routing Protocols</a></li>
<li class="toctree-l1"><a class="reference internal" href="../streams.html">Traffic Streams</a></li>
<li class="toctree-l1"><a class="reference internal" href="../http.html">HTTP Emulation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../nat.html">NAT / CGNAT</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reports.html">Reports</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/index.html">API/CLI</a></li>
<li class="toctree-l1"><a class="reference internal" href="../controller.html">Controller</a></li>
<li class="toctree-l1"><a class="reference internal" href="../performance.html">Performance Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../faq.html">Frequently Asked Questions</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">BNG Blaster</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Access Protocols</a></li>
<li class="breadcrumb-item active">Multicast and IPTV</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/access/multicast.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="multicast-and-iptv">
<span id="multicast"></span><h1>Multicast and IPTV<a class="headerlink" href="#multicast-and-iptv" title="Link to this heading"></a></h1>
<p>The BNG Blaster provides advanced functionalities for testing multicast
over PPPoE sessions with a focus on IPTV. Therefore IGMP versions 1, 2 and 3
are implemented with support for up to 12 group records per session and 3
sources per group.</p>
<p>Multicast testing is supported using external multicast traffic like real
world IPTV traffic or by generating multicast traffic on one of the network
interface functions.</p>
<section id="generate-multicast-traffic">
<h2>Generate Multicast Traffic<a class="headerlink" href="#generate-multicast-traffic" title="Link to this heading"></a></h2>
<p>The BNG Blaster supports different ways to generate multicast traffic
using autogenerated traffic enabled in the igmp configuration section
or by manually defined RAW traffic streams.</p>
<p>The following example shows how to generate traffic for 100 multicast groups
with one packet per millisecond (1000 PPS) for every group.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;interfaces&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;network&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth2&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;100.0.0.10&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;gateway&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;100.0.0.2&quot;</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="nt">&quot;igmp&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;group&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;239.0.0.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;group-iter&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.0.0.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;group-count&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;source&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;100.0.0.10&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;send-multicast-traffic&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
<p>It is recommended to send multicast traffic with 1000 PPS (default)
per group to measure the join and leave delay in milliseconds.</p>
<p>It is also possible to generate multicast traffic using RAW streams as shown in the
example below:</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;streams&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;name&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;MC1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ipv4&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;direction&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;downstream&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;priority&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">128</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;network-ipv4-address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;1.1.1.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;destination-ipv4-address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;239.0.0.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;length&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">256</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;pps&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1000</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;network-interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span>
<span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;name&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;MC2&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ipv4&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;direction&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;downstream&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;priority&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">128</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;network-ipv4-address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;2.2.2.2&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;destination-ipv4-address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;239.0.0.2&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;length&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">256</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;pps&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1000</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;network-interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth2&quot;</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">]</span>
<span class="p">}</span>
</pre></div>
</div>
<p>Using RAW streams allows generating streams distributed over multiple network interfaces
with more options to modify the traffic.</p>
<p>Setting the <code class="docutils literal notranslate"><span class="pre">destination-ipv4-address</span></code> of a stream to a multicast IPv4 address is enough
to generate proper multicast streams. All headers including the BNG Blaster header will be
automatically set for multicast. Therefore such streams can be also used to measure the IGMP
join and leave delay.</p>
<p>The BNG Blaster is recognizing loss using the <a class="reference internal" href="../streams.html#bbl-header"><span class="std std-ref">BNG Blaster header</span></a>
sequence numbers. After the first multicast traffic is received for a particular group,
for every further packet it checks if there is a gap between the last and new sequence number
which would be reported as a loss. The argument option <code class="docutils literal notranslate"><span class="pre">-l</span> <span class="pre">loss</span></code> enables loss logging which
helps to search for the missing packets in the corresponding capture files.</p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>It is also possible to start a dedicated BNG Blaster instance to generate multicast
traffic only. This traffic can be consumed by multiple different BNG Blaster instances.
The BNG Blaster header allows doing the same measurements on traffic generated from the
same or different BNG Blaster instances.</p>
</div>
</section>
<section id="manual-join-leave-testing">
<h2>Manual Join/Leave Testing<a class="headerlink" href="#manual-join-leave-testing" title="Link to this heading"></a></h2>
<p>It is possible to join and leave multicast groups manually using the <a class="reference internal" href="../api/index.html#api"><span class="std std-ref">command</span></a>
<code class="docutils literal notranslate"><span class="pre">igmp-join</span></code>.</p>
<p><code class="docutils literal notranslate"><span class="pre">$</span> <span class="pre">sudo</span> <span class="pre">bngblaster-cli</span> <span class="pre">run.sock</span> <span class="pre">igmp-join</span> <span class="pre">session-id</span> <span class="pre">1</span> <span class="pre">group</span> <span class="pre">232.1.1.1</span> <span class="pre">source1</span> <span class="pre">202.11.23.101</span> <span class="pre">source2</span> <span class="pre">202.11.23.102</span> <span class="pre">source3</span> <span class="pre">202.11.23.103</span></code></p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ok&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">$</span> <span class="pre">sudo</span> <span class="pre">bngblaster-cli</span> <span class="pre">run.sock</span> <span class="pre">igmp-info</span> <span class="pre">session-id</span> <span class="pre">1</span></code></p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ok&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;igmp-groups&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;group&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;232.1.1.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;igmp-sources&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="s2">&quot;202.11.23.101&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;202.11.23.102&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;202.11.23.103&quot;</span>
<span class="w"> </span><span class="p">],</span>
<span class="w"> </span><span class="nt">&quot;packets&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1291</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;loss&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;state&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;active&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;join-delay-ms&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">139</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">]</span>
<span class="p">}</span>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">$</span> <span class="pre">sudo</span> <span class="pre">bngblaster-cli</span> <span class="pre">run.sock</span> <span class="pre">igmp-leave</span> <span class="pre">session-id</span> <span class="pre">1</span> <span class="pre">group</span> <span class="pre">232.1.1.1</span></code></p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ok&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">$</span> <span class="pre">sudo</span> <span class="pre">bngblaster-cli</span> <span class="pre">run.sock</span> <span class="pre">igmp-info</span> <span class="pre">session-id</span> <span class="pre">1</span></code></p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ok&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;igmp-groups&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;group&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;232.1.1.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;igmp-sources&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="s2">&quot;202.11.23.101&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;202.11.23.102&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;202.11.23.103&quot;</span>
<span class="w"> </span><span class="p">],</span>
<span class="w"> </span><span class="nt">&quot;packets&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7456</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;loss&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;state&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;idle&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;leave-delay-ms&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">114</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">]</span>
<span class="p">}</span>
</pre></div>
</div>
</section>
<section id="iptv-zapping-test">
<h2>IPTV Zapping Test<a class="headerlink" href="#iptv-zapping-test" title="Link to this heading"></a></h2>
<p>A key element of IPTV services is the delay in changing channels.
How long does it take to change from one channel to another, is
the right channel received and the old channel stopped without overlap
between the old and new channel? Overlapping channels may lead to traffic
congestion if both channels are sent at the same time.</p>
<p>Verify that fast channel changes (zapping) work reliably as well.</p>
<p>The BNG Blaster can emulate different client zapping behaviors and
measure the resulting join/leave delays and possible multicast traffic loss.</p>
<p>The join delay is the time in milliseconds between sending join and receiving
the first multicast packet of the requested group. The leave delay is the time between
sending leave and the last multicast packet received for this group. Multicast packets
received for the leaved group after the first packet of the joined group is received
are counted as overlap.</p>
<p>The following configuration shows an example of the <code class="docutils literal notranslate"><span class="pre">igmp</span></code> section
for a typical zapping test.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;igmp&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;version&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;start-delay&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;group&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;239.0.0.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;group-iter&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.0.0.1&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;group-count&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;source&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;100.0.0.10&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;zapping-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;zapping-count&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;zapping-view-duration&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;zapping-wait&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;combined-leave-join&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;send-multicast-traffic&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"> </span><span class="nt">&quot;igmp&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{}</span><span class="w"> </span><span class="p">}</span>
</pre></div>
</div>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>autostart</strong></p></td>
<td><div class="line-block">
<div class="line">Automatically join after the session is established.</div>
<div class="line">Default: true</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>start-delay</strong></p></td>
<td><div class="line-block">
<div class="line">Delay between session established and initial IGMP join in seconds.</div>
<div class="line">Default: 1</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>version</strong></p></td>
<td><div class="line-block">
<div class="line">IGMP protocol version (1, 2, or 3).</div>
<div class="line">Default: 3</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>combined-leave-join</strong></p></td>
<td><div class="line-block">
<div class="line">Per default, join and leave requests are sent using dedicated</div>
<div class="line">reports. This option allows the combination of leave and join</div>
<div class="line">records within a single IGMPv3 report using multiple group records.</div>
<div class="line">This option applies to the IGMP version 3 only!</div>
<div class="line">Default: true</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>group</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast group base address (e.g. 239.0.0.1).</div>
<div class="line">If group is set to 293.0.0.1 with group-iter of 0.0.0.2,</div>
<div class="line">source 1.1.1.1 and group-count 3, the result are the following</div>
<div class="line">three groups (S.G):</div>
<div class="line"><cite>1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3, 1.1.1.1,239.0.0.5</cite></div>
<div class="line">Default: 0.0.0.0 (disabled)</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>group-iter</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast group iterator.</div>
<div class="line">Default: 0.0.0.1</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>group-count</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast group count.</div>
<div class="line">Default: 1</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>source</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast source address (e.g. 1.1.1.1).</div>
<div class="line">Default: 0.0.0.0 (ASM)</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>zapping-interval</strong></p></td>
<td><div class="line-block">
<div class="line">IGMP channel zapping interval in seconds.</div>
<div class="line">Default: 0 (disabled)</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>zapping-count</strong></p></td>
<td><div class="line-block">
<div class="line">Define the number of channel changes before starting</div>
<div class="line">the view duration.</div>
<div class="line">Default: 0 (disabled)</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>zapping-wait</strong></p></td>
<td><div class="line-block">
<div class="line">Wait for multicast traffic before zapping to the next channel.</div>
<div class="line">Default: false</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>view-duration</strong></p></td>
<td><div class="line-block">
<div class="line">Define the view duration in seconds.</div>
<div class="line">Default: 0 (disabled)</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>max-join-delay</strong></p></td>
<td><div class="line-block">
<div class="line">Maximum join delay in milliseconds.</div>
<div class="line">If configured, the final report includes how often</div>
<div class="line">the measured join delay is above this threshold.</div>
<div class="line">Default: 0 (disabled)</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>send-multicast-traffic</strong></p></td>
<td><div class="line-block">
<div class="line">If enabled, the BNG Blaster generates multicast traffic on the</div>
<div class="line">network interface based on the specified group and source</div>
<div class="line">attributes mentioned before. This traffic includes some special</div>
<div class="line">signatures for faster processing and more detailed analysis.</div>
<div class="line">Default: false</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>multicast-traffic-length</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast traffic IP length.</div>
<div class="line">Only applicable with <strong>send-multicast-traffic</strong> enabled!</div>
<div class="line">Default: 76</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>multicast-traffic-tos</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast traffic TOS priority.</div>
<div class="line">Only applicable with <strong>send-multicast-traffic</strong> enabled!</div>
<div class="line">Default: 0</div>
</div>
</td>
</tr>
<tr class="row-even"><td><p><strong>multicast-traffic-pps</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast traffic PPS (packets-per-second) per group.</div>
<div class="line">Only applicable with <strong>send-multicast-traffic</strong> enabled!</div>
<div class="line">Default: 1000</div>
</div>
</td>
</tr>
<tr class="row-odd"><td><p><strong>network-interface</strong></p></td>
<td><div class="line-block">
<div class="line">Multicast traffic source interface.</div>
<div class="line">Only applicable with <strong>send-multicast-traffic</strong> enabled!</div>
<div class="line">Default: <cite>first network interface from configuration</cite></div>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section id="multicast-limitations">
<h2>Multicast Limitations<a class="headerlink" href="#multicast-limitations" title="Link to this heading"></a></h2>
<p>The BNG Blaster IGMP implementation supports up to 3 sources per group record
and 12 group records per session.</p>
<p>The check for overlapping multicast traffic is supported for zapping tests only.</p>
<p>Multicast tests should be done without RX threads enabled for correct measurements!</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="traffic.html" class="btn btn-neutral float-left" title="Session Traffic" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="li.html" class="btn btn-neutral float-right" title="Legal Interception (LI)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2020-2024, RtBrick, Inc..</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>