mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
1443 lines
82 KiB
HTML
1443 lines
82 KiB
HTML
<!DOCTYPE html>
|
||
<html class="writer-html5" lang="en" data-content_root="./">
|
||
<head>
|
||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Interfaces — BNG Blaster 0.8 documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=80d5e7a1" />
|
||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
||
<link rel="stylesheet" type="text/css" href="_static/tabs.css?v=a5c4661c" />
|
||
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=411f5019" />
|
||
|
||
|
||
<!--[if lt IE 9]>
|
||
<script src="_static/js/html5shiv.min.js"></script>
|
||
<![endif]-->
|
||
|
||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||
<script src="_static/documentation_options.js?v=a0e24af7"></script>
|
||
<script src="_static/doctools.js?v=888ff710"></script>
|
||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<script src="_static/js/theme.js"></script>
|
||
<link rel="index" title="Index" href="genindex.html" />
|
||
<link rel="search" title="Search" href="search.html" />
|
||
<link rel="next" title="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" aria-label="Search docs" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="install.html">Installation</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart Guide</a></li>
|
||
<li class="toctree-l1 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>
|
||
</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="#i-o-modes">I/O Modes</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#packet-mmap">Packet MMAP</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#raw">RAW</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#dpdk">DPDK</a></li>
|
||
</ul>
|
||
</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="http.html">HTTP Emulation</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="nat.html">NAT / CGNAT</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="reports.html">Reports</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="configuration/index.html">Configuration</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="api/index.html">API/CLI</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="controller.html">Controller</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="performance.html">Performance Guide</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a></li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="index.html">BNG Blaster</a>
|
||
</nav>
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="Page navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||
<li class="breadcrumb-item active">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="Link to this heading"></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="Link to this heading"></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="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2</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="nt">ethernets</span><span class="p">:</span>
|
||
<span class="w"> </span><span class="nt">eth1</span><span class="p">:</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="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="nt">link-local</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[]</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="nt">eth2</span><span class="p">:</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="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="nt">link-local</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[]</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>
|
||
</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="Link to this heading"></a></h2>
|
||
<p>The interfaces section contains all configurations around interface links and options.</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>
|
||
</pre></div>
|
||
</div>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
|
||
<th class="head"><p>Description</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><strong>io-mode</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">IO mode.</div>
|
||
<div class="line">The supported IO modes are listed with <code class="docutils literal notranslate"><span class="pre">bngblaster</span> <span class="pre">-v</span></code></div>
|
||
<div class="line">but except <code class="docutils literal notranslate"><span class="pre">packet_mmap_raw</span></code> all other modes are currently</div>
|
||
<div class="line">considered experimental. In the default mode (<code class="docutils literal notranslate"><span class="pre">packet_mmap_raw</span></code>)</div>
|
||
<div class="line">all packets are received in a Packet MMAP ring buffer and sent</div>
|
||
<div class="line">directly through RAW packet sockets.</div>
|
||
<div class="line">Default: packet_mmap_raw</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>io-slots</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">IO slots (ring size).</div>
|
||
<div class="line">It might be also needed to increase the <strong>io-slots</strong> to</div>
|
||
<div class="line">reach the desired throughput. The actual meaning of IO slots</div>
|
||
<div class="line">depends on the selected IO mode. For Packet MMAP, it defines the</div>
|
||
<div class="line">maximum number of packets in the ring buffer.</div>
|
||
<div class="line">Default: 4096</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>io-burst</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">IO burst (packets).</div>
|
||
<div class="line">Default: 256 Range: 1 to 65535</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>qdisc-bypass</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Bypass the kernel’s qdisc layer.</div>
|
||
<div class="line">It’s currently not recommended to change the default (issue #206)!</div>
|
||
<div class="line">Default: true</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>tx-interval</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">TX polling interval in milliseconds.</div>
|
||
<div class="line">Default: 0.1 Range: 0.0001 to 1000</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>rx-interval</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">RX polling interval in milliseconds.</div>
|
||
<div class="line">Default: 0.1 Range: 0.0001 to 1000</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>tx-threads</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Number of TX threads per interface link.</div>
|
||
<div class="line">Default: 0 (main thread)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>rx-threads</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Number of RX threads per interface link.</div>
|
||
<div class="line">Default: 0 (main thread)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>capture-include-streams</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Include traffic streams in the capture.</div>
|
||
<div class="line">Default: false</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>mac-modifier</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Third byte of access session MAC address (0-255). This option</div>
|
||
<div class="line">allows to run multiple BNG Blaster instances with disjoint session</div>
|
||
<div class="line">MAC addresses.</div>
|
||
<div class="line">Default: 0</div>
|
||
</div>
|
||
</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="nt">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</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="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="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="p">}</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<section id="links">
|
||
<h3>Links<a class="headerlink" href="#links" title="Link to this heading"></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>
|
||
</pre></div>
|
||
</div>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
|
||
<th class="head"><p>Description</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><strong>interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Interface name (e.g. eth0, …).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>description</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Interface description.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>mac</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the MAC address.</div>
|
||
<div class="line">Default: <cite>physical interface MAC address</cite></div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>lag-interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Add interface/link to LAG group.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>lacp-priority</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">LACP interface priority.</div>
|
||
<div class="line">Default: 32768</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>tx-cpuset</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Optionally pin TX threads to CPU cores (cpuset). This is required</div>
|
||
<div class="line">for DPDK only.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>rx-cpuset</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Optionally pin RX threads to CPU cores (cpuset). This is required</div>
|
||
<div class="line">for DPDK only.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>io-mode</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the IO mode.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>io-burst</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the IO burst.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>io-slots</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the IO slots (ring size).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>io-slots-tx</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the TX IO slots (ring size).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>io-slots-rx</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the RX IO slots (ring size).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>qdisc-bypass</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the kernel’s qdisc layer configuration.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>tx-interval</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the TX polling interval in milliseconds.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>rx-interval</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the RX polling interval in milliseconds.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>tx-threads</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the number of TX threads per interface link.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>rx-threads</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the number of RX threads per interface link.</div>
|
||
</div>
|
||
</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="nt">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</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="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="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="p">}</span>
|
||
<span class="p">}</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="Link to this heading"></a></h3>
|
||
<p>The BNG Blaster supports link aggregation (LAG) with and without
|
||
LACP. The created LAG interface can be used as the parent interface 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>
|
||
</pre></div>
|
||
</div>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
|
||
<th class="head"><p>Description</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><strong>interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">LAG interface name (e.g. lag0, …).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>lacp</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Enable LACP.</div>
|
||
<div class="line">Default: false</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>lacp-timeout-short</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Enable LACP short timeout (3x1s)</div>
|
||
<div class="line">Default: false (3x30s)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>lacp-system-priority</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">LACP system priority.</div>
|
||
<div class="line">Default: 32768</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>lacp-system-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">LACP system identifier</div>
|
||
<div class="line">Default: 02:ff:ff:ff:ff:00</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>lacp-min-active-links</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Define the minimum number of active links.</div>
|
||
<div class="line">Default: 0</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>lacp-max-active-links</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Limit the maximum number of active links.</div>
|
||
<div class="line">Default: 255</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>mac</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">LAG interface MAC address.</div>
|
||
<div class="line">Default: 02:ff:ff:ff:ff:<interface-id></div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>Multithreaded TX 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="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="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="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="nt">"lacp-timeout-short"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
|
||
<span class="w"> </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="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="nt">"lag-interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lag1"</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="nt">"lag-interface"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lag1"</span>
|
||
<span class="w"> </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="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="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="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="p">}</span>
|
||
<span class="w"> </span><span class="p">]</span>
|
||
<span class="w"> </span><span class="p">}</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="interface-functions">
|
||
<span id="io-modes"></span><h2>Interface Functions<a class="headerlink" href="#interface-functions" title="Link to this heading"></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>
|
||
<img alt="BNG Blaster Interfaces" src="_images/bbl_interfaces.png" />
|
||
<section id="network-interfaces">
|
||
<span id="network-interface"></span><h3>Network Interfaces<a class="headerlink" href="#network-interfaces" title="Link to this heading"></a></h3>
|
||
<p>The network interfaces are used to emulate the core-facing side of the internet
|
||
with optional routing protocols and traffic.</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 network interfaces are also used to inject downstream multicast test traffic
|
||
for IPTV tests. It is also possible to send RAW traffic streams between network
|
||
interfaces without any access interface defined for non-BNG testing.</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>
|
||
</pre></div>
|
||
</div>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
|
||
<th class="head"><p>Description</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><strong>interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Parent interface/link name (e.g. eth0, …).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>address</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Local IPv4 address (e.g. 10.0.0.1/24).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>gateway</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Default gateway IPv4 address.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>address-ipv6</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Local IPv6 address (e.g. fc66::1/64).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>gateway-ipv6</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Default gateway IPv6 address.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>ipv6-router-advertisement</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Send IPv6 router advertisements (ICMPv6 RA).</div>
|
||
<div class="line">Default: true</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>mtu</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">MTU size.</div>
|
||
<div class="line">Default: 1500 Range: 64 - 9000</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>vlan</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Network interface VLAN.</div>
|
||
<div class="line">Default: 0 (untagged)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>gateway-mac</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Optional set default gateway MAC address manually. Per default</div>
|
||
<div class="line">this MAC address is resolved via ARP/ND.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>gateway-resolve-wait</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Sessions and protocols will not start until gateways are resolved.</div>
|
||
<div class="line">Default: true</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>isis-instance-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Assign the interface to an ISIS instance.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>isis-level</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">ISIS interface level.</div>
|
||
<div class="line">Default: 3 Range: 1 - 3</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>isis-p2p</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">ISIS P2P interface.</div>
|
||
<div class="line">Default: true</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>isis-l1-metric</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">ISIS level 1 interface metric.</div>
|
||
<div class="line">Default: 10</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>isis-l2-metric</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">ISIS level 2 interface metric.</div>
|
||
<div class="line">Default: 10</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>ospfv2-instance-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Assign the interface to an OSPFv2 instance.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>ospfv2-type</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">OSPFv2 interface type (p2p or broadcast).</div>
|
||
<div class="line">Default: broadcast</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>ospfv2-metric</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">OSPFv2 interface metric.</div>
|
||
<div class="line">Default: 10</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>ospfv3-instance-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Assign the interface to an OSPFv3 instance.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>ospfv3-type</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">OSPFv3 interface type (p2p or broadcast).</div>
|
||
<div class="line">Default: broadcast</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>ospfv3-metric</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line-block">
|
||
<div class="line">OSPFv3 interface metric.</div>
|
||
</div>
|
||
<div class="line">Default: 10</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>ldp-instance-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Assign the interface to a LDP instance.</div>
|
||
</div>
|
||
</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="nt">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</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="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="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="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="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="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="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="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="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="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="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="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="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="p">}</span>
|
||
<span class="w"> </span><span class="p">],</span>
|
||
<span class="w"> </span><span class="p">}</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Using 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="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="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="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="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="nt">"vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="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="nt">"vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</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><span class="nt">"streams"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="w"> </span><span class="p">{</span>
|
||
<span class="w"> </span><span class="nt">"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="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="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="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="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="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="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="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="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="p">}</span>
|
||
<span class="w"> </span><span class="p">]</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="access-interfaces">
|
||
<span id="access-interface"></span><h3>Access Interfaces<a class="headerlink" href="#access-interfaces" title="Link to this heading"></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>
|
||
</pre></div>
|
||
</div>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
|
||
<th class="head"><p>Description</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><strong>interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Parent interface/link name (e.g. eth0, …).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>network-interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Select the corresponding network interface for those sessions.</div>
|
||
<div class="line">Default: <cite>first network interface from configuration</cite></div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>a10nsp-interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Select the corresponding A10NSP interface for those sessions.</div>
|
||
<div class="line">Default: <cite>first a10nsp interface from configuration</cite></div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>type</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set access type (<cite>pppoe</cite> or <cite>ipoe</cite>).</div>
|
||
<div class="line">Default: pppoe</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>vlan-mode</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set VLAN mode to <cite>1:1</cite> or <cite>N:1</cite>.</div>
|
||
<div class="line">Default: 1:1</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>qinq</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set outer VLAN ethertype to QinQ (0x88a8).</div>
|
||
<div class="line">Default: false</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>outer-vlan-min</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Outer VLAN minimum value.</div>
|
||
<div class="line">Default: 0 (untagged)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>outer-vlan-max</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Outer VLAN maximum value.</div>
|
||
<div class="line">Default: 0 (untagged)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>outer-vlan-step</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Outer VLAN step (iterator).</div>
|
||
<div class="line">Default: 1</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>outer-vlan</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set outer-vlan-min/max equally.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>inner-vlan-min</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Inner VLAN minimum value.</div>
|
||
<div class="line">Default: 0 (untagged)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>inner-vlan-max</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Inner VLAN maximum value.</div>
|
||
<div class="line">Default: 0 (untagged)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>inner-vlan-step</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Inner VLAN step (iterator).</div>
|
||
<div class="line">Default: 1</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>inner-vlan</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set inner-vlan-min/max equally.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>third-vlan</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Add a static third VLAN (most inner VLAN).</div>
|
||
<div class="line">Default: 0 (untagged)</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>ipv4</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set false to deactivate IPv4.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>ipv6</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set false to deactivate IPv6.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>address</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Static IPv4 base address (IPoE only).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>address-iter</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Static IPv4 base address iterator (IPoE only).</div>
|
||
<div class="line">Default: 0.0.0.0</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>gateway</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Static IPv4 gateway address (IPoE only).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>gateway-iter</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Static IPv4 gateway address iterator (IPoE only).</div>
|
||
<div class="line">Default: 0.0.0.0</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>cfm-cc</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Enable EOAM CFM CC (IPoE only).</div>
|
||
<div class="line">Default: false</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>cfm-level</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set EOAM CFM maintenance domain level.</div>
|
||
<div class="line">Default: 0 Range: 0 - 7</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>cfm-ma-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set EOAM CFM maintenance association identifier.</div>
|
||
<div class="line">Default: 0 Range: 0 - 65535</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>cfm-ma-name</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set EOAM CFM maintenance association short name (string).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>username</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the username from the authentication section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>password</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the password from the authentication section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>authentication-protocol</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the username from the authentication section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>agent-circuit-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the agent-circuit-id from the access-line section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>agent-remote-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the agent-remote-id from the access-line section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>access-aggregation-circuit-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the access-aggregation-circuit-id from the</div>
|
||
<div class="line">access-line section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>rate-up</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the rate-up from the access-line section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>rate-down</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the rate-down from the access-line section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>dsl-type</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite the dsl-type from the access-line section.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>ppp-mru</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite PPP MRU (PPPoE only).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>ipcp</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite PPP IPCP enable option (PPPoE only).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>ip6cp</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite PPP IP6CP enable option (PPPoE only).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>dhcp</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite DHCP enable option.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>dhcpv6</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite DHCPv6 enable option.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>dhcpv6-ldra</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite DHCPv6 LDRA option.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>igmp-autostart</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite IGMP autostart option.</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>igmp-version</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Overwrite IGMP protocol version (1, 2, or 3).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>session-group-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set session group identifier.</div>
|
||
<div class="line">Default: 0 Range: 0 - 65535</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>stream-group-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set stream group identifier.</div>
|
||
<div class="line">Default: 0 Range: 0 - 65535</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>access-line-profile-id</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set access-line-profile identifier.</div>
|
||
<div class="line">Default: 0 Range: 0 - 65535</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>i1-start</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Iterator <strong>{i1}</strong> start value.</div>
|
||
<div class="line">Default: 1 Range: 0 - 4294967295</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>i1-step</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Iterator <strong>{i1}</strong> step per session.</div>
|
||
<div class="line">Default: 1 Range: 0 - 4294967295</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>i2-start</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Iterator <strong>{i2}</strong> start value.</div>
|
||
<div class="line">Default: 1 Range: 0 - 4294967295</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>i2-step</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Iterator <strong>{i2}</strong> step per session.</div>
|
||
<div class="line">Default: 1 Range: 0 - 4294967295</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>monkey</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Enable monkey testing.</div>
|
||
<div class="line">Default: false</div>
|
||
</div>
|
||
</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="Link to this heading"></a></h4>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></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="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="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="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="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="nt">"inner-vlan-max"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span>
|
||
<span class="w"> </span><span class="p">}</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="single-tagged">
|
||
<h4>Single Tagged<a class="headerlink" href="#single-tagged" title="Link to this heading"></a></h4>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></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="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="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="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="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="nt">"inner-vlan-max"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span>
|
||
<span class="w"> </span><span class="p">}</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="double-tagged">
|
||
<h4>Double Tagged<a class="headerlink" href="#double-tagged" title="Link to this heading"></a></h4>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></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="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="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="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="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="nt">"inner-vlan-max"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">}</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="triple-tagged">
|
||
<h4>Triple Tagged<a class="headerlink" href="#triple-tagged" title="Link to this heading"></a></h4>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></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="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="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="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="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="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="nt">"third-vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">}</span>
|
||
<span class="p">}</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="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="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="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="nt">"session-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="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="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="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="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="nt">"inner-vlan-max"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="nt">"session-group-id"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</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="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="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="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="nt">"inner-vlan-max"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="nt">"session-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="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="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="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="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="nt">"inner-vlan-max"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="nt">"session-group-id"</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"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="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="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="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="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="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="p">}</span>
|
||
<span class="w"> </span><span class="p">]</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The configuration attributes for username, password, agent-remote-id, agent-circuit-id,
|
||
and cfm-ma-name support variable substitution. The variable <code class="docutils literal notranslate"><span class="pre">{session-global}</span></code> will
|
||
be replaced with the actual session-id starting from 1 and incremented for every
|
||
new session. The variable <code class="docutils literal notranslate"><span class="pre">{session}</span></code> is incremented per-interface section. The
|
||
variables <code class="docutils literal notranslate"><span class="pre">{outer-vlan}</span></code> and <code class="docutils literal notranslate"><span class="pre">{inner-vlan}</span></code> will be replaced with the corresponding
|
||
VLAN identifier or 0 if not defined. The two variables <code class="docutils literal notranslate"><span class="pre">{i1}</span></code> and <code class="docutils literal notranslate"><span class="pre">{i2}</span></code> are
|
||
configurable per-interface sections with user-defined start values and steps.</p>
|
||
<p>The BNG Blaster supports the VLAN mode <code class="docutils literal notranslate"><span class="pre">1:1</span></code> (default) and <code class="docutils literal notranslate"><span class="pre">N:1</span></code>. The first one
|
||
assigns a dedicated VLAN per subscriber. The VLAN mode <code class="docutils literal notranslate"><span class="pre">N:1</span></code> assigns one VLAN to N
|
||
subscribers and therefore only one VLAN combination is supported per access interface
|
||
section using this mode.</p>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></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="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="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="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="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="nt">"outer-vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="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="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="nt">"outer-vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">2000</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"inner-vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">]</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>One or more access interface blocks can be grouped using the <code class="docutils literal notranslate"><span class="pre">session-group-id</span></code>,
|
||
which allows applying some commands like <cite>session-start</cite>, <cite>session-stop</cite> or
|
||
<cite>session-restart</cite> to all sessions belonging to the same group. The example
|
||
below shows how to assign all even VLAN identifiers to session group 1 and
|
||
all odd VLAN identifiers to session group 2.</p>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></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="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="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="nt">"session-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="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"even@rtbrick.com"</span><span class="p">,</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="nt">"outer-vlan-max"</span><span class="p">:</span><span class="w"> </span><span class="mi">1998</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-step"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"inner-vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="nt">"session-group-id"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"odd@rtbrick.com"</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"outer-vlan-min"</span><span class="p">:</span><span class="w"> </span><span class="mi">1001</span><span class="p">,</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="nt">"outer-vlan-step"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"inner-vlan"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span>
|
||
<span class="w"> </span><span class="p">},</span>
|
||
<span class="w"> </span><span class="p">]</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>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="Link to this heading"></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>
|
||
</pre></div>
|
||
</div>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
|
||
<th class="head"><p>Description</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><strong>interface</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Parent interface/link name (e.g. eth0, …).</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><strong>qinq</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Set outer VLAN ethertype to QinQ (0x88a8).</div>
|
||
<div class="line">Default: false</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><strong>mac</strong></p></td>
|
||
<td><div class="line-block">
|
||
<div class="line">Optional set gateway interface address manually.</div>
|
||
<div class="line">Default: <cite>parent interface/link MAC address</cite></div>
|
||
</div>
|
||
</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="nt">"interfaces"</span><span class="p">:</span><span class="w"> </span><span class="p">{</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="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="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="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="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="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="p">},</span>
|
||
<span class="w"> </span><span class="p">{</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="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="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="p">}</span>
|
||
<span class="w"> </span><span class="p">],</span>
|
||
<span class="w"> </span><span class="p">}</span>
|
||
<span class="p">}</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="i-o-modes">
|
||
<h2>I/O Modes<a class="headerlink" href="#i-o-modes" title="Link to this heading"></a></h2>
|
||
<p>The BNG Blaster supports many configurable I/O modes listed with <code class="docutils literal notranslate"><span class="pre">bngblaster</span> <span class="pre">-v</span></code>.
|
||
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 through RAW packet sockets.</p>
|
||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ bngblaster -v
|
||
Version: 0.8.1
|
||
Compiler: GNU (7.5.0)
|
||
IO Modes: packet_mmap_raw (default), packet_mmap, raw
|
||
</pre></div>
|
||
</div>
|
||
<section id="packet-mmap">
|
||
<h3>Packet MMAP<a class="headerlink" href="#packet-mmap" title="Link to this heading"></a></h3>
|
||
<p><a class="reference external" href="https://www.kernel.org/doc/html/latest/networking/packet_mmap.html">Packet MMAP</a>
|
||
is a so-called PACKET_RX_RING/PACKET_TX_RING abstraction where a user-space
|
||
program gets a fast lane into reading and writing to kernel interfaces using a shared
|
||
ring buffer. The shared ring buffer is a memory-mapped window shared between the kernel
|
||
and the user space. This low overhead abstraction allows us to transmit and receive
|
||
traffic without doing expensive system calls. Sending and transmitting traffic via
|
||
Packet MMAP is as easy as copying a packet into a buffer and setting a flag.</p>
|
||
<p>Using I/O mode <code class="docutils literal notranslate"><span class="pre">packet_mmap_raw</span></code> or <code class="docutils literal notranslate"><span class="pre">packet_mmap</span></code> limits the maximum
|
||
stream packet length to 3936 bytes on most systems. The actual limit is dynamically
|
||
calcualted based on pagesize (typically 4096) minus overhead.</p>
|
||
</section>
|
||
<section id="raw">
|
||
<h3>RAW<a class="headerlink" href="#raw" title="Link to this heading"></a></h3>
|
||
<p><a class="reference external" href="https://man7.org/linux/man-pages/man7/packet.7.html">RAW Packet Sockets</a>.
|
||
are used to receive or send raw packets at the device driver (OSI layer 2) level.</p>
|
||
<p>The I/O mode <code class="docutils literal notranslate"><span class="pre">raw</span></code> allows steam packet lengths of up to 9000 bytes (layer 3).</p>
|
||
</section>
|
||
<section id="dpdk">
|
||
<h3>DPDK<a class="headerlink" href="#dpdk" title="Link to this heading"></a></h3>
|
||
<p><a class="reference external" href="https://www.dpdk.org/">DPDK</a> support should be considered as experimental.
|
||
This I/O mode is detailed explained in the <a class="reference internal" href="performance.html#dpdk-usage"><span class="std std-ref">DPDK</span></a> section of the
|
||
<a class="reference internal" href="performance.html#performance"><span class="std std-ref">performance guide</span></a>.</p>
|
||
</section>
|
||
</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-2024, RtBrick, Inc..</p>
|
||
</div>
|
||
|
||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||
|
||
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<script>
|
||
jQuery(function () {
|
||
SphinxRtdTheme.Navigation.enable(true);
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html> |