mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
1146 lines
85 KiB
HTML
1146 lines
85 KiB
HTML
<!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" />
|
||
<title>Interfaces — BNG Blaster 0.8 documentation</title>
|
||
<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>
|
||
<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>
|
||
</ul>
|
||
</li>
|
||
<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>
|
||
</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>
|
||
<li class="toctree-l1"><a class="reference internal" href="controller.html">Controller</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="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> »</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>
|
||
<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 <interface> up
|
||
</pre></div>
|
||
</div>
|
||
<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 <interface>
|
||
</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"><interface></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>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"> </span><span class="nt">"interfaces"</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>io-mode</cite></p></td>
|
||
<td><p>IO mode</p></td>
|
||
<td><p>packet_mmap_raw</p></td>
|
||
</tr>
|
||
<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>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>qdisc-bypass</cite></p></td>
|
||
<td><p>Bypass the kernel’s qdisc layer</p></td>
|
||
<td><p>true</p></td>
|
||
</tr>
|
||
<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>
|
||
</tr>
|
||
<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>
|
||
</tr>
|
||
<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>
|
||
</tr>
|
||
<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>
|
||
<td><p>true</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>mac-modifier</cite></p></td>
|
||
<td><p>Third byte of access session MAC address (0-255)</p></td>
|
||
<td><p>0</p></td>
|
||
</tr>
|
||
</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
|
||
<code class="docutils literal notranslate"><span class="pre">packet_mmap_raw</span></code> all other modes are currently considered experimental. In
|
||
the default mode (<code class="docutils literal notranslate"><span class="pre">packet_mmap_raw</span></code>) all packets are received in a Packet MMAP
|
||
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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"tx-interval"</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">"rx-interval"</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">"io-slots"</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>
|
||
</pre></div>
|
||
</div>
|
||
<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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"links"</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. 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 kernel’s 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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"tx-interval"</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">"rx-interval"</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">"io-slots"</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>
|
||
</pre></div>
|
||
</div>
|
||
</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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"lag"</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:<id></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>Multithreaded IO is not supported for LAG member interfaces!</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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"lag"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lag1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"lacp"</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">"lacp-timeout-short"</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">"links"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"lag-interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lag1"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"lag-interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lag1"</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">"network"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lag1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.100.0.2/24"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.100.0.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="p">}</span><span class="w"></span>
|
||
</pre></div>
|
||
</div>
|
||
</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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"rx-threads"</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">"tx-threads"</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">"links"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"rx-threads"</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">"rx-cpuset"</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">"tx-threads"</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">"tx-cpuset"</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>
|
||
</pre></div>
|
||
</div>
|
||
<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 can’t 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>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<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>
|
||
</div>
|
||
</section>
|
||
</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>
|
||
<section id="network-interfaces">
|
||
<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>
|
||
<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>
|
||
<p>The network interface behaves like a router. It accepts all traffic sent
|
||
to its own MAC address. This allows sending and receiving traffic for prefixes
|
||
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>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"> </span><span class="nt">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"network"</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>Parent interface link name (e.g. eth0, …)</p></td>
|
||
<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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"tx-interval"</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">"rx-interval"</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">"io-slots"</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">"network"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth2"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.0.0.1/24"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.0.0.2"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address-ipv6"</span><span class="p">:</span><span class="w"> </span><span class="s2">"fc66:1337:7331::1/64"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway-ipv6"</span><span class="p">:</span><span class="w"> </span><span class="s2">"fc66:1337:7331::2"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth3"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.0.1.1/24"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.0.1.2"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address-ipv6"</span><span class="p">:</span><span class="w"> </span><span class="s2">"fc66:1337:7331:1::1/64"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway-ipv6"</span><span class="p">:</span><span class="w"> </span><span class="s2">"fc66:1337:7331:1::2"</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>
|
||
<p>Using multiple network interfaces requires selecting which network interface
|
||
to be used. If not explicitly configured, one of the interfaces is selected
|
||
automatically. Therefore, the configuration option <code class="docutils literal notranslate"><span class="pre">network-interface</span></code>
|
||
is supported in different sections.</p>
|
||
<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"><interface>:<vlan></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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"network"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.100.0.2/24"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.100.0.1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"vlan"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.200.0.2/24"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.200.0.1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"vlan"</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">"streams"</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">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"S100"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ipv4"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"pps"</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">"network-interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1:100"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"destination-ipv4-address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.200.0.2"</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">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"S200"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ipv4"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"pps"</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">"network-interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1:200"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"destination-ipv4-address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10.100.0.2"</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>
|
||
</section>
|
||
<section id="access-interfaces">
|
||
<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>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"> </span><span class="nt">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"access"</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>Parent interface link name (e.g. eth0, …)</p></td>
|
||
<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>
|
||
<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>
|
||
<td><p>Static IPv4 base address iterator (IPoE only)</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>gateway</cite></p></td>
|
||
<td><p>Static IPv4 gateway address (IPoE only)</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>gateway-iter</cite></p></td>
|
||
<td><p>Static IPv4 gateway address iterator (IPoE only)</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>username</cite></p></td>
|
||
<td><p>Overwrite the username from the authentication section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>password</cite></p></td>
|
||
<td><p>Overwrite the password from the authentication section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>authentication-protocol</cite></p></td>
|
||
<td><p>Overwrite the username from the authentication section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>agent-circuit-id</cite></p></td>
|
||
<td><p>Overwrite the agent-circuit-id from the access-line section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>agent-remote-id</cite></p></td>
|
||
<td><p>Overwrite the agent-remote-id from the access-line section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>rate-up</cite></p></td>
|
||
<td><p>Overwrite the rate-up from the access-line section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>rate-down</cite></p></td>
|
||
<td><p>Overwrite the rate-down from the access-line section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>dsl-type</cite></p></td>
|
||
<td><p>Overwrite the dsl-type from the access-line section</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>ipcp</cite></p></td>
|
||
<td><p>De-/activate PPP IPCP</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>ip6cp</cite></p></td>
|
||
<td><p>De-/activate PPP IP6CP</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>ipv4</cite></p></td>
|
||
<td><p>De-/activate IPv4</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>ipv6</cite></p></td>
|
||
<td><p>De-/activate IPv6</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>dhcp</cite></p></td>
|
||
<td><p>De-/activate DHCP</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>dhcpv6</cite></p></td>
|
||
<td><p>De-/activate DHCPv6</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>igmp-autostart</cite></p></td>
|
||
<td><p>Overwrite IGMP autostart</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>igmp-version</cite></p></td>
|
||
<td><p>Overwrite IGMP protocol version (1, 2 or 3)</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>stream-group-id</cite></p></td>
|
||
<td><p>Stream group identifier</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>access-line-profile-id</cite></p></td>
|
||
<td><p>Access-line-profile identifier</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>cfm-cc</cite></p></td>
|
||
<td><p>De-/activate EOAM CFM CC (IPoE only)</p></td>
|
||
<td><p>false</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>cfm-level</cite></p></td>
|
||
<td><p>Set EOAM CFM maintenance domain level</p></td>
|
||
<td><p>0</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>cfm-ma-id</cite></p></td>
|
||
<td><p>Set EOAM CFM maintenance association identifier</p></td>
|
||
<td><p>0</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>cfm-ma-name</cite></p></td>
|
||
<td><p>Set EOAM CFM maintenance association short name</p></td>
|
||
<td></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>i1-start</cite></p></td>
|
||
<td><p>Iterator for usage in strings <cite>{i1}</cite></p></td>
|
||
<td><p>1</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>i1-step</cite></p></td>
|
||
<td><p>Iterator step per session</p></td>
|
||
<td><p>1</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>i2-start</cite></p></td>
|
||
<td><p>Iterator for usage in strings <cite>{i2}</cite></p></td>
|
||
<td><p>1</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><cite>i2-step</cite></p></td>
|
||
<td><p>Iterator step per session</p></td>
|
||
<td><p>1</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><cite>monkey</cite></p></td>
|
||
<td><p>Enable monkey testing</p></td>
|
||
<td><p>false</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<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>
|
||
<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">
|
||
<h4>Untagged<a class="headerlink" href="#untagged" title="Permalink to this headline"></a></h4>
|
||
<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">"access"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">
|
||
<h4>Single Tagged<a class="headerlink" href="#single-tagged" title="Permalink to this headline"></a></h4>
|
||
<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">"access"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">
|
||
<h4>Double Tagged<a class="headerlink" href="#double-tagged" title="Permalink to this headline"></a></h4>
|
||
<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">"access"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">
|
||
<h4>Triple Tagged<a class="headerlink" href="#triple-tagged" title="Permalink to this headline"></a></h4>
|
||
<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">"access"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">"third-vlan"</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">"access"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pppoe"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pta@rtbrick.com"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pppoe"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"l2tp@rtbrick.com"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth3"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pppoe"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test@rtbrick.com"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth4"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ipoe"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"address"</span><span class="p">:</span><span class="w"> </span><span class="s2">"200.0.0.1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"address-iter"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.0.0.4"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway"</span><span class="p">:</span><span class="w"> </span><span class="s2">"200.0.0.2"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"gateway-iter"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.0.0.4"</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.
|
||
whereas the variable <code class="docutils literal notranslate"><span class="pre">{session}</span></code> is incremented per-interface section.</p>
|
||
<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.
|
||
This means that only VLAN min or max is considered as a VLAN identifier.</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">"access"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pppoe"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"vlan-mode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"N:1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test@rtbrick.com"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth2"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pppoe"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"vlan-mode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"N:1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test@rtbrick.com"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"inner-vlan-min"</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>
|
||
<p>The BNG Blaster supports access and network interface functions on the same
|
||
interface link if both are tagged with disjoint VLAN ranges.</p>
|
||
</section>
|
||
</section>
|
||
<section id="a10nsp-interfaces">
|
||
<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>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"> </span><span class="nt">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"a10nsp"</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>Parent interface link name (e.g. eth0, …)</p></td>
|
||
<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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"tx-interval"</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">"rx-interval"</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">"a10nsp"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth4"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"qinq"</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">"mac"</span><span class="p">:</span><span class="w"> </span><span class="s2">"02:00:00:ff:ff:01"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"eth5"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"qinq"</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">"mac"</span><span class="p">:</span><span class="w"> </span><span class="s2">"02:00:00:ff:ff:02"</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>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>The A10NSP interface function can’t 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">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"tx-interval"</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">"links"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0000:23:00.0"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"io-mode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"dpdk"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"rx-threads"</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">"rx-cpuset"</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">"tx-threads"</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">"tx-cpuset"</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">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0000:23:00.2"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"io-mode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"dpdk"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"rx-threads"</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">"rx-cpuset"</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">"tx-threads"</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">"tx-cpuset"</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">"a10nsp"</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">"__comment__"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PPPoE Server"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0000:23:00.0"</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">"access"</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">"__comment__"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PPPoE Client"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0000:23:00.2"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pppoe"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</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">"outer-vlan-max"</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">"inner-vlan-min"</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">"inner-vlan-max"</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">"stream-group-id"</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">"pppoe"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"reconnect"</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">"dhcpv6"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"enable"</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">"streams"</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">"stream-group-id"</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">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"S1"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ipv4"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"direction"</span><span class="p">:</span><span class="w"> </span><span class="s2">"both"</span><span class="p">,</span><span class="w"></span>
|
||
<span class="w"> </span><span class="nt">"pps"</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">"a10nsp-interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0000:23:00.0"</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>
|
||
</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>© 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> |