mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
update docs
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
------------------
|
||||
|
||||
Reference in New Issue
Block a user