1
0
mirror of https://github.com/rtbrick/bngblaster.git synced 2024-05-06 15:54:57 +00:00
Files
rtbrick-bngblaster/docs/interfaces.html

1146 lines
85 KiB
HTML
Raw Normal View History

2022-04-01 12:16:46 +02:00
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
2022-10-31 23:26:32 +00:00
<title>Interfaces &mdash; BNG Blaster 0.8 documentation</title>
2022-04-01 12:16:46 +02:00
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/tabs.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></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="Access Protocols" href="access/index.html" />
<link rel="prev" title="Quickstart Guide" href="quickstart.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" />
<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 current"><a class="current reference internal" href="#">Interfaces</a><ul>
2022-10-31 23:26:32 +00:00
<li class="toctree-l2"><a class="reference internal" href="#operating-system-settings">Operating System Settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="#interface-settings">Interface Settings</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#links">Links</a></li>
<li class="toctree-l3"><a class="reference internal" href="#link-aggregation-lag">Link Aggregation (LAG)</a></li>
<li class="toctree-l3"><a class="reference internal" href="#multithreaded-interfaces">Multithreaded Interfaces</a></li>
2022-04-01 12:16:46 +02:00
</ul>
</li>
2022-10-31 23:26:32 +00:00
<li class="toctree-l2"><a class="reference internal" href="#interface-functions">Interface Functions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#network-interfaces">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="#access-interfaces">Access Interfaces</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#untagged">Untagged</a></li>
<li class="toctree-l4"><a class="reference internal" href="#single-tagged">Single Tagged</a></li>
<li class="toctree-l4"><a class="reference internal" href="#double-tagged">Double Tagged</a></li>
<li class="toctree-l4"><a class="reference internal" href="#triple-tagged">Triple Tagged</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#a10nsp-interfaces">A10NSP Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#dpdk">DPDK</a></li>
2022-04-01 12:16:46 +02:00
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="access/index.html">Access Protocols</a></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="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>
2022-05-02 17:40:37 +02:00
<li class="toctree-l1"><a class="reference internal" href="controller.html">Controller</a></li>
2022-04-01 12:16:46 +02:00
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/index.html">Reference</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"></a> &raquo;</li>
<li>Interfaces</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/interfaces.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="interfaces">
<span id="id1"></span><h1>Interfaces<a class="headerlink" href="#interfaces" title="Permalink to this headline"></a></h1>
2022-10-31 23:26:32 +00:00
<p>The BNG Blaster distinguishes between interface links and interface functions.
An interface link can be considered as the actual interface with all the
corresponding IO settings. This is similar but not the same as physical interfaces
in typical router implementations. Interface functions are similar to logical interfaces
and define the actual services. One or more interface functions can be attached to each
interface link.</p>
<p>At least one interface function is required to start the BNG Blaster.</p>
<section id="operating-system-settings">
<h2>Operating System Settings<a class="headerlink" href="#operating-system-settings" title="Permalink to this headline"></a></h2>
<p>The BNG Blaster implements all protocols in user space. Therefore the used interfaces
links must not have an IP address configured in the host operating system, to prevent that
the received packets are handled or even responded to from the Linux kernel as well.</p>
<p>All used interface links must be in an operational state up.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo ip link set dev &lt;interface&gt; up
2022-04-01 12:16:46 +02:00
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
<p>It is not possible to send packets larger than the configured interface MTU, which is 1500
bytes per default. For PPPoE with multiple VLAN headers, this might be not enough for large
packets. Therefore the interface MTU should be increased using the following commands.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo ip link set mtu 9000 dev &lt;interface&gt;
</pre></div>
</div>
<p>All this can be also archived via netplan using the following configuration for each BNG Blaster
interface link.</p>
<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">network</span><span class="p">:</span><span class="w"></span>
<span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2</span><span class="w"></span>
<span class="nt">renderer</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">networkd</span><span class="w"></span>
<span class="nt">ethernets</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="nt">eth1</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="nt">dhcp4</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">no</span><span class="w"></span>
<span class="w"> </span><span class="nt">dhcp6</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">no</span><span class="w"></span>
<span class="w"> </span><span class="nt">link-local</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[]</span><span class="w"></span>
<span class="w"> </span><span class="nt">mtu</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">9000</span><span class="w"></span>
<span class="w"> </span><span class="nt">eth2</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="nt">dhcp4</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">no</span><span class="w"></span>
<span class="w"> </span><span class="nt">dhcp6</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">no</span><span class="w"></span>
<span class="w"> </span><span class="nt">link-local</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[]</span><span class="w"></span>
<span class="w"> </span><span class="nt">mtu</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">9000</span><span class="w"></span>
</pre></div>
</div>
<p>It might be also needed to increase the hardware and software queue size of your
network interface links for higher throughput.</p>
<p>The command <code class="docutils literal notranslate"><span class="pre">ethtool</span> <span class="pre">-g</span> <span class="pre">&lt;interface&gt;</span></code> shows the currently applied and maximum
hardware queue size.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ sudo ethtool -g ens5f1
Ring parameters for ens5f1:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 512
RX Mini: 0
RX Jumbo: 0
TX: 512
</pre></div>
</div>
<p>The currently applied settings can be changed with the following command:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo ethtool -G ens5f1 tx 4096 rx 4096
</pre></div>
</div>
<p>You can even change the software queue size:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo ip link set txqueuelen 4096 dev ens5f1
</pre></div>
</div>
</section>
<section id="interface-settings">
<h2>Interface Settings<a class="headerlink" href="#interface-settings" title="Permalink to this headline"></a></h2>
<p>The interfaces section contains all configurations around interface links and options.</p>
<p>The following configuration allows to overwrite the global default interface link settings.</p>
2022-04-01 12:16:46 +02:00
<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="p">}</span><span class="w"></span>
</pre></div>
</div>
<table class="colwidths-given docutils align-default">
<colgroup>
<col style="width: 25%" />
<col style="width: 50%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Default</p></th>
</tr>
</thead>
<tbody>
2022-10-31 23:26:32 +00:00
<tr class="row-even"><td><p><cite>io-mode</cite></p></td>
<td><p>IO mode</p></td>
<td><p>packet_mmap_raw</p></td>
2022-04-01 12:16:46 +02:00
</tr>
2022-10-31 23:26:32 +00:00
<tr class="row-odd"><td><p><cite>io-slots</cite></p></td>
<td><p>IO slots (ring size)</p></td>
<td><p>4096</p></td>
2022-04-01 12:16:46 +02:00
</tr>
<tr class="row-even"><td><p><cite>qdisc-bypass</cite></p></td>
<td><p>Bypass the kernels qdisc layer</p></td>
<td><p>true</p></td>
</tr>
2022-10-31 23:26:32 +00:00
<tr class="row-odd"><td><p><cite>tx-interval</cite></p></td>
<td><p>TX polling interval in milliseconds</p></td>
<td><p>1.0</p></td>
2022-04-01 12:16:46 +02:00
</tr>
2022-10-31 23:26:32 +00:00
<tr class="row-even"><td><p><cite>rx-interval</cite></p></td>
<td><p>RX polling interval in milliseconds</p></td>
<td><p>1.0</p></td>
2022-04-01 12:16:46 +02:00
</tr>
2022-10-31 23:26:32 +00:00
<tr class="row-odd"><td><p><cite>tx-threads</cite></p></td>
<td><p>Number of TX threads per interface link</p></td>
<td><p>0 (main thread)</p></td>
2022-04-01 12:16:46 +02:00
</tr>
2022-10-31 23:26:32 +00:00
<tr class="row-even"><td><p><cite>rx-threads</cite></p></td>
<td><p>Number of RX threads per interface link</p></td>
<td><p>0 (main thread)</p></td>
</tr>
<tr class="row-odd"><td><p><cite>capture-include-streams</cite></p></td>
<td><p>Include traffic streams in the capture</p></td>
2022-04-01 12:16:46 +02:00
<td><p>true</p></td>
</tr>
2022-10-31 23:26:32 +00:00
<tr class="row-even"><td><p><cite>mac-modifier</cite></p></td>
2022-04-19 10:52:03 +02:00
<td><p>Third byte of access session MAC address (0-255)</p></td>
<td><p>0</p></td>
</tr>
2022-04-01 12:16:46 +02:00
</tbody>
</table>
<p>The supported IO modes are listed with <code class="docutils literal notranslate"><span class="pre">bngblaster</span> <span class="pre">-v</span></code> but except
2022-10-31 23:26:32 +00:00
<code class="docutils literal notranslate"><span class="pre">packet_mmap_raw</span></code> all other modes are currently considered experimental. In
2022-04-01 12:16:46 +02:00
the default mode (<code class="docutils literal notranslate"><span class="pre">packet_mmap_raw</span></code>) all packets are received in a Packet MMAP
2022-10-31 23:26:32 +00:00
ring buffer and sent directly through RAW packet sockets.</p>
<p>The default <code class="docutils literal notranslate"><span class="pre">tx-interval</span></code> and <code class="docutils literal notranslate"><span class="pre">rx-interval</span></code> of <code class="docutils literal notranslate"><span class="pre">1.0</span></code> (1ms) allows precise timestamps
and high throughput. Those values can be further increased (e.g. <code class="docutils literal notranslate"><span class="pre">0.1</span></code>) for higher throughput
or decreased (e.g. <code class="docutils literal notranslate"><span class="pre">5.0</span></code>) for lower system load.</p>
<p>It might be also needed to increase the <code class="docutils literal notranslate"><span class="pre">io-slots</span></code> from the default value of <code class="docutils literal notranslate"><span class="pre">4096</span></code> to
reach the desired throughput. The actual meaning of IO slots depends on the selected IO mode.
For Packet MMAP, it defines the maximum number of packets in the ring buffer.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></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="w"> </span><span class="nt">&quot;tx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mf">0.1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mf">0.1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;io-slots&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">2048</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
2022-04-01 12:16:46 +02:00
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
<section id="links">
<h3>Links<a class="headerlink" href="#links" title="Permalink to this headline"></a></h3>
<p id="id2">The link configuration is optional and allows to define per interface link configurations. An explicit
link configuration with the global default settings is automatically generated if no link is defined
for interface links referenced by interface functions.</p>
<p>The link configuration is optional and allows to define per interface link configurations. An explicit
link configuration with the global default settings is automatically generated if no link is defined
for interface links referenced by interface functions.</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;links&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="p">}</span><span class="w"></span>
2022-04-01 12:16:46 +02:00
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
<table class="colwidths-given docutils align-default">
<colgroup>
<col style="width: 25%" />
<col style="width: 50%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Default</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><cite>interface</cite></p></td>
<td><p>Interface name (e.g. eth0, …)</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>description</cite></p></td>
<td><p>Interface description</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>mac</cite></p></td>
<td><p>Overwrite the MAC address</p></td>
<td><p>Interface MAC address</p></td>
</tr>
<tr class="row-odd"><td><p><cite>io-mode</cite></p></td>
<td><p>Overwrite the IO mode</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>io-slots</cite></p></td>
<td><p>Overwrite the IO slots (ring size)</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>io-slots-tx</cite></p></td>
<td><p>Overwrite the TX IO slots (ring size)</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>io-slots-rx</cite></p></td>
<td><p>Overwrite the RX IO slots (ring size)</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>qdisc-bypass</cite></p></td>
<td><p>Overwrite the kernels qdisc layer configuration</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>tx-interval</cite></p></td>
<td><p>Overwrite the TX polling interval in milliseconds</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>rx-interval</cite></p></td>
<td><p>Overwrite the RX polling interval in milliseconds</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>tx-threads</cite></p></td>
<td><p>Overwrite the number of TX threads per interface link</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>rx-threads</cite></p></td>
<td><p>Overwrite the number of RX threads per interface link</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>tx-cpuset</cite></p></td>
<td><p>Optionally pin TX threads to CPU cores (cpuset)</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>rx-cpuset</cite></p></td>
<td><p>Optionally pin RX threads to CPU cores (cpuset)</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>lag-interface</cite></p></td>
<td><p>Add interface link to LAG group</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>lacp-priority</cite></p></td>
<td><p>LACP interface priority</p></td>
<td><p>32768</p></td>
</tr>
</tbody>
</table>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></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="w"> </span><span class="nt">&quot;tx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mf">0.1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mf">0.1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;io-slots&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">2048</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
2022-04-01 12:16:46 +02:00
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
</section>
<section id="link-aggregation-lag">
<span id="lag-interface"></span><h3>Link Aggregation (LAG)<a class="headerlink" href="#link-aggregation-lag" title="Permalink to this headline"></a></h3>
<p>The BNG Blaster supports link aggregation (LAG) with and without
LACP. The created LAG interface can be used as link for all kinds
of interface functions.</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;lag&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="p">}</span><span class="w"></span>
</pre></div>
</div>
<table class="colwidths-given docutils align-default">
<colgroup>
<col style="width: 25%" />
<col style="width: 50%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Default</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><cite>interface</cite></p></td>
<td><p>Interface name (e.g. lag0, …)</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>lacp</cite></p></td>
<td><p>De-/activate LACP</p></td>
<td><p>false</p></td>
</tr>
<tr class="row-even"><td><p><cite>lacp-timeout-short</cite></p></td>
<td><p>De-/activate LACP short timeout (3x1s)</p></td>
<td><p>false (3x30s)</p></td>
</tr>
<tr class="row-odd"><td><p><cite>lacp-system-priority</cite></p></td>
<td><p>LACP system priority</p></td>
<td><p>32768</p></td>
</tr>
<tr class="row-even"><td><p><cite>lacp-system-id</cite></p></td>
<td><p>LACP system identifier</p></td>
<td><p>02:ff:ff:ff:ff:00</p></td>
</tr>
<tr class="row-odd"><td><p><cite>lacp-max-active-links</cite></p></td>
<td><p>Limit the maximum number of active links</p></td>
<td><p>255</p></td>
</tr>
<tr class="row-even"><td><p><cite>mac</cite></p></td>
<td><p>LAG interface MAC address</p></td>
<td><p>02:ff:ff:ff:ff:&lt;id&gt;</p></td>
</tr>
</tbody>
</table>
2022-04-01 12:16:46 +02:00
<div class="admonition note">
<p class="admonition-title">Note</p>
2022-10-31 23:26:32 +00:00
<p>Multithreaded IO is not supported for LAG member interfaces!</p>
2022-04-19 10:52:03 +02:00
</div>
2022-10-31 23:26:32 +00:00
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></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="w"> </span><span class="nt">&quot;lag&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;lag1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;lacp&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="w"> </span><span class="nt">&quot;lacp-timeout-short&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;links&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;lag-interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;lag1&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;lag-interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;lag1&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">],</span><span class="w"></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="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;lag1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.100.0.2/24&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;gateway&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.100.0.1&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
2022-04-19 10:52:03 +02:00
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
</section>
<section id="multithreaded-interfaces">
<h3>Multithreaded Interfaces<a class="headerlink" href="#multithreaded-interfaces" title="Permalink to this headline"></a></h3>
<p>The BNG Blaster handles all traffic sent and received (IO) in the main thread per default.
With this default behavior, you can achieve between 100.000 and 200.000 PPS bidirectional
traffic in most environments. Depending on the actual setup, this can be even less or much
more, which is primarily driven by the single-thread performance of the given CPU.</p>
<p>Those numbers can be increased by splitting the workload over multiple IO worker threads.
Every IO thread will handle only one interface and direction. It is also possible to start
multiple threads for the same interface and direction.</p>
<p>The number of IO threads can be configured globally for all interfaces or per interface link.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></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="w"> </span><span class="nt">&quot;rx-threads&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;tx-threads&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;links&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-threads&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-cpuset&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">7</span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;tx-threads&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="w"> </span><span class="nt">&quot;tx-cpuset&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">]</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
2022-04-19 10:52:03 +02:00
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
<p>The configuration per interface link allows asymmetric thread pools. Assuming you would send
massive unidirectional traffic from eth1 to eth2. In such a scenario, you would set up multiple
TX threads and one RX thread on eth1. For eth2 you would do the opposite, meaning to set up
multiple RX threads but only one TX thread.</p>
<p>It is also possible to start dedicated threads for TX but remain RX in the main thread or
vice versa by setting the number of threads to zero (default).</p>
<p>With multithreading, you should be able to scale up to 1 million PPS bidirectional, depending on
the actual configuration and setup. This allows starting 1 million flows with 1 PPS per flow over
at least 4 TX threads to verify all prefixes of a BGP full table for example.</p>
<p>The configured traffic streams are automatically balanced over all TX threads of the corresponding
interfaces but a single stream cant be split over multiple threads to prevent re-ordering issues.</p>
<p>Enabling multithreaded IO causes some limitations. First of all, it works only on systems with
CPU cache coherence, which should apply to all modern CPU architectures. It is also not possible
to bundle (Link Aggregation) multithreaded interfaces. It is also not possible to capture traffic
streams send or received on threaded interfaces. All other traffic is still captured even on threaded
interfaces.</p>
2022-04-19 10:52:03 +02:00
<div class="admonition note">
<p class="admonition-title">Note</p>
2022-10-31 23:26:32 +00:00
<p>The BNG Blaster is currently tested for up to 1 million PPS with 1 million flows, which is not a
hard limitation but everything above should be considered experimental. It is also possible to
scale beyond using DPDK enabled interfaces.</p>
2022-04-19 10:52:03 +02:00
</div>
2022-04-01 12:16:46 +02:00
</section>
2022-10-31 23:26:32 +00:00
</section>
<section id="interface-functions">
<h2>Interface Functions<a class="headerlink" href="#interface-functions" title="Permalink to this headline"></a></h2>
<p>The BNG Blaster supports three types of interface functions,
<code class="docutils literal notranslate"><span class="pre">network</span></code>, <code class="docutils literal notranslate"><span class="pre">access</span></code>, and <code class="docutils literal notranslate"><span class="pre">a10nsp</span></code>.</p>
2022-04-01 12:16:46 +02:00
<section id="network-interfaces">
2022-10-31 23:26:32 +00:00
<span id="network-interface"></span><h3>Network Interfaces<a class="headerlink" href="#network-interfaces" title="Permalink to this headline"></a></h3>
<p>The network interfaces are used for traffic and routing protocols.</p>
2022-04-01 12:16:46 +02:00
<p>Those interfaces can communicate with the configured gateway only.
Meaning that all traffic sent from the network interface will be sent
to the learned MAC address of the configured gateway.</p>
2022-04-05 15:11:53 +02:00
<p>The network interface behaves like a router. It accepts all traffic sent
2022-10-31 23:26:32 +00:00
to its own MAC address. This allows sending and receiving traffic for prefixes
2022-04-05 15:11:53 +02:00
advertised via routing protocols or configured via static routes on the
connected device under test.</p>
<p>The BNG Blaster responds to all ICMP echo requests sent to its own MAC address.</p>
2022-04-01 12:16:46 +02:00
<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="p">}</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>
</div>
<table class="colwidths-given docutils align-default">
<colgroup>
<col style="width: 25%" />
<col style="width: 50%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Default</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><cite>interface</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Parent interface link name (e.g. eth0, …)</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>address</cite></p></td>
<td><p>Local network interface IPv4 address</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>gateway</cite></p></td>
<td><p>Gateway network interface IPv4 address</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>address-ipv6</cite></p></td>
<td><p>Local network interface IPv6 address (implicitly /64)</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>gateway-ipv6</cite></p></td>
<td><p>Gateway network interface IPv6 address (implicitly /64)</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>vlan</cite></p></td>
<td><p>Network interface VLAN</p></td>
<td><p>0 (untagged)</p></td>
</tr>
<tr class="row-even"><td><p><cite>gateway-mac</cite></p></td>
<td><p>Optional set gateway MAC address manually</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>gateway-resolve-wait</cite></p></td>
<td><p>Sessions will not start until gateways are resolved</p></td>
<td><p>true</p></td>
</tr>
<tr class="row-even"><td><p><cite>isis-instance-id</cite></p></td>
<td><p>Assign interface to ISIS instance</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>isis-level</cite></p></td>
<td><p>ISIS interface level</p></td>
<td><p>3</p></td>
</tr>
<tr class="row-even"><td><p><cite>isis-p2p</cite></p></td>
<td><p>ISIS P2P interface</p></td>
<td><p>true</p></td>
</tr>
<tr class="row-odd"><td><p><cite>isis-l1-metric</cite></p></td>
<td><p>ISIS level 1 interface metric</p></td>
<td><p>10</p></td>
</tr>
<tr class="row-even"><td><p><cite>isis-l2-metric</cite></p></td>
<td><p>ISIS level 2 interface metric</p></td>
<td><p>10</p></td>
</tr>
</tbody>
</table>
<p>The BNG Blaster supports multiple network interfaces
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="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="w"> </span><span class="nt">&quot;tx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;io-slots&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4096</span><span class="p">,</span><span class="w"></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="w"> </span><span class="p">{</span><span class="w"></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>
2022-10-31 23:26:32 +00:00
<span class="w"> </span><span class="nt">&quot;address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.0.0.1/24&quot;</span><span class="p">,</span><span class="w"></span>
2022-04-01 12:16:46 +02:00
<span class="w"> </span><span class="nt">&quot;gateway&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.0.0.2&quot;</span><span class="p">,</span><span class="w"></span>
2022-10-31 23:26:32 +00:00
<span class="w"> </span><span class="nt">&quot;address-ipv6&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;fc66:1337:7331::1/64&quot;</span><span class="p">,</span><span class="w"></span>
2022-04-01 12:16:46 +02:00
<span class="w"> </span><span class="nt">&quot;gateway-ipv6&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;fc66:1337:7331::2&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth3&quot;</span><span class="p">,</span><span class="w"></span>
2022-10-31 23:26:32 +00:00
<span class="w"> </span><span class="nt">&quot;address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.0.1.1/24&quot;</span><span class="p">,</span><span class="w"></span>
2022-04-01 12:16:46 +02:00
<span class="w"> </span><span class="nt">&quot;gateway&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.0.1.2&quot;</span><span class="p">,</span><span class="w"></span>
2022-10-31 23:26:32 +00:00
<span class="w"> </span><span class="nt">&quot;address-ipv6&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;fc66:1337:7331:1::1/64&quot;</span><span class="p">,</span><span class="w"></span>
2022-04-01 12:16:46 +02:00
<span class="w"> </span><span class="nt">&quot;gateway-ipv6&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;fc66:1337:7331:1::2&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
<p>Using multiple network interfaces requires selecting which network interface
to be used. If not explicitly configured, one of the interfaces is selected
2022-04-05 15:11:53 +02:00
automatically. Therefore, the configuration option <code class="docutils literal notranslate"><span class="pre">network-interface</span></code>
is supported in different sections.</p>
2022-10-31 23:26:32 +00:00
<p>It is also supported to have multiple VLAN-tagged network interfaces on the
same interface link.</p>
<p>VLAN-tagged network interfaces must be referenced by <code class="docutils literal notranslate"><span class="pre">&lt;interface&gt;:&lt;vlan&gt;</span></code>
in the configuration to distinguish between them.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></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="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="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.100.0.2/24&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;gateway&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.100.0.1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;vlan&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.200.0.2/24&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;gateway&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;10.200.0.1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;vlan&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></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="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;name&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;S100&quot;</span><span class="p">,</span><span class="w"></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="w"> </span><span class="nt">&quot;pps&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="w"> </span><span class="nt">&quot;network-interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1:100&quot;</span><span class="p">,</span><span class="w"></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;10.200.0.2&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;name&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;S200&quot;</span><span class="p">,</span><span class="w"></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="w"> </span><span class="nt">&quot;pps&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="w"> </span><span class="nt">&quot;network-interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1:200&quot;</span><span class="p">,</span><span class="w"></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;10.100.0.2&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
2022-04-01 12:16:46 +02:00
</section>
<section id="access-interfaces">
2022-10-31 23:26:32 +00:00
<span id="access-interface"></span><h3>Access Interfaces<a class="headerlink" href="#access-interfaces" title="Permalink to this headline"></a></h3>
<p>The access interfaces are used to emulate PPPoE and IPoE clients.</p>
2022-04-01 12:16:46 +02:00
<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;access&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="p">}</span><span class="w"></span>
</pre></div>
</div>
<table class="colwidths-given docutils align-default">
<colgroup>
<col style="width: 25%" />
<col style="width: 50%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Default</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><cite>interface</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Parent interface link name (e.g. eth0, …)</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>network-interface</cite></p></td>
<td><p>Select the corresponding network interface for this session</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>type</cite></p></td>
<td><p>Set access type (<cite>pppoe</cite> or <cite>ipoe</cite>)</p></td>
<td><p>pppoe</p></td>
</tr>
<tr class="row-odd"><td><p><cite>vlan-mode</cite></p></td>
<td><p>Set VLAN mode <cite>1:1</cite> or <cite>N:1</cite></p></td>
<td><p>1:1</p></td>
</tr>
<tr class="row-even"><td><p><cite>qinq</cite></p></td>
<td><p>Set outer VLAN ethertype to QinQ (0x88a8)</p></td>
<td><p>false</p></td>
</tr>
<tr class="row-odd"><td><p><cite>outer-vlan-min</cite></p></td>
<td><p>Outer VLAN minimum value</p></td>
<td><p>0 (untagged)</p></td>
</tr>
<tr class="row-even"><td><p><cite>outer-vlan-max</cite></p></td>
<td><p>Outer VLAN maximum value</p></td>
<td><p>0 (untagged)</p></td>
</tr>
<tr class="row-odd"><td><p><cite>outer-vlan</cite></p></td>
<td><p>Set outer-vlan-min/max equally</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>inner-vlan-min</cite></p></td>
<td><p>Inner VLAN minimum value</p></td>
<td><p>0 (untagged)</p></td>
</tr>
<tr class="row-odd"><td><p><cite>inner-vlan-max</cite></p></td>
<td><p>Inner VLAN maximum value</p></td>
<td><p>0 (untagged)</p></td>
</tr>
<tr class="row-even"><td><p><cite>inner-vlan</cite></p></td>
<td><p>Set inner-vlan-min/max equally</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>third-vlan</cite></p></td>
<td><p>Add a fixed third VLAN (most inner VLAN)</p></td>
<td><p>0 (untagged)</p></td>
</tr>
<tr class="row-even"><td><p><cite>address</cite></p></td>
<td><p>Static IPv4 base address (IPoE only)</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>ppp-mru</cite></p></td>
<td><p>Overwrite PPP MRU (PPPoE only)</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p><cite>address-iter</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Static IPv4 base address iterator (IPoE only)</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>gateway</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Static IPv4 gateway address (IPoE only)</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>gateway-iter</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Static IPv4 gateway address iterator (IPoE only)</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>username</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the username from the authentication section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>password</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the password from the authentication section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>authentication-protocol</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the username from the authentication section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>agent-circuit-id</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the agent-circuit-id from the access-line section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>agent-remote-id</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the agent-remote-id from the access-line section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>rate-up</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the rate-up from the access-line section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>rate-down</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the rate-down from the access-line section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>dsl-type</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Overwrite the dsl-type from the access-line section</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>ipcp</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>De-/activate PPP IPCP</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>ip6cp</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>De-/activate PPP IP6CP</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>ipv4</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>De-/activate IPv4</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>ipv6</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>De-/activate IPv6</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>dhcp</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>De-/activate DHCP</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>dhcpv6</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>De-/activate DHCPv6</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>igmp-autostart</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Overwrite IGMP autostart</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>igmp-version</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Overwrite IGMP protocol version (1, 2 or 3)</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>stream-group-id</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Stream group identifier</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>access-line-profile-id</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Access-line-profile identifier</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>cfm-cc</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>De-/activate EOAM CFM CC (IPoE only)</p></td>
<td><p>false</p></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>cfm-level</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Set EOAM CFM maintenance domain level</p></td>
<td><p>0</p></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>cfm-ma-id</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Set EOAM CFM maintenance association identifier</p></td>
<td><p>0</p></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>cfm-ma-name</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Set EOAM CFM maintenance association short name</p></td>
<td></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>i1-start</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Iterator for usage in strings <cite>{i1}</cite></p></td>
<td><p>1</p></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>i1-step</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Iterator step per session</p></td>
<td><p>1</p></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-odd"><td><p><cite>i2-start</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Iterator for usage in strings <cite>{i2}</cite></p></td>
<td><p>1</p></td>
</tr>
2022-06-03 14:24:21 +00:00
<tr class="row-even"><td><p><cite>i2-step</cite></p></td>
2022-04-01 12:16:46 +02:00
<td><p>Iterator step per session</p></td>
<td><p>1</p></td>
</tr>
2022-06-15 08:35:51 +00:00
<tr class="row-odd"><td><p><cite>monkey</cite></p></td>
<td><p>Enable monkey testing</p></td>
<td><p>false</p></td>
</tr>
2022-04-01 12:16:46 +02:00
</tbody>
</table>
2022-04-05 15:11:53 +02:00
<p>For all modes, it is possible to configure between zero and three VLAN
tags on the access interface. The VLAN identifier <code class="docutils literal notranslate"><span class="pre">0</span></code> disables the
corresponding VLAN header.</p>
2022-04-01 12:16:46 +02:00
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>[ethernet][outer-vlan][inner-vlan][third-vlan][pppoe]...
</pre></div>
</div>
<section id="untagged">
2022-10-31 23:26:32 +00:00
<h4>Untagged<a class="headerlink" href="#untagged" title="Permalink to this headline"></a></h4>
2022-04-01 12:16:46 +02:00
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;access&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&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="w"> </span><span class="nt">&quot;outer-vlan-max&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="w"> </span><span class="nt">&quot;inner-vlan-min&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="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
</section>
<section id="single-tagged">
2022-10-31 23:26:32 +00:00
<h4>Single Tagged<a class="headerlink" href="#single-tagged" title="Permalink to this headline"></a></h4>
2022-04-01 12:16:46 +02:00
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;access&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4049</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-min&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="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
</section>
<section id="double-tagged">
2022-10-31 23:26:32 +00:00
<h4>Double Tagged<a class="headerlink" href="#double-tagged" title="Permalink to this headline"></a></h4>
2022-04-01 12:16:46 +02:00
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;access&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4049</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
</section>
<section id="triple-tagged">
2022-10-31 23:26:32 +00:00
<h4>Triple Tagged<a class="headerlink" href="#triple-tagged" title="Permalink to this headline"></a></h4>
2022-04-01 12:16:46 +02:00
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;access&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&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="w"> </span><span class="nt">&quot;outer-vlan-max&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="w"> </span><span class="nt">&quot;inner-vlan-min&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="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4000</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;third-vlan&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
<p>The BNG Blaster supports also multiple access interfaces
or VLAN ranges 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="w"> </span><span class="nt">&quot;access&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;pppoe&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;username&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;pta@rtbrick.com&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&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="w"> </span><span class="nt">&quot;outer-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1999</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;pppoe&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;username&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;l2tp@rtbrick.com&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">2999</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth3&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;pppoe&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;username&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;test@rtbrick.com&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&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="w"> </span><span class="nt">&quot;outer-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4000</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth4&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ipoe&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;address&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;200.0.0.1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;address-iter&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.0.0.4&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;gateway&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;200.0.0.2&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;gateway-iter&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.0.0.4&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
<p>The configuration attributes for username, agent-remote-id and agent-circuit-id
support also some variable substitution. The variable <code class="docutils literal notranslate"><span class="pre">{session-global}</span></code> will
be replaced with a number starting from 1 and incremented for every new session.
2022-10-31 23:26:32 +00:00
whereas the variable <code class="docutils literal notranslate"><span class="pre">{session}</span></code> is incremented per-interface section.</p>
2022-04-01 12:16:46 +02:00
<p>In VLAN mode <code class="docutils literal notranslate"><span class="pre">N:1</span></code> only one VLAN combination is supported per access interface section.
2022-10-31 23:26:32 +00:00
This means that only VLAN min or max is considered as a VLAN identifier.</p>
2022-04-01 12:16:46 +02:00
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;access&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;pppoe&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;vlan-mode&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;N:1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;username&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;test@rtbrick.com&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></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="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;pppoe&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;vlan-mode&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;N:1&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;username&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;test@rtbrick.com&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
<p>The BNG Blaster supports access and network interface functions on the same
interface link if both are tagged with disjoint VLAN ranges.</p>
2022-04-01 12:16:46 +02:00
</section>
</section>
<section id="a10nsp-interfaces">
2022-10-31 23:26:32 +00:00
<span id="a10nsp-interface"></span><h3>A10NSP Interfaces<a class="headerlink" href="#a10nsp-interfaces" title="Permalink to this headline"></a></h3>
<p>The A10NSP interface function is required for <a class="reference internal" href="access/l2bsa.html#l2bsa"><span class="std std-ref">L2BSA</span></a> tests and
emulates a layer two provider interface. The term A10 refers to the end-to-end
ADSL network reference model from TR-025.</p>
2022-04-01 12:16:46 +02:00
<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;a10nsp&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="p">}</span><span class="w"></span>
</pre></div>
</div>
<table class="colwidths-given docutils align-default">
<colgroup>
<col style="width: 25%" />
<col style="width: 50%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
<th class="head"><p>Default</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><cite>interface</cite></p></td>
2022-10-31 23:26:32 +00:00
<td><p>Parent interface link name (e.g. eth0, …)</p></td>
2022-04-01 12:16:46 +02:00
<td></td>
</tr>
<tr class="row-odd"><td><p><cite>qinq</cite></p></td>
<td><p>Set outer VLAN ethertype to QinQ (0x88a8)</p></td>
<td><p>false</p></td>
</tr>
<tr class="row-even"><td><p><cite>mac</cite></p></td>
<td><p>Optional set gateway interface address manually</p></td>
<td></td>
</tr>
</tbody>
</table>
<p>The BNG Blaster supports multiple A10NSP interfaces
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="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="w"> </span><span class="nt">&quot;tx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;a10nsp&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth4&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;qinq&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="w"> </span><span class="nt">&quot;mac&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;02:00:00:ff:ff:01&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;eth5&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;qinq&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="w"> </span><span class="nt">&quot;mac&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;02:00:00:ff:ff:02&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
2022-10-31 23:26:32 +00:00
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The A10NSP interface function cant reside on the same link with
with network or access interface functions!</p>
</div>
</section>
</section>
<section id="dpdk">
<span id="dpdk-interface"></span><h2>DPDK<a class="headerlink" href="#dpdk" title="Permalink to this headline"></a></h2>
<p>Using the experimental <a class="reference external" href="https://www.dpdk.org/">DPDK</a> support requires to build
the BNG Blaster from sources with <a class="reference external" href="https://www.dpdk.org/">DPDK</a> enabled as explained
in the corresponding <a class="reference internal" href="install.html#install-dpdk"><span class="std std-ref">installation</span></a> section.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The officially BNG Blaster Debian release packages do not support
<a class="reference external" href="https://www.dpdk.org/">DPDK</a>!</p>
</div>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></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="w"> </span><span class="nt">&quot;tx-interval&quot;</span><span class="p">:</span><span class="w"> </span><span class="mf">0.1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;links&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0000:23:00.0&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;io-mode&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;dpdk&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-threads&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-cpuset&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">7</span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;tx-threads&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="w"> </span><span class="nt">&quot;tx-cpuset&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">]</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0000:23:00.2&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;io-mode&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;dpdk&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-threads&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;rx-cpuset&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">12</span><span class="p">,</span><span class="mi">13</span><span class="p">,</span><span class="mi">14</span><span class="p">,</span><span class="mi">15</span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;tx-threads&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="w"> </span><span class="nt">&quot;tx-cpuset&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">9</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">11</span><span class="p">]</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;a10nsp&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;__comment__&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;PPPoE Server&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0000:23:00.0&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">],</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;access&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;__comment__&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;PPPoE Client&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0000:23:00.2&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;pppoe&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;outer-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4000</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-min&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;inner-vlan-max&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">4000</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;stream-group-id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;pppoe&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;reconnect&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;dhcpv6&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;enable&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></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="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;stream-group-id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;name&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;S1&quot;</span><span class="p">,</span><span class="w"></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="w"> </span><span class="nt">&quot;direction&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;both&quot;</span><span class="p">,</span><span class="w"></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="w"> </span><span class="nt">&quot;a10nsp-interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0000:23:00.0&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">]</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
2022-04-01 12:16:46 +02:00
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="quickstart.html" class="btn btn-neutral float-left" title="Quickstart Guide" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="access/index.html" class="btn btn-neutral float-right" title="Access Protocols" 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-2022, 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>