update docs

This commit is contained in:
Christian Giese
2022-10-25 09:56:36 +00:00
parent 504847872d
commit adb05e0f68
6 changed files with 149 additions and 31 deletions
+10 -1
View File
@@ -46,12 +46,18 @@
* - `send-multicast-traffic`
- Generate multicast traffic
- false
* - `multicast-traffic-autostart`
- Automatically start multicast traffic
- true
* - `multicast-traffic-length`
- Multicast traffic IP length
- 76
* - `multicast-traffic-tos`
- Multicast traffic TOS priority
- 0
* - `multicast-traffic-pps`
- Multicast traffic PPS per group
- 1000
* - `network-interface`
- Multicast traffic source interface
-
@@ -67,7 +73,10 @@ This option is applicable to IGMP version 3 only!
If ``send-multicast-traffic`` is true, the BNG Blaster generates multicast
traffic on the network interface based on the specified group and source
attributes mentioned before. This traffic includes some special signatures
for faster processing and more detailed analysis.
for faster processing and more detailed analysis. This traffic starts
automatically, which can be suppressed by setting ``multicast-traffic-autostart``
to false. The length, TOS and packets per seconds (PPS) can be controlled
with the corresponding options.
If group is set to 293.0.0.1 with group-iter of 0.0.0.2, source 1.1.1.1
and group-count 3 the result are the following three groups (S.G)
+8
View File
@@ -11,6 +11,14 @@ The BNG Blaster interfaces are explained detailed in the
.. include:: interfaces.rst
Links
~~~~~
.. include:: interfaces_links.rst
Link Aggregation (LAG)
~~~~~~~~~~~~~~~~~~~~~~
.. include:: interfaces_lag.rst
Network Interfaces
~~~~~~~~~~~~~~~~~~
.. include:: interfaces_network.rst
+16 -13
View File
@@ -10,27 +10,30 @@
* - Attribute
- Description
- Default
* - `tx-interval`
- TX ring polling interval in milliseconds
- 1.0
* - `rx-interval`
- RX ring polling interval in milliseconds
- 1.0
* - `qdisc-bypass`
- Bypass the kernel's qdisc layer
- true
* - `io-mode`
- IO mode
- packet_mmap_raw
* - `io-slots`
- IO slots (ring size)
- 4096
* - `io-stream-max-ppi`
- IO traffic stream max packets per interval
- 32
* - `qdisc-bypass`
- Bypass the kernel's qdisc layer
- true
* - `tx-interval`
- TX polling interval in milliseconds
- 1.0
* - `rx-interval`
- RX polling interval in milliseconds
- 1.0
* - `tx-threads`
- Number of TX threads per interface link
- 0 (main thread)
* - `rx-threads`
- Number of RX threads per interface link
- 0 (main thread)
* - `capture-include-streams`
- Include traffic streams in capture
- true
* - `mac-modifier`
- Third byte of access session MAC address (0-255)
- 0
- 0
@@ -0,0 +1,33 @@
.. code-block:: json
{ "interfaces": { "lag": [] } }
.. list-table::
:widths: 25 50 25
:header-rows: 1
* - Attribute
- Description
- Default
* - `interface`
- Interface name (e.g. lag0, ...)
-
* - `lacp`
- De-/activate LACP
- false
* - `lacp-timeout-short`
- De-/activate LACP short timeout (3x1s)
- false (3x30s)
* - `lacp-system-priority`
- LACP system priority
- 32768
* - `lacp-system-id`
- LACP system identifier
- 02:ff:ff:ff:ff:00
* - `lacp-max-active-links`
- Limit the maximum number of active links
- 255
* - `mac`
- LAG interface MAC address
- 02:ff:ff:ff:ff:<id>
@@ -0,0 +1,54 @@
.. code-block:: json
{ "interfaces": { "links": [] } }
.. list-table::
:widths: 25 50 25
:header-rows: 1
* - Attribute
- Description
- Default
* - `interface`
- Interface name (e.g. eth0, ...)
-
* - `description`
- Interface description
-
* - `mac`
- Overwrite the MAC address
- Interface MAC address
* - `io-mode`
- Overwrite the IO mode
-
* - `io-slots`
- Overwrite the IO slots (ring size)
-
* - `io-slots-tx`
- Overwrite the TX IO slots (ring size)
-
* - `io-slots-rx`
- Overwrite the RX IO slots (ring size)
-
* - `qdisc-bypass`
- Overwrite the kernel's qdisc layer configuration
-
* - `tx-interval`
- Overwrite the TX polling interval in milliseconds
-
* - `rx-interval`
- Overwrite the RX polling interval in milliseconds
-
* - `tx-threads`
- Overwrite the number of TX threads per interface link
-
* - `rx-threads`
- Overwrite the number of RX threads per interface link
-
* - `lag-interface`
- Add interface link to LAG group
-
* - `lacp-priority`
- LACP interface priority
- 32768
+28 -17
View File
@@ -3,15 +3,20 @@
Interfaces
==========
The BNG Blaster supports three types of interfaces.
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. One or more interface functions can be attached
to those links, similar to logical interfaces. The BNG Blaster supports three types
of interface functions, ``network``, ``access``, and ``a10nsp``.
All interfaces are optional but obviously at least
one interface is required to start the BNG Blaster.
All interfaces are optional but at least one interface is required to start
the BNG Blaster.
Interface Settings
------------------
The following settings are applied to all interfaces.
The following configuration allows to overwrite the global default interface settings.
.. code-block:: json
@@ -26,16 +31,26 @@ The following settings are applied to all interfaces.
.. include:: configuration/interfaces.rst
The ``tx-interval`` and ``rx-interval`` should be set to at to at least ``1.0`` (1ms)
if more precise timestamps or high throughput is needed. This is recommended for IGMP
join/leave or QoS delay measurements. For higher packet rates (>1g) it might be needed to
increase the ``io-slots`` from the default value of ``4096``.
The supported IO modes are listed with ``bngblaster -v`` but except
``packet_mmap_raw`` all other modes are currently considered as experimental. In
the default mode (``packet_mmap_raw``) all packets are received in a Packet MMAP
ring buffer and send directly trough RAW packet sockets.
The default ``tx-interval`` and ``rx-interval`` of ``1.0`` (1ms) allows precise timestamps
and high throughput. Those values can be further increased (e.g. ``0.1``) for higher throughput
or decreased (e.g. ``5.0``) for lower system load.
It might be also needed to increase the ``io-slots`` from the default value of ``4096`` 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.
Links
-----
.. _links:
.. include:: configuration/interfaces_links.rst
The BNG Blaster implements all protocols in userspace. Therefore the user interfaces
must not have an IP address configured in the host operating system, to prevent the received
packets are handled by Kernel.
@@ -75,9 +90,6 @@ interface.
link-local: []
mtu: 9000
.. note:: The number of interfaces is currently limited to 32!
It might be also needed to increase the hardware and software queue size of your
network interfaces for higher throughput.
@@ -111,13 +123,12 @@ You can even change the software queue size:
sudo ip link set txqueuelen 4096 dev ens5f1
Link Aggregation (LAG)
----------------------
.. note::
Today all traffic is received in main thread, therefore
the single thread performance of your CPU is the most
significant performance factor.
.. _lag:
.. include:: configuration/interfaces_lag.rst
Network Interfaces
------------------