diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e6cfb179..996d9198 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,6 +4,8 @@ on: push: paths-ignore: - 'docs/**' + branches-ignore: + - pages env: BUILD_TYPE: Release diff --git a/code/bngblaster/src/bbl_config.c b/code/bngblaster/src/bbl_config.c index 197a14e4..9ad625ba 100644 --- a/code/bngblaster/src/bbl_config.c +++ b/code/bngblaster/src/bbl_config.c @@ -182,7 +182,7 @@ json_parse_access_line_profile(json_t *config, bbl_access_line_profile_s *profil return false; } - JSON_OBJ_GET_NUMBER(config, value, "access-line-profiles", "access-line-profile-id", 0, 65535); + JSON_OBJ_GET_NUMBER(config, value, "access-line-profiles", "access-line-profile-id", 1, 65535); if(value) { profile->access_line_profile_id = json_number_value(value); } else { @@ -2472,7 +2472,7 @@ json_parse_http_client_config(json_t *http, bbl_http_client_config_s *http_clien return false; } - JSON_OBJ_GET_NUMBER(http, value, "http-client", "http-client-group-id", 0, 65535); + JSON_OBJ_GET_NUMBER(http, value, "http-client", "http-client-group-id", 1, 65535); if(value) { http_client_config->http_client_group_id = json_number_value(value); } else { @@ -2480,7 +2480,7 @@ json_parse_http_client_config(json_t *http, bbl_http_client_config_s *http_clien return false; } - JSON_OBJ_GET_NUMBER(http, value, "http-client", "destination-port", 0, 65535); + JSON_OBJ_GET_NUMBER(http, value, "http-client", "destination-port", 1, 65535); if(value) { http_client_config->dst_port = json_number_value(value); } else { @@ -2548,7 +2548,7 @@ json_parse_http_server_config(json_t *http, bbl_http_server_config_s *http_serve return false; } - JSON_OBJ_GET_NUMBER(http, value, "http-server", "port", 0, 65535); + JSON_OBJ_GET_NUMBER(http, value, "http-server", "port", 1, 65535); if(value) { http_server_config->port = json_number_value(value); } else { diff --git a/docs/_sources/access/index.rst.txt b/docs/_sources/access/index.rst.txt index 01e10947..437f66ad 100644 --- a/docs/_sources/access/index.rst.txt +++ b/docs/_sources/access/index.rst.txt @@ -1,6 +1,56 @@ Access Protocols ================ +A BNG, or Broadband Network Gateway, is a network device that +connects customer premises equipment to the service provider's +broadband network, managing user authentication, traffic routing, +and quality of service (QoS) for internet services. + +.. _sessions: + +The BNG Blaster is equipped with versatile support for various +access protocols, allowing the creation of seubscriber sessions, +each of which can comprise multiple protocols. For instance, in the +case of dual-stack IPoE sessions, these are formed by a combination of +DHCPv4, DHCPv6, as well as ARP/ND protocols. Every session is +defined by an :ref:`access interface function ` +and identified by a globally unique **session-id**, with the +numbering starting at 1 and increasing sequentially for each +new session established. Furthermore, you have the flexibility +to group multiple sessions together using the optional +**session-group-id**, which enables the application of commands +:ref:`commands ` to an entire group of sessions simultaneously. + +.. code-block:: json + + { + "access": [ + { + "interface": "eth1", + "type": "pppoe", + "session-group-id": 1, + "username": "even@rtbrick.com", + "outer-vlan-min": 1000, + "outer-vlan-max": 1998, + "outer-vlan-step": 2, + "inner-vlan": 7 + }, + { + "interface": "eth1", + "type": "pppoe", + "session-group-id": 2, + "username": "odd@rtbrick.com", + "outer-vlan-min": 1001, + "outer-vlan-max": 1999, + "outer-vlan-step": 2, + "inner-vlan": 7 + }, + ] + } + +It is also possible to assign multiple access interface +sections to a single session group. + .. toctree:: :maxdepth: 1 diff --git a/docs/_sources/access/l2bsa.rst.txt b/docs/_sources/access/l2bsa.rst.txt index 5b42574b..0f61decd 100644 --- a/docs/_sources/access/l2bsa.rst.txt +++ b/docs/_sources/access/l2bsa.rst.txt @@ -55,10 +55,6 @@ as the intermediate agent functionality. The BNG Blaster A10NSP interface emulates such a layer two provider interface. This interface type accepts all DHCPv4 and PPPoE sessions were received to verify forwarding and header enrichment. -.. note:: - It is also planned to emulate a lightweight DHCPv6 server - to verify IPv6 forwarding and header enrichment for IPoE. - Following a basic PPPoE/A10NSP configuration example which is detailed explained in the configuration section. diff --git a/docs/_sources/api/bgp.rst.txt b/docs/_sources/api/bgp.rst.txt index 53ddf4d7..58fb08ff 100644 --- a/docs/_sources/api/bgp.rst.txt +++ b/docs/_sources/api/bgp.rst.txt @@ -1,27 +1,27 @@ -.. list-table:: - :header-rows: 1 ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **bgp-sessions** | | Display all matching BGP sessions. | +| | | | +| | | **Arguments:** | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-disconnect** | | Disconnect all matching BGP sessions. | +| | | | +| | | **Arguments:** | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-teardown** | | Teardown BGP. | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-raw-update-list** | | List all loaded BGP RAW update files. | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-raw-update** | | Update all matching BGP sessions. | +| | | | +| | | **Arguments:** | +| | | ``file`` Mandatory path to BGP RAW update file. | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `bgp-sessions` - - Display all matching BGP sessions - - - - `local-ipv4-address`, `peer-ipv4-address` - * - `bgp-disconnect` - - Disconnect all matching BGP sessions - - - - `local-ipv4-address`, `peer-ipv4-address` - * - `bgp-teardown` - - Teardown BGP - - - - - * - `bgp-raw-update-list` - - List all loaded BGP RAW update files - - - - - * - `bgp-raw-update` - - Update all matching BGP session - - `file` - - `local-ipv4-address`, `peer-ipv4-address` diff --git a/docs/_sources/api/cfm.rst.txt b/docs/_sources/api/cfm.rst.txt index 2e4d75bd..d03be28d 100644 --- a/docs/_sources/api/cfm.rst.txt +++ b/docs/_sources/api/cfm.rst.txt @@ -1,23 +1,23 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `cfm-cc-start` - - Start EOAM CFM CC - - - - `session-id` - * - `cfm-cc-stop` - - Stop EOAM CFM CC - - - - `session-id` - * - `cfm-cc-rdi-on` - - Set EOAM CFM CC RDI - - - - `session-id` - * - `cfm-cc-rdi-off` - - Unset EOAM CFM CC RDI - - - - `session-id` \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **cfm-cc-start** | | Start EOAM CFM CC. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc-stop** | | Stop EOAM CFM CC. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc-rdi-on** | | Set EOAM CFM CC RDI. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc-rdi-off** | | Unset EOAM CFM CC RDI. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/api/http.rst.txt b/docs/_sources/api/http.rst.txt index 218986c0..d681f8f9 100644 --- a/docs/_sources/api/http.rst.txt +++ b/docs/_sources/api/http.rst.txt @@ -1,19 +1,18 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `http-clients` - - Display all HTTP client instances - - - - `session-id` - * - `http-clients-start` - - Start all HTTP client instances - - - - `session-id` - * - `http-clients-stop` - - Stop all HTTP client instances - - - - `session-id` \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **http-clients** | | Display all HTTP client instances. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **http-clients-start** | | Start all HTTP client instances. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **http-clients-stop** | | Stop all HTTP client instances. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/igmp.rst.txt b/docs/_sources/api/igmp.rst.txt index 12603d54..3628fdf1 100644 --- a/docs/_sources/api/igmp.rst.txt +++ b/docs/_sources/api/igmp.rst.txt @@ -1,39 +1,44 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `igmp-join` - - Join group - - `session-id`, `group` - - `source1`, `source2`, `source3` - * - `igmp-join-iter` - - Join multiple groups over all sessions - - `group` - - `group-iter`, `group-count`, `source1`, `source2`, `source3` - * - `igmp-leave` - - Leave group - - `session-id`, `group` - - - * - `igmp-leave-all` - - Leave all groups from all sessions - - - - - * - `igmp-info` - - Display group information - - `session-id` - - - * - `zapping-start` - - Start IGMP zapping test - - - - - * - `zapping-stop` - - Stop IGMP zapping test - - - - - * - `zapping-stats` - - Return IGMP zapping stats - - - - `reset` \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **igmp-join** | | Join group. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | +| | | ``group`` Mandatory | +| | | ``source1`` | +| | | ``source2`` | +| | | ``source3`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-join-iter** | | Join multiple groups over all sessions. | +| | | | +| | | **Arguments:** | +| | | ``group`` Mandatory | +| | | ``group-iter`` | +| | | ``group-count`` | +| | | ``source1`` | +| | | ``source2`` | +| | | ``source3`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-leave** | | Leave group. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | +| | | ``group`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-leave-all** | | Leave all groups from all sessions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-info** | | Display group information. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-start** | | Start IGMP zapping test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-stop** | | Stop IGMP zapping test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-stats** | | Return IGMP zapping stats. | +| | | | +| | | **Arguments:** | +| | | ``reset`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/index.rst.txt b/docs/_sources/api/index.rst.txt index 825dba5f..488f1e90 100644 --- a/docs/_sources/api/index.rst.txt +++ b/docs/_sources/api/index.rst.txt @@ -1,5 +1,9 @@ .. _api: +.. raw:: html + + + API/CLI ======= @@ -12,7 +16,7 @@ included CLI tool ``bngblaster-cli``. You can use this for interactive communication with the BNG Blaster. You need to enable the control socket by providing the path to -the socket file with the argument ``-S`` (``bngblaster -S run.sock``). +the control socket file with the argument ``-S`` (``bngblaster -S run.sock``). Each request must contain at least the ``command`` element which carries the actual command with optional arguments. @@ -132,37 +136,25 @@ for interactive communication with the BNG Blaster. Test ---- -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `test-info` - - Display information about the running test instance - - - - - * - `test-stop` - - Stop/teardown the test - - - - - * - `terminate` - - Stop/teardown the test - - - - - * - `monkey-start` - - Start monkey test - - - - - * - `monkey-stop` - - Stop monkey test - - - - - ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **test-info** | | Display information about the running test instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **test-stop** | | Stop/teardown the test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **terminate** | | Stop/teardown the test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **monkey-start** | | Start monkey test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **monkey-stop** | | Stop monkey test. | ++-----------------------------------+----------------------------------------------------------------------+ Interfaces ---------- +This is explained detailed in the +:ref:`interfaces ` section. + .. include:: interfaces.rst Sessions @@ -171,10 +163,16 @@ Sessions PPP --- +This is explained detailed in the +:ref:`PPPoE ` section. + .. include:: ppp.rst L2TP ---- +This is explained detailed in the +:ref:`L2TP ` section. + .. include:: l2tp.rst IGMP @@ -187,22 +185,37 @@ Traffic Streams ------- +This is explained detailed in the +:ref:`streams ` section. + .. include:: streams.rst ISIS ---- +This is explained detailed in the +:ref:`ISIS ` section. + .. include:: isis.rst OSPF ---- +This is explained detailed in the +:ref:`OSPF ` section. + .. include:: ospf.rst BGP --- +This is explained detailed in the +:ref:`BGP ` section. + .. include:: bgp.rst LDP --- +This is explained detailed in the +:ref:`LDP ` section. + .. include:: ldp.rst CFM @@ -211,7 +224,6 @@ CFM Legal Interception (LI) ----------------------- - This is explained detailed in the :ref:`Legal Interception (LI)
  • ` section. @@ -219,7 +231,6 @@ This is explained detailed in the HTTP ---- - This is explained detailed in the :ref:`HTTP ` section. diff --git a/docs/_sources/api/interfaces.rst.txt b/docs/_sources/api/interfaces.rst.txt index 06611a7d..18ee43ae 100644 --- a/docs/_sources/api/interfaces.rst.txt +++ b/docs/_sources/api/interfaces.rst.txt @@ -1,35 +1,23 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `interfaces` - - List all interfaces with index - - - - - * - `access-interfaces` - - List all access interface functions - - - - - * - `network-interfaces` - - List all network interface functions - - - - - * - `a10nsp-interfaces` - - List all a10nsp interface functions - - - - - * - `lag-info` - - List all link aggregation (LAG) interfaces - - - - - * - `interface-enable` - - Enable interface - - `interface` - - - * - `interface-disable` - - Disable interface - - `interface` - - ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **interfaces** | | List all interfaces with index. | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-interfaces** | | List all access interface functions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interfaces** | | List all network interface functions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **a10nsp-interfaces** | | List all a10nsp interface functions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **lag-info** | | List all link aggregation (LAG) interfaces. | ++-----------------------------------+----------------------------------------------------------------------+ +| **interface-enable** | | Enable interface. | +| | | | +| | | **Arguments:** | +| | | ``interface`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **interface-disable** | | Disable interface. | +| | | | +| | | **Arguments:** | +| | | ``interface`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/isis.rst.txt b/docs/_sources/api/isis.rst.txt index c804d955..0206953e 100644 --- a/docs/_sources/api/isis.rst.txt +++ b/docs/_sources/api/isis.rst.txt @@ -1,35 +1,38 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `isis-adjacencies` - - Display ISIS adjacencies - - - - - * - `isis-database` - - Display ISIS database (LSDB) - - `instance`, `level` - - - * - `isis-load-mrt` - - Load ISIS MRT file - - `instance`, `file` - - - * - `isis-lsp-update` - - Update ISIS LSP - - `instance`, `pdu` - - - * - `isis-lsp-purge` - - Purge ISIS LSP based on LSP identifier - - `instance`, `level`, `id` - - - * - `isis-lsp-flap` - - Flap ISIS LSP based on LSP identifier - - `instance`, `level`, `id` - - `timer` - * - `isis-teardown` - - Teardown ISIS - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **isis-adjacencies** | | Display ISIS adjacencies. | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-database** | | Display ISIS database (LSDB). | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``level`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-load-mrt** | | Load ISIS MRT file. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``file`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-lsp-update** | | Update ISIS LSP. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``pdu`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-lsp-purge** | | Purge ISIS LSP based on LSP identifier. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``level`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-lsp-flap** | | Flap ISIS LSP based on LSP identifier. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``level`` Mandatory | +| | | ``timer`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-teardown** | | Teardown ISIS. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/l2tp.rst.txt b/docs/_sources/api/l2tp.rst.txt index c6918344..f7afad27 100644 --- a/docs/_sources/api/l2tp.rst.txt +++ b/docs/_sources/api/l2tp.rst.txt @@ -1,30 +1,40 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `l2tp-tunnels` - - Display all L2TP tunnels - - - - - * - `l2tp-sessions` - - L2TP all matching sessions - - - - `tunnel-id`, `session-id` - * - `l2tp-csurq` - - Send L2TP CSURQ - - `tunnel-id` - - `sessions` (list of remote session-id) - * - `l2tp-tunnel-terminate` - - Terminate L2TP tunnel - - `tunnel-id` - - `result-code`, `error-code`, `error-message` - * - `l2tp-session-terminate` - - Terminate L2TP session - - `session-id` - - `result-code`, `error-code`, `error-message`, `disconnect-code`, `disconnect-protocol`, `disconnect-direction`, `disconnect-message` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **l2tp-tunnels** | | Display all L2TP tunnels. | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-sessions** | | L2TP all matching sessions. | +| | | | +| | | **Arguments:** | +| | | ``tunnel-id`` | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-csurq** | | Send L2TP CSURQ. | +| | | | +| | | **Arguments:** | +| | | ``tunnel-id`` Mandatory | +| | | ``sessions (list of remote session-id)`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-tunnel-terminate** | | Terminate L2TP tunnel. | +| | | | +| | | **Arguments:** | +| | | ``tunnel-id`` Mandatory | +| | | ``result-code`` | +| | | ``error-code`` | +| | | ``error-message`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-session-terminate** | | Terminate L2TP session. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | +| | | ``result-code`` | +| | | ``error-code`` | +| | | ``error-message`` | +| | | ``disconnect-code`` | +| | | ``disconnect-protocol`` | +| | | ``disconnect-direction`` | +| | | ``disconnect-message`` | ++-----------------------------------+----------------------------------------------------------------------+ The L2TP CSURQ command expects the local tunnel-id and a list of remote session-id for which a connect speed update is requested. diff --git a/docs/_sources/api/ldp.rst.txt b/docs/_sources/api/ldp.rst.txt index 9ddef527..a5498053 100644 --- a/docs/_sources/api/ldp.rst.txt +++ b/docs/_sources/api/ldp.rst.txt @@ -1,35 +1,39 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `ldp-adjacencies` - - Display all LDP adjacencies - - - - `ldp-instance-id` - * - `ldp-sessions` - - Display all matching LDP sessions - - - - `ldp-instance-id`, `local-ipv4-address`, `peer-ipv4-address` - * - `ldp-database` - - Display LDP database - - `ldp-instance-id` - - - * - `ldp-disconnect` - - Disconnect all matching LDP sessions - - - - `ldp-instance-id`, `local-ipv4-address`, `peer-ipv4-address` - * - `ldp-teardown` - - Teardown LDP - - - - - * - `ldp-raw-update-list` - - List all loaded LDP RAW update files - - - - - * - `ldp-raw-update` - - Update all matching LDP session - - `file` - - `ldp-instance-id`, `local-ipv4-address`, `peer-ipv4-address` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **ldp-adjacencies** | | Display all LDP adjacencies. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-sessions** | | Display all matching LDP sessions. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-database** | | Display LDP database. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-disconnect** | | Disconnect all matching LDP sessions. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-teardown** | | Teardown LDP. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-raw-update-list** | | List all loaded LDP RAW update files. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-raw-update** | | Update all matching LDP session. | +| | | | +| | | **Arguments:** | +| | | ``file`` Mandatory | +| | | ``ldp-instance-id`` | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/li.rst.txt b/docs/_sources/api/li.rst.txt index 665c5eb1..e2892ed9 100644 --- a/docs/_sources/api/li.rst.txt +++ b/docs/_sources/api/li.rst.txt @@ -1,11 +1,5 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `li-flows` - - List all LI flows with detailed statistics - - - - ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **li-flows** | | List all LI flows with detailed statistics. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/ospf.rst.txt b/docs/_sources/api/ospf.rst.txt index d3a65e24..9f2aace4 100644 --- a/docs/_sources/api/ospf.rst.txt +++ b/docs/_sources/api/ospf.rst.txt @@ -1,35 +1,37 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `ospf-interfaces` - - Display OSPF interfaces - - `instance` - - - * - `ospf-neighbors` - - Display OSPF neighbors - - `instance` - - - * - `ospf-database` - - Display OSPF database (LSDB) - - `instance` - - - * - `ospf-load-mrt` - - Load OSPF MRT file - - `instance`, `file` - - - * - `ospf-lsa-update` - - Update OSPF LSA - - `instance`, `pdu` - - - * - `ospf-pdu-update` - - Update OSPF LSA from PDU - - `instance`, - - - * - `ospf-teardown` - - Teardown OSPF - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **ospf-interfaces** | | Display OSPF interfaces. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-neighbors** | | Display OSPF neighbors. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-database** | | Display OSPF database (LSDB). | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-load-mrt** | | Load OSPF MRT file. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``file`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-lsa-update** | | Update OSPF LSA. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``pdu`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-pdu-update** | | Update OSPF LSA from PDU. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-teardown** | | Teardown OSPF. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/ppp.rst.txt b/docs/_sources/api/ppp.rst.txt index c1b77030..de3f794f 100644 --- a/docs/_sources/api/ppp.rst.txt +++ b/docs/_sources/api/ppp.rst.txt @@ -1,23 +1,23 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `ipcp-open` - - Open IPCP - - - - `session-id` - * - `ipcp-close` - - Close IPCP - - - - `session-id` - * - `ip6cp-open` - - Open IP6CP - - - - `session-id` - * - `ip6cp-close` - - Close IP6CP - - - - `session-id` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **ipcp-open** | | Open IPCP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipcp-close** | | Close IPCP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ip6cp-open** | | Open IP6CP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ip6cp-close** | | Close IP6CP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/sessions.rst.txt b/docs/_sources/api/sessions.rst.txt index 3ce12f02..950119c3 100644 --- a/docs/_sources/api/sessions.rst.txt +++ b/docs/_sources/api/sessions.rst.txt @@ -1,54 +1,53 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `session-info` - - Display session information - - - - `session-id` - * - `session-counters` - - Display session counters - - - - - * - `sessions-pending` - - List all sessions not established - - - - - * - `session-traffic` - - Display session traffic statistics - - - - - * - `session-traffic-start` - - Enable/start session traffic - - - - `session-id` - * - `session-traffic-stop` - - Disable/stop session traffic - - - - `session-id` - * - `session-traffic-reset` - - Reset all session traffic streams - - - - - * - `session-streams` - - Display session streams - - `session-id` - - - * - `session-start` - - Start session manually - - - - `session-id`, `session-group-id` - * - `session-stop` - - Stop sessions manually - - - - `session-id`, `session-group-id`, `reconnect-delay` - * - `session-restart` - - Restart sessions manually - - - - `session-id`, `session-group-id`, `reconnect-delay` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **session-info** | | Display session information. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-counters** | | Display session counters. | ++-----------------------------------+----------------------------------------------------------------------+ +| **sessions-pending** | | List all sessions not established. | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic** | | Display session traffic statistics. | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic-start** | | Enable/start session traffic. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic-stop** | | Disable/stop session traffic. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic-reset** | | Reset all session traffic streams. | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-streams** | | Display session streams. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-start** | | Start session manually. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | +| | | ``session-group-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-stop** | | Stop sessions manually. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | +| | | ``session-group-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-restart** | | Restart sessions manually. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | +| | | ``session-group-id`` | +| | | ``reconnect-delay`` | ++-----------------------------------+----------------------------------------------------------------------+ The argument ``reconnect-delay`` is only applicable in combination with session reconnect enabled in the configuration. This argument delays the diff --git a/docs/_sources/api/streams.rst.txt b/docs/_sources/api/streams.rst.txt index 1aa208e6..bf9a0bf0 100644 --- a/docs/_sources/api/streams.rst.txt +++ b/docs/_sources/api/streams.rst.txt @@ -1,31 +1,26 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `stream-stats` - - Display stream traffic statistics - - - - - * - `stream-info` - - Display stream/flow information - - - - `flow-id` - * - `stream-summary` - - Display stream/flow summary information - - - - - * - `stream-traffic-start` - - Enable/start traffic streams - - - - `session-id` - * - `stream-traffic-stop` - - Disable/stop traffic streams - - - - `session-id` - * - `stream-reset` - - Reset all traffic streams - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **stream-stats** | | Display stream traffic statistics. | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-info** | | Display stream/flow information. | +| | | | +| | | **Arguments:** | +| | | ``flow-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-summary** | | Display stream/flow summary information. | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-traffic-start** | | Enable/start traffic streams. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-traffic-stop** | | Disable/stop traffic streams. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-reset** | | Reset all traffic streams. | ++-----------------------------------+----------------------------------------------------------------------+ +| **streams-pending** | | List flow-id of all pending (not verfied) traffic streams. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/api/traffic.rst.txt b/docs/_sources/api/traffic.rst.txt index d3419a26..c91de76c 100644 --- a/docs/_sources/api/traffic.rst.txt +++ b/docs/_sources/api/traffic.rst.txt @@ -1,23 +1,11 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `traffic-start` - - Start all traffic (session and streams) - - - - - * - `traffic-stop` - - Stop all traffic (session and streams) - - - - - * - `multicast-traffic-start` - - Start multicast traffic - - - - - * - `multicast-traffic-stop` - - Stop multicast traffic - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **traffic-start** | | Start all traffic (session and streams). | ++-----------------------------------+----------------------------------------------------------------------+ +| **traffic-stop** | | Stop all traffic (session and streams). | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-start** | | Start multicast traffic. | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-stop** | | Stop multicast traffic. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/access_line.rst.txt b/docs/_sources/configuration/access_line.rst.txt index 8223a0bc..e679a9b7 100644 --- a/docs/_sources/configuration/access_line.rst.txt +++ b/docs/_sources/configuration/access_line.rst.txt @@ -1,30 +1,40 @@ +This feature is designed to simulate various access line attributes defined by the Broadband Forum, +which are subsequently employed in protocols such as PPPoE discovery, DHCPv4, and DHCPv6 packets. + +The values defined in **access-line** section apply globally but can be overwritten in the +access interface section. The strings agent-remote-id, agent-circuit-id, and +access-aggregation-circuit-id support :ref:`variable substitution `. + .. code-block:: json { "access-line": {} } ++---------------------------------------------+------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **agent-circuit-id** | | Agent-Circuit-Id (string). | ++---------------------------------------------+------------------------------------------------------------+ +| **agent-remote-id** | | Agent-Remote-Id (string). | ++---------------------------------------------+------------------------------------------------------------+ +| **access-aggregation-circuit-id** | | Access-Aggregation-Circuit-ID-ASCII (string). | ++---------------------------------------------+------------------------------------------------------------+ +| **rate-up** | | Actual Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++---------------------------------------------+------------------------------------------------------------+ +| **rate-down** | | Actual Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++---------------------------------------------+------------------------------------------------------------+ +| **dsl-type** | | DSL-Type. | +| | | Default: 0 Range: 0 - 4294967295 | ++---------------------------------------------+------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 +Attributes with values set to zero will be automatically excluded, +making it impossible to send attributes with a zero value. In other words, +any attribute that has a value of zero will not be included in the corresponding +packets. - * - Attribute - - Description - - Default - * - `agent-circuit-id` - - Agent-Circuit-Id - - - * - `agent-remote-id` - - Agent-Remote-Id - - - * - `access-aggregation-circuit-id` - - Access-Aggregation-Circuit-ID-ASCII - - - * - `rate-up` - - Actual Data Rate Upstream - - - * - `rate-down` - - Actual Data Rate Downstream - - - * - `dsl-type` - - DSL-Type - - \ No newline at end of file +In the context of DHCPv6, access line attributes, as well as Agent-Remote-Id or Agent-Circuit-Id, +are exclusively permitted in DHCPv6 relay-forward messages as dictated by RFC. By default, BNG Blaster +includes these attributes in other DHCPv6 messages, even if this deviates from RFC guidelines. +Therefore, the DHCPv6 configuration section provides the option to either disable access-line attributes or, +as an alternative, enable LDRA (Lightweight DHCPv6 Relay Agent). \ No newline at end of file diff --git a/docs/_sources/configuration/access_line_profiles.rst.txt b/docs/_sources/configuration/access_line_profiles.rst.txt index 97db1dd8..b97f800f 100644 --- a/docs/_sources/configuration/access_line_profiles.rst.txt +++ b/docs/_sources/configuration/access_line_profiles.rst.txt @@ -1,116 +1,119 @@ +Attributes within the **access-line-profiles** are treated analogous to those within the +**access-line** section but they provide the capability to apply different profiles to +each access interface. + .. code-block:: json { "access-line-profiles": [] } ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **access-line-profile-id** | | Mandatory access-line-profile identifier. | +| | | Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-up** | | Actual Data Rate Upstream. | +| | | This value is overwritten by **rate-up**. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-down** | | Actual Data Rate Downstream. | +| | | This value is overwritten by **rate-down** | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-up** | | Minimum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-down** | | Minimum Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **att-up** | | Attainable DataRate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **att-down** | | Attainable DataRate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-up** | | Maximum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-down** | | Maximum Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-up-low** | | Min Data Rate Upstream.in low power state | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-down-low** | | Min Data Rate Downstream.in low power state | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-interl-delay-up** | | Max Interleaving Delay Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-interl-delay-up** | | Actual Interleaving Delay Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-interl-delay-down** | | Max Interleaving Delay Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-interl-delay-down** | | Actual Interleaving Delay Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **data-link-encaps** | | Data Link Encapsulation | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **dsl-type** | | DSL Type. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-type** | | PON Access Type. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **etr-up** | | Expected Throughput (ETR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **etr-down** | | Expected Throughput (ETR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attetr-up** | | Attainable Expected Throughput (ATTETR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attetr-down** | | Attainable Expected Throughput (ATTETR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **gdr-up** | | Gamma Data Rate (GDR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **gdr-down** | | Gamma Data Rate (GDR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attgdr-up** | | Attainable Gamma Data Rate (ATTGDR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attgdr-down** | | Attainable Gamma Data Rate (ATTGDR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-avg-down** | | ONT/ONU Average Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-peak-down** | | ONT/ONU Peak Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-max-up** | | ONT/ONU Maximum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-ass-up** | | ONT/ONU Assured Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-max-up** | | PON Tree Maximum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-max-down** | | PON Tree Maximum Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-access-line-version** | | This option allows to switch between the versions | +| | | 00 (DRAFT-LIHAWI-00) and 04 (DRAFT-LIHAWI-04) of the RFC | +| | | `draft-lihawi-ancp-protocol-access-extension`. | +| | | Default: DRAFT-LIHAWI-04 | ++-----------------------------------+----------------------------------------------------------------------+ ++-----------------------------------+----------------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `access-line-profile-id` - - Mandatory access-line-profile identifier - - - * - `act-up` - - Actual Data Rate Upstream - - 0 - * - `act-down` - - Actual Data Rate Downstream - - 0 - * - `min-up` - - Minimum Data Rate Upstream - - 0 - * - `min-down` - - Minimum Data Rate Downstream - - 0 - * - `att-up` - - Attainable DataRate Upstream - - 0 - * - `att-down` - - Attainable DataRate Downstream - - 0 - * - `max-up` - - Maximum Data Rate Upstream - - 0 - * - `max-down` - - Maximum Data Rate Downstream - - 0 - * - `min-up-low` - - Min Data Rate Upstream in low power state - - 0 - * - `min-down-low` - - Min Data Rate Downstream in low power state - - 0 - * - `max-interl-delay-up` - - Max Interleaving Delay Upstream - - 0 - * - `act-interl-delay-up` - - Actual Interleaving Delay Upstream - - 0 - * - `max-interl-delay-down` - - Max Interleaving Delay Downstream - - 0 - * - `act-interl-delay-down` - - Actual Interleaving Delay Downstream - - 0 - * - `data-link-encaps` - - Data Link Encapsulation - - 0 - * - `dsl-type` - - DSL Type - - 0 - * - `pon-type` - - PON Access Type - - 0 - * - `etr-up` - - Expected Throughput (ETR) Upstream - - 0 - * - `etr-down` - - Expected Throughput (ETR) Downstream - - 0 - * - `attetr-up` - - Attainable Expected Throughput (ATTETR) Upstream - - 0 - * - `attetr-down` - - Attainable Expected Throughput (ATTETR) Downstream - - 0 - * - `gdr-up` - - Gamma Data Rate (GDR) Upstream - - 0 - * - `gdr-down` - - Gamma Data Rate (GDR) Downstream - - 0 - * - `attgdr-up` - - Attainable Gamma Data Rate (ATTGDR) Upstream - - 0 - * - `attgdr-down` - - Attainable Gamma Data Rate (ATTGDR) Downstream - - 0 - * - `ont-onu-avg-down` - - ONT/ONU Average Data Rate Downstream - - 0 - * - `ont-onu-peak-down` - - ONT/ONUPeak Data Rate Downstream - - 0 - * - `ont-onu-max-up` - - ONT/ONU Maximum Data Rate Upstream - - 0 - * - `ont-onu-ass-up` - - ONT/ONU Assured Data Rate Upstream - - 0 - * - `pon-max-up` - - PON Tree Maximum Data Rate Upstream - - 0 - * - `pon-max-down` - - PON Tree Maximum Data Rate Downstream - - 0 - * - `pon-access-line-version` - - DRAFT-LIHAWI-00 or DRAFT-LIHAWI-04 - - DRAFT-LIHAWI-04 - -Attributes with values set to 0 will not be sent. - -The values for ``rate-up``, ``rate-down`` and ``dsl-type`` defined in the -access-line or interface section has priority over those defined here. +The values specified for **rate-up**, **rate-down** and **dsl-type** defined in the +**access-line** or **interface** section section take precedence over the definitions +provided here. diff --git a/docs/_sources/configuration/bgp.rst.txt b/docs/_sources/configuration/bgp.rst.txt index 16aa5fdf..22614c19 100644 --- a/docs/_sources/configuration/bgp.rst.txt +++ b/docs/_sources/configuration/bgp.rst.txt @@ -2,44 +2,45 @@ { "bgp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `network-interface` - - BGP local interface (source interface) - - first network interface - * - `local-ipv4-address` - - BGP local IPv4 address (source address) - - network interface address - * - `local-as` - - BGP local AS - - 65000 - * - `peer-ipv4-address` - - BGP peer address - - - * - `peer-as` - - BGP peer AS - - local AS - * - `hold-time` - - BGP hold-time in seconds - - 90 - * - `id` - - BGP identifier - - 1.2.3.4 - * - `reconnect` - - BGP reconnect - - true - * - `start-traffic` - - BGP starts global traffic after RAW update - - false - * - `teardown-time` - - BGP teardown time in seconds - - 5 - * - `raw-update-file` - - BGP RAW update file - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **network-interface** | | BGP local interface (source interface). | +| | | Default: `first network interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ +| **local-ipv4-address** | | BGP local IPv4 address (source address). | +| | | Default: `network interface address` | ++-----------------------------------+----------------------------------------------------------------------+ +| **local-as** | | BGP local AS. | +| | | Default: 65000 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **peer-ipv4-address** | | Mandatory BGP peer address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **peer-as** | | BGP peer AS. | +| | | Default: `local AS` Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **hold-time** | | BGP hold-time in seconds. | +| | | Default: 90 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **id** | | BGP identifier. | +| | | Default: 1.2.3.4 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tos** | | BGP IP TOS. | +| | | Default: 0 Range: 0 - 255 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ttl** | | BGP IP TTL. | +| | | Default: 255 Range: 0 - 255 | ++-----------------------------------+----------------------------------------------------------------------+ +| **reconnect** | | Reconnect BGP session automatically. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **start-traffic** | | Start global traffic after RAW update finished. | +| | | If enabled, the control command **traffic-start** is automatically | +| | | executed as soon as the BGP RAW update has finished. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **teardown-time** | | BGP teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **raw-update-file** | | BGP RAW update file. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/dhcp.rst.txt b/docs/_sources/configuration/dhcp.rst.txt index 7bf6c4b6..407149df 100644 --- a/docs/_sources/configuration/dhcp.rst.txt +++ b/docs/_sources/configuration/dhcp.rst.txt @@ -2,38 +2,33 @@ { "dhcp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable DHCP - - true - * - `broadcast` - - DHCP broadcast flag - - false - * - `timeout` - - DHCP timeout in seconds - - 5 - * - `retry` - - DHCP retry - - 10 - * - `release-interval` - - DHCP release interval - - 1 - * - `release-retry` - - DHCP release retry - - 3 - * - `tos` - - IPv4 TOS for all DHCP control traffic - - 0 - * - `vlan-priority` - - VLAN PBIT for all DHCP control traffic - - 0 - * - `access-line` - - Add access-line attributes like Agent-Remote/Circuit-Id - - true \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **enable** | | This option allows enabling or disabling DHCP. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **broadcast** | | DHCP broadcast flag. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **timeout** | | DHCP timeout in seconds. | +| | | Default: 5 | ++-----------------------------------+----------------------------------------------------------------------+ +| **retry** | | DHCP retry. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **release-interval** | | DHCP release interval. | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **release-retry** | | DHCP release retry. | +| | | Default: 3 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tos** | | IPv4 TOS for all DHCP control traffic. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **vlan-priority** | | VLAN PBIT for all DHCP control traffic. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-line** | | Add access-line attributes like Agent-Remote/Circuit-Id. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/dhcpv6.rst.txt b/docs/_sources/configuration/dhcpv6.rst.txt index 8af8d761..64b74ea8 100644 --- a/docs/_sources/configuration/dhcpv6.rst.txt +++ b/docs/_sources/configuration/dhcpv6.rst.txt @@ -2,40 +2,35 @@ { "dhcpv6": {} } ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **enable** | | This option allows enabling or disabling DHCPv6. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **ia-na** | | This option allows enabling or disabling DHCPv6 IA_NA. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **ia-pd** | | This option allows enabling or disabling DHCPv6 IA_PD. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **rapid-commit** | | DHCPv6 rapid commit (2-way handshake). | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **timeout** | | DHCPv6 timeout in seconds. | +| | | Default: 5 | ++-----------------------------------+----------------------------------------------------------------------+ +| **retry** | | DHCPv6 retry. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-line** | | Add access-line attributes like Agent-Remote/Circuit-Id. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldra** | | This option allows enabling or disabling LDRA. | +| | | DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in | +| | | [RFC6221](https://datatracker.ietf.org/doc/html/rfc6221). | +| | | Adding access-line information like Agent-Remote-Id or | +| | | Agent-Circuit-Id should be used with LDRA enabled only. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable DHCPv6 - - true - * - `ldra` - - This option allows to enable or disable LDRA - - false - * - `ia-na` - - This option allows to enable or disable DHCPv6 IA_NA - - true - * - `ia-pd` - - This option allows to enable or disable DHCPv6 IA_PD - - true - * - `rapid-commit` - - DHCPv6 rapid commit (2-way handshake) - - true - * - `timeout` - - DHCPv6 timeout in seconds - - 5 - * - `retry` - - DHCPv6 retry - - 10 - * - `access-line` - - Add access-line attributes like Agent-Remote/Circuit-Id - - true - -DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in -[RFC6221](https://datatracker.ietf.org/doc/html/rfc6221). Adding -access-line information like Agent-Remote-Id or Agent-Circuit-Id -is allowed with LDRA enabled only. diff --git a/docs/_sources/configuration/http_client.rst.txt b/docs/_sources/configuration/http_client.rst.txt index 50dfeea7..db7fa067 100644 --- a/docs/_sources/configuration/http_client.rst.txt +++ b/docs/_sources/configuration/http_client.rst.txt @@ -2,35 +2,26 @@ { "http-client": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory HTTP client name - - - * - `http-client-group-id` - - Mandatory HTTP client identifier - - - * - `url` - - Mandatory HTTP request URL - - - * - `destination-port` - - TCP destination port - - 80 - * - `autostart` - - Autostart HTTP client - - true - * - `start-delay` - - Delay start of HTTP client - - 0 - * - `destination-ipv4-address` - - Destination IPv4 address - - - * - `destination-ipv6-address` - - Destination IPv6 address - - ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **name** | | Mandatory HTTP client name. | ++-----------------------------------+----------------------------------------------------------------------+ +| **http-client-group-id** | | Mandatory HTTP client identifier. | +| | | Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **url** | | Mandatory HTTP request URL. | ++-----------------------------------+----------------------------------------------------------------------+ +| **destination-port** | | TCP destination port. | +| | | Default: 80 Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **autostart** | | Autostart HTTP client. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **start-delay** | | HTTP client start delay in seconds. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **destination-ipv4-address** | | Destination IPv4 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **destination-ipv6-address** | | Destination IPv6 address. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/http_server.rst.txt b/docs/_sources/configuration/http_server.rst.txt index 2d6a5943..2174f955 100644 --- a/docs/_sources/configuration/http_server.rst.txt +++ b/docs/_sources/configuration/http_server.rst.txt @@ -2,26 +2,17 @@ { "http-server": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory HTTP server name - - - * - `network-interface` - - Mandatory HTTP server network-interface - - - * - `port` - - Local TCP port - - 80 - * - `ipv4-address` - - Local IPv4 address - - - * - `ipv6-address` - - Local IPv6 address - - ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **name** | | Mandatory HTTP server name. | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interface** | | Mandatory HTTP server network-interface. | ++-----------------------------------+----------------------------------------------------------------------+ +| **port** | | Local TCP port. | +| | | Default: 80 Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv4-address** | | Local IPv4 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv6-address** | | Local IPv6 address. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/igmp.rst.txt b/docs/_sources/configuration/igmp.rst.txt index 65651c03..260ff788 100644 --- a/docs/_sources/configuration/igmp.rst.txt +++ b/docs/_sources/configuration/igmp.rst.txt @@ -2,88 +2,81 @@ { "igmp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `autostart` - - Automatically join after the session is established - - true - * - `version` - - IGMP protocol version (1, 2 or 3) - - 3 - * - `combined-leave-join` - - Combine leave and join records within a single IGMPv3 report - - true - * - `start-delay` - - Delay between session established and initial IGMP join in seconds - - 1 - * - `group` - - Multicast group base address (e.g. 239.0.0.1) - - 0.0.0.0 (disabled) - * - `group-iter` - - Multicast group iterator - - 0.0.0.1 - * - `group-count` - - Multicast group count - - 1 - * - `source` - - Multicast source address (e.g. 1.1.1.1) - - 0.0.0.0 (ASM) - * - `zapping-interval` - - IGMP channel zapping interval in seconds - - 0 (disabled) - * - `zapping-count` - - Define the number of channel changes before starting the view duration - - 0 (disabled) - * - `zapping-wait` - - Wait for multicast traffic before zapping to the next channel - - false - * - `view-duration` - - Define the view duration in seconds - - 0 (disabled) - * - `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 - - - * - `max-join-delay` - - Maximum join delay in milliseconds - - 0 (disabled) - -Per default, join and leave requests are sent using dedicated reports. -The option ``combined-leave-join`` allows the combination of leave and -join records within a single IGMPv3 report using multiple group records. -This option applies to the 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. This traffic starts -automatically, which can be suppressed by setting ``multicast-traffic-autostart`` -to false. The length, TOS and packets per second (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) -1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3 and 1.1.1.1,239.0.0.5. - -If ``max-join-delay`` is configured, the final report includes how often -the measured join delay is above this threshold. ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **autostart** | | Automatically join after the session is established. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **start-delay** | | Delay between session established and initial IGMP join in seconds.| +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **version** | | IGMP protocol version (1, 2, or 3). | +| | | Default: 3 | ++-----------------------------------+----------------------------------------------------------------------+ +| **combined-leave-join** | | Per default, join and leave requests are sent using dedicated | +| | | reports. This option allows the combination of leave and join | +| | | records within a single IGMPv3 report using multiple group records.| +| | | This option applies to the IGMP version 3 only! | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **group** | | Multicast group base address (e.g. 239.0.0.1). | +| | | 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): | +| | | `1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3, 1.1.1.1,239.0.0.5` | +| | | Default: 0.0.0.0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **group-iter** | | Multicast group iterator. | +| | | Default: 0.0.0.1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **group-count** | | Multicast group count. | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **source** | | Multicast source address (e.g. 1.1.1.1). | +| | | Default: 0.0.0.0 (ASM) | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-interval** | | IGMP channel zapping interval in seconds. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-count** | | Define the number of channel changes before starting | +| | | the view duration. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-wait** | | Wait for multicast traffic before zapping to the next channel. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **view-duration** | | Define the view duration in seconds. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-join-delay** | | Maximum join delay in milliseconds. | +| | | If configured, the final report includes how often | +| | | the measured join delay is above this threshold. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **send-multicast-traffic** | | If enabled, 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. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-autostart** | | Automatically start multicast traffic. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-length** | | Multicast traffic IP length. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: 76 | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-tos** | | Multicast traffic TOS priority. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-pps** | | Multicast traffic PPS (packets-per-second) per group. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: 1000 | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interface** | | Multicast traffic source interface. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: `first network interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/index.rst.txt b/docs/_sources/configuration/index.rst.txt index f531bdd6..195742b4 100644 --- a/docs/_sources/configuration/index.rst.txt +++ b/docs/_sources/configuration/index.rst.txt @@ -1,8 +1,66 @@ .. _configuration: +.. raw:: html + + + Configuration ============= +The BNG Blastert configuration is presented as a JSON file. +This configuration must include at least one interface function. + +.. code-block:: json + + { + "interfaces": { + "network": { + "interface": "eth2", + "address": "10.0.0.10/24", + "gateway": "10.0.0.2" + } + } + } + +In order to minimize the size of this configuration, you have the option +to relocate the stream definitions to a separate file. However, it's important +to note that both the streams specified in the main configuration file and +the additional streams configuration file will be applied. This approach +proves particularly beneficial when conducting tests that involve an extensive +number of traffic streams, numbering in the millions. By separating the streams +into distinct files, you can maintain a more organized and manageable +configuration while ensuring that the combined streams are effectively utilized +in your testing scenarios. This flexibility in configuration empowers you to +handle large-scale traffic simulations with ease. + +.. code-block:: bash + + bngblaster -C config.json -T streams.json + +.. _variables: + +Variables +--------- + +Some configuration attributes like **username**, **password**, **agent-remote-id**, +**agent-circuit-id**, or **cfm-ma-name** support variable substitution. +The variable **{session-global}** will be replaced with the actual session-id +starting from 1 and incremented for every new session. The variable **{session}** +is incremented per-interface section. The variables **{outer-vlan}** and **{inner-vlan}** +will be replaced with the corresponding VLAN identifier or 0 if not defined. +The two variables **{i1}** and **{i2}** are configurable per-interface sections +with user-defined start values and steps. + +.. code-block:: json + + { + "username": "user{session-global}@rtbrick.com", + "agent-circuit-id": "0.0.0.0/0.0.0.0 eth {outer-vlan}:{inner-vlan}", + "agent-remote-id": "DEU.RTBRICK.{i1}", + "i1-start": 10000, + "i1-step": 2 + } + Interfaces ---------- @@ -29,6 +87,16 @@ Access Interfaces A10NSP Interfaces ~~~~~~~~~~~~~~~~~ + +The :ref:`L2BSA ` specification defines two interfaces. +The so-called U interface (User Interface) at the customer location +and the A10-NSP interface (A10 Network Service Provider) +between the service provider networks. + +The BNG Blaster A10NSP interface emulates such a layer two provider interface. +This interface type accepts all DHCPv4 and PPPoE sessions were received to verify +forwarding and header enrichment. + .. include:: interfaces_a10nsp.rst Sessions @@ -112,14 +180,27 @@ ISIS External Connections ~~~~~~~~~~~~~~~~~~~~~~~~~ .. include:: isis_external_connections.rst -BGP ---- -.. include:: bgp.rst +OSPF +---- +.. include:: ospf.rst + +OSPF External +~~~~~~~~~~~~~ +.. include:: ospf_external.rst + + +OSPF External Connections +~~~~~~~~~~~~~~~~~~~~~~~~~ +.. include:: ospf_external_connections.rst LDP --- .. include:: ldp.rst +BGP +--- +.. include:: bgp.rst + HTTP-Client ----------- .. include:: http_client.rst diff --git a/docs/_sources/configuration/interfaces.rst.txt b/docs/_sources/configuration/interfaces.rst.txt index d5d7ab86..a1c4f4af 100644 --- a/docs/_sources/configuration/interfaces.rst.txt +++ b/docs/_sources/configuration/interfaces.rst.txt @@ -1,54 +1,45 @@ -The following configuration allows to overwrite the global default interface link settings. - .. code-block:: json { "interfaces": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `io-mode` - - IO mode - - packet_mmap_raw - * - `io-slots` - - IO slots (ring size) - - 4096 - * - `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 the capture - - false - * - `mac-modifier` - - Third byte of access session MAC address (0-255) - - 0 - -The supported IO modes are listed with ``bngblaster -v`` but except -``packet_mmap_raw`` all other modes are currently considered experimental. In -the default mode (``packet_mmap_raw``) all packets are received in a Packet MMAP -ring buffer and sent directly through 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. \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **io-mode** | | IO mode. | +| | | The supported IO modes are listed with ``bngblaster -v`` | +| | | but except ``packet_mmap_raw`` all other modes are currently | +| | | considered experimental. In the default mode (``packet_mmap_raw``) | +| | | all packets are received in a Packet MMAP ring buffer and sent | +| | | directly through RAW packet sockets. | +| | | Default: packet_mmap_raw | ++-----------------------------------+----------------------------------------------------------------------+ +| **io-slots** | | IO slots (ring size). | +| | | It might be also needed to increase the **io-slots** 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. | +| | | Default: 4096 | ++-----------------------------------+----------------------------------------------------------------------+ +| **qdisc-bypass** | | Bypass the kernel's qdisc layer. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **tx-interval** | | TX polling interval in milliseconds. | +| | | Default: 1.0 Range: 0.0001 to 1000 | ++-----------------------------------+----------------------------------------------------------------------+ +| **rx-interval** | | RX polling interval in milliseconds. | +| | | Default: 1.0 Range: 0.0001 to 1000 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tx-threads** | | Number of TX threads per interface link. | +| | | Default: 0 (main thread) | ++-----------------------------------+----------------------------------------------------------------------+ +| **rx-threads** | | Number of RX threads per interface link. | +| | | Default: 0 (main thread) | ++-----------------------------------+----------------------------------------------------------------------+ +| **capture-include-streams** | | Include traffic streams in the capture. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac-modifier** | | Third byte of access session MAC address (0-255). This option | +| | | allows to run multiple BNG Blaster instances with disjoint session | +| | | MAC addresses. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/interfaces_a10nsp.rst.txt b/docs/_sources/configuration/interfaces_a10nsp.rst.txt index 6225a5ab..4ba6a446 100644 --- a/docs/_sources/configuration/interfaces_a10nsp.rst.txt +++ b/docs/_sources/configuration/interfaces_a10nsp.rst.txt @@ -2,20 +2,14 @@ { "interfaces": { "a10nsp": [] } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `interface` - - Parent interface link name (e.g. eth0, ...) - - - * - `qinq` - - Set outer VLAN ethertype to QinQ (0x88a8) - - false - * - `mac` - - Optional set gateway interface address manually - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Parent interface/link name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **qinq** | | Set outer VLAN ethertype to QinQ (0x88a8). | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac** | | Optional set gateway interface address manually. | +| | | Default: `parent interface/link MAC address` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/interfaces_access.rst.txt b/docs/_sources/configuration/interfaces_access.rst.txt index 03f40adb..8f4cd6da 100644 --- a/docs/_sources/configuration/interfaces_access.rst.txt +++ b/docs/_sources/configuration/interfaces_access.rst.txt @@ -2,161 +2,132 @@ { "interfaces": { "access": [] } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `interface` - - Parent interface link name (e.g. eth0, ...) - - - * - `network-interface` - - Select the corresponding network interface for this session - - - * - `a10nsp-interface` - - Select the corresponding A10NSP interface for this session - - - * - `type` - - Set access type (`pppoe` or `ipoe`) - - pppoe - * - `vlan-mode` - - Set VLAN mode `1:1` or `N:1` - - 1:1 - * - `qinq` - - Set outer VLAN ethertype to QinQ (0x88a8) - - false - * - `outer-vlan-min` - - Outer VLAN minimum value - - 0 (untagged) - * - `outer-vlan-max` - - Outer VLAN maximum value - - 0 (untagged) - * - `outer-vlan-step` - - Outer VLAN step (iterator) - - 1 - * - `outer-vlan` - - Set outer-vlan-min/max equally - - - * - `inner-vlan-min` - - Inner VLAN minimum value - - 0 (untagged) - * - `inner-vlan-max` - - Inner VLAN maximum value - - 0 (untagged) - * - `inner-vlan-step` - - Inner VLAN step (iterator) - - 1 - * - `inner-vlan` - - Set inner-vlan-min/max equally - - - * - `third-vlan` - - Add a fixed third VLAN (most inner VLAN) - - 0 (untagged) - * - `address` - - Static IPv4 base address (IPoE only) - - - * - `ppp-mru` - - Overwrite PPP MRU (PPPoE only) - - - * - `address-iter` - - Static IPv4 base address iterator (IPoE only) - - - * - `gateway` - - Static IPv4 gateway address (IPoE only) - - - * - `gateway-iter` - - Static IPv4 gateway address iterator (IPoE only) - - - * - `username` - - Overwrite the username from the authentication section - - - * - `password` - - Overwrite the password from the authentication section - - - * - `authentication-protocol` - - Overwrite the username from the authentication section - - - * - `agent-circuit-id` - - Overwrite the agent-circuit-id from the access-line section - - - * - `agent-remote-id` - - Overwrite the agent-remote-id from the access-line section - - - * - `access-aggregation-circuit-id` - - Overwrite the access-aggregation-circuit-id from the access-line section - - - * - `rate-up` - - Overwrite the rate-up from the access-line section - - - * - `rate-down` - - Overwrite the rate-down from the access-line section - - - * - `dsl-type` - - Overwrite the dsl-type from the access-line section - - - * - `ipcp` - - De-/activate PPP IPCP - - - * - `ip6cp` - - De-/activate PPP IP6CP - - - * - `ipv4` - - De-/activate IPv4 - - - * - `ipv6` - - De-/activate IPv6 - - - * - `dhcp` - - De-/activate DHCP - - - * - `dhcpv6` - - De-/activate DHCPv6 - - - * - `dhcpv6-ldra` - - De-/activate DHCPv6 LDRA - - - * - `igmp-autostart` - - Overwrite IGMP autostart - - - * - `igmp-version` - - Overwrite IGMP protocol version (1, 2 or 3) - - - * - `session-group-id` - - Session group identifier - - - * - `stream-group-id` - - Stream group identifier - - - * - `access-line-profile-id` - - Access-line-profile identifier - - - * - `cfm-cc` - - De-/activate EOAM CFM CC (IPoE only) - - false - * - `cfm-level` - - Set EOAM CFM maintenance domain level - - 0 - * - `cfm-ma-id` - - Set EOAM CFM maintenance association identifier - - 0 - * - `cfm-ma-name` - - Set EOAM CFM maintenance association short name - - - * - `i1-start` - - Iterator for usage in strings `{i1}` - - 1 - * - `i1-step` - - Iterator step per session - - 1 - * - `i2-start` - - Iterator for usage in strings `{i2}` - - 1 - * - `i2-step` - - Iterator step per session - - 1 - * - `monkey` - - Enable monkey testing - - false ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Parent interface/link name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interface** | | Select the corresponding network interface for those sessions. | +| | | Default: `first network interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ +| **a10nsp-interface** | | Select the corresponding A10NSP interface for those sessions. | +| | | Default: `first a10nsp interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ +| **type** | | Set access type (`pppoe` or `ipoe`). | +| | | Default: pppoe | ++-----------------------------------+----------------------------------------------------------------------+ +| **vlan-mode** | | Set VLAN mode to `1:1` or `N:1`. | +| | | Default: 1:1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **qinq** | | Set outer VLAN ethertype to QinQ (0x88a8). | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan-min** | | Outer VLAN minimum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan-max** | | Outer VLAN maximum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan-step** | | Outer VLAN step (iterator). | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan** | | Set outer-vlan-min/max equally. | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan-min** | | Inner VLAN minimum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan-max** | | Inner VLAN maximum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan-step** | | Inner VLAN step (iterator). | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan** | | Set inner-vlan-min/max equally. | ++-----------------------------------+----------------------------------------------------------------------+ +| **third-vlan** | | Add a static third VLAN (most inner VLAN). | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv4** | | Set false to deactivate IPv4. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv6** | | Set false to deactivate IPv6. | ++-----------------------------------+----------------------------------------------------------------------+ +| **address** | | Static IPv4 base address (IPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **address-iter** | | Static IPv4 base address iterator (IPoE only). | +| | | Default: 0.0.0.0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway** | | Static IPv4 gateway address (IPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-iter** | | Static IPv4 gateway address iterator (IPoE only). | +| | | Default: 0.0.0.0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc** | | Enable EOAM CFM CC (IPoE only). | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-level** | | Set EOAM CFM maintenance domain level. | +| | | Default: 0 Range: 0 - 7 | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-ma-id** | | Set EOAM CFM maintenance association identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-ma-name** | | Set EOAM CFM maintenance association short name (string). | ++-----------------------------------+----------------------------------------------------------------------+ +| **username** | | Overwrite the username from the authentication section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **password** | | Overwrite the password from the authentication section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **authentication-protocol** | | Overwrite the username from the authentication section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **agent-circuit-id** | | Overwrite the agent-circuit-id from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **agent-remote-id** | | Overwrite the agent-remote-id from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-aggregation-circuit-id** | | Overwrite the access-aggregation-circuit-id from the | +| | | access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **rate-up** | | Overwrite the rate-up from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **rate-down** | | Overwrite the rate-down from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **dsl-type** | | Overwrite the dsl-type from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ppp-mru** | | Overwrite PPP MRU (PPPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipcp** | | Overwrite PPP IPCP enable option (PPPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **ip6cp** | | Overwrite PPP IP6CP enable option (PPPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **dhcp** | | Overwrite DHCP enable option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **dhcpv6** | | Overwrite DHCPv6 enable option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **dhcpv6-ldra** | | Overwrite DHCPv6 LDRA option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-autostart** | | Overwrite IGMP autostart option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-version** | | Overwrite IGMP protocol version (1, 2, or 3). | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-group-id** | | Set session group identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-group-id** | | Set stream group identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-line-profile-id** | | Set access-line-profile identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i1-start** | | Iterator **{i1}** start value. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i1-step** | | Iterator **{i1}** step per session. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i2-start** | | Iterator **{i2}** start value. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i2-step** | | Iterator **{i2}** step per session. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **monkey** | | Enable monkey testing. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/interfaces_lag.rst.txt b/docs/_sources/configuration/interfaces_lag.rst.txt index ecf9a72a..03faec0b 100644 --- a/docs/_sources/configuration/interfaces_lag.rst.txt +++ b/docs/_sources/configuration/interfaces_lag.rst.txt @@ -2,39 +2,33 @@ { "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-min-active-links` - - Define the minimum number of active links - - 0 - * - `lacp-max-active-links` - - Limit the maximum number of active links - - 255 - * - `mac` - - LAG interface MAC address - - 02:ff:ff:ff:ff: ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | LAG interface name (e.g. lag0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp** | | Enable LACP. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-timeout-short** | | Enable LACP short timeout (3x1s) | +| | | Default: false (3x30s) | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-system-priority** | | LACP system priority. | +| | | Default: 32768 | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-system-id** | | LACP system identifier | +| | | Default: 02:ff:ff:ff:ff:00 | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-min-active-links** | | Define the minimum number of active links. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-max-active-links** | | Limit the maximum number of active links. | +| | | Default: 255 | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac** | | LAG interface MAC address. | +| | | Default: 02:ff:ff:ff:ff: | ++-----------------------------------+----------------------------------------------------------------------+ .. note:: - Multithreaded IO is not supported for LAG member interfaces! + Multithreaded TX is not supported for LAG member interfaces! diff --git a/docs/_sources/configuration/interfaces_links.rst.txt b/docs/_sources/configuration/interfaces_links.rst.txt index e6d4b529..38fbc629 100644 --- a/docs/_sources/configuration/interfaces_links.rst.txt +++ b/docs/_sources/configuration/interfaces_links.rst.txt @@ -6,59 +6,42 @@ for interface links referenced by interface functions. { "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 - - - * - `tx-cpuset` - - Optionally pin TX threads to CPU cores (cpuset) - - - * - `rx-cpuset` - - Optionally pin RX threads to CPU cores (cpuset) - - - * - `lag-interface` - - Add interface link to LAG group - - - * - `lacp-priority` - - LACP interface priority - - 32768 ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Interface name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **description** | | Interface description. | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac** | | Overwrite the MAC address. | +| | | Default: `physical interface MAC address` | ++-----------------------------------+----------------------------------------------------------------------+ +| **lag-interface** | | Add interface/link to LAG group. | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-priority** | | LACP interface priority. | +| | | Default: 32768 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tx-cpuset** | | Optionally pin TX threads to CPU cores (cpuset). This is required | +| | | for DPDK only. | ++-----------------------------------+----------------------------------------------------------------------+ +| **rx-cpuset** | | Optionally pin RX threads to CPU cores (cpuset). This is required | +| | | for DPDK only. | ++-----------------------------------+----------------------------------------------------------------------+ +| **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. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/interfaces_network.rst.txt b/docs/_sources/configuration/interfaces_network.rst.txt index a7f2e657..4c39f332 100644 --- a/docs/_sources/configuration/interfaces_network.rst.txt +++ b/docs/_sources/configuration/interfaces_network.rst.txt @@ -2,53 +2,60 @@ { "interfaces": { "network": [] } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `interface` - - Parent interface link name (e.g. eth0, ...) - - - * - `address` - - Local network interface IPv4 address - - - * - `gateway` - - Gateway network interface IPv4 address - - - * - `address-ipv6` - - Local network interface IPv6 address (implicitly /64) - - - * - `gateway-ipv6` - - Gateway network interface IPv6 address (implicitly /64) - - - * - `ipv6-router-advertisement` - - Disable IPv6 router advertisements - - true - * - `vlan` - - Network interface VLAN - - 0 (untagged) - * - `gateway-mac` - - Optional set gateway MAC address manually - - - * - `gateway-resolve-wait` - - Sessions will not start until gateways are resolved - - true - * - `isis-instance-id` - - Assign the interface to ISIS instance - - - * - `isis-level` - - ISIS interface level - - 3 - * - `isis-p2p` - - ISIS P2P interface - - true - * - `isis-l1-metric` - - ISIS level 1 interface metric - - 10 - * - `isis-l2-metric` - - ISIS level 2 interface metric - - 10 \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Parent interface/link name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **address** | | Local IPv4 address (e.g. 10.0.0.1/24). | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway** | | Default gateway IPv4 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **address-ipv6** | | Local IPv6 address (e.g. fc66::1/64) | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-ipv6** | | Default gateway IPv6 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv6-router-advertisement** | | Send IPv6 router advertisements (ICMPv6 RA). | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **vlan** | | Network interface VLAN | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-mac** | | Optional set default gateway MAC address manually. Per default | +| | | this MAC address is resolved via ARP/ND. | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-resolve-wait** | | Sessions and protocols will not start until gateways are resolved. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-instance-id** | | Assign the interface to an ISIS instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-level** | | ISIS interface level. | +| | | Default: 3 Range: 1 - 3 | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-p2p** | | ISIS P2P interface. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-l1-metric** | | ISIS level 1 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-l2-metric** | | ISIS level 2 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv2-instance-id** | | Assign the interface to an OSPFv2 instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv2-type** | | OSPFv2 interface type (p2p or broadcast). | +| | | Default: broadcast | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv2-metric** | | OSPFv2 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv3-instance-id** | | Assign the interface to an OSPFv3 instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv3-type** | | OSPFv3 interface type (p2p or broadcast). | +| | | Default: broadcast | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv3-metric** | | OSPFv3 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-instance-id** | | Assign the interface to a LDP instance. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/ipoe.rst.txt b/docs/_sources/configuration/ipoe.rst.txt index e7d966ea..1d6c3cfe 100644 --- a/docs/_sources/configuration/ipoe.rst.txt +++ b/docs/_sources/configuration/ipoe.rst.txt @@ -2,23 +2,18 @@ { "ipoe": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `ipv6` - - Enable/disable IPv6 - - true (enabled) - * - `ipv4` - - Enable/disable IPv4 - - true (enabled) - * - `arp-timeout` - - Initial ARP timeout/retry interval in seconds - - 1 - * - `arp-interval` - - Periodic ARP interval in seconds (0 means disabled) - - 300 ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **ipv6** | | Enable/disable IPv6. | +| | | Default: true (enabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv4** | | Enable/disable IPv4. | +| | | Default: true (enabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **arp-timeout** | | Initial ARP timeout/retry interval in seconds. | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **arp-interval** | | Periodic ARP interval in seconds (0 means disabled). | +| | | Default: 300 | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/isis.rst.txt b/docs/_sources/configuration/isis.rst.txt index 470acf63..d24ff467 100644 --- a/docs/_sources/configuration/isis.rst.txt +++ b/docs/_sources/configuration/isis.rst.txt @@ -2,107 +2,88 @@ { "isis": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `instance-id` - - ISIS instance identifier - - - * - `level` - - ISIS level - - 3 - * - `overload` - - ISIS overload - - false - * - `protocol-ipv4` - - Enable/disable IPv4 - - true - * - `protocol-ipv6` - - Enable/disable IPv6 - - true - * - `level1-auth-key` - - ISIS level 1 authentication key - - - * - `level1-auth-type` - - ISIS level 1 authentication type (simple or md5) - - disabled - * - `level1-auth-hello` - - ISIS level 1 hello authentication - - true - * - `level1-auth-csnp` - - ISIS level 1 CSNP authentication - - true - * - `level1-auth-psnp` - - ISIS level 1 PSNP authentication - - true - * - `level2-auth-key` - - ISIS level 2 authentication key - - - * - `level2-auth-type` - - ISIS level 2 authentication type (simple or md5) - - disabled - * - `level2-auth-hello` - - ISIS level 2 hello authentication - - true - * - `level2-auth-csnp` - - ISIS level 2 CSNP authentication - - true - * - `level2-auth-psnp` - - ISIS level 2 PSNP authentication - - true - * - `hello-interval` - - ISIS hello interval in seconds - - 10 - * - `hello-padding` - - ISIS hello padding - - false - * - `hold-time` - - ISIS hold time in seconds - - 30 - * - `lsp-lifetime` - - ISIS LSP lifetime in seconds - - 65535 - * - `lsp-refresh-interval` - - ISIS LSP refresh interval in seconds - - 300 - * - `lsp-retry-interval` - - ISIS LSP retry interval in seconds - - 5 - * - `lsp-tx-interval` - - ISIS LSP TX interval in ms (time between LSP send windows) - - 10 - * - `lsp-tx-window-size` - - ISIS LSP TX window size (LSP send per window) - - 1 - * - `csnp-interval` - - ISIS CSNP interval in seconds - - 30 - * - `hostname` - - ISIS hostname - - bngblaster - * - `router-id` - - ISIS router identifier - - 10.10.10.10 - * - `system-id` - - ISIS system identifier - - 0100.1001.0010 - * - `area` - - ISIS area(s) - - 49.0001/24 - * - `sr-base` - - ISIS SR base - - - * - `sr-range` - - ISIS SR range - - - * - `sr-node-sid` - - ISIS SR node SID - - - * - `teardown-time` - - ISIS teardown time in seconds - - 5 \ No newline at end of file ++----------------------------------+-------------------------------------------------------------------+ +| Attribute | Description | ++==================================+===================================================================+ +| **instance-id** | | ISIS instance identifier. | ++----------------------------------+-------------------------------------------------------------------+ +| **level** | | Level. | +| | | Default: 3 Range: 1 - 3 | ++----------------------------------+-------------------------------------------------------------------+ +| **protocol-ipv4** | | Enable/disable IPv4 routing. | +| | | Default: true | ++----------------------------------+-------------------------------------------------------------------+ +| **protocol-ipv6** | | Enable/disable IPv6 routing. | +| | | Default: true | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-key** | | Level 1 authentication key. | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-type** | | Level 1 authentication type (simple or md5). | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-hello** | | Level 1 hello authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-csnp** | | Level 1 CSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-psnp** | | Level 1 PSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-key** | | Level 2 authentication key. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-type** | | Level 2 authentication type (simple or md5). | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-hello** | | Level 2 hello authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-csnp** | | Level 2 CSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-psnp** | | Level 2 PSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **hello-interval** | | Hello interval in seconds | +| | | Default: 10 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **hello-padding** | | Enable/disable hello padding. | +| | | Default: false | ++----------------------------------+-------------------------------------------------------------------+ +| **hold-time** | | ISIS hold time in seconds. | +| | | Default: 30 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-lifetime** | | ISIS LSP lifetime in seconds. | +| | | Default: 65535 Range: 330 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-refresh-interval** | | ISIS LSP refresh interval in seconds. | +| | | Default: 300 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-retry-interval** | | ISIS LSP retry interval in seconds. | +| | | Default: 5 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-tx-interval** | | ISIS LSP TX interval in ms (time between LSP send windows). | +| | | Default: 10 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-tx-window-size** | | ISIS LSP TX window size (LSP send per window). | +| | | Default: 1 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **csnp-interval** | | ISIS CSNP interval in seconds. | +| | | Default: 30 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **hostname** | | ISIS hostname | +| | | Default: bngblaster | ++----------------------------------+-------------------------------------------------------------------+ +| **router-id** | | ISIS router identifier. | +| | | Default: 10.10.10.10 | ++----------------------------------+-------------------------------------------------------------------+ +| **system-id** | | ISIS system identifier. | +| | | Default: 0100.1001.0010 | ++----------------------------------+-------------------------------------------------------------------+ +| **area** | | ISIS area(s) | +| | | Default: 49.0001/24 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-base** | | ISIS SR base | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-range** | | ISIS SR range | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-node-sid** | | ISIS SR node SID | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **teardown-time** | | ISIS teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/isis_external.rst.txt b/docs/_sources/configuration/isis_external.rst.txt index 11642249..277862f5 100644 --- a/docs/_sources/configuration/isis_external.rst.txt +++ b/docs/_sources/configuration/isis_external.rst.txt @@ -2,20 +2,15 @@ { "isis": { "external": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `purge` - - Automatically purge all external LSP during teardown - - true - * - `auto-refresh` - - Automatically refresh all external LSP - - false - * - `mrt-file` - - ISIS MRT file - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **purge** | | Automatically purge all external LSP during teardown. This option | +| | | requires a reasonable teardown-time depending on the database size.| +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **auto-refresh** | | Automatically refresh all external LSP. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **mrt-file** | | MRT file | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/isis_external_connections.rst.txt b/docs/_sources/configuration/isis_external_connections.rst.txt index cd3ddea0..ecd4e9a6 100644 --- a/docs/_sources/configuration/isis_external_connections.rst.txt +++ b/docs/_sources/configuration/isis_external_connections.rst.txt @@ -2,20 +2,14 @@ { "isis": { "external": { "connections": [] } } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `system-id` - - ISIS system identifier - - - * - `l1-metric` - - ISIS level 1 interface metric - - 10 - * - `l2-metric` - - ISIS level 2 interface metric - - 10 \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **system-id** | | ISIS system identifier. | ++-----------------------------------+----------------------------------------------------------------------+ +| **l1-metric** | | ISIS level 1 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2-metric** | | ISIS level 2 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/ldp.rst.txt b/docs/_sources/configuration/ldp.rst.txt index d40b7daf..12ba447b 100644 --- a/docs/_sources/configuration/ldp.rst.txt +++ b/docs/_sources/configuration/ldp.rst.txt @@ -2,60 +2,51 @@ { "ldp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `instance-id` - - LDP instance identifier - - - * - `keepalive-time` - - LDP session keepalive time in seconds - - 15 - * - `hold-time` - - LDP hello hold time in seconds - - 15 - * - `hostname` - - LDP hostname - - bngblaster - * - `lsr-id` - - LDP LSR identifier - - 10.10.10.10 - * - `teardown-time` - - LDP teardown time in seconds - - 5 - * - `ipv6-transport-address` - - LDP transport IPv6 address - - - * - `ipv4-transport-address` - - LDP transport IPv6 address - - `lsr-id` - * - `no-ipv4-transport` - - Disable/discard IPv4 LDP hello messages - - - * - `prefer-ipv4-transport` - - Prefer IPv4 transport even if IPv6 is enabled - - `false` - * - `raw-update-file` - - LDP RAW update file - - - -The `keepalive-time` defines the local LDP session keepalive -timeout. Each LDP peer must calculate the effective keepalive -timeout by using the smaller of its locally defined and received -timeout in the PDU. The value chosen indicates the maximum number -of seconds that may elapse between the receipt of successive PDUs -from the LDP peer on the session TCP connection. The keepalive -timeout is reset each time a PDU arrives. The BNG Blaster will -send keepalive messages at an interval calculated by using the -effective keepalive time divided by 3. Assuming an effective -keepalive time of 15 seconds results in a keepalive interval -of 5 seconds. - -Setting a valid `ipv6-transport-address` enables LDP IPv6 -hello and transport. According to RFC7552, IPv6 is preferred -over IPv4 which can be changed with `prefer-ipv4-transport`. \ No newline at end of file ++----------------------------------+------------------------------------------------------------+ +| Attribute | Description | ++==================================+============================================================+ +| **instance-id** | | LDP instance identifier. | ++----------------------------------+------------------------------------------------------------+ +| **keepalive-time** | | LDP session keepalive time in seconds. | +| | | The **keepalive-time** defines the local LDP session | +| | | keepalive timeout. Each LDP peer must calculate the | +| | | effective keepalive timeout by using the smaller of its | +| | | locally defined and received timeout in the PDU. The | +| | | value chosen indicates the maximum number of seconds | +| | | that may elapse between the receipt of successive PDUs | +| | | from the LDP peer on the session TCP connection. The | +| | | keepalive timeout is reset each time a PDU arrives. The | +| | | BNG Blaster will send keepalive messages at an interval | +| | | calculated by using the effective keepalive time divided | +| | | by 3. Assuming an effective keepalive time of of 15 | +| | | seconds results in a keepalive interval of 5 seconds. | +| | | Default: 15 Range: 0 - 65535 | ++----------------------------------+------------------------------------------------------------+ +| **hold-time** | | LDP hello hold time in seconds. | +| | | Default: 15 Range: 0 - 65535 | ++----------------------------------+------------------------------------------------------------+ +| **teardown-time** | | LDP teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++----------------------------------+------------------------------------------------------------+ +| **hostname** | | LDP hostname. | +| | | Default: bngblaster | ++----------------------------------+------------------------------------------------------------+ +| **lsr-id** | | LDP LSR identifier. | +| | | Default: 10.10.10.10 | ++----------------------------------+------------------------------------------------------------+ +| **ipv6-transport-address** | | LDP transport IPv6 address. | +| | | Setting a valid IPv6 address here enables LDP IPv6 | +| | | hello and transport. | ++----------------------------------+------------------------------------------------------------+ +| **ipv4-transport-address** | | LDP transport IPv4 address. | +| | | Default: `lsr-id` | ++----------------------------------+------------------------------------------------------------+ +| **no-ipv4-transport** | | Disable/discard IPv4 LDP hello messages. | ++----------------------------------+------------------------------------------------------------+ +| **prefer-ipv4-transport** | | According to RFC7552, IPv6 is preferred over IPv4 which | +| | | can be changed with this option to prefer IPv4 transport | +| | | even if IPv6 is enabled. | +| | | Default: false | ++----------------------------------+------------------------------------------------------------+ +| **raw-update-file** | | LDP RAW update file. | ++----------------------------------+------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/lns.rst.txt b/docs/_sources/configuration/lns.rst.txt index cd1281f5..d506a119 100644 --- a/docs/_sources/configuration/lns.rst.txt +++ b/docs/_sources/configuration/lns.rst.txt @@ -2,58 +2,52 @@ { "l2tp-server": [] } ++-------------------------------------------+---------------------------------------------------------------------+ +| Attribute | Description | ++===========================================+=====================================================================+ +| **name** | | Mandatory L2TP LNS server hostname (AVP 7) | ++-------------------------------------------+---------------------------------------------------------------------+ +| **address** | | Mandatory L2TP server address. | ++-------------------------------------------+---------------------------------------------------------------------+ +| **secret** | | Tunnel secret. | ++-------------------------------------------+---------------------------------------------------------------------+ +| **receive-window-size** | | Control messages receive window size. | +| | | Default: 16 Range: 1 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **max-retry** | | Control messages max retry. | +| | | Default: 5 Range: 1 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **congestion-mode** | | Control messages congestion mode (default, slow or aggressive). | +| | | The BNG Blaster supports different congestion modes for the | +| | | reliable delivery of control messages. The default mode is | +| | | described in RFC2661 appendix A (Control Channel Slow Start and | +| | | Congestion Avoidance). The mode slow uses a fixed control window | +| | | size of 1 where aggressive sticks to max permitted based on peer | +| | | received window size. | +| | | Default: default | ++-------------------------------------------+---------------------------------------------------------------------+ +| **hello-interval** | | Set hello interval. | +| | | Default: 30 Range: 1 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-control-priority** | | Set the priority bit in the L2TP header for all non-IP data | +| | | packets (LCP, IPCP, ...). | +| | | Default: false | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-length** | | Set length bit for all data packets. | +| | | Default: false | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-offset** | | Set offset bit with offset zero for all data packets. | +| | | Default: false | ++-------------------------------------------+---------------------------------------------------------------------+ +| **control-tos** | | Set L2TP control traffic (SCCRQ, ICRQ, ...) TOS priority. | +| | | Default: 0 Range: 0 - 255 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-control-tos** | | Set the L2TP tunnel TOS priority (outer IPv4 header) for all | +| | | non-IP data packets (LCP, IPCP, ...). | +| | | Default: 0 Range: 0 - 255 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **lcp-padding** | | Add fixed padding to LCP packets send from LNS. | +| | | Default: 0 Range: 0 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory L2TP LNS server hostname (AVP 7) - - - * - `address` - - Mandatory L2TP server address - - - * - `secret` - - Tunnel secret - - - * - `receive-window-size` - - Control messages receive window size - - 16 - * - `max-retry` - - Control messages max retry - - 5 - * - `congestion-mode` - - Control messages congestion mode - - default - * - `hello-interval` - - Set hello interval - - 30 - * - `data-control-priority` - - Set the priority bit in the L2TP header for all non-IP data packets (LCP, IPCP, ...) - - false - * - `data-length` - - Set length bit for all data packets - - false - * - `data-offset` - - Set offset bit with offset zero for all data packets - - false - * - `control-tos` - - L2TP control traffic (SCCRQ, ICRQ, ...) TOS priority - - 0 - * - `data-control-tos` - - Set the L2TP tunnel TOS priority (outer IPv4 header) for all non-IP data packets (LCP, IPCP, ...) - - 0 - * - `lcp-padding` - - Add fixed padding to LCP packets send from LNS - - 0 - -The BNG Blaster supports different congestion modes for the -reliable delivery of control messages. The ``default`` mode -is described in RFC2661 appendix A (Control Channel Slow Start and -Congestion Avoidance). The mode ``slow`` uses a fixed control window -size of 1 where ``aggressive`` sticks to max permitted based on peer -received window size. diff --git a/docs/_sources/configuration/ospf.rst.txt b/docs/_sources/configuration/ospf.rst.txt index be4b78bf..bba8e3ec 100644 --- a/docs/_sources/configuration/ospf.rst.txt +++ b/docs/_sources/configuration/ospf.rst.txt @@ -2,59 +2,48 @@ { "ospf": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `instance-id` - - OSPF instance identifier - - - * - `version` - - version - - 2 - * - `overload` - - OSPF overload - - false - * - `auth-key` - - OSPF authentication key - - - * - `auth-type` - - OSPF authentication type (simple or md5) - - disabled - * - `hello-interval` - - OSPF hello interval in seconds - - 10 - * - `dead-interval` - - OSPF dead interval in seconds - - 40 - * - `lsa-retry-interval` - - OSPF LSA retry interval in seconds - - 5 - * - `hostname` - - OSPF hostname - - bngblaster - * - `router-id` - - OSPF router identifier - - 10.10.10.10 - * - `router-priority` - - OSPF router priority - - 64 - * - `area` - - OSPF area - - 0.0.0.0 - * - `sr-base` - - OSPF SR base - - - * - `sr-range` - - OSPF SR range - - - * - `sr-node-sid` - - OSPF SR node SID - - - * - `teardown-time` - - OSPF teardown time in seconds - - 5 \ No newline at end of file ++----------------------------------+-------------------------------------------------------------------+ +| Attribute | Description | ++==================================+===================================================================+ +| **instance-id** | | OSPF instance identifier. | ++----------------------------------+-------------------------------------------------------------------+ +| **version** | | OSPF version. | +| | | Default: 2 | ++----------------------------------+-------------------------------------------------------------------+ +| **auth-key** | | OSPF authentication key. | ++----------------------------------+-------------------------------------------------------------------+ +| **auth-type** | | OSPF authentication type (simple or md5). | ++----------------------------------+-------------------------------------------------------------------+ +| **hello-interval** | | OSPF hello interval in seconds. | +| | | Default: 10 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **dead-interval** | | OSPF dead interval in seconds. | +| | | Default: 40 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsa-retry-interval** | | OSPF LSA retry interval in seconds. | +| | | Default: 5 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **hostname** | | OSPF hostname. | +| | | Default: bngblaster | ++----------------------------------+-------------------------------------------------------------------+ +| **router-id** | | OSPF router identifier. | +| | | Default: 10.10.10.10 | ++----------------------------------+-------------------------------------------------------------------+ +| **router-priority** | | OSPF router priority. | +| | | Default: 64 Range: 0 - 255 | ++----------------------------------+-------------------------------------------------------------------+ +| **area** | | OSPF area. | +| | | Default: 0.0.0.0 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-base** | | OSPF SR base. | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-range** | | OSPF SR range. | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-node-sid** | | OSPF SR node SID. | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **teardown-time** | | OSPF teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/ospf_external.rst.txt b/docs/_sources/configuration/ospf_external.rst.txt index 48804481..5c749ecf 100644 --- a/docs/_sources/configuration/ospf_external.rst.txt +++ b/docs/_sources/configuration/ospf_external.rst.txt @@ -2,17 +2,11 @@ { "ospf": { "external": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `purge` - - Automatically purge all external LSA during teardown - - true - * - `mrt-file` - - OSPF MRT file - - \ No newline at end of file ++------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==================+==================================================================+ +| **purge** | | Automatically purge all external LSA during teardown. | +| | | Default: true | ++------------------+------------------------------------------------------------------+ +| **mrt-file** | | OSPF MRT file. | ++------------------+------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/ospf_external_connections.rst.txt b/docs/_sources/configuration/ospf_external_connections.rst.txt index 0b0d2d38..60849146 100644 --- a/docs/_sources/configuration/ospf_external_connections.rst.txt +++ b/docs/_sources/configuration/ospf_external_connections.rst.txt @@ -2,20 +2,19 @@ { "ospf": { "external": { "connections": [] } } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `router-id` - - Mandatory remote router identifier - - - * - `local-ipv4-address` - - Mandatory local IPv4 address (OSPFv2 only) - - - * - `metric` - - Optional interface metric - - 10 \ No newline at end of file ++-----------------------------------+--------------------------------------------------------------------+ +| Attribute | Description | ++===================================+====================================================================+ +| **router-id** | | Mandatory remote router identifier. | ++-----------------------------------+--------------------------------------------------------------------+ +| **metric** | | Optional interface metric. | +| | | Default: 10 Range: 0 - 4294967295 | ++-----------------------------------+--------------------------------------------------------------------+ +| **local-ipv4-address** | | Mandatory local IPv4 address (OSPFv2 only). | ++-----------------------------------+--------------------------------------------------------------------+ +| **local-interface-id** | | Local interface identifier (OSPFv3 only). | +| | | Default: 1 (2, 3, ...) | ++-----------------------------------+--------------------------------------------------------------------+ +| **neighbor-interface-id** | | Remote interface identifier (OSPFv3 only). | +| | | Default: `local-interface-id` | ++-----------------------------------+--------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/ppp.rst.txt b/docs/_sources/configuration/ppp.rst.txt index b805c60c..2fb8800b 100644 --- a/docs/_sources/configuration/ppp.rst.txt +++ b/docs/_sources/configuration/ppp.rst.txt @@ -2,14 +2,9 @@ { "ppp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `mru` - - Define the maximum receive unit proposed via PPP - - 1492 \ No newline at end of file ++-------------+------------------------------------------------------------------+ +| Attribute | Description | ++=============+==================================================================+ +| **mru** | | Define the maximum receive unit proposed via PPP. | +| | | Default: 1492 Range: 1 - 65535 | ++-------------+------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/ppp_authentication.rst.txt b/docs/_sources/configuration/ppp_authentication.rst.txt index 96cddd39..5714ed68 100644 --- a/docs/_sources/configuration/ppp_authentication.rst.txt +++ b/docs/_sources/configuration/ppp_authentication.rst.txt @@ -2,26 +2,22 @@ { "ppp": { "authentication": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `username` - - Username - - user{session-global}@rtbrick.com - * - `password` - - Password - - test - * - `timeout` - - Authentication request timeout in seconds - - 5 - * - `retry` - - Authentication request max retry - - 30 - * - `protocol` - - This value can be set to `PAP` or `CHAP` to reject the other protocol - - allow PAP and CHAP \ No newline at end of file ++----------------+------------------------------------------------------------------+ +| Attribute | Description | ++================+==================================================================+ +| **username** | | Username. | +| | | Default: user{session-global}@rtbrick.com | ++----------------+------------------------------------------------------------------+ +| **password** | | Password. | +| | | Default: test | ++----------------+------------------------------------------------------------------+ +| **timeout** | | Authentication request timeout in seconds. | +| | | Default: 5 | ++----------------+------------------------------------------------------------------+ +| **retry** | | Authentication request max retry. | +| | | Default: 30 | ++----------------+------------------------------------------------------------------+ +| **protocol** | | This value can be set to PAP or CHAP to reject | +| | | the other protocol. | +| | | Default: `allow both PAP and CHAP` | ++----------------+------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/ppp_ip6cp.rst.txt b/docs/_sources/configuration/ppp_ip6cp.rst.txt index 3e74537a..fd6833e1 100644 --- a/docs/_sources/configuration/ppp_ip6cp.rst.txt +++ b/docs/_sources/configuration/ppp_ip6cp.rst.txt @@ -2,20 +2,15 @@ { "ppp": { "ip6cp": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable the IP6CP protocol - - true - * - `conf-request-timeout` - - IP6CP configuration request timeout in seconds - - 5 - * - `conf-request-retry` - - IP6CP configuration request max retry - - 10 \ No newline at end of file ++----------------------------------+-------------------------------------------------------------------+ +| Attribute | Description | ++==================================+===================================================================+ +| **enable** | | This option allows to enable or disable the IP6CP protocol. | +| | | Default: true | ++----------------------------------+-------------------------------------------------------------------+ +| **conf-request-timeout** | | IP6CP configuration request timeout in seconds. | +| | | Default: 5 | ++----------------------------------+-------------------------------------------------------------------+ +| **conf-request-retry** | | IP6CP configuration request max retry. | +| | | Default: 10 | ++----------------------------------+-------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/ppp_ipcp.rst.txt b/docs/_sources/configuration/ppp_ipcp.rst.txt index 3c4cda6b..f7b9f6a4 100644 --- a/docs/_sources/configuration/ppp_ipcp.rst.txt +++ b/docs/_sources/configuration/ppp_ipcp.rst.txt @@ -2,29 +2,25 @@ { "ppp": { "ipcp": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable the IPCP protocol - - true - * - `request-ip` - - Include IP-Address with 0.0.0.0 in initial LCP configuration request - - true - * - `request-dns1` - - Request Primary DNS Server Address (option 129) - - true - * - `request-dns2` - - Request Secondary DNS Server Address (option 131) - - true - * - `conf-request-timeout` - - IPCP configuration request timeout in seconds - - 5 - * - `conf-request-retry` - - IPCP configuration request max retry - - 10 \ No newline at end of file ++--------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==========================+==================================================================+ +| **enable** | | This option allows to enable or disable the IPCP protocol | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **request-ip** | | Include IP-Address with 0.0.0.0 in the initial IPCP | +| | | configuration request. | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **request-dns1** | | Request Primary DNS Server Address (option 129). | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **request-dns2** | | Request Secondary DNS Server Address (option 131). | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **conf-request-timeout** | | IPCP configuration request timeout in seconds | +| | | Default: 5 | ++--------------------------+------------------------------------------------------------------+ +| **conf-request-retry** | | IPCP configuration request max retry. | +| | | Default: 10 | ++--------------------------+------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/configuration/ppp_lcp.rst.txt b/docs/_sources/configuration/ppp_lcp.rst.txt index cc0fa8f8..33680e94 100644 --- a/docs/_sources/configuration/ppp_lcp.rst.txt +++ b/docs/_sources/configuration/ppp_lcp.rst.txt @@ -2,32 +2,27 @@ { "ppp": { "lcp": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `conf-request-timeout` - - LCP configuration request timeout in seconds - - 5 - * - `conf-request-retry` - - LCP configuration request max retry - - 10 - * - `keepalive-interval` - - LCP echo request interval in seconds (0 means disabled) - - 30 - * - `keepalive-retry` - - PPP LCP echo request max retry - - 3 - * - `start-delay` - - PPP LCP initial request delay in milliseconds - - 0 - * - `ignore-vendor-specific` - - Ignore LCP vendor-specific requests - - false - * - `connection-status-message` - - Accept LCP connection status messages - - false \ No newline at end of file ++-------------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++===============================+==================================================================+ +| **conf-request-timeout** | | LCP configuration request timeout in seconds. | +| | | Default: 5 | ++-------------------------------+------------------------------------------------------------------+ +| **conf-request-retry** | | LCP configuration request max retry. | +| | | Default: 10 | ++-------------------------------+------------------------------------------------------------------+ +| **keepalive-interval** | | LCP echo request interval in seconds (0 means disabled). | +| | | Default: 30 | ++-------------------------------+------------------------------------------------------------------+ +| **keepalive-retry** | | PPP LCP echo request max retry. | +| | | Default: 3 | ++-------------------------------+------------------------------------------------------------------+ +| **start-delay** | | PPP LCP initial request delay in milliseconds. | +| | | Default: 0 | ++-------------------------------+------------------------------------------------------------------+ +| **ignore-vendor-specific** | | Ignore LCP vendor-specific requests. | +| | | Default: false | ++-------------------------------+------------------------------------------------------------------+ +| **connection-status-message** | | Accept LCP connection status messages. | +| | | Default: false | ++-------------------------------+------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/pppoe.rst.txt b/docs/_sources/configuration/pppoe.rst.txt index 60c50369..0a4057d9 100644 --- a/docs/_sources/configuration/pppoe.rst.txt +++ b/docs/_sources/configuration/pppoe.rst.txt @@ -2,32 +2,27 @@ { "pppoe": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `session-time` - - Max PPPoE session time in seconds - - 0 (infinity) - * - `reconnect` - - Automatically reconnect sessions if terminated - - false - * - `discovery-timeout` - - PPPoE discovery (PADI and PADR) timeout in seconds - - 5 - * - `discovery-retry` - - PPPoE discovery (PADI and PADR) max retry - - 10 - * - `service-name` - - PPPoE discovery service name - - - * - `host-uniq` - - PPPoE discovery host-uniq - - false - * - `vlan-priority` - - VLAN PBIT for all PPPoE/PPP control traffic - - 0 ++-----------------------+------------------------------------------------------------------+ +| Attribute | Description | ++=======================+==================================================================+ +| **session-time** | | Max PPPoE session time in seconds. | +| | | Default: 0 (infinity) | ++-----------------------+------------------------------------------------------------------+ +| **reconnect** | | Automatically reconnect sessions if terminated. | +| | | Default: false | ++-----------------------+------------------------------------------------------------------+ +| **discovery-timeout** | | PPPoE discovery (PADI and PADR) timeout in seconds. | +| | | Default: 5 | ++-----------------------+------------------------------------------------------------------+ +| **discovery-retry** | | PPPoE discovery (PADI and PADR) max retry. | +| | | Default: 10 | ++-----------------------+------------------------------------------------------------------+ +| **service-name** | | PPPoE discovery service name. | +| | | Default: | ++-----------------------+------------------------------------------------------------------+ +| **host-uniq** | | PPPoE discovery host-uniq. | +| | | Default: false | ++-----------------------+------------------------------------------------------------------+ +| **vlan-priority** | | VLAN PBIT for all PPPoE/PPP control traffic. | +| | | Default: 0 | ++-----------------------+------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/session_traffic.rst.txt b/docs/_sources/configuration/session_traffic.rst.txt index 11bc6387..daa6e845 100644 --- a/docs/_sources/configuration/session_traffic.rst.txt +++ b/docs/_sources/configuration/session_traffic.rst.txt @@ -2,35 +2,34 @@ { "session-traffic": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `autostart` - - Automatically start session traffic after the session is established - - true - * - `ipv4-pps` - - Autogenerate bidirectional IPv4 traffic between a network interface and all sessions - - 0 (disabled) - * - `ipv4-label` - - Send downstream IPv4 traffic with the specified MPLS label - - 0 (unlabeled) - * - `ipv4-address` - - Overwrite network interface IPv4 address - - network interface address - * - `ipv6-pps` - - Generate bidirectional IPv6 traffic between a network interface and all sessions - - 0 (disabled) - * - `ipv6-label` - - Send downstream IPv6 traffic with the specified MPLS label - - 0 (unlabeled) - * - `ipv6-address` - - Overwrite network interface IPv6 address - - network interface address - * - `ipv6pd-pps` - - Generate bidirectional IPv6PD (delegated prefix) traffic between a network interface and all sessions - - 0 (disabled) ++------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==================+==================================================================+ +| **autostart** | | Automatically start session traffic as soon as the | +| | | corresponding session is established. | +| | | Default: true | ++------------------+------------------------------------------------------------------+ +| **ipv4-pps** | | Autogenerate bidirectional IPv4 traffic | +| | | between a network interface and all sessions. | +| | | Default: 0 (disabled) | ++------------------+------------------------------------------------------------------+ +| **ipv4-label** | | Send downstream IPv4 traffic with the specified MPLS label. | +| | | Default: 0 (unlabeled) | ++------------------+------------------------------------------------------------------+ +| **ipv4-address** | | Overwrite network interface IPv4 address. | +| | | Default: `network interface address` | ++------------------+------------------------------------------------------------------+ +| **ipv6-pps** | | Generate bidirectional IPv6 traffic | +| | | between a network interface and all sessions. | +| | | Default: 0 (disabled) | ++------------------+------------------------------------------------------------------+ +| **ipv6-label** | | Send downstream IPv6 traffic with the specified MPLS label. | +| | | Default: 0 (unlabeled) | ++------------------+------------------------------------------------------------------+ +| **ipv6-address** | | Overwrite network interface IPv6 address | +| | | Default: `network interface address` | ++------------------+------------------------------------------------------------------+ +| **ipv6pd-pps** | | Generate bidirectional IPv6PD (delegated prefix) traffic | +| | | between a network interface and all sessions. | +| | | Default: 0 (disabled) | ++------------------+------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/sessions.rst.txt b/docs/_sources/configuration/sessions.rst.txt index feb8f97f..d92f0953 100644 --- a/docs/_sources/configuration/sessions.rst.txt +++ b/docs/_sources/configuration/sessions.rst.txt @@ -2,55 +2,48 @@ { "sessions": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `count` - - Sessions (PPPoE + IPoE) - - 1 - * - `max-outstanding` - - Max outstanding sessions - - 800 - * - `start-rate` - - Setup request rate in sessions per second - - 400 - * - `stop-rate` - - Teardown request rate in sessions per second - - 400 - * - `iterate-vlan-outer` - - Iterate on outer VLAN first - - false - * - `start-delay` - - Wait N seconds after all interfaces are resolved before starting sessions - - 0 - * - `reconnect` - - Automatically reconnect sessions (PPPoE and IPoE) if terminated - - false - * - `autostart` - - Start sessions automatically - - true - * - `monkey-autostart` - - Start monkey testing automatically if enabled - - true - -Per default, sessions are created by iteration over the inner VLAN range first and -outer VLAN second. Which can be changed by ``iterate-vlan-outer`` to iterate -on the outer VLAN first and inner VLAN second. - -Therefore the following configuration generates the sessions on VLAN (outer:inner) -1:3, 1:4, 2:3, 2:4 per default or alternative 1:3, 2:3, 1:4, 2:4 with -``iterate-vlan-outer`` enabled. - -.. code-block:: json - - { - "outer-vlan-min": 1, - "outer-vlan-max": 2, - "inner-vlan-min": 3, - "inner-vlan-max": 4 - } ++--------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==========================+==================================================================+ +| **count** | | Sessions (PPPoE + IPoE). | +| | | Default: 1 | ++--------------------------+------------------------------------------------------------------+ +| **max-outstanding** | | Max outstanding sessions. | +| | | Default: 800 | ++--------------------------+------------------------------------------------------------------+ +| **start-rate** | | Setup request rate in sessions per second. | +| | | Default: 400 | ++--------------------------+------------------------------------------------------------------+ +| **stop-rate** | | Teardown request rate in sessions per second. | +| | | Default: 400 | ++--------------------------+------------------------------------------------------------------+ +| **start-delay** | | Wait N seconds after all interfaces are resolved | +| | | before starting sessions. | +| | | Default: 0 | ++--------------------------+------------------------------------------------------------------+ +| **reconnect** | | Automatically reconnect sessions (PPPoE and IPoE). | +| | | Default: false | ++--------------------------+------------------------------------------------------------------+ +| **autostart** | | Start sessions automatically. | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **monkey-autostart** | | Start monkey testing automatically if enabled. | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **iterate-vlan-outer** | | Iterate on outer VLAN first. | +| | | Per default, sessions are created by iteration over the | +| | | inner VLAN range first and outer VLAN second. Which can be | +| | | changed with this option to iterate on the outer VLAN first | +| | | and inner VLAN second. | +| | | | +| | | Assuming the following configuration: | +| | | "outer-vlan-min": 1 | +| | | "outer-vlan-max": 2 | +| | | "inner-vlan-min": 3 | +| | | "inner-vlan-max": 4 | +| | | This generates the sessions on VLAN (outer:inner) | +| | | 1:3, 1:4, 2:3, 2:4 per default or alternative | +| | | 1:3, 2:3, 1:4, 2:4 with this option enabled. | +| | | | +| | | Default: false | ++--------------------------+------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/streams.rst.txt b/docs/_sources/configuration/streams.rst.txt index fa7697ea..3281eb0f 100644 --- a/docs/_sources/configuration/streams.rst.txt +++ b/docs/_sources/configuration/streams.rst.txt @@ -2,122 +2,110 @@ { "streams": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory stream name - - - * - `stream-group-id` - - Stream group identifier - - 0 (raw) - * - `type` - - Mandatory stream type (`ipv4`, `ipv6` or `ipv6pd`) - - - * - `direction` - - Mandatory stream direction (`upstream`, `downstream` or `both`) - - `both` - * - `source-port` - - Overwrite the default source port - - 65056 - * - `destination-port` - - Overwrite the default destination port - - 65056 - * - `ipv4-df` - - Set IPv4 DF bit - - true - * - `priority` - - IPv4 TOS / IPv6 TC - - 0 - * - `vlan-priority` - - VLAN priority - - 0 - * - `length` - - Layer 3 (IP header + payload) traffic length (76 - 9000) - - 128 - * - `pps` - - Stream traffic rate in packets per second - - 1 - * - `bps` - - Stream traffic rate in bits per second (layer 3) - - - * - `a10nsp-interface` - - Select the corresponding A10NSP interface for this stream - - - * - `network-interface` - - Select the corresponding network interface for this stream - - - * - `network-ipv4-address` - - Overwrite network interface IPv4 address - - - * - `network-ipv6-address` - - Overwrite network interface IPv6 address - - - * - `destination-ipv4-address` - - Overwrite the IPv4 destination address - - - * - `destination-ipv6-address` - - Overwrite the IPv6 destination address - - - * - `access-ipv4-source-address` - - Overwrite the access IPv4 source address (client) - - - * - `access-ipv6-source-address` - - Overwrite the access IPv6 source address (client) - - - * - `max-packets` - - Send a burst of N packets and stop - - 0 (infinity) - * - `start-delay` - - Wait N seconds after the session is established before starting - - 0 - * - `tx-label1` - - MPLS send (TX) label (outer label) - - - * - `tx-label1-exp` - - EXP bits of the first label (outer label) - - 0 - * - `tx-label1-ttl` - - TTL of the first label (outer label) - - 255 - * - `tx-label2` - - MPLS send (TX) label (inner label) - - - * - `tx-label2-exp` - - EXP bits of the second label (inner label) - - 0 - * - `tx-label2-ttl` - - TTL of the second label (inner label) - - 255 - * - `rx-label1` - - Expected receive MPLS label (outer label) - - - * - `rx-label2` - - Expected receive MPLS label (inner label) - - - * - `ldp-ipv4-lookup-address` - - Dynamically resolve outer label - - - * - `ldp-ipv6-lookup-address` - - Dynamically resolve outer label - - - -For L2TP downstream traffic, the IPv4 TOS is applied to the outer IPv4 -and inner IPv4 header. - -The ``pps`` option supports also float numbers like 0.1, or 2.5 PPS and has -priority over ``bps`` where the second is only a helper to calculate the ``pps`` -based on given ``bps`` and ``length``. The resulting rate in ``bps`` is the -layer 3 rate because ``length`` is also the layer 3 length (IP header + payload). -It is also supported to put the capital letters ``K`` (Kilo), ``M`` (Mega) -or ``G`` (Giga) in front of ``bps`` for better readability. -For example ``"Gbps": 1`` which is equal to ``"bps": 1000000000``. - -The options ``access-ipv4-source-address`` and ``access-ipv6-source-address`` -can be used to test the BNG RPF functionality with traffic sent from source addresses -different than those assigned to the client. ++--------------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++--------------------------------+------------------------------------------------------------------+ +| **name** | | Mandatory stream name. | ++--------------------------------+------------------------------------------------------------------+ +| **stream-group-id** | | Stream group identifier. | +| | | Default: 0 (raw) | ++--------------------------------+------------------------------------------------------------------+ +| **type** | | Mandatory stream type (`ipv4`, `ipv6`, or `ipv6pd`). | ++--------------------------------+------------------------------------------------------------------+ +| **direction** | | Stream direction (`upstream`, `downstream`, or `both`). | +| | | Default: `both` | ++--------------------------------+------------------------------------------------------------------+ +| **source-port** | | Overwrite the default source port. | +| | | Default: 65056 Range: 0 - 65535 | ++--------------------------------+------------------------------------------------------------------+ +| **destination-port** | | Overwrite the default destination port. | +| | | Default: 65056 Range: 0 - 65535 | ++--------------------------------+------------------------------------------------------------------+ +| **ipv4-df** | | Set IPv4 DF bit. | +| | | Default: true | ++--------------------------------+------------------------------------------------------------------+ +| **priority** | | IPv4 TOS / IPv6 TC. | +| | | For L2TP downstream traffic, the IPv4 TOS is applied | +| | | to the outer IPv4 and inner IPv4 header. | +| | | Default: 0 Range: 0 - 255 | ++--------------------------------+------------------------------------------------------------------+ +| **vlan-priority** | | VLAN priority. | +| | | Default: 0 Range: 0 - 7 | ++--------------------------------+------------------------------------------------------------------+ +| **length** | | Layer 3 (IP header + payload) traffic length. | +| | | Default: 128 Range: 76 - 9000 | ++--------------------------------+------------------------------------------------------------------+ +| **pps** | | Stream traffic rate in packets per second. | +| | | This value supports also float numbers like 0.1 or 2.5. | +| | | In example 0.1 means one packet every 10 seconds. | +| | | Default: 1.0 | ++--------------------------------+------------------------------------------------------------------+ +| **bps** | | Stream traffic rate in bits per second (layer 3). | +| | | PPS has priority over bps where the second is only a helper | +| | | to calculate the actual PPS based on given bps and length. | +| | | The resulting rate in bps is the layer 3 rate because length | +| | | is also the layer 3 length (IP header + payload). | +| | | It is also supported to put the capital letters K (Kilo), | +| | | M (Mega) or G (Giga) in front of bps for better readability. | +| | | For example, ``"Gbps": 1`` | +| | | which is equal to ``"bps": 1000000000``. | ++--------------------------------+------------------------------------------------------------------+ +| **a10nsp-interface** | | Select the corresponding A10NSP interface for this stream. | ++--------------------------------+------------------------------------------------------------------+ +| **network-interface** | | Select the corresponding network interface for this stream. | ++--------------------------------+------------------------------------------------------------------+ +| **network-ipv4-address** | | Overwrite network interface IPv4 address. | ++--------------------------------+------------------------------------------------------------------+ +| **network-ipv6-address** | | Overwrite network interface IPv6 address. | ++--------------------------------+------------------------------------------------------------------+ +| **destination-ipv4-address** | | Overwrite the IPv4 destination address. | ++--------------------------------+------------------------------------------------------------------+ +| **destination-ipv6-address** | | Overwrite the IPv6 destination address. | ++--------------------------------+------------------------------------------------------------------+ +| **access-ipv4-source-address** | | Overwrite the access IPv4 source address (client). | +| | | This option can be used to test the BNG RPF functionality | +| | | with traffic sent from source addresses different than those | +| | | assigned to the client. | ++--------------------------------+------------------------------------------------------------------+ +| **access-ipv6-source-address** | | Overwrite the access IPv6 source address (client). | +| | | This option can be used to test the BNG RPF functionality | +| | | with traffic sent from source addresses different than those | +| | | assigned to the client. | ++--------------------------------+------------------------------------------------------------------+ +| **max-packets** | | Send a burst of N packets and stop. | +| | | Default: 0 (infinity) | ++--------------------------------+------------------------------------------------------------------+ +| **start-delay** | | Wait N seconds after the session is established | +| | | before starting the traffic stream. | +| | | Default: 0 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label1** | | MPLS send (TX) label (outer label). | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label1-exp** | | EXP bits of the first label (outer label). | +| | | Default: 0 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label1-ttl** | | TTL of the first label (outer label). | +| | | Default: 255 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label2** | | MPLS send (TX) label (inner label). | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label2-exp** | | EXP bits of the second label (inner label). | +| | | Default: 0 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label2-ttl** | | TTL of the second label (inner label). | +| | | Default: 255 | ++--------------------------------+------------------------------------------------------------------+ +| **rx-label1** | | Expected receive MPLS label (outer label). | ++--------------------------------+------------------------------------------------------------------+ +| **rx-label2** | | Expected receive MPLS label (inner label). | ++--------------------------------+------------------------------------------------------------------+ +| **ldp-ipv4-lookup-address** | | Dynamically resolve outer label. | ++--------------------------------+------------------------------------------------------------------+ +| **ldp-ipv6-lookup-address** | | Dynamically resolve outer label. | ++--------------------------------+------------------------------------------------------------------+ +| **nat** | | Enable NAT support. | +| | | Default: false | ++--------------------------------+------------------------------------------------------------------+ +| **raw-tcp** | | Send RAW TCP traffic (UDP-like traffic with TCP header). | +| | | Default: false | ++--------------------------------+------------------------------------------------------------------+ diff --git a/docs/_sources/configuration/traffic.rst.txt b/docs/_sources/configuration/traffic.rst.txt index 8cf7bcd8..bbff066c 100644 --- a/docs/_sources/configuration/traffic.rst.txt +++ b/docs/_sources/configuration/traffic.rst.txt @@ -2,27 +2,21 @@ { "traffic": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `autostart` - - Automatically start traffic - - true - * - `stop-verified` - - Automatically stop traffic streams if verified - - false - * - `max-burst` - - Stream flow burst size in packets - - 16 - * - `stream-rate-calculation` - - Enable stream rate calculation - - true - -The option ``stream-rate-calculation`` should be set to -false if massive streams (> 1M) are defined but per-stream -live rate statistics are not required. \ No newline at end of file ++-----------------------------+--------------------------------------------------------+ +| Attribute | Description | ++=============================+========================================================+ +| **autostart** | | Automatically start traffic. | +| | | Default: true | ++-----------------------------+--------------------------------------------------------+ +| **stop-verified** | | Automatically stop traffic streams if verified. | +| | | Default: false | ++-----------------------------+--------------------------------------------------------+ +| **max-burst** | | Stream flow burst size in packets. | +| | | Default: 16 | ++-----------------------------+--------------------------------------------------------+ +| **stream-rate-calculation** | | Enable stream rate calculation. | +| | | This option should be set to false if massive | +| | | streams (e.g. more than 1M) are defined but | +| | | per-stream live rate statistics are not required. | +| | | Default: true | ++-----------------------------+--------------------------------------------------------+ \ No newline at end of file diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt index 9845cffe..0f90b09a 100644 --- a/docs/_sources/index.rst.txt +++ b/docs/_sources/index.rst.txt @@ -99,6 +99,7 @@ Contents routing/index streams http + nat reports configuration/index api/index diff --git a/docs/_sources/nat.rst.txt b/docs/_sources/nat.rst.txt new file mode 100644 index 00000000..081faf97 --- /dev/null +++ b/docs/_sources/nat.rst.txt @@ -0,0 +1,343 @@ +.. _nat: + +NAT / CGNAT +=========== + +NAT, or Network Address Translation, is a technology used in +computer networking to enable multiple devices on a local +network to share a single public IP address for connecting to +the internet. NAT works by mapping private IP addresses used +within a local network to a single public IP address when +communicating with external networks, such as the internet. +This allows a single public IP address to serve as an entry +point for multiple devices within the private network, +effectively concealing the internal network structure. + +Carrier-Grade NAT (CGNAT) is an extension of NAT specifically +designed for large-scale service providers, such as internet +service providers (ISPs) and telecommunications companies. +It is used to address the increasing scarcity of IPv4 addresses, +as more and more devices are connected to the internet. + +The BNG Blaster incorporates a comprehensive set of functionalities +tailored to NAT, with a particular focus on CGNAT testing. These +features are purpose-built to address the specific requirements and +complexities associated with Carrier-Grade Network Address Translation. + +The tool offers a range of capabilities that are instrumental in assessing +and validating the performance and functionality of CGNAT systems. +This includes the ability to simulate and analyze large-scale address +translation scenarios, ensuring that the NAT infrastructure effectively +handles the demands of a multitude of users sharing a limited pool of public +IP addresses. Furthermore, the BNG Blaster's CGNAT testing features enable the +emulation of various network conditions and scenarios, helping service providers +and network operators assess the impact of CGNAT on user experiences and address +any potential issues. + +In addition to CGNAT testing, the BNG Blaster's NAT-related features encompass +a broad spectrum of testing and evaluation options, ensuring that Network Address +Translation mechanisms, whether they be traditional NAT or CGNAT, are rigorously +examined for performance, scalability, and reliability. This robust suite of tools +makes the BNG Blaster an invaluable resource for network professionals working +with NAT technologies in their infrastructure. + +NAT Features +------------ + +Reverse Flow +~~~~~~~~~~~~ +For all bidirectional streams ("direction": "both"), the reverse (other direction) +stream flow-id is now displayed which allows for more efficient analysis of +bidirectional flows. + +.. code-block:: none + + $ sudo bngblaster-cli run.sock stream-info flow-id 1 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + … + "flow-id": 1, + … + "reverse-flow-id": 2 + } + } + $ sudo bngblaster-cli run.sock stream-info flow-id 2 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + … + "flow-id": 2, + … + "reverse-flow-id": 1 + } + } + +Flow Addresses +~~~~~~~~~~~~~~ +The configured or dynamically resolved source and destination +address and port is now shown with stream-info command. + +.. code-block:: none + + $ sudo bngblaster-cli run.sock stream-info flow-id 1 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + "type": "unicast", + "sub-type": "ipv4", + "direction": "downstream", + "source-address": "10.0.0.1", + "source-port": 65056, + "destination-address": "192.0.2.8", + "destination-port": 65056, + "protocol": "udp", # udp or tcp + … + } + } + + +NAT Enabled Streams +~~~~~~~~~~~~~~~~~~~ +A new option called **nat** is added to the stream configuraton. +This option is supported for bidirectional and upstream streams only, +meaning it is not supported for downstream-only streams, as those can't +pass a NAT gateway. + +For bidirectional streams, the downstream flow waits until first upstream +packet has been received to learn the translated source address and port +which have to be used as destionation for this flow. + +.. code-block:: json + + { + "streams": [ + { + "name": "UDP1", + "stream-group-id": 1, + "type": "ipv4", + "direction": "both", + "pps": 1, + "nat": true, + "network-ipv4-address": "10.0.0.1" + }, + { + "name": "UDP2", + "stream-group-id": 1, + "type": "ipv4", + "direction": "upstream", + "pps": 1, + "nat": true, + "network-ipv4-address": "10.0.0.2" + } + ] + } + +The stream in the upstream direction (from the client) will also record the +received source IPv4 address and port, meaning the address and port assigned by the +NAT gateway. + +.. code-block:: none + + $ sudo bngblaster-cli run.sock stream-info flow-id 1 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + "type": "unicast", + "sub-type": "ipv4", + "direction": "upstream", + "source-address": "100.64.0.2", + "source-port": 65056, + "destination-address": "10.0.0.1", + "destination-port": 65056, + "protocol": "udp", # udp or tcp + … + "rx-source-ip": "192.0.2.8", + "rx-source-port": 48523, + … + "session-id": 1, + "reverse-flow-id": 2 + } + } + + +TCP RAW Streams +~~~~~~~~~~~~~~~ +A new option called **raw-tcp** is added to the stream configuraton. +If enabled, UDP-like traffic with a constant rate is sent using a +static (RAW) TCP header. + +.. code-block:: json + + { + "streams": [ + { + "name": "TCP1", + "stream-group-id": 1, + "type": "ipv4", + "direction": "both", + "pps": 1, + "raw-tcp": true, + "network-ipv4-address": "10.0.0.1" + } + ] + } + +This option can be used stand-alone to verify firewall filters or together +with the new NAT option to verify NAT TCP streams. + +For now, TCP flags (SYN, …) are statically set to SYN but this could be adopted if needed. + +HTTP NAT Extension +~~~~~~~~~~~~~~~~~~ +The existing :ref:`HTTP client/server ` was also enhanced for NAT usage. +The actual configuration is uncahnged but the HTTP server will now return the +received client IP address and port in dedicated HTTP headers as shown below +where X-Client-Ip and Port shows the IP address and port assigned from the NAT gateway. + +.. code-block:: json + + { + "interfaces": { + "capture-include-streams": true, + "network": { + "interface": "enp6s21", + "address": "192.0.2.254/24", + "gateway": "192.0.2.1" + }, + "access": [ + { + "interface": "enp6s20", + "type": "ipoe", + "address": "100.64.0.2", + "address-iter": "0.0.0.1", + "gateway": "100.64.0.1", + "gateway-iter": "0.0.0.0", + "dhcp": false, + "ipv6": false, + "http-client-group-id": 1 + } + ] + }, + "http-client": [ + { + "http-client-group-id": 1, + "name": "C1", + "destination-ipv4-address": "192.0.2.254", + "destination-port": 80, + "url": "blaster.test.de" + }, + { + "http-client-group-id": 1, + "name": "C2", + "destination-ipv4-address": "192.0.2.254", + "destination-port": 80, + "url": "blaster.test.de" + } + ], + "http-server": [ + { + "name": "SERVER", + "ipv4-address": "192.0.2.254", + "port": 80, + "network-interface": "enp6s21" + } + ] + } + +.. code-block:: none + + $ sudo bngblaster-cli run.sock http-clients + { + "status": "ok", + "code": 200, + "http-clients": [ + { + "session-id": 1, + "http-client-group-id": 1, + "name": "C2", + "url": "blaster.test.de", + "destination-address": "192.0.2.254", + "destination-port": 80, + "state": "closed", + "response": { + "minor-version": 1, + "status": 200, + "msg": "OK\r\nServer: BNG-Blaster\r\nX-Client-Ip: 192.0.2.5\r\nX-Client-Port: 63122\r\n\r\n", + "headers": [ + { + "name": "Server", + "value": "BNG-Blaster" + }, + { + "name": "X-Client-Ip", + "value": "192.0.2.5" + }, + { + "name": "X-Client-Port", + "value": "63122" + } + ] + } + }, + { + "session-id": 1, + "http-client-group-id": 1, + "name": "C1", + "url": "blaster.test.de", + "destination-address": "192.0.2.254", + "destination-port": 80, + "state": "closed", + "response": { + "minor-version": 1, + "status": 200, + "msg": "OK\r\nServer: BNG-Blaster\r\nX-Client-Ip: 192.0.2.5\r\nX-Client-Port: 63121\r\n\r\n", + "headers": [ + { + "name": "Server", + "value": "BNG-Blaster" + }, + { + "name": "X-Client-Ip", + "value": "192.0.2.5" + }, + { + "name": "X-Client-Port", + "value": "63121" + } + ] + } + } + ] + } + +Unfortunately HTTP client/server scaling is limited, therefore raw-TCP +streams is the better option to test NAT on scale. + +Scaling +~~~~~~~ +The number of UDP and raw-TCP traffic streams can be further expanded by +leveraging the following configuration options. + +One option to increase scaling is to disable per stream live rate calculation +which is typically not needed for millions of streams. + +.. code-block:: json + + { "traffic": { "stream-rate-calculation": false } } + +All traffic stats are still working but the live rate is not calculated. + +Another option is to setup the traffic streams with a rate of 0.1 PPS, +meaning one packet every 10 seconds. This is enough to keep NAT translation +active but allows 1M streams with only 100K PPS. + +See also :ref:`performance guide ` for further optimiisations. \ No newline at end of file diff --git a/docs/_sources/routing/index.rst.txt b/docs/_sources/routing/index.rst.txt index 07b1b4d2..adf9ee51 100644 --- a/docs/_sources/routing/index.rst.txt +++ b/docs/_sources/routing/index.rst.txt @@ -1,9 +1,9 @@ Routing Protocols ================= -There are various routing protocols supported like ISIS and BGP. -So you can use the BNG Blaster for end-to-end BNG and non-BNG -router testing. +Multiple routing protocols are available, including ISIS and BGP. +To perform comprehensive end-to-end testing for both BNG and +non-BNG routers, you can use the BNG Blaster. .. toctree:: :maxdepth: 1 diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000..58524532 --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,5 @@ +table { + width: 100%; + max-width: 100%; + table-layout: auto; +} \ No newline at end of file diff --git a/docs/access/index.html b/docs/access/index.html index c25d789e..8f4c6260 100644 --- a/docs/access/index.html +++ b/docs/access/index.html @@ -8,6 +8,7 @@ + @@ -54,6 +55,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -89,6 +91,50 @@

    Access Protocols

    +

    A BNG, or Broadband Network Gateway, is a network device that +connects customer premises equipment to the service provider’s +broadband network, managing user authentication, traffic routing, +and quality of service (QoS) for internet services.

    +

    The BNG Blaster is equipped with versatile support for various +access protocols, allowing the creation of seubscriber sessions, +each of which can comprise multiple protocols. For instance, in the +case of dual-stack IPoE sessions, these are formed by a combination of +DHCPv4, DHCPv6, as well as ARP/ND protocols. Every session is +defined by an access interface function +and identified by a globally unique session-id, with the +numbering starting at 1 and increasing sequentially for each +new session established. Furthermore, you have the flexibility +to group multiple sessions together using the optional +session-group-id, which enables the application of commands +commands to an entire group of sessions simultaneously.

    +
    {
    +    "access": [
    +        {
    +            "interface": "eth1",
    +            "type": "pppoe",
    +            "session-group-id": 1,
    +            "username": "even@rtbrick.com",
    +            "outer-vlan-min": 1000,
    +            "outer-vlan-max": 1998,
    +            "outer-vlan-step": 2,
    +            "inner-vlan": 7
    +        },
    +        {
    +            "interface": "eth1",
    +            "type": "pppoe",
    +            "session-group-id": 2,
    +            "username": "odd@rtbrick.com",
    +            "outer-vlan-min": 1001,
    +            "outer-vlan-max": 1999,
    +            "outer-vlan-step": 2,
    +            "inner-vlan": 7
    +        },
    +    ]
    +}
    +
    +
    +

    It is also possible to assign multiple access interface +sections to a single session group.

    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable DHCPv6

    true

    enable

    +
    This option allows enabling or disabling DHCPv6.
    +
    Default: true
    +
    +

    ldra

    This option allows to enable or disable LDRA

    false

    ia-na

    +
    This option allows enabling or disabling DHCPv6 IA_NA.
    +
    Default: true
    +
    +

    ia-na

    This option allows to enable or disable DHCPv6 IA_NA

    true

    ia-pd

    +
    This option allows enabling or disabling DHCPv6 IA_PD.
    +
    Default: true
    +
    +

    ia-pd

    This option allows to enable or disable DHCPv6 IA_PD

    true

    rapid-commit

    +
    DHCPv6 rapid commit (2-way handshake).
    +
    Default: true
    +
    +

    rapid-commit

    DHCPv6 rapid commit (2-way handshake)

    true

    timeout

    +
    DHCPv6 timeout in seconds.
    +
    Default: 5
    +
    +

    timeout

    DHCPv6 timeout in seconds

    5

    retry

    +
    DHCPv6 retry.
    +
    Default: 10
    +
    +

    retry

    DHCPv6 retry

    10

    access-line

    +
    Add access-line attributes like Agent-Remote/Circuit-Id.
    +
    Default: true
    +
    +

    access-line

    Add access-line attributes like Agent-Remote/Circuit-Id

    true

    ldra

    +
    This option allows enabling or disabling LDRA.
    +
    DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in
    + +
    Adding access-line information like Agent-Remote-Id or
    +
    Agent-Circuit-Id should be used with LDRA enabled only.
    +
    Default: false
    +
    +
    -

    DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in -[RFC6221](https://datatracker.ietf.org/doc/html/rfc6221). Adding -access-line information like Agent-Remote-Id or Agent-Circuit-Id -is allowed with LDRA enabled only.

    diff --git a/docs/access/l2bsa.html b/docs/access/l2bsa.html index d787c275..c6f2016f 100644 --- a/docs/access/l2bsa.html +++ b/docs/access/l2bsa.html @@ -8,6 +8,7 @@ + @@ -54,6 +55,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -129,11 +131,6 @@ as the intermediate agent functionality.

    The BNG Blaster A10NSP interface emulates such a layer two provider interface. This interface type accepts all DHCPv4 and PPPoE sessions were received to verify forwarding and header enrichment.

    -
    -

    Note

    -

    It is also planned to emulate a lightweight DHCPv6 server -to verify IPv6 forwarding and header enrichment for IPoE.

    -

    Following a basic PPPoE/A10NSP configuration example which is detailed explained in the configuration section.

    {
    diff --git a/docs/access/l2tp.html b/docs/access/l2tp.html
    index fa4f03e2..94c8bf1c 100644
    --- a/docs/access/l2tp.html
    +++ b/docs/access/l2tp.html
    @@ -8,6 +8,7 @@
           
           
           
    +      
       
             
             
    @@ -60,6 +61,7 @@
     
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -354,79 +356,115 @@

    Configuration
    { "l2tp-server": [] }
     

    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory L2TP LNS server hostname (AVP 7)

    name

    +
    Mandatory L2TP LNS server hostname (AVP 7)
    +
    +

    address

    Mandatory L2TP server address

    address

    +
    Mandatory L2TP server address.
    +
    +

    secret

    Tunnel secret

    secret

    +
    Tunnel secret.
    +
    +

    receive-window-size

    Control messages receive window size

    16

    receive-window-size

    +
    Control messages receive window size.
    +
    Default: 16 Range: 1 - 65535
    +
    +

    max-retry

    Control messages max retry

    5

    max-retry

    +
    Control messages max retry.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    congestion-mode

    Control messages congestion mode

    default

    congestion-mode

    +
    Control messages congestion mode (default, slow or aggressive).
    +
    The BNG Blaster supports different congestion modes for the
    +
    reliable delivery of control messages. The default mode is
    +
    described in RFC2661 appendix A (Control Channel Slow Start and
    +
    Congestion Avoidance). The mode slow uses a fixed control window
    +
    size of 1 where aggressive sticks to max permitted based on peer
    +
    received window size.
    +
    Default: default
    +
    +

    hello-interval

    Set hello interval

    30

    hello-interval

    +
    Set hello interval.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    data-control-priority

    Set the priority bit in the L2TP header for all non-IP data packets (LCP, IPCP, …)

    false

    data-control-priority

    +
    Set the priority bit in the L2TP header for all non-IP data
    +
    packets (LCP, IPCP, …).
    +
    Default: false
    +
    +

    data-length

    Set length bit for all data packets

    false

    data-length

    +
    Set length bit for all data packets.
    +
    Default: false
    +
    +

    data-offset

    Set offset bit with offset zero for all data packets

    false

    data-offset

    +
    Set offset bit with offset zero for all data packets.
    +
    Default: false
    +
    +

    control-tos

    L2TP control traffic (SCCRQ, ICRQ, …) TOS priority

    0

    control-tos

    +
    Set L2TP control traffic (SCCRQ, ICRQ, …) TOS priority.
    +
    Default: 0 Range: 0 - 255
    +
    +

    data-control-tos

    Set the L2TP tunnel TOS priority (outer IPv4 header) for all non-IP data packets (LCP, IPCP, …)

    0

    data-control-tos

    +
    Set the L2TP tunnel TOS priority (outer IPv4 header) for all
    +
    non-IP data packets (LCP, IPCP, …).
    +
    Default: 0 Range: 0 - 255
    +
    +

    lcp-padding

    Add fixed padding to LCP packets send from LNS

    0

    lcp-padding

    +
    Add fixed padding to LCP packets send from LNS.
    +
    Default: 0 Range: 0 - 65535
    +
    +
    -

    The BNG Blaster supports different congestion modes for the -reliable delivery of control messages. The default mode -is described in RFC2661 appendix A (Control Channel Slow Start and -Congestion Avoidance). The mode slow uses a fixed control window -size of 1 where aggressive sticks to max permitted based on peer -received window size.

    Variable Data Header

    diff --git a/docs/access/li.html b/docs/access/li.html index f18696a4..54f633c7 100644 --- a/docs/access/li.html +++ b/docs/access/li.html @@ -8,6 +8,7 @@ + @@ -54,6 +55,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/access/monkey.html b/docs/access/monkey.html index e263019c..de3a5bdd 100644 --- a/docs/access/monkey.html +++ b/docs/access/monkey.html @@ -8,6 +8,7 @@ + @@ -54,6 +55,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/access/multicast.html b/docs/access/multicast.html index b88b9d22..f4e68a8e 100644 --- a/docs/access/multicast.html +++ b/docs/access/multicast.html @@ -8,6 +8,7 @@ + @@ -60,6 +61,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -274,113 +276,170 @@

    IPTV Zapping Test
    { "igmp": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    autostart

    Automatically join after the session is established

    true

    autostart

    +
    Automatically join after the session is established.
    +
    Default: true
    +
    +

    version

    IGMP protocol version (1, 2 or 3)

    3

    start-delay

    +
    Delay between session established and initial IGMP join in seconds.
    +
    Default: 1
    +
    +

    combined-leave-join

    Combine leave and join records within a single IGMPv3 report

    true

    version

    +
    IGMP protocol version (1, 2, or 3).
    +
    Default: 3
    +
    +

    start-delay

    Delay between session established and initial IGMP join in seconds

    1

    combined-leave-join

    +
    Per default, join and leave requests are sent using dedicated
    +
    reports. This option allows the combination of leave and join
    +
    records within a single IGMPv3 report using multiple group records.
    +
    This option applies to the IGMP version 3 only!
    +
    Default: true
    +
    +

    group

    Multicast group base address (e.g. 239.0.0.1)

    0.0.0.0 (disabled)

    group

    +
    Multicast group base address (e.g. 239.0.0.1).
    +
    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):
    +
    1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3, 1.1.1.1,239.0.0.5
    +
    Default: 0.0.0.0 (disabled)
    +
    +

    group-iter

    Multicast group iterator

    0.0.0.1

    group-iter

    +
    Multicast group iterator.
    +
    Default: 0.0.0.1
    +
    +

    group-count

    Multicast group count

    1

    group-count

    +
    Multicast group count.
    +
    Default: 1
    +
    +

    source

    Multicast source address (e.g. 1.1.1.1)

    0.0.0.0 (ASM)

    source

    +
    Multicast source address (e.g. 1.1.1.1).
    +
    Default: 0.0.0.0 (ASM)
    +
    +

    zapping-interval

    IGMP channel zapping interval in seconds

    0 (disabled)

    zapping-interval

    +
    IGMP channel zapping interval in seconds.
    +
    Default: 0 (disabled)
    +
    +

    zapping-count

    Define the number of channel changes before starting the view duration

    0 (disabled)

    zapping-count

    +
    Define the number of channel changes before starting
    +
    the view duration.
    +
    Default: 0 (disabled)
    +
    +

    zapping-wait

    Wait for multicast traffic before zapping to the next channel

    false

    zapping-wait

    +
    Wait for multicast traffic before zapping to the next channel.
    +
    Default: false
    +
    +

    view-duration

    Define the view duration in seconds

    0 (disabled)

    view-duration

    +
    Define the view duration in seconds.
    +
    Default: 0 (disabled)
    +
    +

    send-multicast-traffic

    Generate multicast traffic

    false

    max-join-delay

    +
    Maximum join delay in milliseconds.
    +
    If configured, the final report includes how often
    +
    the measured join delay is above this threshold.
    +
    Default: 0 (disabled)
    +
    +

    multicast-traffic-autostart

    Automatically start multicast traffic

    true

    send-multicast-traffic

    +
    If enabled, 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.
    +
    Default: false
    +
    +

    multicast-traffic-length

    Multicast traffic IP length

    76

    multicast-traffic-autostart

    +
    Automatically start multicast traffic.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: true
    +
    +

    multicast-traffic-tos

    Multicast traffic TOS priority

    0

    multicast-traffic-length

    +
    Multicast traffic IP length.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: 76
    +
    +

    multicast-traffic-pps

    Multicast traffic PPS per group

    1000

    multicast-traffic-tos

    +
    Multicast traffic TOS priority.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: 0
    +
    +

    network-interface

    Multicast traffic source interface

    multicast-traffic-pps

    +
    Multicast traffic PPS (packets-per-second) per group.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: 1000
    +
    +

    max-join-delay

    Maximum join delay in milliseconds

    0 (disabled)

    network-interface

    +
    Multicast traffic source interface.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: first network interface from configuration
    +
    +
    -

    Per default, join and leave requests are sent using dedicated reports. -The option combined-leave-join allows the combination of leave and -join records within a single IGMPv3 report using multiple group records. -This option applies to the 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. This traffic starts -automatically, which can be suppressed by setting multicast-traffic-autostart -to false. The length, TOS and packets per second (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) -1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3 and 1.1.1.1,239.0.0.5.

    -

    If max-join-delay is configured, the final report includes how often -the measured join delay is above this threshold.

    Multicast Limitations

    diff --git a/docs/access/pppoe.html b/docs/access/pppoe.html index 1fd26219..9df3049f 100644 --- a/docs/access/pppoe.html +++ b/docs/access/pppoe.html @@ -8,6 +8,7 @@ + @@ -67,6 +68,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -211,46 +213,65 @@

    PPPoE
    { "pppoe": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    session-time

    Max PPPoE session time in seconds

    0 (infinity)

    session-time

    +
    Max PPPoE session time in seconds.
    +
    Default: 0 (infinity)
    +
    +

    reconnect

    Automatically reconnect sessions if terminated

    false

    reconnect

    +
    Automatically reconnect sessions if terminated.
    +
    Default: false
    +
    +

    discovery-timeout

    PPPoE discovery (PADI and PADR) timeout in seconds

    5

    discovery-timeout

    +
    PPPoE discovery (PADI and PADR) timeout in seconds.
    +
    Default: 5
    +
    +

    discovery-retry

    PPPoE discovery (PADI and PADR) max retry

    10

    discovery-retry

    +
    PPPoE discovery (PADI and PADR) max retry.
    +
    Default: 10
    +
    +

    service-name

    PPPoE discovery service name

    service-name

    +
    PPPoE discovery service name.
    +
    Default:
    +
    +

    host-uniq

    PPPoE discovery host-uniq

    false

    host-uniq

    +
    PPPoE discovery host-uniq.
    +
    Default: false
    +
    +

    vlan-priority

    VLAN PBIT for all PPPoE/PPP control traffic

    0

    vlan-priority

    +
    VLAN PBIT for all PPPoE/PPP control traffic.
    +
    Default: 0
    +
    +
    @@ -260,22 +281,23 @@

    PPP<
    { "ppp": {} }
     
    - +
    ---++ - - - - + +

    Attribute

    Description

    Default

    mru

    Define the maximum receive unit proposed via PPP

    1492

    mru

    +
    Define the maximum receive unit proposed via PPP.
    +
    Default: 1492 Range: 1 - 65535
    +
    +
    @@ -285,38 +307,52 @@

    PPP Authentication
    { "ppp": { "authentication": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    username

    Username

    user{session-global}@rtbrick.com

    username

    +
    Username.
    + +
    +

    password

    Password

    test

    password

    +
    Password.
    +
    Default: test
    +
    +

    timeout

    Authentication request timeout in seconds

    5

    timeout

    +
    Authentication request timeout in seconds.
    +
    Default: 5
    +
    +

    retry

    Authentication request max retry

    30

    retry

    +
    Authentication request max retry.
    +
    Default: 30
    +
    +

    protocol

    This value can be set to PAP or CHAP to reject the other protocol

    allow PAP and CHAP

    protocol

    +
    This value can be set to PAP or CHAP to reject
    +
    the other protocol.
    +
    Default: allow both PAP and CHAP
    +
    +
    @@ -326,46 +362,65 @@

    PPP LCP
    { "ppp": { "lcp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    conf-request-timeout

    LCP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    LCP configuration request timeout in seconds.
    +
    Default: 5
    +
    +

    conf-request-retry

    LCP configuration request max retry

    10

    conf-request-retry

    +
    LCP configuration request max retry.
    +
    Default: 10
    +
    +

    keepalive-interval

    LCP echo request interval in seconds (0 means disabled)

    30

    keepalive-interval

    +
    LCP echo request interval in seconds (0 means disabled).
    +
    Default: 30
    +
    +

    keepalive-retry

    PPP LCP echo request max retry

    3

    keepalive-retry

    +
    PPP LCP echo request max retry.
    +
    Default: 3
    +
    +

    start-delay

    PPP LCP initial request delay in milliseconds

    0

    start-delay

    +
    PPP LCP initial request delay in milliseconds.
    +
    Default: 0
    +
    +

    ignore-vendor-specific

    Ignore LCP vendor-specific requests

    false

    ignore-vendor-specific

    +
    Ignore LCP vendor-specific requests.
    +
    Default: false
    +
    +

    connection-status-message

    Accept LCP connection status messages

    false

    connection-status-message

    +
    Accept LCP connection status messages.
    +
    Default: false
    +
    +
    @@ -375,42 +430,59 @@

    PPP IPCP (IPv4)
    { "ppp": { "ipcp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable the IPCP protocol

    true

    enable

    +
    This option allows to enable or disable the IPCP protocol
    +
    Default: true
    +
    +

    request-ip

    Include IP-Address with 0.0.0.0 in initial LCP configuration request

    true

    request-ip

    +
    Include IP-Address with 0.0.0.0 in the initial IPCP
    +
    configuration request.
    +
    Default: true
    +
    +

    request-dns1

    Request Primary DNS Server Address (option 129)

    true

    request-dns1

    +
    Request Primary DNS Server Address (option 129).
    +
    Default: true
    +
    +

    request-dns2

    Request Secondary DNS Server Address (option 131)

    true

    request-dns2

    +
    Request Secondary DNS Server Address (option 131).
    +
    Default: true
    +
    +

    conf-request-timeout

    IPCP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    IPCP configuration request timeout in seconds
    +
    Default: 5
    +
    +

    conf-request-retry

    IPCP configuration request max retry

    10

    conf-request-retry

    +
    IPCP configuration request max retry.
    +
    Default: 10
    +
    +
    @@ -420,30 +492,37 @@

    PPP IP6CP (IPv6)
    { "ppp": { "ip6cp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable the IP6CP protocol

    true

    enable

    +
    This option allows to enable or disable the IP6CP protocol.
    +
    Default: true
    +
    +

    conf-request-timeout

    IP6CP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    IP6CP configuration request timeout in seconds.
    +
    Default: 5
    +
    +

    conf-request-retry

    IP6CP configuration request max retry

    10

    conf-request-retry

    +
    IP6CP configuration request max retry.
    +
    Default: 10
    +
    +
    diff --git a/docs/access/traffic.html b/docs/access/traffic.html index 4f3605f1..f056c8ca 100644 --- a/docs/access/traffic.html +++ b/docs/access/traffic.html @@ -8,6 +8,7 @@ + @@ -58,6 +59,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -125,50 +127,76 @@

    Configuration
    { "session-traffic": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    autostart

    Automatically start session traffic after the session is established

    true

    autostart

    +
    Automatically start session traffic as soon as the
    +
    corresponding session is established.
    +
    Default: true
    +
    +

    ipv4-pps

    Autogenerate bidirectional IPv4 traffic between a network interface and all sessions

    0 (disabled)

    ipv4-pps

    +
    Autogenerate bidirectional IPv4 traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +

    ipv4-label

    Send downstream IPv4 traffic with the specified MPLS label

    0 (unlabeled)

    ipv4-label

    +
    Send downstream IPv4 traffic with the specified MPLS label.
    +
    Default: 0 (unlabeled)
    +
    +

    ipv4-address

    Overwrite network interface IPv4 address

    network interface address

    ipv4-address

    +
    Overwrite network interface IPv4 address.
    +
    Default: network interface address
    +
    +

    ipv6-pps

    Generate bidirectional IPv6 traffic between a network interface and all sessions

    0 (disabled)

    ipv6-pps

    +
    Generate bidirectional IPv6 traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +

    ipv6-label

    Send downstream IPv6 traffic with the specified MPLS label

    0 (unlabeled)

    ipv6-label

    +
    Send downstream IPv6 traffic with the specified MPLS label.
    +
    Default: 0 (unlabeled)
    +
    +

    ipv6-address

    Overwrite network interface IPv6 address

    network interface address

    ipv6-address

    +
    Overwrite network interface IPv6 address
    +
    Default: network interface address
    +
    +

    ipv6pd-pps

    Generate bidirectional IPv6PD (delegated prefix) traffic between a network interface and all sessions

    0 (disabled)

    ipv6pd-pps

    +
    Generate bidirectional IPv6PD (delegated prefix) traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +
    diff --git a/docs/api/bgp.html b/docs/api/bgp.html index 4e56629c..a90718ae 100644 --- a/docs/api/bgp.html +++ b/docs/api/bgp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -77,43 +79,57 @@ ----++ - + - - - - - - + + - - - - + + - - - - + + - - - - + + - - - - + +

    Attribute

    Command

    Description

    Mandatory Arguments

    Optional Arguments

    bgp-sessions

    Display all matching BGP sessions

    local-ipv4-address, peer-ipv4-address

    bgp-sessions

    +
    Display all matching BGP sessions.
    +

    +
    Arguments:
    +
    local-ipv4-address
    +
    peer-ipv4-address
    +
    +

    bgp-disconnect

    Disconnect all matching BGP sessions

    local-ipv4-address, peer-ipv4-address

    bgp-disconnect

    +
    Disconnect all matching BGP sessions.
    +

    +
    Arguments:
    +
    local-ipv4-address
    +
    peer-ipv4-address
    +
    +

    bgp-teardown

    Teardown BGP

    bgp-teardown

    +
    Teardown BGP.
    +
    +

    bgp-raw-update-list

    List all loaded BGP RAW update files

    bgp-raw-update-list

    +
    List all loaded BGP RAW update files.
    +
    +

    bgp-raw-update

    Update all matching BGP session

    file

    local-ipv4-address, peer-ipv4-address

    bgp-raw-update

    +
    Update all matching BGP sessions.
    +

    +
    Arguments:
    +
    file Mandatory path to BGP RAW update file.
    +
    local-ipv4-address
    +
    peer-ipv4-address
    +
    +
    diff --git a/docs/api/cfm.html b/docs/api/cfm.html index f962f429..c8820a05 100644 --- a/docs/api/cfm.html +++ b/docs/api/cfm.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -77,38 +79,50 @@ ----++ - + - - - - - - + + - - - - + + - - - - + + - - - - + +

    Attribute

    Command

    Description

    Mandatory Arguments

    Optional Arguments

    cfm-cc-start

    Start EOAM CFM CC

    session-id

    cfm-cc-start

    +
    Start EOAM CFM CC.
    +

    +
    Arguments:
    +
    session-id
    +
    +

    cfm-cc-stop

    Stop EOAM CFM CC

    session-id

    cfm-cc-stop

    +
    Stop EOAM CFM CC.
    +

    +
    Arguments:
    +
    session-id
    +
    +

    cfm-cc-rdi-on

    Set EOAM CFM CC RDI

    session-id

    cfm-cc-rdi-on

    +
    Set EOAM CFM CC RDI.
    +

    +
    Arguments:
    +
    session-id
    +
    +

    cfm-cc-rdi-off

    Unset EOAM CFM CC RDI

    session-id

    cfm-cc-rdi-off

    +
    Unset EOAM CFM CC RDI.
    +

    +
    Arguments:
    +
    session-id
    +
    +
    diff --git a/docs/api/http.html b/docs/api/http.html index 2ccb691b..3ffa874c 100644 --- a/docs/api/http.html +++ b/docs/api/http.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -77,33 +79,41 @@ ----++ - + - - - - - - + + - - - - + + - - - - + +

    Attribute

    Command

    Description

    Mandatory Arguments

    Optional Arguments

    http-clients

    Display all HTTP client instances

    session-id

    http-clients

    +
    Display all HTTP client instances.
    +

    +
    Arguments:
    +
    session-id
    +
    +

    http-clients-start

    Start all HTTP client instances

    session-id

    http-clients-start

    +
    Start all HTTP client instances.
    +

    +
    Arguments:
    +
    session-id
    +
    +

    http-clients-stop

    Stop all HTTP client instances

    session-id

    http-clients-stop

    +
    Stop all HTTP client instances.
    +

    +
    Arguments:
    +
    session-id
    +
    +
    diff --git a/docs/api/igmp.html b/docs/api/igmp.html index 8ae7c3ed..92988cce 100644 --- a/docs/api/igmp.html +++ b/docs/api/igmp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -77,58 +79,87 @@ ----++ - + - - - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + +

    Attribute

    Command

    Description

    Mandatory Arguments

    Optional Arguments

    igmp-join

    Join group

    session-id, group

    source1, source2, source3

    igmp-join

    +
    Join group.
    +

    +
    Arguments:
    +
    session-id Mandatory
    +
    group Mandatory
    +
    source1
    +
    source2
    +
    source3
    +
    +

    igmp-join-iter

    Join multiple groups over all sessions

    group

    group-iter, group-count, source1, source2, source3

    igmp-join-iter

    +
    Join multiple groups over all sessions.
    +

    +
    Arguments:
    +
    group Mandatory
    +
    group-iter
    +
    group-count
    +
    source1
    +
    source2
    +
    source3
    +
    +

    igmp-leave

    Leave group

    session-id, group

    igmp-leave

    +
    Leave group.
    +

    +
    Arguments:
    +
    session-id Mandatory
    +
    group Mandatory
    +
    +

    igmp-leave-all

    Leave all groups from all sessions

    igmp-leave-all

    +
    Leave all groups from all sessions.
    +
    +

    igmp-info

    Display group information

    session-id

    igmp-info

    +
    Display group information.
    +

    +
    Arguments:
    +
    session-id Mandatory
    +
    +

    zapping-start

    Start IGMP zapping test

    zapping-start

    +
    Start IGMP zapping test.
    +
    +

    zapping-stop

    Stop IGMP zapping test

    zapping-stop

    +
    Stop IGMP zapping test.
    +
    +

    zapping-stats

    Return IGMP zapping stats

    reset

    zapping-stats

    +
    Return IGMP zapping stats.
    +

    +
    Arguments:
    +
    reset
    +
    +
    diff --git a/docs/api/index.html b/docs/api/index.html index 0f7f5cee..034466e4 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -8,6 +8,7 @@ + @@ -44,6 +45,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • A10NSP Interfaces

    +

    The L2BSA specification defines two interfaces. +The so-called U interface (User Interface) at the customer location +and the A10-NSP interface (A10 Network Service Provider) +between the service provider networks.

    +

    The BNG Blaster A10NSP interface emulates such a layer two provider interface. +This interface type accepts all DHCPv4 and PPPoE sessions were received to verify +forwarding and header enrichment.

    { "interfaces": { "a10nsp": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Parent interface link name (e.g. eth0, …)

    interface

    +
    Parent interface/link name (e.g. eth0, …).
    +
    +

    qinq

    Set outer VLAN ethertype to QinQ (0x88a8)

    false

    qinq

    +
    Set outer VLAN ethertype to QinQ (0x88a8).
    +
    Default: false
    +
    +

    mac

    Optional set gateway interface address manually

    mac

    +
    Optional set gateway interface address manually.
    +
    Default: parent interface/link MAC address
    +
    +
    @@ -668,105 +1021,141 @@

    Sessions
    { "sessions": {} }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + +

    Attribute

    Description

    Default

    count

    Sessions (PPPoE + IPoE)

    1

    max-outstanding

    Max outstanding sessions

    800

    count

    +
    Sessions (PPPoE + IPoE).
    +
    Default: 1
    +
    +

    start-rate

    Setup request rate in sessions per second

    400

    max-outstanding

    +
    Max outstanding sessions.
    +
    Default: 800
    +
    +

    stop-rate

    Teardown request rate in sessions per second

    400

    start-rate

    +
    Setup request rate in sessions per second.
    +
    Default: 400
    +
    +

    iterate-vlan-outer

    Iterate on outer VLAN first

    false

    stop-rate

    +
    Teardown request rate in sessions per second.
    +
    Default: 400
    +
    +

    start-delay

    Wait N seconds after all interfaces are resolved before starting sessions

    0

    start-delay

    +
    Wait N seconds after all interfaces are resolved
    +
    before starting sessions.
    +
    Default: 0
    +
    +

    reconnect

    Automatically reconnect sessions (PPPoE and IPoE) if terminated

    false

    reconnect

    +
    Automatically reconnect sessions (PPPoE and IPoE).
    +
    Default: false
    +
    +

    autostart

    Start sessions automatically

    true

    autostart

    +
    Start sessions automatically.
    +
    Default: true
    +
    +

    monkey-autostart

    Start monkey testing automatically if enabled

    true

    monkey-autostart

    +
    Start monkey testing automatically if enabled.
    +
    Default: true
    +
    +

    iterate-vlan-outer

    +
    Iterate on outer VLAN first.
    +
    Per default, sessions are created by iteration over the
    +
    inner VLAN range first and outer VLAN second. Which can be
    +
    changed with this option to iterate on the outer VLAN first
    +
    and inner VLAN second.
    +

    +
    Assuming the following configuration:
    +
    “outer-vlan-min”: 1
    +
    “outer-vlan-max”: 2
    +
    “inner-vlan-min”: 3
    +
    “inner-vlan-max”: 4
    +
    This generates the sessions on VLAN (outer:inner)
    +
    1:3, 1:4, 2:3, 2:4 per default or alternative
    +
    1:3, 2:3, 1:4, 2:4 with this option enabled.
    +

    +
    Default: false
    +
    +
    -

    Per default, sessions are created by iteration over the inner VLAN range first and -outer VLAN second. Which can be changed by iterate-vlan-outer to iterate -on the outer VLAN first and inner VLAN second.

    -

    Therefore the following configuration generates the sessions on VLAN (outer:inner) -1:3, 1:4, 2:3, 2:4 per default or alternative 1:3, 2:3, 1:4, 2:4 with -iterate-vlan-outer enabled.

    -
    {
    -    "outer-vlan-min": 1,
    -    "outer-vlan-max": 2,
    -    "inner-vlan-min": 3,
    -    "inner-vlan-max": 4
    -}
    -
    -

    IPoE

    { "ipoe": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    ipv6

    Enable/disable IPv6

    true (enabled)

    ipv6

    +
    Enable/disable IPv6.
    +
    Default: true (enabled)
    +
    +

    ipv4

    Enable/disable IPv4

    true (enabled)

    ipv4

    +
    Enable/disable IPv4.
    +
    Default: true (enabled)
    +
    +

    arp-timeout

    Initial ARP timeout/retry interval in seconds

    1

    arp-timeout

    +
    Initial ARP timeout/retry interval in seconds.
    +
    Default: 1
    +
    +

    arp-interval

    Periodic ARP interval in seconds (0 means disabled)

    300

    arp-interval

    +
    Periodic ARP interval in seconds (0 means disabled).
    +
    Default: 300
    +
    +
    @@ -776,46 +1165,65 @@

    PPPoE
    { "pppoe": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    session-time

    Max PPPoE session time in seconds

    0 (infinity)

    session-time

    +
    Max PPPoE session time in seconds.
    +
    Default: 0 (infinity)
    +
    +

    reconnect

    Automatically reconnect sessions if terminated

    false

    reconnect

    +
    Automatically reconnect sessions if terminated.
    +
    Default: false
    +
    +

    discovery-timeout

    PPPoE discovery (PADI and PADR) timeout in seconds

    5

    discovery-timeout

    +
    PPPoE discovery (PADI and PADR) timeout in seconds.
    +
    Default: 5
    +
    +

    discovery-retry

    PPPoE discovery (PADI and PADR) max retry

    10

    discovery-retry

    +
    PPPoE discovery (PADI and PADR) max retry.
    +
    Default: 10
    +
    +

    service-name

    PPPoE discovery service name

    service-name

    +
    PPPoE discovery service name.
    +
    Default:
    +
    +

    host-uniq

    PPPoE discovery host-uniq

    false

    host-uniq

    +
    PPPoE discovery host-uniq.
    +
    Default: false
    +
    +

    vlan-priority

    VLAN PBIT for all PPPoE/PPP control traffic

    0

    vlan-priority

    +
    VLAN PBIT for all PPPoE/PPP control traffic.
    +
    Default: 0
    +
    +
    @@ -825,22 +1233,23 @@

    PPP<
    { "ppp": {} }
     
    - +
    ---++ - - - - + +

    Attribute

    Description

    Default

    mru

    Define the maximum receive unit proposed via PPP

    1492

    mru

    +
    Define the maximum receive unit proposed via PPP.
    +
    Default: 1492 Range: 1 - 65535
    +
    +
    @@ -849,38 +1258,52 @@

    PPP Authentication
    { "ppp": { "authentication": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    username

    Username

    user{session-global}@rtbrick.com

    username

    +
    Username.
    + +
    +

    password

    Password

    test

    password

    +
    Password.
    +
    Default: test
    +
    +

    timeout

    Authentication request timeout in seconds

    5

    timeout

    +
    Authentication request timeout in seconds.
    +
    Default: 5
    +
    +

    retry

    Authentication request max retry

    30

    retry

    +
    Authentication request max retry.
    +
    Default: 30
    +
    +

    protocol

    This value can be set to PAP or CHAP to reject the other protocol

    allow PAP and CHAP

    protocol

    +
    This value can be set to PAP or CHAP to reject
    +
    the other protocol.
    +
    Default: allow both PAP and CHAP
    +
    +
    @@ -890,46 +1313,65 @@

    PPP LCP
    { "ppp": { "lcp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    conf-request-timeout

    LCP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    LCP configuration request timeout in seconds.
    +
    Default: 5
    +
    +

    conf-request-retry

    LCP configuration request max retry

    10

    conf-request-retry

    +
    LCP configuration request max retry.
    +
    Default: 10
    +
    +

    keepalive-interval

    LCP echo request interval in seconds (0 means disabled)

    30

    keepalive-interval

    +
    LCP echo request interval in seconds (0 means disabled).
    +
    Default: 30
    +
    +

    keepalive-retry

    PPP LCP echo request max retry

    3

    keepalive-retry

    +
    PPP LCP echo request max retry.
    +
    Default: 3
    +
    +

    start-delay

    PPP LCP initial request delay in milliseconds

    0

    start-delay

    +
    PPP LCP initial request delay in milliseconds.
    +
    Default: 0
    +
    +

    ignore-vendor-specific

    Ignore LCP vendor-specific requests

    false

    ignore-vendor-specific

    +
    Ignore LCP vendor-specific requests.
    +
    Default: false
    +
    +

    connection-status-message

    Accept LCP connection status messages

    false

    connection-status-message

    +
    Accept LCP connection status messages.
    +
    Default: false
    +
    +
    @@ -939,42 +1381,59 @@

    PPP IPCP (IPv4)
    { "ppp": { "ipcp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable the IPCP protocol

    true

    enable

    +
    This option allows to enable or disable the IPCP protocol
    +
    Default: true
    +
    +

    request-ip

    Include IP-Address with 0.0.0.0 in initial LCP configuration request

    true

    request-ip

    +
    Include IP-Address with 0.0.0.0 in the initial IPCP
    +
    configuration request.
    +
    Default: true
    +
    +

    request-dns1

    Request Primary DNS Server Address (option 129)

    true

    request-dns1

    +
    Request Primary DNS Server Address (option 129).
    +
    Default: true
    +
    +

    request-dns2

    Request Secondary DNS Server Address (option 131)

    true

    request-dns2

    +
    Request Secondary DNS Server Address (option 131).
    +
    Default: true
    +
    +

    conf-request-timeout

    IPCP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    IPCP configuration request timeout in seconds
    +
    Default: 5
    +
    +

    conf-request-retry

    IPCP configuration request max retry

    10

    conf-request-retry

    +
    IPCP configuration request max retry.
    +
    Default: 10
    +
    +
    @@ -984,30 +1443,37 @@

    PPP IP6CP (IPv6)
    { "ppp": { "ip6cp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable the IP6CP protocol

    true

    enable

    +
    This option allows to enable or disable the IP6CP protocol.
    +
    Default: true
    +
    +

    conf-request-timeout

    IP6CP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    IP6CP configuration request timeout in seconds.
    +
    Default: 5
    +
    +

    conf-request-retry

    IP6CP configuration request max retry

    10

    conf-request-retry

    +
    IP6CP configuration request max retry.
    +
    Default: 10
    +
    +
    @@ -1018,54 +1484,79 @@

    DHCP
    { "dhcp": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable DHCP

    true

    enable

    +
    This option allows enabling or disabling DHCP.
    +
    Default: true
    +
    +

    broadcast

    DHCP broadcast flag

    false

    broadcast

    +
    DHCP broadcast flag.
    +
    Default: false
    +
    +

    timeout

    DHCP timeout in seconds

    5

    timeout

    +
    DHCP timeout in seconds.
    +
    Default: 5
    +
    +

    retry

    DHCP retry

    10

    retry

    +
    DHCP retry.
    +
    Default: 10
    +
    +

    release-interval

    DHCP release interval

    1

    release-interval

    +
    DHCP release interval.
    +
    Default: 1
    +
    +

    release-retry

    DHCP release retry

    3

    release-retry

    +
    DHCP release retry.
    +
    Default: 3
    +
    +

    tos

    IPv4 TOS for all DHCP control traffic

    0

    tos

    +
    IPv4 TOS for all DHCP control traffic.
    +
    Default: 0
    +
    +

    vlan-priority

    VLAN PBIT for all DHCP control traffic

    0

    vlan-priority

    +
    VLAN PBIT for all DHCP control traffic.
    +
    Default: 0
    +
    +

    access-line

    Add access-line attributes like Agent-Remote/Circuit-Id

    true

    access-line

    +
    Add access-line attributes like Agent-Remote/Circuit-Id.
    +
    Default: true
    +
    +
    @@ -1075,850 +1566,1303 @@

    DHCPv6
    { "dhcpv6": {} }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable DHCPv6

    true

    ldra

    This option allows to enable or disable LDRA

    false

    enable

    +
    This option allows enabling or disabling DHCPv6.
    +
    Default: true
    +
    +

    ia-na

    This option allows to enable or disable DHCPv6 IA_NA

    true

    ia-na

    +
    This option allows enabling or disabling DHCPv6 IA_NA.
    +
    Default: true
    +
    +

    ia-pd

    This option allows to enable or disable DHCPv6 IA_PD

    true

    ia-pd

    +
    This option allows enabling or disabling DHCPv6 IA_PD.
    +
    Default: true
    +
    +

    rapid-commit

    DHCPv6 rapid commit (2-way handshake)

    true

    rapid-commit

    +
    DHCPv6 rapid commit (2-way handshake).
    +
    Default: true
    +
    +

    timeout

    DHCPv6 timeout in seconds

    5

    timeout

    +
    DHCPv6 timeout in seconds.
    +
    Default: 5
    +
    +

    retry

    DHCPv6 retry

    10

    retry

    +
    DHCPv6 retry.
    +
    Default: 10
    +
    +

    access-line

    Add access-line attributes like Agent-Remote/Circuit-Id

    true

    access-line

    +
    Add access-line attributes like Agent-Remote/Circuit-Id.
    +
    Default: true
    +
    +

    ldra

    +
    This option allows enabling or disabling LDRA.
    +
    DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in
    + +
    Adding access-line information like Agent-Remote-Id or
    +
    Agent-Circuit-Id should be used with LDRA enabled only.
    +
    Default: false
    +
    +
    -

    DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in -[RFC6221](https://datatracker.ietf.org/doc/html/rfc6221). Adding -access-line information like Agent-Remote-Id or Agent-Circuit-Id -is allowed with LDRA enabled only.

    IGMP

    { "igmp": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    autostart

    Automatically join after the session is established

    true

    autostart

    +
    Automatically join after the session is established.
    +
    Default: true
    +
    +

    version

    IGMP protocol version (1, 2 or 3)

    3

    start-delay

    +
    Delay between session established and initial IGMP join in seconds.
    +
    Default: 1
    +
    +

    combined-leave-join

    Combine leave and join records within a single IGMPv3 report

    true

    start-delay

    Delay between session established and initial IGMP join in seconds

    1

    group

    Multicast group base address (e.g. 239.0.0.1)

    0.0.0.0 (disabled)

    group-iter

    Multicast group iterator

    0.0.0.1

    group-count

    Multicast group count

    1

    version

    +
    IGMP protocol version (1, 2, or 3).
    +
    Default: 3
    +
    +

    combined-leave-join

    +
    Per default, join and leave requests are sent using dedicated
    +
    reports. This option allows the combination of leave and join
    +
    records within a single IGMPv3 report using multiple group records.
    +
    This option applies to the IGMP version 3 only!
    +
    Default: true
    +
    +

    group

    +
    Multicast group base address (e.g. 239.0.0.1).
    +
    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):
    +
    1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3, 1.1.1.1,239.0.0.5
    +
    Default: 0.0.0.0 (disabled)
    +
    +

    source

    Multicast source address (e.g. 1.1.1.1)

    0.0.0.0 (ASM)

    group-iter

    +
    Multicast group iterator.
    +
    Default: 0.0.0.1
    +
    +

    zapping-interval

    IGMP channel zapping interval in seconds

    0 (disabled)

    group-count

    +
    Multicast group count.
    +
    Default: 1
    +
    +

    zapping-count

    Define the number of channel changes before starting the view duration

    0 (disabled)

    source

    +
    Multicast source address (e.g. 1.1.1.1).
    +
    Default: 0.0.0.0 (ASM)
    +
    +

    zapping-wait

    Wait for multicast traffic before zapping to the next channel

    false

    zapping-interval

    +
    IGMP channel zapping interval in seconds.
    +
    Default: 0 (disabled)
    +
    +

    view-duration

    Define the view duration in seconds

    0 (disabled)

    zapping-count

    +
    Define the number of channel changes before starting
    +
    the view duration.
    +
    Default: 0 (disabled)
    +
    +

    send-multicast-traffic

    Generate multicast traffic

    false

    zapping-wait

    +
    Wait for multicast traffic before zapping to the next channel.
    +
    Default: false
    +
    +

    multicast-traffic-autostart

    Automatically start multicast traffic

    true

    view-duration

    +
    Define the view duration in seconds.
    +
    Default: 0 (disabled)
    +
    +

    max-join-delay

    +
    Maximum join delay in milliseconds.
    +
    If configured, the final report includes how often
    +
    the measured join delay is above this threshold.
    +
    Default: 0 (disabled)
    +
    +

    send-multicast-traffic

    +
    If enabled, 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.
    +
    Default: false
    +
    +

    multicast-traffic-length

    Multicast traffic IP length

    76

    multicast-traffic-autostart

    +
    Automatically start multicast traffic.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: true
    +
    +

    multicast-traffic-tos

    Multicast traffic TOS priority

    0

    multicast-traffic-length

    +
    Multicast traffic IP length.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: 76
    +
    +

    multicast-traffic-pps

    Multicast traffic PPS per group

    1000

    multicast-traffic-tos

    +
    Multicast traffic TOS priority.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: 0
    +
    +

    network-interface

    Multicast traffic source interface

    multicast-traffic-pps

    +
    Multicast traffic PPS (packets-per-second) per group.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: 1000
    +
    +

    max-join-delay

    Maximum join delay in milliseconds

    0 (disabled)

    network-interface

    +
    Multicast traffic source interface.
    +
    Only applicable with send-multicast-traffic enabled!
    +
    Default: first network interface from configuration
    +
    +
    -

    Per default, join and leave requests are sent using dedicated reports. -The option combined-leave-join allows the combination of leave and -join records within a single IGMPv3 report using multiple group records. -This option applies to the 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. This traffic starts -automatically, which can be suppressed by setting multicast-traffic-autostart -to false. The length, TOS and packets per second (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) -1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3 and 1.1.1.1,239.0.0.5.

    -

    If max-join-delay is configured, the final report includes how often -the measured join delay is above this threshold.

    L2TPv2 Server (LNS)

    { "l2tp-server": [] }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory L2TP LNS server hostname (AVP 7)

    address

    Mandatory L2TP server address

    name

    +
    Mandatory L2TP LNS server hostname (AVP 7)
    +
    +

    secret

    Tunnel secret

    address

    +
    Mandatory L2TP server address.
    +
    +

    receive-window-size

    Control messages receive window size

    16

    secret

    +
    Tunnel secret.
    +
    +

    max-retry

    Control messages max retry

    5

    receive-window-size

    +
    Control messages receive window size.
    +
    Default: 16 Range: 1 - 65535
    +
    +

    congestion-mode

    Control messages congestion mode

    default

    max-retry

    +
    Control messages max retry.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    congestion-mode

    +
    Control messages congestion mode (default, slow or aggressive).
    +
    The BNG Blaster supports different congestion modes for the
    +
    reliable delivery of control messages. The default mode is
    +
    described in RFC2661 appendix A (Control Channel Slow Start and
    +
    Congestion Avoidance). The mode slow uses a fixed control window
    +
    size of 1 where aggressive sticks to max permitted based on peer
    +
    received window size.
    +
    Default: default
    +
    +

    hello-interval

    Set hello interval

    30

    hello-interval

    +
    Set hello interval.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    data-control-priority

    Set the priority bit in the L2TP header for all non-IP data packets (LCP, IPCP, …)

    false

    data-control-priority

    +
    Set the priority bit in the L2TP header for all non-IP data
    +
    packets (LCP, IPCP, …).
    +
    Default: false
    +
    +

    data-length

    Set length bit for all data packets

    false

    data-length

    +
    Set length bit for all data packets.
    +
    Default: false
    +
    +

    data-offset

    Set offset bit with offset zero for all data packets

    false

    data-offset

    +
    Set offset bit with offset zero for all data packets.
    +
    Default: false
    +
    +

    control-tos

    L2TP control traffic (SCCRQ, ICRQ, …) TOS priority

    0

    control-tos

    +
    Set L2TP control traffic (SCCRQ, ICRQ, …) TOS priority.
    +
    Default: 0 Range: 0 - 255
    +
    +

    data-control-tos

    Set the L2TP tunnel TOS priority (outer IPv4 header) for all non-IP data packets (LCP, IPCP, …)

    0

    data-control-tos

    +
    Set the L2TP tunnel TOS priority (outer IPv4 header) for all
    +
    non-IP data packets (LCP, IPCP, …).
    +
    Default: 0 Range: 0 - 255
    +
    +

    lcp-padding

    Add fixed padding to LCP packets send from LNS

    0

    lcp-padding

    +
    Add fixed padding to LCP packets send from LNS.
    +
    Default: 0 Range: 0 - 65535
    +
    +
    -

    The BNG Blaster supports different congestion modes for the -reliable delivery of control messages. The default mode -is described in RFC2661 appendix A (Control Channel Slow Start and -Congestion Avoidance). The mode slow uses a fixed control window -size of 1 where aggressive sticks to max permitted based on peer -received window size.

    Traffic

    { "traffic": {} }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + + + +

    Attribute

    Description

    Default

    autostart

    Automatically start traffic

    true

    stop-verified

    Automatically stop traffic streams if verified

    false

    autostart

    +
    Automatically start traffic.
    +
    Default: true
    +
    +

    max-burst

    Stream flow burst size in packets

    16

    stop-verified

    +
    Automatically stop traffic streams if verified.
    +
    Default: false
    +
    +

    stream-rate-calculation

    Enable stream rate calculation

    true

    max-burst

    +
    Stream flow burst size in packets.
    +
    Default: 16
    +
    +

    stream-rate-calculation

    +
    Enable stream rate calculation.
    +
    This option should be set to false if massive
    +
    streams (e.g. more than 1M) are defined but
    +
    per-stream live rate statistics are not required.
    +
    Default: true
    +
    +
    -

    The option stream-rate-calculation should be set to -false if massive streams (> 1M) are defined but per-stream -live rate statistics are not required.

    Traffic-Streams

    { "streams": {} }
     
    - +
    ---++ - - - - - - - - - - - - - + + - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + + - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory stream name

    stream-group-id

    Stream group identifier

    0 (raw)

    Attribute

    Description

    type

    Mandatory stream type (ipv4, ipv6 or ipv6pd)

    direction

    Mandatory stream direction (upstream, downstream or both)

    both

    name

    +
    Mandatory stream name.
    +
    +

    source-port

    Overwrite the default source port

    65056

    stream-group-id

    +
    Stream group identifier.
    +
    Default: 0 (raw)
    +
    +

    destination-port

    Overwrite the default destination port

    65056

    type

    +
    Mandatory stream type (ipv4, ipv6, or ipv6pd).
    +
    +

    ipv4-df

    Set IPv4 DF bit

    true

    direction

    +
    Stream direction (upstream, downstream, or both).
    +
    Default: both
    +
    +

    priority

    IPv4 TOS / IPv6 TC

    0

    source-port

    +
    Overwrite the default source port.
    +
    Default: 65056 Range: 0 - 65535
    +
    +

    vlan-priority

    VLAN priority

    0

    destination-port

    +
    Overwrite the default destination port.
    +
    Default: 65056 Range: 0 - 65535
    +
    +

    length

    Layer 3 (IP header + payload) traffic length (76 - 9000)

    128

    ipv4-df

    +
    Set IPv4 DF bit.
    +
    Default: true
    +
    +

    priority

    +
    IPv4 TOS / IPv6 TC.
    +
    For L2TP downstream traffic, the IPv4 TOS is applied
    +
    to the outer IPv4 and inner IPv4 header.
    +
    Default: 0 Range: 0 - 255
    +
    +

    pps

    Stream traffic rate in packets per second

    1

    vlan-priority

    +
    VLAN priority.
    +
    Default: 0 Range: 0 - 7
    +
    +

    bps

    Stream traffic rate in bits per second (layer 3)

    length

    +
    Layer 3 (IP header + payload) traffic length.
    +
    Default: 128 Range: 76 - 9000
    +
    +

    pps

    +
    Stream traffic rate in packets per second.
    +
    This value supports also float numbers like 0.1 or 2.5.
    +
    In example 0.1 means one packet every 10 seconds.
    +
    Default: 1.0
    +
    +

    bps

    +
    Stream traffic rate in bits per second (layer 3).
    +
    PPS has priority over bps where the second is only a helper
    +
    to calculate the actual PPS based on given bps and length.
    +
    The resulting rate in bps is the layer 3 rate because length
    +
    is also the layer 3 length (IP header + payload).
    +
    It is also supported to put the capital letters K (Kilo),
    +
    M (Mega) or G (Giga) in front of bps for better readability.
    +
    For example, "Gbps": 1
    +
    which is equal to "bps": 1000000000.
    +
    +

    a10nsp-interface

    Select the corresponding A10NSP interface for this stream

    a10nsp-interface

    +
    Select the corresponding A10NSP interface for this stream.
    +
    +

    network-interface

    Select the corresponding network interface for this stream

    network-interface

    +
    Select the corresponding network interface for this stream.
    +
    +

    network-ipv4-address

    Overwrite network interface IPv4 address

    network-ipv4-address

    +
    Overwrite network interface IPv4 address.
    +
    +

    network-ipv6-address

    Overwrite network interface IPv6 address

    network-ipv6-address

    +
    Overwrite network interface IPv6 address.
    +
    +

    destination-ipv4-address

    Overwrite the IPv4 destination address

    destination-ipv4-address

    +
    Overwrite the IPv4 destination address.
    +
    +

    destination-ipv6-address

    Overwrite the IPv6 destination address

    destination-ipv6-address

    +
    Overwrite the IPv6 destination address.
    +
    +

    access-ipv4-source-address

    +
    Overwrite the access IPv4 source address (client).
    +
    This option can be used to test the BNG RPF functionality
    +
    with traffic sent from source addresses different than those
    +
    assigned to the client.
    +
    +

    access-ipv6-source-address

    +
    Overwrite the access IPv6 source address (client).
    +
    This option can be used to test the BNG RPF functionality
    +
    with traffic sent from source addresses different than those
    +
    assigned to the client.
    +
    +

    access-ipv4-source-address

    Overwrite the access IPv4 source address (client)

    max-packets

    +
    Send a burst of N packets and stop.
    +
    Default: 0 (infinity)
    +
    +

    access-ipv6-source-address

    Overwrite the access IPv6 source address (client)

    start-delay

    +
    Wait N seconds after the session is established
    +
    before starting the traffic stream.
    +
    Default: 0
    +
    +

    max-packets

    Send a burst of N packets and stop

    0 (infinity)

    tx-label1

    +
    MPLS send (TX) label (outer label).
    +
    +

    start-delay

    Wait N seconds after the session is established before starting

    0

    tx-label1-exp

    +
    EXP bits of the first label (outer label).
    +
    Default: 0
    +
    +

    tx-label1

    MPLS send (TX) label (outer label)

    tx-label1-ttl

    +
    TTL of the first label (outer label).
    +
    Default: 255
    +
    +

    tx-label1-exp

    EXP bits of the first label (outer label)

    0

    tx-label2

    +
    MPLS send (TX) label (inner label).
    +
    +

    tx-label1-ttl

    TTL of the first label (outer label)

    255

    tx-label2-exp

    +
    EXP bits of the second label (inner label).
    +
    Default: 0
    +
    +

    tx-label2

    MPLS send (TX) label (inner label)

    tx-label2-ttl

    +
    TTL of the second label (inner label).
    +
    Default: 255
    +
    +

    tx-label2-exp

    EXP bits of the second label (inner label)

    0

    rx-label1

    +
    Expected receive MPLS label (outer label).
    +
    +

    tx-label2-ttl

    TTL of the second label (inner label)

    255

    rx-label2

    +
    Expected receive MPLS label (inner label).
    +
    +

    rx-label1

    Expected receive MPLS label (outer label)

    ldp-ipv4-lookup-address

    +
    Dynamically resolve outer label.
    +
    +

    rx-label2

    Expected receive MPLS label (inner label)

    ldp-ipv6-lookup-address

    +
    Dynamically resolve outer label.
    +
    +

    ldp-ipv4-lookup-address

    Dynamically resolve outer label

    nat

    +
    Enable NAT support.
    +
    Default: false
    +
    +

    ldp-ipv6-lookup-address

    Dynamically resolve outer label

    raw-tcp

    +
    Send RAW TCP traffic (UDP-like traffic with TCP header).
    +
    Default: false
    +
    +
    -

    For L2TP downstream traffic, the IPv4 TOS is applied to the outer IPv4 -and inner IPv4 header.

    -

    The pps option supports also float numbers like 0.1, or 2.5 PPS and has -priority over bps where the second is only a helper to calculate the pps -based on given bps and length. The resulting rate in bps is the -layer 3 rate because length is also the layer 3 length (IP header + payload). -It is also supported to put the capital letters K (Kilo), M (Mega) -or G (Giga) in front of bps for better readability. -For example "Gbps": 1 which is equal to "bps": 1000000000.

    -

    The options access-ipv4-source-address and access-ipv6-source-address -can be used to test the BNG RPF functionality with traffic sent from source addresses -different than those assigned to the client.

    Session-Traffic

    { "session-traffic": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    autostart

    Automatically start session traffic after the session is established

    true

    autostart

    +
    Automatically start session traffic as soon as the
    +
    corresponding session is established.
    +
    Default: true
    +
    +

    ipv4-pps

    Autogenerate bidirectional IPv4 traffic between a network interface and all sessions

    0 (disabled)

    ipv4-pps

    +
    Autogenerate bidirectional IPv4 traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +

    ipv4-label

    Send downstream IPv4 traffic with the specified MPLS label

    0 (unlabeled)

    ipv4-label

    +
    Send downstream IPv4 traffic with the specified MPLS label.
    +
    Default: 0 (unlabeled)
    +
    +

    ipv4-address

    Overwrite network interface IPv4 address

    network interface address

    ipv4-address

    +
    Overwrite network interface IPv4 address.
    +
    Default: network interface address
    +
    +

    ipv6-pps

    Generate bidirectional IPv6 traffic between a network interface and all sessions

    0 (disabled)

    ipv6-pps

    +
    Generate bidirectional IPv6 traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +

    ipv6-label

    Send downstream IPv6 traffic with the specified MPLS label

    0 (unlabeled)

    ipv6-label

    +
    Send downstream IPv6 traffic with the specified MPLS label.
    +
    Default: 0 (unlabeled)
    +
    +

    ipv6-address

    Overwrite network interface IPv6 address

    network interface address

    ipv6-address

    +
    Overwrite network interface IPv6 address
    +
    Default: network interface address
    +
    +

    ipv6pd-pps

    Generate bidirectional IPv6PD (delegated prefix) traffic between a network interface and all sessions

    0 (disabled)

    ipv6pd-pps

    +
    Generate bidirectional IPv6PD (delegated prefix) traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +

    Access-Line

    +

    This feature is designed to simulate various access line attributes defined by the Broadband Forum, +which are subsequently employed in protocols such as PPPoE discovery, DHCPv4, and DHCPv6 packets.

    +

    The values defined in access-line section apply globally but can be overwritten in the +access interface section. The strings agent-remote-id, agent-circuit-id, and +access-aggregation-circuit-id support variable substitution.

    { "access-line": {} }
     
    - +
    ---+++ - - - + - - - + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    Attribute | Description

    agent-circuit-id

    Agent-Circuit-Id

    agent-circuit-id | | Agent-Circuit-Id (string).

    agent-remote-id

    Agent-Remote-Id

    agent-remote-id

    +
    Agent-Remote-Id (string).
    +
    +

    access-aggregation-circuit-id

    Access-Aggregation-Circuit-ID-ASCII

    access-aggregation-circuit-id

    +
    Access-Aggregation-Circuit-ID-ASCII (string).
    +
    +

    rate-up

    Actual Data Rate Upstream

    rate-up

    +
    Actual Data Rate Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    rate-down

    Actual Data Rate Downstream

    rate-down

    +
    Actual Data Rate Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    dsl-type

    DSL-Type

    dsl-type

    +
    DSL-Type.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +
    +

    Attributes with values set to zero will be automatically excluded, +making it impossible to send attributes with a zero value. In other words, +any attribute that has a value of zero will not be included in the corresponding +packets.

    +

    In the context of DHCPv6, access line attributes, as well as Agent-Remote-Id or Agent-Circuit-Id, +are exclusively permitted in DHCPv6 relay-forward messages as dictated by RFC. By default, BNG Blaster +includes these attributes in other DHCPv6 messages, even if this deviates from RFC guidelines. +Therefore, the DHCPv6 configuration section provides the option to either disable access-line attributes or, +as an alternative, enable LDRA (Lightweight DHCPv6 Relay Agent).

    Access-Line-Profiles

    +

    Attributes within the access-line-profiles are treated analogous to those within the +access-line section but they provide the capability to apply different profiles to +each access interface.

    { "access-line-profiles": [] }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + +

    Attribute

    Description

    Default

    access-line-profile-id

    Mandatory access-line-profile identifier

    access-line-profile-id

    +
    Mandatory access-line-profile identifier.
    +
    Range: 1 - 65535
    +
    +

    act-up

    Actual Data Rate Upstream

    0

    act-up

    +
    Actual Data Rate Upstream.
    +
    This value is overwritten by rate-up.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    act-down

    Actual Data Rate Downstream

    0

    act-down

    +
    Actual Data Rate Downstream.
    +
    This value is overwritten by rate-down
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    min-up

    Minimum Data Rate Upstream

    0

    min-up

    +
    Minimum Data Rate Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    min-down

    Minimum Data Rate Downstream

    0

    min-down

    +
    Minimum Data Rate Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    att-up

    Attainable DataRate Upstream

    0

    att-up

    +
    Attainable DataRate Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    att-down

    Attainable DataRate Downstream

    0

    att-down

    +
    Attainable DataRate Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    max-up

    Maximum Data Rate Upstream

    0

    max-up

    +
    Maximum Data Rate Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    max-down

    Maximum Data Rate Downstream

    0

    max-down

    +
    Maximum Data Rate Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    min-up-low

    Min Data Rate Upstream in low power state

    0

    min-up-low

    +
    Min Data Rate Upstream.in low power state
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    min-down-low

    Min Data Rate Downstream in low power state

    0

    min-down-low

    +
    Min Data Rate Downstream.in low power state
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    max-interl-delay-up

    Max Interleaving Delay Upstream

    0

    max-interl-delay-up

    +
    Max Interleaving Delay Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    act-interl-delay-up

    Actual Interleaving Delay Upstream

    0

    act-interl-delay-up

    +
    Actual Interleaving Delay Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    max-interl-delay-down

    Max Interleaving Delay Downstream

    0

    max-interl-delay-down

    +
    Max Interleaving Delay Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    act-interl-delay-down

    Actual Interleaving Delay Downstream

    0

    act-interl-delay-down

    +
    Actual Interleaving Delay Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    data-link-encaps

    Data Link Encapsulation

    0

    data-link-encaps

    +
    Data Link Encapsulation
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    dsl-type

    DSL Type

    0

    dsl-type

    +
    DSL Type.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    pon-type

    PON Access Type

    0

    pon-type

    +
    PON Access Type.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    etr-up

    Expected Throughput (ETR) Upstream

    0

    etr-up

    +
    Expected Throughput (ETR) Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    etr-down

    Expected Throughput (ETR) Downstream

    0

    etr-down

    +
    Expected Throughput (ETR) Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    attetr-up

    Attainable Expected Throughput (ATTETR) Upstream

    0

    attetr-up

    +
    Attainable Expected Throughput (ATTETR) Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    attetr-down

    Attainable Expected Throughput (ATTETR) Downstream

    0

    attetr-down

    +
    Attainable Expected Throughput (ATTETR) Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    gdr-up

    Gamma Data Rate (GDR) Upstream

    0

    gdr-up

    +
    Gamma Data Rate (GDR) Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    gdr-down

    Gamma Data Rate (GDR) Downstream

    0

    gdr-down

    +
    Gamma Data Rate (GDR) Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    attgdr-up

    Attainable Gamma Data Rate (ATTGDR) Upstream

    0

    attgdr-up

    +
    Attainable Gamma Data Rate (ATTGDR) Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    attgdr-down

    Attainable Gamma Data Rate (ATTGDR) Downstream

    0

    attgdr-down

    +
    Attainable Gamma Data Rate (ATTGDR) Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    ont-onu-avg-down

    ONT/ONU Average Data Rate Downstream

    0

    ont-onu-avg-down

    +
    ONT/ONU Average Data Rate Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    ont-onu-peak-down

    ONT/ONUPeak Data Rate Downstream

    0

    ont-onu-peak-down

    +
    ONT/ONU Peak Data Rate Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    ont-onu-max-up

    ONT/ONU Maximum Data Rate Upstream

    0

    ont-onu-max-up

    +
    ONT/ONU Maximum Data Rate Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    ont-onu-ass-up

    ONT/ONU Assured Data Rate Upstream

    0

    ont-onu-ass-up

    +
    ONT/ONU Assured Data Rate Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    pon-max-up

    PON Tree Maximum Data Rate Upstream

    0

    pon-max-up

    +
    PON Tree Maximum Data Rate Upstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    pon-max-down

    PON Tree Maximum Data Rate Downstream

    0

    pon-max-down

    +
    PON Tree Maximum Data Rate Downstream.
    +
    Default: 0 Range: 0 - 4294967295
    +
    +

    pon-access-line-version

    +
    This option allows to switch between the versions
    +
    00 (DRAFT-LIHAWI-00) and 04 (DRAFT-LIHAWI-04) of the RFC
    +
    draft-lihawi-ancp-protocol-access-extension.
    +
    Default: DRAFT-LIHAWI-04
    +
    +

    pon-access-line-version

    DRAFT-LIHAWI-00 or DRAFT-LIHAWI-04

    DRAFT-LIHAWI-04

    -

    Attributes with values set to 0 will not be sent.

    -

    The values for rate-up, rate-down and dsl-type defined in the -access-line or interface section has priority over those defined here.

    +

    The values specified for rate-up, rate-down and dsl-type defined in the +access-line or interface section section take precedence over the definitions +provided here.

    ISIS

    { "isis": {} }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    ISIS instance identifier

    level

    ISIS level

    3

    instance-id

    +
    ISIS instance identifier.
    +
    +

    overload

    ISIS overload

    false

    level

    +
    Level.
    +
    Default: 3 Range: 1 - 3
    +
    +

    protocol-ipv4

    Enable/disable IPv4

    true

    protocol-ipv4

    +
    Enable/disable IPv4 routing.
    +
    Default: true
    +
    +

    protocol-ipv6

    Enable/disable IPv6

    true

    protocol-ipv6

    +
    Enable/disable IPv6 routing.
    +
    Default: true
    +
    +

    level1-auth-key

    ISIS level 1 authentication key

    level1-auth-key

    +
    Level 1 authentication key.
    +
    +

    level1-auth-type

    ISIS level 1 authentication type (simple or md5)

    disabled

    level1-auth-type

    +
    Level 1 authentication type (simple or md5).
    +
    +

    level1-auth-hello

    ISIS level 1 hello authentication

    true

    level1-auth-hello

    +
    Level 1 hello authentication.
    +
    +

    level1-auth-csnp

    ISIS level 1 CSNP authentication

    true

    level1-auth-csnp

    +
    Level 1 CSNP authentication.
    +
    +

    level1-auth-psnp

    ISIS level 1 PSNP authentication

    true

    level1-auth-psnp

    +
    Level 1 PSNP authentication.
    +
    +

    level2-auth-key

    ISIS level 2 authentication key

    level2-auth-key

    +
    Level 2 authentication key.
    +
    +

    level2-auth-type

    ISIS level 2 authentication type (simple or md5)

    disabled

    level2-auth-type

    +
    Level 2 authentication type (simple or md5).
    +
    +

    level2-auth-hello

    ISIS level 2 hello authentication

    true

    level2-auth-hello

    +
    Level 2 hello authentication.
    +
    +

    level2-auth-csnp

    ISIS level 2 CSNP authentication

    true

    level2-auth-csnp

    +
    Level 2 CSNP authentication.
    +
    +

    level2-auth-psnp

    ISIS level 2 PSNP authentication

    true

    level2-auth-psnp

    +
    Level 2 PSNP authentication.
    +
    +

    hello-interval

    ISIS hello interval in seconds

    10

    hello-interval

    +
    Hello interval in seconds
    +
    Default: 10 Range: 1 - 65535
    +
    +

    hello-padding

    ISIS hello padding

    false

    hello-padding

    +
    Enable/disable hello padding.
    +
    Default: false
    +
    +

    hold-time

    ISIS hold time in seconds

    30

    hold-time

    +
    ISIS hold time in seconds.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    lsp-lifetime

    ISIS LSP lifetime in seconds

    65535

    lsp-lifetime

    +
    ISIS LSP lifetime in seconds.
    +
    Default: 65535 Range: 330 - 65535
    +
    +

    lsp-refresh-interval

    ISIS LSP refresh interval in seconds

    300

    lsp-refresh-interval

    +
    ISIS LSP refresh interval in seconds.
    +
    Default: 300 Range: 1 - 65535
    +
    +

    lsp-retry-interval

    ISIS LSP retry interval in seconds

    5

    lsp-retry-interval

    +
    ISIS LSP retry interval in seconds.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    lsp-tx-interval

    ISIS LSP TX interval in ms (time between LSP send windows)

    10

    lsp-tx-interval

    +
    ISIS LSP TX interval in ms (time between LSP send windows).
    +
    Default: 10 Range: 1 - 65535
    +
    +

    lsp-tx-window-size

    ISIS LSP TX window size (LSP send per window)

    1

    lsp-tx-window-size

    +
    ISIS LSP TX window size (LSP send per window).
    +
    Default: 1 Range: 1 - 65535
    +
    +

    csnp-interval

    ISIS CSNP interval in seconds

    30

    csnp-interval

    +
    ISIS CSNP interval in seconds.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    hostname

    ISIS hostname

    bngblaster

    hostname

    +
    ISIS hostname
    +
    Default: bngblaster
    +
    +

    router-id

    ISIS router identifier

    10.10.10.10

    router-id

    +
    ISIS router identifier.
    +
    Default: 10.10.10.10
    +
    +

    system-id

    ISIS system identifier

    0100.1001.0010

    system-id

    +
    ISIS system identifier.
    +
    Default: 0100.1001.0010
    +
    +

    area

    ISIS area(s)

    49.0001/24

    area

    +
    ISIS area(s)
    +
    Default: 49.0001/24
    +
    +

    sr-base

    ISIS SR base

    sr-base

    +
    ISIS SR base
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-range

    ISIS SR range

    sr-range

    +
    ISIS SR range
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-node-sid

    ISIS SR node SID

    sr-node-sid

    +
    ISIS SR node SID
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    teardown-time

    ISIS teardown time in seconds

    5

    teardown-time

    +
    ISIS teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +
    @@ -1927,30 +2871,37 @@

    ISIS External
    { "isis": { "external": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    purge

    Automatically purge all external LSP during teardown

    true

    purge

    +
    Automatically purge all external LSP during teardown. This option
    +
    requires a reasonable teardown-time depending on the database size.
    +
    Default: true
    +
    +

    auto-refresh

    Automatically refresh all external LSP

    false

    auto-refresh

    +
    Automatically refresh all external LSP.
    +
    Default: false
    +
    +

    mrt-file

    ISIS MRT file

    mrt-file

    +
    MRT file
    +
    +
    @@ -1960,228 +2911,531 @@

    ISIS External Connections
    { "isis": { "external": { "connections": [] } } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    system-id

    ISIS system identifier

    system-id

    +
    ISIS system identifier.
    +
    +

    l1-metric

    ISIS level 1 interface metric

    10

    l1-metric

    +
    ISIS level 1 interface metric.
    +
    Default: 10
    +
    +

    l2-metric

    ISIS level 2 interface metric

    10

    l2-metric

    +
    ISIS level 2 interface metric.
    +
    Default: 10
    +
    +

    -
    -

    BGP

    -
    { "bgp": {} }
    +
    +

    OSPF

    +
    { "ospf": {} }
     
    - +
    ---++ - - - - + + + + + - - - + + - - - + + - - - + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + + + + + + +

    Attribute

    Description

    Default

    network-interface

    BGP local interface (source interface)

    first network interface

    instance-id

    +
    OSPF instance identifier.
    +
    +

    version

    +
    OSPF version.
    +
    Default: 2
    +
    +

    local-ipv4-address

    BGP local IPv4 address (source address)

    network interface address

    auth-key

    +
    OSPF authentication key.
    +
    +

    local-as

    BGP local AS

    65000

    auth-type

    +
    OSPF authentication type (simple or md5).
    +
    +

    peer-ipv4-address

    BGP peer address

    hello-interval

    +
    OSPF hello interval in seconds.
    +
    Default: 10 Range: 1 - 65535
    +
    +

    dead-interval

    +
    OSPF dead interval in seconds.
    +
    Default: 40 Range: 1 - 65535
    +
    +

    peer-as

    BGP peer AS

    local AS

    lsa-retry-interval

    +
    OSPF LSA retry interval in seconds.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    hold-time

    BGP hold-time in seconds

    90

    hostname

    +
    OSPF hostname.
    +
    Default: bngblaster
    +
    +

    id

    BGP identifier

    1.2.3.4

    router-id

    +
    OSPF router identifier.
    +
    Default: 10.10.10.10
    +
    +

    reconnect

    BGP reconnect

    true

    router-priority

    +
    OSPF router priority.
    +
    Default: 64 Range: 0 - 255
    +
    +

    start-traffic

    BGP starts global traffic after RAW update

    false

    area

    +
    OSPF area.
    +
    Default: 0.0.0.0
    +
    +

    teardown-time

    BGP teardown time in seconds

    5

    sr-base

    +
    OSPF SR base.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    raw-update-file

    BGP RAW update file

    sr-range

    +
    OSPF SR range.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-node-sid

    +
    OSPF SR node SID.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    teardown-time

    +
    OSPF teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +
    +
    +

    OSPF External

    +
    { "ospf": { "external": {} } }
    +
    +
    + ++++ + + + + + + + + + + + + + +

    Attribute

    Description

    purge

    +
    Automatically purge all external LSA during teardown.
    +
    Default: true
    +
    +

    mrt-file

    +
    OSPF MRT file.
    +
    +
    +
    +
    +

    OSPF External Connections

    +
    { "ospf": { "external": { "connections": [] } } }
    +
    +
    + ++++ + + + + + + + + + + + + + + + + + + + +

    Attribute

    Description

    router-id

    +
    Mandatory remote router identifier.
    +
    +

    metric

    +
    Optional interface metric.
    +
    Default: 10 Range: 0 - 4294967295
    +
    +

    local-ipv4-address

    +
    Mandatory local IPv4 address (OSPFv2 only).
    +
    +

    local-interface-id

    +
    Local interface identifier (OSPFv3 only).
    +
    Default: 1 (2, 3, …)
    +
    +

    neighbor-interface-id

    +
    Remote interface identifier (OSPFv3 only).
    +
    Default: local-interface-id
    +
    +
    +

    LDP

    { "ldp": {} }
     
    - +
    ---++ - - - - + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    LDP instance identifier

    instance-id

    +
    LDP instance identifier.
    +
    +

    keepalive-time

    +
    LDP session keepalive time in seconds.
    +
    The keepalive-time defines the local LDP session
    +
    keepalive timeout. Each LDP peer must calculate the
    +
    effective keepalive timeout by using the smaller of its
    +
    locally defined and received timeout in the PDU. The
    +
    value chosen indicates the maximum number of seconds
    +
    that may elapse between the receipt of successive PDUs
    +
    from the LDP peer on the session TCP connection. The
    +
    keepalive timeout is reset each time a PDU arrives. The
    +
    BNG Blaster will send keepalive messages at an interval
    +
    calculated by using the effective keepalive time divided
    +
    by 3. Assuming an effective keepalive time of of 15
    +
    seconds results in a keepalive interval of 5 seconds.
    +
    Default: 15 Range: 0 - 65535
    +
    +

    keepalive-time

    LDP session keepalive time in seconds

    15

    hold-time

    +
    LDP hello hold time in seconds.
    +
    Default: 15 Range: 0 - 65535
    +
    +

    hold-time

    LDP hello hold time in seconds

    15

    teardown-time

    +
    LDP teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +

    hostname

    LDP hostname

    bngblaster

    hostname

    +
    LDP hostname.
    +
    Default: bngblaster
    +
    +

    lsr-id

    LDP LSR identifier

    10.10.10.10

    lsr-id

    +
    LDP LSR identifier.
    +
    Default: 10.10.10.10
    +
    +

    teardown-time

    LDP teardown time in seconds

    5

    ipv6-transport-address

    +
    LDP transport IPv6 address.
    +
    Setting a valid IPv6 address here enables LDP IPv6
    +
    hello and transport.
    +
    +

    ipv6-transport-address

    LDP transport IPv6 address

    ipv4-transport-address

    +
    LDP transport IPv4 address.
    +
    Default: lsr-id
    +
    +

    ipv4-transport-address

    LDP transport IPv6 address

    lsr-id

    no-ipv4-transport

    +
    Disable/discard IPv4 LDP hello messages.
    +
    +

    prefer-ipv4-transport

    +
    According to RFC7552, IPv6 is preferred over IPv4 which
    +
    can be changed with this option to prefer IPv4 transport
    +
    even if IPv6 is enabled.
    +
    Default: false
    +
    +

    no-ipv4-transport

    Disable/discard IPv4 LDP hello messages

    raw-update-file

    +
    LDP RAW update file.
    +
    +

    prefer-ipv4-transport

    Prefer IPv4 transport even if IPv6 is enabled

    false

    +
    +
    +

    BGP

    +
    { "bgp": {} }
    +
    +
    + ++++ + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Attribute

    Description

    raw-update-file

    LDP RAW update file

    network-interface

    +
    BGP local interface (source interface).
    +
    Default: first network interface from configuration
    +
    +

    local-ipv4-address

    +
    BGP local IPv4 address (source address).
    +
    Default: network interface address
    +
    +

    local-as

    +
    BGP local AS.
    +
    Default: 65000 Range: 0 - 4294967295
    +
    +

    peer-ipv4-address

    +
    Mandatory BGP peer address.
    +
    +

    peer-as

    +
    BGP peer AS.
    +
    Default: local AS Range: 0 - 4294967295
    +
    +

    hold-time

    +
    BGP hold-time in seconds.
    +
    Default: 90 Range: 0 - 65535
    +
    +

    id

    +
    BGP identifier.
    +
    Default: 1.2.3.4
    +
    +

    tos

    +
    BGP IP TOS.
    +
    Default: 0 Range: 0 - 255
    +
    +

    ttl

    +
    BGP IP TTL.
    +
    Default: 255 Range: 0 - 255
    +
    +

    reconnect

    +
    Reconnect BGP session automatically.
    +
    Default: true
    +
    +

    start-traffic

    +
    Start global traffic after RAW update finished.
    +
    If enabled, the control command traffic-start is automatically
    +
    executed as soon as the BGP RAW update has finished.
    +
    Default: false
    +
    +

    teardown-time

    +
    BGP teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +

    raw-update-file

    +
    BGP RAW update file.
    +
    +
    -

    The keepalive-time defines the local LDP session keepalive -timeout. Each LDP peer must calculate the effective keepalive -timeout by using the smaller of its locally defined and received -timeout in the PDU. The value chosen indicates the maximum number -of seconds that may elapse between the receipt of successive PDUs -from the LDP peer on the session TCP connection. The keepalive -timeout is reset each time a PDU arrives. The BNG Blaster will -send keepalive messages at an interval calculated by using the -effective keepalive time divided by 3. Assuming an effective -keepalive time of 15 seconds results in a keepalive interval -of 5 seconds.

    -

    Setting a valid ipv6-transport-address enables LDP IPv6 -hello and transport. According to RFC7552, IPv6 is preferred -over IPv4 which can be changed with prefer-ipv4-transport.

    HTTP-Client

    { "http-client": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory HTTP client name

    name

    +
    Mandatory HTTP client name.
    +
    +

    http-client-group-id

    Mandatory HTTP client identifier

    http-client-group-id

    +
    Mandatory HTTP client identifier.
    +
    Range: 1 - 65535
    +
    +

    url

    Mandatory HTTP request URL

    url

    +
    Mandatory HTTP request URL.
    +
    +

    destination-port

    TCP destination port

    80

    destination-port

    +
    TCP destination port.
    +
    Default: 80 Range: 1 - 65535
    +
    +

    autostart

    Autostart HTTP client

    true

    autostart

    +
    Autostart HTTP client.
    +
    Default: true
    +
    +

    start-delay

    Delay start of HTTP client

    0

    start-delay

    +
    HTTP client start delay in seconds.
    +
    Default: 0
    +
    +

    destination-ipv4-address

    Destination IPv4 address

    destination-ipv4-address

    +
    Destination IPv4 address.
    +
    +

    destination-ipv6-address

    Destination IPv6 address

    destination-ipv6-address

    +
    Destination IPv6 address.
    +
    +
    @@ -2191,38 +3445,47 @@

    HTTP-Server
    { "http-server": {} }
     

    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory HTTP server name

    name

    +
    Mandatory HTTP server name.
    +
    +

    network-interface

    Mandatory HTTP server network-interface

    network-interface

    +
    Mandatory HTTP server network-interface.
    +
    +

    port

    Local TCP port

    80

    port

    +
    Local TCP port.
    +
    Default: 80 Range: 1 - 65535
    +
    +

    ipv4-address

    Local IPv4 address

    ipv4-address

    +
    Local IPv4 address.
    +
    +

    ipv6-address

    Local IPv6 address

    ipv6-address

    +
    Local IPv6 address.
    +
    +
    diff --git a/docs/configuration/interfaces.html b/docs/configuration/interfaces.html index f74969e0..4f27d7ff 100644 --- a/docs/configuration/interfaces.html +++ b/docs/configuration/interfaces.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -75,71 +77,96 @@
    -

    The following configuration allows to overwrite the global default interface link settings.

    -
    { "interfaces": {} }
    +  
    { "interfaces": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    io-mode

    IO mode

    packet_mmap_raw

    io-mode

    +
    IO mode.
    +
    The supported IO modes are listed with bngblaster -v
    +
    but except packet_mmap_raw all other modes are currently
    +
    considered experimental. In the default mode (packet_mmap_raw)
    +
    all packets are received in a Packet MMAP ring buffer and sent
    +
    directly through RAW packet sockets.
    +
    Default: packet_mmap_raw
    +
    +

    io-slots

    IO slots (ring size)

    4096

    io-slots

    +
    IO slots (ring size).
    +
    It might be also needed to increase the io-slots 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.
    +
    Default: 4096
    +
    +

    qdisc-bypass

    Bypass the kernel’s qdisc layer

    true

    qdisc-bypass

    +
    Bypass the kernel’s qdisc layer.
    +
    Default: true
    +
    +

    tx-interval

    TX polling interval in milliseconds

    1.0

    tx-interval

    +
    TX polling interval in milliseconds.
    +
    Default: 1.0 Range: 0.0001 to 1000
    +
    +

    rx-interval

    RX polling interval in milliseconds

    1.0

    rx-interval

    +
    RX polling interval in milliseconds.
    +
    Default: 1.0 Range: 0.0001 to 1000
    +
    +

    tx-threads

    Number of TX threads per interface link

    0 (main thread)

    tx-threads

    +
    Number of TX threads per interface link.
    +
    Default: 0 (main thread)
    +
    +

    rx-threads

    Number of RX threads per interface link

    0 (main thread)

    rx-threads

    +
    Number of RX threads per interface link.
    +
    Default: 0 (main thread)
    +
    +

    capture-include-streams

    Include traffic streams in the capture

    false

    capture-include-streams

    +
    Include traffic streams in the capture.
    +
    Default: false
    +
    +

    mac-modifier

    Third byte of access session MAC address (0-255)

    0

    mac-modifier

    +
    Third byte of access session MAC address (0-255). This option
    +
    allows to run multiple BNG Blaster instances with disjoint session
    +
    MAC addresses.
    +
    Default: 0
    +
    +
    -

    The supported IO modes are listed with bngblaster -v but except -packet_mmap_raw all other modes are currently considered experimental. In -the default mode (packet_mmap_raw) all packets are received in a Packet MMAP -ring buffer and sent directly through 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.

    diff --git a/docs/configuration/interfaces_a10nsp.html b/docs/configuration/interfaces_a10nsp.html index 2e3f40dc..8a8b433d 100644 --- a/docs/configuration/interfaces_a10nsp.html +++ b/docs/configuration/interfaces_a10nsp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,30 +80,36 @@
    { "interfaces": { "a10nsp": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Parent interface link name (e.g. eth0, …)

    interface

    +
    Parent interface/link name (e.g. eth0, …).
    +
    +

    qinq

    Set outer VLAN ethertype to QinQ (0x88a8)

    false

    qinq

    +
    Set outer VLAN ethertype to QinQ (0x88a8).
    +
    Default: false
    +
    +

    mac

    Optional set gateway interface address manually

    mac

    +
    Optional set gateway interface address manually.
    +
    Default: parent interface/link MAC address
    +
    +
    diff --git a/docs/configuration/interfaces_access.html b/docs/configuration/interfaces_access.html index 889dbad2..5d6221db 100644 --- a/docs/configuration/interfaces_access.html +++ b/docs/configuration/interfaces_access.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,218 +80,342 @@
    { "interfaces": { "access": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Parent interface link name (e.g. eth0, …)

    interface

    +
    Parent interface/link name (e.g. eth0, …).
    +
    +

    network-interface

    Select the corresponding network interface for this session

    network-interface

    +
    Select the corresponding network interface for those sessions.
    +
    Default: first network interface from configuration
    +
    +

    a10nsp-interface

    Select the corresponding A10NSP interface for this session

    a10nsp-interface

    +
    Select the corresponding A10NSP interface for those sessions.
    +
    Default: first a10nsp interface from configuration
    +
    +

    type

    Set access type (pppoe or ipoe)

    pppoe

    type

    +
    Set access type (pppoe or ipoe).
    +
    Default: pppoe
    +
    +

    vlan-mode

    Set VLAN mode 1:1 or N:1

    1:1

    vlan-mode

    +
    Set VLAN mode to 1:1 or N:1.
    +
    Default: 1:1
    +
    +

    qinq

    Set outer VLAN ethertype to QinQ (0x88a8)

    false

    qinq

    +
    Set outer VLAN ethertype to QinQ (0x88a8).
    +
    Default: false
    +
    +

    outer-vlan-min

    Outer VLAN minimum value

    0 (untagged)

    outer-vlan-min

    +
    Outer VLAN minimum value.
    +
    Default: 0 (untagged)
    +
    +

    outer-vlan-max

    Outer VLAN maximum value

    0 (untagged)

    outer-vlan-max

    +
    Outer VLAN maximum value.
    +
    Default: 0 (untagged)
    +
    +

    outer-vlan-step

    Outer VLAN step (iterator)

    1

    outer-vlan-step

    +
    Outer VLAN step (iterator).
    +
    Default: 1
    +
    +

    outer-vlan

    Set outer-vlan-min/max equally

    outer-vlan

    +
    Set outer-vlan-min/max equally.
    +
    +

    inner-vlan-min

    Inner VLAN minimum value

    0 (untagged)

    inner-vlan-min

    +
    Inner VLAN minimum value.
    +
    Default: 0 (untagged)
    +
    +

    inner-vlan-max

    Inner VLAN maximum value

    0 (untagged)

    inner-vlan-max

    +
    Inner VLAN maximum value.
    +
    Default: 0 (untagged)
    +
    +

    inner-vlan-step

    Inner VLAN step (iterator)

    1

    inner-vlan-step

    +
    Inner VLAN step (iterator).
    +
    Default: 1
    +
    +

    inner-vlan

    Set inner-vlan-min/max equally

    inner-vlan

    +
    Set inner-vlan-min/max equally.
    +
    +

    third-vlan

    Add a fixed third VLAN (most inner VLAN)

    0 (untagged)

    third-vlan

    +
    Add a static third VLAN (most inner VLAN).
    +
    Default: 0 (untagged)
    +
    +

    address

    Static IPv4 base address (IPoE only)

    ipv4

    +
    Set false to deactivate IPv4.
    +
    +

    ppp-mru

    Overwrite PPP MRU (PPPoE only)

    ipv6

    +
    Set false to deactivate IPv6.
    +
    +

    address-iter

    Static IPv4 base address iterator (IPoE only)

    address

    +
    Static IPv4 base address (IPoE only).
    +
    +

    gateway

    Static IPv4 gateway address (IPoE only)

    address-iter

    +
    Static IPv4 base address iterator (IPoE only).
    +
    Default: 0.0.0.0
    +
    +

    gateway-iter

    Static IPv4 gateway address iterator (IPoE only)

    gateway

    +
    Static IPv4 gateway address (IPoE only).
    +
    +

    username

    Overwrite the username from the authentication section

    gateway-iter

    +
    Static IPv4 gateway address iterator (IPoE only).
    +
    Default: 0.0.0.0
    +
    +

    password

    Overwrite the password from the authentication section

    cfm-cc

    +
    Enable EOAM CFM CC (IPoE only).
    +
    Default: false
    +
    +

    authentication-protocol

    Overwrite the username from the authentication section

    cfm-level

    +
    Set EOAM CFM maintenance domain level.
    +
    Default: 0 Range: 0 - 7
    +
    +

    agent-circuit-id

    Overwrite the agent-circuit-id from the access-line section

    cfm-ma-id

    +
    Set EOAM CFM maintenance association identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    agent-remote-id

    Overwrite the agent-remote-id from the access-line section

    cfm-ma-name

    +
    Set EOAM CFM maintenance association short name (string).
    +
    +

    access-aggregation-circuit-id

    Overwrite the access-aggregation-circuit-id from the access-line section

    username

    +
    Overwrite the username from the authentication section.
    +
    +

    rate-up

    Overwrite the rate-up from the access-line section

    password

    +
    Overwrite the password from the authentication section.
    +
    +

    rate-down

    Overwrite the rate-down from the access-line section

    authentication-protocol

    +
    Overwrite the username from the authentication section.
    +
    +

    dsl-type

    Overwrite the dsl-type from the access-line section

    agent-circuit-id

    +
    Overwrite the agent-circuit-id from the access-line section.
    +
    +

    ipcp

    De-/activate PPP IPCP

    agent-remote-id

    +
    Overwrite the agent-remote-id from the access-line section.
    +
    +

    ip6cp

    De-/activate PPP IP6CP

    access-aggregation-circuit-id

    +
    Overwrite the access-aggregation-circuit-id from the
    +
    access-line section.
    +
    +

    ipv4

    De-/activate IPv4

    rate-up

    +
    Overwrite the rate-up from the access-line section.
    +
    +

    ipv6

    De-/activate IPv6

    rate-down

    +
    Overwrite the rate-down from the access-line section.
    +
    +

    dhcp

    De-/activate DHCP

    dsl-type

    +
    Overwrite the dsl-type from the access-line section.
    +
    +

    dhcpv6

    De-/activate DHCPv6

    ppp-mru

    +
    Overwrite PPP MRU (PPPoE only).
    +
    +

    dhcpv6-ldra

    De-/activate DHCPv6 LDRA

    ipcp

    +
    Overwrite PPP IPCP enable option (PPPoE only).
    +
    +

    igmp-autostart

    Overwrite IGMP autostart

    ip6cp

    +
    Overwrite PPP IP6CP enable option (PPPoE only).
    +
    +

    igmp-version

    Overwrite IGMP protocol version (1, 2 or 3)

    dhcp

    +
    Overwrite DHCP enable option.
    +
    +

    session-group-id

    Session group identifier

    dhcpv6

    +
    Overwrite DHCPv6 enable option.
    +
    +

    stream-group-id

    Stream group identifier

    dhcpv6-ldra

    +
    Overwrite DHCPv6 LDRA option.
    +
    +

    access-line-profile-id

    Access-line-profile identifier

    igmp-autostart

    +
    Overwrite IGMP autostart option.
    +
    +

    cfm-cc

    De-/activate EOAM CFM CC (IPoE only)

    false

    igmp-version

    +
    Overwrite IGMP protocol version (1, 2, or 3).
    +
    +

    cfm-level

    Set EOAM CFM maintenance domain level

    0

    session-group-id

    +
    Set session group identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    cfm-ma-id

    Set EOAM CFM maintenance association identifier

    0

    stream-group-id

    +
    Set stream group identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    cfm-ma-name

    Set EOAM CFM maintenance association short name

    access-line-profile-id

    +
    Set access-line-profile identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    i1-start

    Iterator for usage in strings {i1}

    1

    i1-start

    +
    Iterator {i1} start value.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    i1-step

    Iterator step per session

    1

    i1-step

    +
    Iterator {i1} step per session.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    i2-start

    Iterator for usage in strings {i2}

    1

    i2-start

    +
    Iterator {i2} start value.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    i2-step

    Iterator step per session

    1

    i2-step

    +
    Iterator {i2} step per session.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    monkey

    Enable monkey testing

    false

    monkey

    +
    Enable monkey testing.
    +
    Default: false
    +
    +
    diff --git a/docs/configuration/interfaces_lag.html b/docs/configuration/interfaces_lag.html index acb782f0..562328b4 100644 --- a/docs/configuration/interfaces_lag.html +++ b/docs/configuration/interfaces_lag.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,56 +80,77 @@
    { "interfaces": { "lag": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Interface name (e.g. lag0, …)

    interface

    +
    LAG interface name (e.g. lag0, …).
    +
    +

    lacp

    De-/activate LACP

    false

    lacp

    +
    Enable LACP.
    +
    Default: false
    +
    +

    lacp-timeout-short

    De-/activate LACP short timeout (3x1s)

    false (3x30s)

    lacp-timeout-short

    +
    Enable LACP short timeout (3x1s)
    +
    Default: false (3x30s)
    +
    +

    lacp-system-priority

    LACP system priority

    32768

    lacp-system-priority

    +
    LACP system priority.
    +
    Default: 32768
    +
    +

    lacp-system-id

    LACP system identifier

    02:ff:ff:ff:ff:00

    lacp-system-id

    +
    LACP system identifier
    +
    Default: 02:ff:ff:ff:ff:00
    +
    +

    lacp-min-active-links

    Define the minimum number of active links

    0

    lacp-min-active-links

    +
    Define the minimum number of active links.
    +
    Default: 0
    +
    +

    lacp-max-active-links

    Limit the maximum number of active links

    255

    lacp-max-active-links

    +
    Limit the maximum number of active links.
    +
    Default: 255
    +
    +

    mac

    LAG interface MAC address

    02:ff:ff:ff:ff:<id>

    mac

    +
    LAG interface MAC address.
    +
    Default: 02:ff:ff:ff:ff:<interface-id>
    +
    +

    Note

    -

    Multithreaded IO is not supported for LAG member interfaces!

    +

    Multithreaded TX is not supported for LAG member interfaces!

    diff --git a/docs/configuration/interfaces_links.html b/docs/configuration/interfaces_links.html index 3f9fe9fd..806e74de 100644 --- a/docs/configuration/interfaces_links.html +++ b/docs/configuration/interfaces_links.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -81,82 +83,116 @@
    { "interfaces": { "links": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Interface name (e.g. eth0, …)

    interface

    +
    Interface name (e.g. eth0, …).
    +
    +

    description

    Interface description

    description

    +
    Interface description.
    +
    +

    mac

    Overwrite the MAC address

    Interface MAC address

    mac

    +
    Overwrite the MAC address.
    +
    Default: physical interface MAC address
    +
    +

    io-mode

    Overwrite the IO mode

    lag-interface

    +
    Add interface/link to LAG group.
    +
    +

    io-slots

    Overwrite the IO slots (ring size)

    lacp-priority

    +
    LACP interface priority.
    +
    Default: 32768
    +
    +

    io-slots-tx

    Overwrite the TX IO slots (ring size)

    tx-cpuset

    +
    Optionally pin TX threads to CPU cores (cpuset). This is required
    +
    for DPDK only.
    +
    +

    io-slots-rx

    Overwrite the RX IO slots (ring size)

    rx-cpuset

    +
    Optionally pin RX threads to CPU cores (cpuset). This is required
    +
    for DPDK only.
    +
    +

    qdisc-bypass

    Overwrite the kernel’s qdisc layer configuration

    io-mode

    +
    Overwrite the IO mode.
    +
    +

    tx-interval

    Overwrite the TX polling interval in milliseconds

    io-slots

    +
    Overwrite the IO slots (ring size).
    +
    +

    rx-interval

    Overwrite the RX polling interval in milliseconds

    io-slots-tx

    +
    Overwrite the TX IO slots (ring size).
    +
    +

    tx-threads

    Overwrite the number of TX threads per interface link

    io-slots-rx

    +
    Overwrite the RX IO slots (ring size).
    +
    +

    rx-threads

    Overwrite the number of RX threads per interface link

    qdisc-bypass

    +
    Overwrite the kernel’s qdisc layer configuration.
    +
    +

    tx-cpuset

    Optionally pin TX threads to CPU cores (cpuset)

    tx-interval

    +
    Overwrite the TX polling interval in milliseconds.
    +
    +

    rx-cpuset

    Optionally pin RX threads to CPU cores (cpuset)

    rx-interval

    +
    Overwrite the RX polling interval in milliseconds.
    +
    +

    lag-interface

    Add interface link to LAG group

    tx-threads

    +
    Overwrite the number of TX threads per interface link.
    +
    +

    lacp-priority

    LACP interface priority

    32768

    rx-threads

    +
    Overwrite the number of RX threads per interface link.
    +
    +
    diff --git a/docs/configuration/interfaces_network.html b/docs/configuration/interfaces_network.html index ee0bfd6c..a3925bc6 100644 --- a/docs/configuration/interfaces_network.html +++ b/docs/configuration/interfaces_network.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,74 +80,156 @@
    { "interfaces": { "network": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + + + + + + + + + + + + + + + + + + + +

    Attribute

    Description

    Default

    interface

    Parent interface link name (e.g. eth0, …)

    interface

    +
    Parent interface/link name (e.g. eth0, …).
    +
    +

    address

    Local network interface IPv4 address

    address

    +
    Local IPv4 address (e.g. 10.0.0.1/24).
    +
    +

    gateway

    Gateway network interface IPv4 address

    gateway

    +
    Default gateway IPv4 address.
    +
    +

    address-ipv6

    Local network interface IPv6 address (implicitly /64)

    address-ipv6

    +
    Local IPv6 address (e.g. fc66::1/64)
    +
    +

    gateway-ipv6

    Gateway network interface IPv6 address (implicitly /64)

    gateway-ipv6

    +
    Default gateway IPv6 address.
    +
    +

    ipv6-router-advertisement

    Disable IPv6 router advertisements

    true

    ipv6-router-advertisement

    +
    Send IPv6 router advertisements (ICMPv6 RA).
    +
    Default: true
    +
    +

    vlan

    Network interface VLAN

    0 (untagged)

    vlan

    +
    Network interface VLAN
    +
    Default: 0 (untagged)
    +
    +

    gateway-mac

    Optional set gateway MAC address manually

    gateway-mac

    +
    Optional set default gateway MAC address manually. Per default
    +
    this MAC address is resolved via ARP/ND.
    +
    +

    gateway-resolve-wait

    Sessions will not start until gateways are resolved

    true

    gateway-resolve-wait

    +
    Sessions and protocols will not start until gateways are resolved.
    +
    Default: true
    +
    +

    isis-instance-id

    Assign the interface to ISIS instance

    isis-instance-id

    +
    Assign the interface to an ISIS instance.
    +
    +

    isis-level

    ISIS interface level

    3

    isis-level

    +
    ISIS interface level.
    +
    Default: 3 Range: 1 - 3
    +
    +

    isis-p2p

    ISIS P2P interface

    true

    isis-p2p

    +
    ISIS P2P interface.
    +
    Default: true
    +
    +

    isis-l1-metric

    ISIS level 1 interface metric

    10

    isis-l1-metric

    +
    ISIS level 1 interface metric.
    +
    Default: 10
    +
    +

    isis-l2-metric

    +
    ISIS level 2 interface metric.
    +
    Default: 10
    +
    +

    isis-l2-metric

    ISIS level 2 interface metric

    10

    ospfv2-instance-id

    +
    Assign the interface to an OSPFv2 instance.
    +
    +

    ospfv2-type

    +
    OSPFv2 interface type (p2p or broadcast).
    +
    Default: broadcast
    +
    +

    ospfv2-metric

    +
    OSPFv2 interface metric.
    +
    Default: 10
    +
    +

    ospfv3-instance-id

    +
    Assign the interface to an OSPFv3 instance.
    +
    +

    ospfv3-type

    +
    OSPFv3 interface type (p2p or broadcast).
    +
    Default: broadcast
    +
    +

    ospfv3-metric

    +
    +
    OSPFv3 interface metric.
    +
    +
    Default: 10
    +
    +

    ldp-instance-id

    +
    Assign the interface to a LDP instance.
    +
    +
    diff --git a/docs/configuration/ipoe.html b/docs/configuration/ipoe.html index a6a2176f..ce16f672 100644 --- a/docs/configuration/ipoe.html +++ b/docs/configuration/ipoe.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,34 +80,44 @@
    { "ipoe": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    ipv6

    Enable/disable IPv6

    true (enabled)

    ipv6

    +
    Enable/disable IPv6.
    +
    Default: true (enabled)
    +
    +

    ipv4

    Enable/disable IPv4

    true (enabled)

    ipv4

    +
    Enable/disable IPv4.
    +
    Default: true (enabled)
    +
    +

    arp-timeout

    Initial ARP timeout/retry interval in seconds

    1

    arp-timeout

    +
    Initial ARP timeout/retry interval in seconds.
    +
    Default: 1
    +
    +

    arp-interval

    Periodic ARP interval in seconds (0 means disabled)

    300

    arp-interval

    +
    Periodic ARP interval in seconds (0 means disabled).
    +
    Default: 300
    +
    +
    diff --git a/docs/configuration/isis.html b/docs/configuration/isis.html index 0086dbc7..f786fe6b 100644 --- a/docs/configuration/isis.html +++ b/docs/configuration/isis.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,146 +80,222 @@
    { "isis": {} }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    ISIS instance identifier

    level

    ISIS level

    3

    instance-id

    +
    ISIS instance identifier.
    +
    +

    overload

    ISIS overload

    false

    level

    +
    Level.
    +
    Default: 3 Range: 1 - 3
    +
    +

    protocol-ipv4

    Enable/disable IPv4

    true

    protocol-ipv4

    +
    Enable/disable IPv4 routing.
    +
    Default: true
    +
    +

    protocol-ipv6

    Enable/disable IPv6

    true

    protocol-ipv6

    +
    Enable/disable IPv6 routing.
    +
    Default: true
    +
    +

    level1-auth-key

    ISIS level 1 authentication key

    level1-auth-key

    +
    Level 1 authentication key.
    +
    +

    level1-auth-type

    ISIS level 1 authentication type (simple or md5)

    disabled

    level1-auth-type

    +
    Level 1 authentication type (simple or md5).
    +
    +

    level1-auth-hello

    ISIS level 1 hello authentication

    true

    level1-auth-hello

    +
    Level 1 hello authentication.
    +
    +

    level1-auth-csnp

    ISIS level 1 CSNP authentication

    true

    level1-auth-csnp

    +
    Level 1 CSNP authentication.
    +
    +

    level1-auth-psnp

    ISIS level 1 PSNP authentication

    true

    level1-auth-psnp

    +
    Level 1 PSNP authentication.
    +
    +

    level2-auth-key

    ISIS level 2 authentication key

    level2-auth-key

    +
    Level 2 authentication key.
    +
    +

    level2-auth-type

    ISIS level 2 authentication type (simple or md5)

    disabled

    level2-auth-type

    +
    Level 2 authentication type (simple or md5).
    +
    +

    level2-auth-hello

    ISIS level 2 hello authentication

    true

    level2-auth-hello

    +
    Level 2 hello authentication.
    +
    +

    level2-auth-csnp

    ISIS level 2 CSNP authentication

    true

    level2-auth-csnp

    +
    Level 2 CSNP authentication.
    +
    +

    level2-auth-psnp

    ISIS level 2 PSNP authentication

    true

    level2-auth-psnp

    +
    Level 2 PSNP authentication.
    +
    +

    hello-interval

    ISIS hello interval in seconds

    10

    hello-interval

    +
    Hello interval in seconds
    +
    Default: 10 Range: 1 - 65535
    +
    +

    hello-padding

    ISIS hello padding

    false

    hello-padding

    +
    Enable/disable hello padding.
    +
    Default: false
    +
    +

    hold-time

    ISIS hold time in seconds

    30

    hold-time

    +
    ISIS hold time in seconds.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    lsp-lifetime

    ISIS LSP lifetime in seconds

    65535

    lsp-lifetime

    +
    ISIS LSP lifetime in seconds.
    +
    Default: 65535 Range: 330 - 65535
    +
    +

    lsp-refresh-interval

    ISIS LSP refresh interval in seconds

    300

    lsp-refresh-interval

    +
    ISIS LSP refresh interval in seconds.
    +
    Default: 300 Range: 1 - 65535
    +
    +

    lsp-retry-interval

    ISIS LSP retry interval in seconds

    5

    lsp-retry-interval

    +
    ISIS LSP retry interval in seconds.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    lsp-tx-interval

    ISIS LSP TX interval in ms (time between LSP send windows)

    10

    lsp-tx-interval

    +
    ISIS LSP TX interval in ms (time between LSP send windows).
    +
    Default: 10 Range: 1 - 65535
    +
    +

    lsp-tx-window-size

    ISIS LSP TX window size (LSP send per window)

    1

    lsp-tx-window-size

    +
    ISIS LSP TX window size (LSP send per window).
    +
    Default: 1 Range: 1 - 65535
    +
    +

    csnp-interval

    ISIS CSNP interval in seconds

    30

    csnp-interval

    +
    ISIS CSNP interval in seconds.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    hostname

    ISIS hostname

    bngblaster

    hostname

    +
    ISIS hostname
    +
    Default: bngblaster
    +
    +

    router-id

    ISIS router identifier

    10.10.10.10

    router-id

    +
    ISIS router identifier.
    +
    Default: 10.10.10.10
    +
    +

    system-id

    ISIS system identifier

    0100.1001.0010

    system-id

    +
    ISIS system identifier.
    +
    Default: 0100.1001.0010
    +
    +

    area

    ISIS area(s)

    49.0001/24

    area

    +
    ISIS area(s)
    +
    Default: 49.0001/24
    +
    +

    sr-base

    ISIS SR base

    sr-base

    +
    ISIS SR base
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-range

    ISIS SR range

    sr-range

    +
    ISIS SR range
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-node-sid

    ISIS SR node SID

    sr-node-sid

    +
    ISIS SR node SID
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    teardown-time

    ISIS teardown time in seconds

    5

    teardown-time

    +
    ISIS teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +
    diff --git a/docs/configuration/isis_external.html b/docs/configuration/isis_external.html index 9274c8a8..361aee7f 100644 --- a/docs/configuration/isis_external.html +++ b/docs/configuration/isis_external.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,30 +80,37 @@
    { "isis": { "external": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    purge

    Automatically purge all external LSP during teardown

    true

    purge

    +
    Automatically purge all external LSP during teardown. This option
    +
    requires a reasonable teardown-time depending on the database size.
    +
    Default: true
    +
    +

    auto-refresh

    Automatically refresh all external LSP

    false

    auto-refresh

    +
    Automatically refresh all external LSP.
    +
    Default: false
    +
    +

    mrt-file

    ISIS MRT file

    mrt-file

    +
    MRT file
    +
    +
    diff --git a/docs/configuration/isis_external_connections.html b/docs/configuration/isis_external_connections.html index bbe91356..8298e530 100644 --- a/docs/configuration/isis_external_connections.html +++ b/docs/configuration/isis_external_connections.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,30 +80,36 @@
    { "isis": { "external": { "connections": [] } } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    system-id

    ISIS system identifier

    system-id

    +
    ISIS system identifier.
    +
    +

    l1-metric

    ISIS level 1 interface metric

    10

    l1-metric

    +
    ISIS level 1 interface metric.
    +
    Default: 10
    +
    +

    l2-metric

    ISIS level 2 interface metric

    10

    l2-metric

    +
    ISIS level 2 interface metric.
    +
    Default: 10
    +
    +
    diff --git a/docs/configuration/ldp.html b/docs/configuration/ldp.html index 848027db..0be40f9a 100644 --- a/docs/configuration/ldp.html +++ b/docs/configuration/ldp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,79 +80,108 @@
    { "ldp": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    LDP instance identifier

    instance-id

    +
    LDP instance identifier.
    +
    +

    keepalive-time

    LDP session keepalive time in seconds

    15

    keepalive-time

    +
    LDP session keepalive time in seconds.
    +
    The keepalive-time defines the local LDP session
    +
    keepalive timeout. Each LDP peer must calculate the
    +
    effective keepalive timeout by using the smaller of its
    +
    locally defined and received timeout in the PDU. The
    +
    value chosen indicates the maximum number of seconds
    +
    that may elapse between the receipt of successive PDUs
    +
    from the LDP peer on the session TCP connection. The
    +
    keepalive timeout is reset each time a PDU arrives. The
    +
    BNG Blaster will send keepalive messages at an interval
    +
    calculated by using the effective keepalive time divided
    +
    by 3. Assuming an effective keepalive time of of 15
    +
    seconds results in a keepalive interval of 5 seconds.
    +
    Default: 15 Range: 0 - 65535
    +
    +

    hold-time

    LDP hello hold time in seconds

    15

    hold-time

    +
    LDP hello hold time in seconds.
    +
    Default: 15 Range: 0 - 65535
    +
    +

    hostname

    LDP hostname

    bngblaster

    teardown-time

    +
    LDP teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +

    lsr-id

    LDP LSR identifier

    10.10.10.10

    hostname

    +
    LDP hostname.
    +
    Default: bngblaster
    +
    +

    teardown-time

    LDP teardown time in seconds

    5

    lsr-id

    +
    LDP LSR identifier.
    +
    Default: 10.10.10.10
    +
    +

    ipv6-transport-address

    LDP transport IPv6 address

    ipv6-transport-address

    +
    LDP transport IPv6 address.
    +
    Setting a valid IPv6 address here enables LDP IPv6
    +
    hello and transport.
    +
    +

    ipv4-transport-address

    LDP transport IPv6 address

    lsr-id

    ipv4-transport-address

    +
    LDP transport IPv4 address.
    +
    Default: lsr-id
    +
    +

    no-ipv4-transport

    Disable/discard IPv4 LDP hello messages

    no-ipv4-transport

    +
    Disable/discard IPv4 LDP hello messages.
    +
    +

    prefer-ipv4-transport

    Prefer IPv4 transport even if IPv6 is enabled

    false

    prefer-ipv4-transport

    +
    According to RFC7552, IPv6 is preferred over IPv4 which
    +
    can be changed with this option to prefer IPv4 transport
    +
    even if IPv6 is enabled.
    +
    Default: false
    +
    +

    raw-update-file

    LDP RAW update file

    raw-update-file

    +
    LDP RAW update file.
    +
    +
    -

    The keepalive-time defines the local LDP session keepalive -timeout. Each LDP peer must calculate the effective keepalive -timeout by using the smaller of its locally defined and received -timeout in the PDU. The value chosen indicates the maximum number -of seconds that may elapse between the receipt of successive PDUs -from the LDP peer on the session TCP connection. The keepalive -timeout is reset each time a PDU arrives. The BNG Blaster will -send keepalive messages at an interval calculated by using the -effective keepalive time divided by 3. Assuming an effective -keepalive time of 15 seconds results in a keepalive interval -of 5 seconds.

    -

    Setting a valid ipv6-transport-address enables LDP IPv6 -hello and transport. According to RFC7552, IPv6 is preferred -over IPv4 which can be changed with prefer-ipv4-transport.

    diff --git a/docs/configuration/lns.html b/docs/configuration/lns.html index cb270571..7bd85c09 100644 --- a/docs/configuration/lns.html +++ b/docs/configuration/lns.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,79 +80,115 @@
    { "l2tp-server": [] }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory L2TP LNS server hostname (AVP 7)

    name

    +
    Mandatory L2TP LNS server hostname (AVP 7)
    +
    +

    address

    Mandatory L2TP server address

    address

    +
    Mandatory L2TP server address.
    +
    +

    secret

    Tunnel secret

    secret

    +
    Tunnel secret.
    +
    +

    receive-window-size

    Control messages receive window size

    16

    receive-window-size

    +
    Control messages receive window size.
    +
    Default: 16 Range: 1 - 65535
    +
    +

    max-retry

    Control messages max retry

    5

    max-retry

    +
    Control messages max retry.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    congestion-mode

    Control messages congestion mode

    default

    congestion-mode

    +
    Control messages congestion mode (default, slow or aggressive).
    +
    The BNG Blaster supports different congestion modes for the
    +
    reliable delivery of control messages. The default mode is
    +
    described in RFC2661 appendix A (Control Channel Slow Start and
    +
    Congestion Avoidance). The mode slow uses a fixed control window
    +
    size of 1 where aggressive sticks to max permitted based on peer
    +
    received window size.
    +
    Default: default
    +
    +

    hello-interval

    Set hello interval

    30

    hello-interval

    +
    Set hello interval.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    data-control-priority

    Set the priority bit in the L2TP header for all non-IP data packets (LCP, IPCP, …)

    false

    data-control-priority

    +
    Set the priority bit in the L2TP header for all non-IP data
    +
    packets (LCP, IPCP, …).
    +
    Default: false
    +
    +

    data-length

    Set length bit for all data packets

    false

    data-length

    +
    Set length bit for all data packets.
    +
    Default: false
    +
    +

    data-offset

    Set offset bit with offset zero for all data packets

    false

    data-offset

    +
    Set offset bit with offset zero for all data packets.
    +
    Default: false
    +
    +

    control-tos

    L2TP control traffic (SCCRQ, ICRQ, …) TOS priority

    0

    control-tos

    +
    Set L2TP control traffic (SCCRQ, ICRQ, …) TOS priority.
    +
    Default: 0 Range: 0 - 255
    +
    +

    data-control-tos

    Set the L2TP tunnel TOS priority (outer IPv4 header) for all non-IP data packets (LCP, IPCP, …)

    0

    data-control-tos

    +
    Set the L2TP tunnel TOS priority (outer IPv4 header) for all
    +
    non-IP data packets (LCP, IPCP, …).
    +
    Default: 0 Range: 0 - 255
    +
    +

    lcp-padding

    Add fixed padding to LCP packets send from LNS

    0

    lcp-padding

    +
    Add fixed padding to LCP packets send from LNS.
    +
    Default: 0 Range: 0 - 65535
    +
    +
    -

    The BNG Blaster supports different congestion modes for the -reliable delivery of control messages. The default mode -is described in RFC2661 appendix A (Control Channel Slow Start and -Congestion Avoidance). The mode slow uses a fixed control window -size of 1 where aggressive sticks to max permitted based on peer -received window size.

    diff --git a/docs/configuration/ospf.html b/docs/configuration/ospf.html index 2cee70fa..1b817d5d 100644 --- a/docs/configuration/ospf.html +++ b/docs/configuration/ospf.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,82 +80,118 @@
    { "ospf": {} }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    OSPF instance identifier

    version

    version

    2

    instance-id

    +
    OSPF instance identifier.
    +
    +

    overload

    OSPF overload

    false

    version

    +
    OSPF version.
    +
    Default: 2
    +
    +

    auth-key

    OSPF authentication key

    auth-key

    +
    OSPF authentication key.
    +
    +

    auth-type

    OSPF authentication type (simple or md5)

    disabled

    auth-type

    +
    OSPF authentication type (simple or md5).
    +
    +

    hello-interval

    OSPF hello interval in seconds

    10

    hello-interval

    +
    OSPF hello interval in seconds.
    +
    Default: 10 Range: 1 - 65535
    +
    +

    dead-interval

    OSPF dead interval in seconds

    40

    dead-interval

    +
    OSPF dead interval in seconds.
    +
    Default: 40 Range: 1 - 65535
    +
    +

    lsa-retry-interval

    OSPF LSA retry interval in seconds

    5

    lsa-retry-interval

    +
    OSPF LSA retry interval in seconds.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    hostname

    OSPF hostname

    bngblaster

    hostname

    +
    OSPF hostname.
    +
    Default: bngblaster
    +
    +

    router-id

    OSPF router identifier

    10.10.10.10

    router-id

    +
    OSPF router identifier.
    +
    Default: 10.10.10.10
    +
    +

    router-priority

    OSPF router priority

    64

    router-priority

    +
    OSPF router priority.
    +
    Default: 64 Range: 0 - 255
    +
    +

    area

    OSPF area

    0.0.0.0

    area

    +
    OSPF area.
    +
    Default: 0.0.0.0
    +
    +

    sr-base

    OSPF SR base

    sr-base

    +
    OSPF SR base.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-range

    OSPF SR range

    sr-range

    +
    OSPF SR range.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-node-sid

    OSPF SR node SID

    sr-node-sid

    +
    OSPF SR node SID.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    teardown-time

    OSPF teardown time in seconds

    5

    teardown-time

    +
    OSPF teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +
    diff --git a/docs/configuration/ospf_external.html b/docs/configuration/ospf_external.html index 5ff812a1..6eae8317 100644 --- a/docs/configuration/ospf_external.html +++ b/docs/configuration/ospf_external.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,26 +80,29 @@
    { "ospf": { "external": {} } }
     
    - +
    ---++ - - - - + + - - - + +

    Attribute

    Description

    Default

    purge

    Automatically purge all external LSA during teardown

    true

    purge

    +
    Automatically purge all external LSA during teardown.
    +
    Default: true
    +
    +

    mrt-file

    OSPF MRT file

    mrt-file

    +
    OSPF MRT file.
    +
    +
    diff --git a/docs/configuration/ospf_external_connections.html b/docs/configuration/ospf_external_connections.html index 5a387b9f..44781bb3 100644 --- a/docs/configuration/ospf_external_connections.html +++ b/docs/configuration/ospf_external_connections.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,30 +80,49 @@
    { "ospf": { "external": { "connections": [] } } }
     
    - +
    ---++ - - - - + + + + + - - - + + - - - + + + + +

    Attribute

    Description

    Default

    router-id

    Mandatory remote router identifier

    router-id

    +
    Mandatory remote router identifier.
    +
    +

    metric

    +
    Optional interface metric.
    +
    Default: 10 Range: 0 - 4294967295
    +
    +

    local-ipv4-address

    Mandatory local IPv4 address (OSPFv2 only)

    local-ipv4-address

    +
    Mandatory local IPv4 address (OSPFv2 only).
    +
    +

    metric

    Optional interface metric

    10

    local-interface-id

    +
    Local interface identifier (OSPFv3 only).
    +
    Default: 1 (2, 3, …)
    +
    +

    neighbor-interface-id

    +
    Remote interface identifier (OSPFv3 only).
    +
    Default: local-interface-id
    +
    +
    diff --git a/docs/configuration/ppp.html b/docs/configuration/ppp.html index 98c27a31..e24be276 100644 --- a/docs/configuration/ppp.html +++ b/docs/configuration/ppp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,22 +80,23 @@
    { "ppp": {} }
     
    - +
    ---++ - - - - + +

    Attribute

    Description

    Default

    mru

    Define the maximum receive unit proposed via PPP

    1492

    mru

    +
    Define the maximum receive unit proposed via PPP.
    +
    Default: 1492 Range: 1 - 65535
    +
    +
    diff --git a/docs/configuration/ppp_authentication.html b/docs/configuration/ppp_authentication.html index 11abff16..6e210dd0 100644 --- a/docs/configuration/ppp_authentication.html +++ b/docs/configuration/ppp_authentication.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,38 +80,52 @@
    { "ppp": { "authentication": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    username

    Username

    user{session-global}@rtbrick.com

    username

    +
    Username.
    + +
    +

    password

    Password

    test

    password

    +
    Password.
    +
    Default: test
    +
    +

    timeout

    Authentication request timeout in seconds

    5

    timeout

    +
    Authentication request timeout in seconds.
    +
    Default: 5
    +
    +

    retry

    Authentication request max retry

    30

    retry

    +
    Authentication request max retry.
    +
    Default: 30
    +
    +

    protocol

    This value can be set to PAP or CHAP to reject the other protocol

    allow PAP and CHAP

    protocol

    +
    This value can be set to PAP or CHAP to reject
    +
    the other protocol.
    +
    Default: allow both PAP and CHAP
    +
    +
    diff --git a/docs/configuration/ppp_ip6cp.html b/docs/configuration/ppp_ip6cp.html index c391fb70..0f241f70 100644 --- a/docs/configuration/ppp_ip6cp.html +++ b/docs/configuration/ppp_ip6cp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,30 +80,37 @@
    { "ppp": { "ip6cp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable the IP6CP protocol

    true

    enable

    +
    This option allows to enable or disable the IP6CP protocol.
    +
    Default: true
    +
    +

    conf-request-timeout

    IP6CP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    IP6CP configuration request timeout in seconds.
    +
    Default: 5
    +
    +

    conf-request-retry

    IP6CP configuration request max retry

    10

    conf-request-retry

    +
    IP6CP configuration request max retry.
    +
    Default: 10
    +
    +
    diff --git a/docs/configuration/ppp_ipcp.html b/docs/configuration/ppp_ipcp.html index 8566aacb..01b7d352 100644 --- a/docs/configuration/ppp_ipcp.html +++ b/docs/configuration/ppp_ipcp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,42 +80,59 @@
    { "ppp": { "ipcp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    enable

    This option allows to enable or disable the IPCP protocol

    true

    enable

    +
    This option allows to enable or disable the IPCP protocol
    +
    Default: true
    +
    +

    request-ip

    Include IP-Address with 0.0.0.0 in initial LCP configuration request

    true

    request-ip

    +
    Include IP-Address with 0.0.0.0 in the initial IPCP
    +
    configuration request.
    +
    Default: true
    +
    +

    request-dns1

    Request Primary DNS Server Address (option 129)

    true

    request-dns1

    +
    Request Primary DNS Server Address (option 129).
    +
    Default: true
    +
    +

    request-dns2

    Request Secondary DNS Server Address (option 131)

    true

    request-dns2

    +
    Request Secondary DNS Server Address (option 131).
    +
    Default: true
    +
    +

    conf-request-timeout

    IPCP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    IPCP configuration request timeout in seconds
    +
    Default: 5
    +
    +

    conf-request-retry

    IPCP configuration request max retry

    10

    conf-request-retry

    +
    IPCP configuration request max retry.
    +
    Default: 10
    +
    +
    diff --git a/docs/configuration/ppp_lcp.html b/docs/configuration/ppp_lcp.html index 21526923..2738ec23 100644 --- a/docs/configuration/ppp_lcp.html +++ b/docs/configuration/ppp_lcp.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,46 +80,65 @@
    { "ppp": { "lcp": {} } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    conf-request-timeout

    LCP configuration request timeout in seconds

    5

    conf-request-timeout

    +
    LCP configuration request timeout in seconds.
    +
    Default: 5
    +
    +

    conf-request-retry

    LCP configuration request max retry

    10

    conf-request-retry

    +
    LCP configuration request max retry.
    +
    Default: 10
    +
    +

    keepalive-interval

    LCP echo request interval in seconds (0 means disabled)

    30

    keepalive-interval

    +
    LCP echo request interval in seconds (0 means disabled).
    +
    Default: 30
    +
    +

    keepalive-retry

    PPP LCP echo request max retry

    3

    keepalive-retry

    +
    PPP LCP echo request max retry.
    +
    Default: 3
    +
    +

    start-delay

    PPP LCP initial request delay in milliseconds

    0

    start-delay

    +
    PPP LCP initial request delay in milliseconds.
    +
    Default: 0
    +
    +

    ignore-vendor-specific

    Ignore LCP vendor-specific requests

    false

    ignore-vendor-specific

    +
    Ignore LCP vendor-specific requests.
    +
    Default: false
    +
    +

    connection-status-message

    Accept LCP connection status messages

    false

    connection-status-message

    +
    Accept LCP connection status messages.
    +
    Default: false
    +
    +
    diff --git a/docs/configuration/pppoe.html b/docs/configuration/pppoe.html index fa30c221..14c3a0b7 100644 --- a/docs/configuration/pppoe.html +++ b/docs/configuration/pppoe.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,46 +80,65 @@
    { "pppoe": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    session-time

    Max PPPoE session time in seconds

    0 (infinity)

    session-time

    +
    Max PPPoE session time in seconds.
    +
    Default: 0 (infinity)
    +
    +

    reconnect

    Automatically reconnect sessions if terminated

    false

    reconnect

    +
    Automatically reconnect sessions if terminated.
    +
    Default: false
    +
    +

    discovery-timeout

    PPPoE discovery (PADI and PADR) timeout in seconds

    5

    discovery-timeout

    +
    PPPoE discovery (PADI and PADR) timeout in seconds.
    +
    Default: 5
    +
    +

    discovery-retry

    PPPoE discovery (PADI and PADR) max retry

    10

    discovery-retry

    +
    PPPoE discovery (PADI and PADR) max retry.
    +
    Default: 10
    +
    +

    service-name

    PPPoE discovery service name

    service-name

    +
    PPPoE discovery service name.
    +
    Default:
    +
    +

    host-uniq

    PPPoE discovery host-uniq

    false

    host-uniq

    +
    PPPoE discovery host-uniq.
    +
    Default: false
    +
    +

    vlan-priority

    VLAN PBIT for all PPPoE/PPP control traffic

    0

    vlan-priority

    +
    VLAN PBIT for all PPPoE/PPP control traffic.
    +
    Default: 0
    +
    +
    diff --git a/docs/configuration/session_traffic.html b/docs/configuration/session_traffic.html index 78b31aa4..0939c7a8 100644 --- a/docs/configuration/session_traffic.html +++ b/docs/configuration/session_traffic.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,50 +80,76 @@
    { "session-traffic": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    autostart

    Automatically start session traffic after the session is established

    true

    autostart

    +
    Automatically start session traffic as soon as the
    +
    corresponding session is established.
    +
    Default: true
    +
    +

    ipv4-pps

    Autogenerate bidirectional IPv4 traffic between a network interface and all sessions

    0 (disabled)

    ipv4-pps

    +
    Autogenerate bidirectional IPv4 traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +

    ipv4-label

    Send downstream IPv4 traffic with the specified MPLS label

    0 (unlabeled)

    ipv4-label

    +
    Send downstream IPv4 traffic with the specified MPLS label.
    +
    Default: 0 (unlabeled)
    +
    +

    ipv4-address

    Overwrite network interface IPv4 address

    network interface address

    ipv4-address

    +
    Overwrite network interface IPv4 address.
    +
    Default: network interface address
    +
    +

    ipv6-pps

    Generate bidirectional IPv6 traffic between a network interface and all sessions

    0 (disabled)

    ipv6-pps

    +
    Generate bidirectional IPv6 traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +

    ipv6-label

    Send downstream IPv6 traffic with the specified MPLS label

    0 (unlabeled)

    ipv6-label

    +
    Send downstream IPv6 traffic with the specified MPLS label.
    +
    Default: 0 (unlabeled)
    +
    +

    ipv6-address

    Overwrite network interface IPv6 address

    network interface address

    ipv6-address

    +
    Overwrite network interface IPv6 address
    +
    Default: network interface address
    +
    +

    ipv6pd-pps

    Generate bidirectional IPv6PD (delegated prefix) traffic between a network interface and all sessions

    0 (disabled)

    ipv6pd-pps

    +
    Generate bidirectional IPv6PD (delegated prefix) traffic
    +
    between a network interface and all sessions.
    +
    Default: 0 (disabled)
    +
    +
    diff --git a/docs/configuration/sessions.html b/docs/configuration/sessions.html index 0419fdc9..87fb9f85 100644 --- a/docs/configuration/sessions.html +++ b/docs/configuration/sessions.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,71 +80,97 @@
    { "sessions": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    count

    Sessions (PPPoE + IPoE)

    1

    count

    +
    Sessions (PPPoE + IPoE).
    +
    Default: 1
    +
    +

    max-outstanding

    Max outstanding sessions

    800

    max-outstanding

    +
    Max outstanding sessions.
    +
    Default: 800
    +
    +

    start-rate

    Setup request rate in sessions per second

    400

    start-rate

    +
    Setup request rate in sessions per second.
    +
    Default: 400
    +
    +

    stop-rate

    Teardown request rate in sessions per second

    400

    stop-rate

    +
    Teardown request rate in sessions per second.
    +
    Default: 400
    +
    +

    iterate-vlan-outer

    Iterate on outer VLAN first

    false

    start-delay

    +
    Wait N seconds after all interfaces are resolved
    +
    before starting sessions.
    +
    Default: 0
    +
    +

    start-delay

    Wait N seconds after all interfaces are resolved before starting sessions

    0

    reconnect

    +
    Automatically reconnect sessions (PPPoE and IPoE).
    +
    Default: false
    +
    +

    reconnect

    Automatically reconnect sessions (PPPoE and IPoE) if terminated

    false

    autostart

    +
    Start sessions automatically.
    +
    Default: true
    +
    +

    autostart

    Start sessions automatically

    true

    monkey-autostart

    +
    Start monkey testing automatically if enabled.
    +
    Default: true
    +
    +

    monkey-autostart

    Start monkey testing automatically if enabled

    true

    iterate-vlan-outer

    +
    Iterate on outer VLAN first.
    +
    Per default, sessions are created by iteration over the
    +
    inner VLAN range first and outer VLAN second. Which can be
    +
    changed with this option to iterate on the outer VLAN first
    +
    and inner VLAN second.
    +

    +
    Assuming the following configuration:
    +
    “outer-vlan-min”: 1
    +
    “outer-vlan-max”: 2
    +
    “inner-vlan-min”: 3
    +
    “inner-vlan-max”: 4
    +
    This generates the sessions on VLAN (outer:inner)
    +
    1:3, 1:4, 2:3, 2:4 per default or alternative
    +
    1:3, 2:3, 1:4, 2:4 with this option enabled.
    +

    +
    Default: false
    +
    +
    -

    Per default, sessions are created by iteration over the inner VLAN range first and -outer VLAN second. Which can be changed by iterate-vlan-outer to iterate -on the outer VLAN first and inner VLAN second.

    -

    Therefore the following configuration generates the sessions on VLAN (outer:inner) -1:3, 1:4, 2:3, 2:4 per default or alternative 1:3, 2:3, 1:4, 2:4 with -iterate-vlan-outer enabled.

    -
    {
    -    "outer-vlan-min": 1,
    -    "outer-vlan-max": 2,
    -    "inner-vlan-min": 3,
    -    "inner-vlan-max": 4
    -}
    -
    -
    diff --git a/docs/configuration/streams.html b/docs/configuration/streams.html index 14e40d3a..5157bcd8 100644 --- a/docs/configuration/streams.html +++ b/docs/configuration/streams.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,161 +80,257 @@
    { "streams": {} }
     
    - +
    ---++ - - - - - - - - - - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + + - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory stream name

    stream-group-id

    Stream group identifier

    0 (raw)

    type

    Mandatory stream type (ipv4, ipv6 or ipv6pd)

    Attribute

    Description

    direction

    Mandatory stream direction (upstream, downstream or both)

    both

    name

    +
    Mandatory stream name.
    +
    +

    source-port

    Overwrite the default source port

    65056

    stream-group-id

    +
    Stream group identifier.
    +
    Default: 0 (raw)
    +
    +

    destination-port

    Overwrite the default destination port

    65056

    type

    +
    Mandatory stream type (ipv4, ipv6, or ipv6pd).
    +
    +

    ipv4-df

    Set IPv4 DF bit

    true

    direction

    +
    Stream direction (upstream, downstream, or both).
    +
    Default: both
    +
    +

    priority

    IPv4 TOS / IPv6 TC

    0

    source-port

    +
    Overwrite the default source port.
    +
    Default: 65056 Range: 0 - 65535
    +
    +

    vlan-priority

    VLAN priority

    0

    destination-port

    +
    Overwrite the default destination port.
    +
    Default: 65056 Range: 0 - 65535
    +
    +

    length

    Layer 3 (IP header + payload) traffic length (76 - 9000)

    128

    ipv4-df

    +
    Set IPv4 DF bit.
    +
    Default: true
    +
    +

    priority

    +
    IPv4 TOS / IPv6 TC.
    +
    For L2TP downstream traffic, the IPv4 TOS is applied
    +
    to the outer IPv4 and inner IPv4 header.
    +
    Default: 0 Range: 0 - 255
    +
    +

    pps

    Stream traffic rate in packets per second

    1

    vlan-priority

    +
    VLAN priority.
    +
    Default: 0 Range: 0 - 7
    +
    +

    bps

    Stream traffic rate in bits per second (layer 3)

    length

    +
    Layer 3 (IP header + payload) traffic length.
    +
    Default: 128 Range: 76 - 9000
    +
    +

    pps

    +
    Stream traffic rate in packets per second.
    +
    This value supports also float numbers like 0.1 or 2.5.
    +
    In example 0.1 means one packet every 10 seconds.
    +
    Default: 1.0
    +
    +

    bps

    +
    Stream traffic rate in bits per second (layer 3).
    +
    PPS has priority over bps where the second is only a helper
    +
    to calculate the actual PPS based on given bps and length.
    +
    The resulting rate in bps is the layer 3 rate because length
    +
    is also the layer 3 length (IP header + payload).
    +
    It is also supported to put the capital letters K (Kilo),
    +
    M (Mega) or G (Giga) in front of bps for better readability.
    +
    For example, "Gbps": 1
    +
    which is equal to "bps": 1000000000.
    +
    +

    a10nsp-interface

    Select the corresponding A10NSP interface for this stream

    a10nsp-interface

    +
    Select the corresponding A10NSP interface for this stream.
    +
    +

    network-interface

    Select the corresponding network interface for this stream

    network-interface

    +
    Select the corresponding network interface for this stream.
    +
    +

    network-ipv4-address

    Overwrite network interface IPv4 address

    network-ipv4-address

    +
    Overwrite network interface IPv4 address.
    +
    +

    network-ipv6-address

    Overwrite network interface IPv6 address

    network-ipv6-address

    +
    Overwrite network interface IPv6 address.
    +
    +

    destination-ipv4-address

    Overwrite the IPv4 destination address

    destination-ipv4-address

    +
    Overwrite the IPv4 destination address.
    +
    +

    destination-ipv6-address

    Overwrite the IPv6 destination address

    destination-ipv6-address

    +
    Overwrite the IPv6 destination address.
    +
    +

    access-ipv4-source-address

    +
    Overwrite the access IPv4 source address (client).
    +
    This option can be used to test the BNG RPF functionality
    +
    with traffic sent from source addresses different than those
    +
    assigned to the client.
    +
    +

    access-ipv6-source-address

    +
    Overwrite the access IPv6 source address (client).
    +
    This option can be used to test the BNG RPF functionality
    +
    with traffic sent from source addresses different than those
    +
    assigned to the client.
    +
    +

    access-ipv4-source-address

    Overwrite the access IPv4 source address (client)

    max-packets

    +
    Send a burst of N packets and stop.
    +
    Default: 0 (infinity)
    +
    +

    access-ipv6-source-address

    Overwrite the access IPv6 source address (client)

    start-delay

    +
    Wait N seconds after the session is established
    +
    before starting the traffic stream.
    +
    Default: 0
    +
    +

    max-packets

    Send a burst of N packets and stop

    0 (infinity)

    tx-label1

    +
    MPLS send (TX) label (outer label).
    +
    +

    start-delay

    Wait N seconds after the session is established before starting

    0

    tx-label1-exp

    +
    EXP bits of the first label (outer label).
    +
    Default: 0
    +
    +

    tx-label1

    MPLS send (TX) label (outer label)

    tx-label1-ttl

    +
    TTL of the first label (outer label).
    +
    Default: 255
    +
    +

    tx-label1-exp

    EXP bits of the first label (outer label)

    0

    tx-label2

    +
    MPLS send (TX) label (inner label).
    +
    +

    tx-label1-ttl

    TTL of the first label (outer label)

    255

    tx-label2-exp

    +
    EXP bits of the second label (inner label).
    +
    Default: 0
    +
    +

    tx-label2

    MPLS send (TX) label (inner label)

    tx-label2-ttl

    +
    TTL of the second label (inner label).
    +
    Default: 255
    +
    +

    tx-label2-exp

    EXP bits of the second label (inner label)

    0

    rx-label1

    +
    Expected receive MPLS label (outer label).
    +
    +

    tx-label2-ttl

    TTL of the second label (inner label)

    255

    rx-label2

    +
    Expected receive MPLS label (inner label).
    +
    +

    rx-label1

    Expected receive MPLS label (outer label)

    ldp-ipv4-lookup-address

    +
    Dynamically resolve outer label.
    +
    +

    rx-label2

    Expected receive MPLS label (inner label)

    ldp-ipv6-lookup-address

    +
    Dynamically resolve outer label.
    +
    +

    ldp-ipv4-lookup-address

    Dynamically resolve outer label

    nat

    +
    Enable NAT support.
    +
    Default: false
    +
    +

    ldp-ipv6-lookup-address

    Dynamically resolve outer label

    raw-tcp

    +
    Send RAW TCP traffic (UDP-like traffic with TCP header).
    +
    Default: false
    +
    +
    -

    For L2TP downstream traffic, the IPv4 TOS is applied to the outer IPv4 -and inner IPv4 header.

    -

    The pps option supports also float numbers like 0.1, or 2.5 PPS and has -priority over bps where the second is only a helper to calculate the pps -based on given bps and length. The resulting rate in bps is the -layer 3 rate because length is also the layer 3 length (IP header + payload). -It is also supported to put the capital letters K (Kilo), M (Mega) -or G (Giga) in front of bps for better readability. -For example "Gbps": 1 which is equal to "bps": 1000000000.

    -

    The options access-ipv4-source-address and access-ipv6-source-address -can be used to test the BNG RPF functionality with traffic sent from source addresses -different than those assigned to the client.

    diff --git a/docs/configuration/traffic.html b/docs/configuration/traffic.html index 8a37d95e..64ee5384 100644 --- a/docs/configuration/traffic.html +++ b/docs/configuration/traffic.html @@ -8,6 +8,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -78,40 +80,50 @@
    { "traffic": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    autostart

    Automatically start traffic

    true

    autostart

    +
    Automatically start traffic.
    +
    Default: true
    +
    +

    stop-verified

    Automatically stop traffic streams if verified

    false

    stop-verified

    +
    Automatically stop traffic streams if verified.
    +
    Default: false
    +
    +

    max-burst

    Stream flow burst size in packets

    16

    max-burst

    +
    Stream flow burst size in packets.
    +
    Default: 16
    +
    +

    stream-rate-calculation

    Enable stream rate calculation

    true

    stream-rate-calculation

    +
    Enable stream rate calculation.
    +
    This option should be set to false if massive
    +
    streams (e.g. more than 1M) are defined but
    +
    per-stream live rate statistics are not required.
    +
    Default: true
    +
    +
    -

    The option stream-rate-calculation should be set to -false if massive streams (> 1M) are defined but per-stream -live rate statistics are not required.

    diff --git a/docs/controller.html b/docs/controller.html index f3004638..2d08b084 100644 --- a/docs/controller.html +++ b/docs/controller.html @@ -8,6 +8,7 @@ + @@ -44,6 +45,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/faq.html b/docs/faq.html index d146754b..c52d007c 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -8,6 +8,7 @@ + @@ -43,6 +44,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/genindex.html b/docs/genindex.html index 20493191..44be7981 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -7,6 +7,7 @@ + @@ -42,6 +43,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/http.html b/docs/http.html index 857cab92..20ddb6fd 100644 --- a/docs/http.html +++ b/docs/http.html @@ -8,6 +8,7 @@ + @@ -16,7 +17,7 @@ - + @@ -48,6 +49,7 @@
  • HTTP Server
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -130,50 +132,68 @@

    HTTP Client
    { "http-client": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory HTTP client name

    name

    +
    Mandatory HTTP client name.
    +
    +

    http-client-group-id

    Mandatory HTTP client identifier

    http-client-group-id

    +
    Mandatory HTTP client identifier.
    +
    Range: 1 - 65535
    +
    +

    url

    Mandatory HTTP request URL

    url

    +
    Mandatory HTTP request URL.
    +
    +

    destination-port

    TCP destination port

    80

    destination-port

    +
    TCP destination port.
    +
    Default: 80 Range: 1 - 65535
    +
    +

    autostart

    Autostart HTTP client

    true

    autostart

    +
    Autostart HTTP client.
    +
    Default: true
    +
    +

    start-delay

    Delay start of HTTP client

    0

    start-delay

    +
    HTTP client start delay in seconds.
    +
    Default: 0
    +
    +

    destination-ipv4-address

    Destination IPv4 address

    destination-ipv4-address

    +
    Destination IPv4 address.
    +
    +

    destination-ipv6-address

    Destination IPv6 address

    destination-ipv6-address

    +
    Destination IPv6 address.
    +
    +
    @@ -314,38 +334,47 @@

    HTTP Server
    { "http-server": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory HTTP server name

    name

    +
    Mandatory HTTP server name.
    +
    +

    network-interface

    Mandatory HTTP server network-interface

    network-interface

    +
    Mandatory HTTP server network-interface.
    +
    +

    port

    Local TCP port

    80

    port

    +
    Local TCP port.
    +
    Default: 80 Range: 1 - 65535
    +
    +

    ipv4-address

    Local IPv4 address

    ipv4-address

    +
    Local IPv4 address.
    +
    +

    ipv6-address

    Local IPv6 address

    ipv6-address

    +
    Local IPv6 address.
    +
    +
    @@ -361,7 +390,7 @@

    HTTP Server - +
    diff --git a/docs/index.html b/docs/index.html index 36bd38f3..8d6f261c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,6 +8,7 @@ + @@ -44,6 +45,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -159,6 +161,7 @@

    ContentsRouting Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/install.html b/docs/install.html index d1ce8478..5f350f1c 100644 --- a/docs/install.html +++ b/docs/install.html @@ -8,6 +8,7 @@ + @@ -56,6 +57,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/interfaces.html b/docs/interfaces.html index 8b69fc1e..6fa2971f 100644 --- a/docs/interfaces.html +++ b/docs/interfaces.html @@ -8,6 +8,7 @@ + @@ -70,6 +71,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -175,71 +177,96 @@

    Operating System Settings

    Interface Settings

    The interfaces section contains all configurations around interface links and options.

    -

    The following configuration allows to overwrite the global default interface link settings.

    { "interfaces": {} }
     
    - +
    ---++ - - - - - - - - - - - - + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + +

    Attribute

    Description

    Default

    io-mode

    IO mode

    packet_mmap_raw

    io-slots

    IO slots (ring size)

    4096

    qdisc-bypass

    Bypass the kernel’s qdisc layer

    true

    io-mode

    +
    IO mode.
    +
    The supported IO modes are listed with bngblaster -v
    +
    but except packet_mmap_raw all other modes are currently
    +
    considered experimental. In the default mode (packet_mmap_raw)
    +
    all packets are received in a Packet MMAP ring buffer and sent
    +
    directly through RAW packet sockets.
    +
    Default: packet_mmap_raw
    +
    +

    io-slots

    +
    IO slots (ring size).
    +
    It might be also needed to increase the io-slots 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.
    +
    Default: 4096
    +
    +

    tx-interval

    TX polling interval in milliseconds

    1.0

    qdisc-bypass

    +
    Bypass the kernel’s qdisc layer.
    +
    Default: true
    +
    +

    rx-interval

    RX polling interval in milliseconds

    1.0

    tx-interval

    +
    TX polling interval in milliseconds.
    +
    Default: 1.0 Range: 0.0001 to 1000
    +
    +

    tx-threads

    Number of TX threads per interface link

    0 (main thread)

    rx-interval

    +
    RX polling interval in milliseconds.
    +
    Default: 1.0 Range: 0.0001 to 1000
    +
    +

    rx-threads

    Number of RX threads per interface link

    0 (main thread)

    tx-threads

    +
    Number of TX threads per interface link.
    +
    Default: 0 (main thread)
    +
    +

    capture-include-streams

    Include traffic streams in the capture

    false

    rx-threads

    +
    Number of RX threads per interface link.
    +
    Default: 0 (main thread)
    +
    +

    mac-modifier

    Third byte of access session MAC address (0-255)

    0

    capture-include-streams

    +
    Include traffic streams in the capture.
    +
    Default: false
    +
    +

    mac-modifier

    +
    Third byte of access session MAC address (0-255). This option
    +
    allows to run multiple BNG Blaster instances with disjoint session
    +
    MAC addresses.
    +
    Default: 0
    +
    +
    -

    The supported IO modes are listed with bngblaster -v but except -packet_mmap_raw all other modes are currently considered experimental. In -the default mode (packet_mmap_raw) all packets are received in a Packet MMAP -ring buffer and sent directly through 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.

    {
         "interfaces": {
             "tx-interval": 0.1,
    @@ -260,82 +287,116 @@ 

    Links
    { "interfaces": { "links": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Interface name (e.g. eth0, …)

    interface

    +
    Interface name (e.g. eth0, …).
    +
    +

    description

    Interface description

    description

    +
    Interface description.
    +
    +

    mac

    Overwrite the MAC address

    Interface MAC address

    mac

    +
    Overwrite the MAC address.
    +
    Default: physical interface MAC address
    +
    +

    io-mode

    Overwrite the IO mode

    lag-interface

    +
    Add interface/link to LAG group.
    +
    +

    io-slots

    Overwrite the IO slots (ring size)

    lacp-priority

    +
    LACP interface priority.
    +
    Default: 32768
    +
    +

    io-slots-tx

    Overwrite the TX IO slots (ring size)

    tx-cpuset

    +
    Optionally pin TX threads to CPU cores (cpuset). This is required
    +
    for DPDK only.
    +
    +

    io-slots-rx

    Overwrite the RX IO slots (ring size)

    rx-cpuset

    +
    Optionally pin RX threads to CPU cores (cpuset). This is required
    +
    for DPDK only.
    +
    +

    qdisc-bypass

    Overwrite the kernel’s qdisc layer configuration

    io-mode

    +
    Overwrite the IO mode.
    +
    +

    tx-interval

    Overwrite the TX polling interval in milliseconds

    io-slots

    +
    Overwrite the IO slots (ring size).
    +
    +

    rx-interval

    Overwrite the RX polling interval in milliseconds

    io-slots-tx

    +
    Overwrite the TX IO slots (ring size).
    +
    +

    tx-threads

    Overwrite the number of TX threads per interface link

    io-slots-rx

    +
    Overwrite the RX IO slots (ring size).
    +
    +

    rx-threads

    Overwrite the number of RX threads per interface link

    qdisc-bypass

    +
    Overwrite the kernel’s qdisc layer configuration.
    +
    +

    tx-cpuset

    Optionally pin TX threads to CPU cores (cpuset)

    tx-interval

    +
    Overwrite the TX polling interval in milliseconds.
    +
    +

    rx-cpuset

    Optionally pin RX threads to CPU cores (cpuset)

    rx-interval

    +
    Overwrite the RX polling interval in milliseconds.
    +
    +

    lag-interface

    Add interface link to LAG group

    tx-threads

    +
    Overwrite the number of TX threads per interface link.
    +
    +

    lacp-priority

    LACP interface priority

    32768

    rx-threads

    +
    Overwrite the number of RX threads per interface link.
    +
    +
    @@ -357,56 +418,77 @@

    Links
    { "interfaces": { "lag": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Interface name (e.g. lag0, …)

    interface

    +
    LAG interface name (e.g. lag0, …).
    +
    +

    lacp

    De-/activate LACP

    false

    lacp

    +
    Enable LACP.
    +
    Default: false
    +
    +

    lacp-timeout-short

    De-/activate LACP short timeout (3x1s)

    false (3x30s)

    lacp-timeout-short

    +
    Enable LACP short timeout (3x1s)
    +
    Default: false (3x30s)
    +
    +

    lacp-system-priority

    LACP system priority

    32768

    lacp-system-priority

    +
    LACP system priority.
    +
    Default: 32768
    +
    +

    lacp-system-id

    LACP system identifier

    02:ff:ff:ff:ff:00

    lacp-system-id

    +
    LACP system identifier
    +
    Default: 02:ff:ff:ff:ff:00
    +
    +

    lacp-min-active-links

    Define the minimum number of active links

    0

    lacp-min-active-links

    +
    Define the minimum number of active links.
    +
    Default: 0
    +
    +

    lacp-max-active-links

    Limit the maximum number of active links

    255

    lacp-max-active-links

    +
    Limit the maximum number of active links.
    +
    Default: 255
    +
    +

    mac

    LAG interface MAC address

    02:ff:ff:ff:ff:<id>

    mac

    +
    LAG interface MAC address.
    +
    Default: 02:ff:ff:ff:ff:<interface-id>
    +
    +

    Note

    -

    Multithreaded IO is not supported for LAG member interfaces!

    +

    Multithreaded TX is not supported for LAG member interfaces!

    {
         "interfaces": {
    @@ -463,74 +545,156 @@ 

    Links
    { "interfaces": { "network": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + + + + + + + - - - + + + + + - - - + + - - - + + + + + + + + + + +

    Attribute

    Description

    Default

    interface

    Parent interface link name (e.g. eth0, …)

    interface

    +
    Parent interface/link name (e.g. eth0, …).
    +
    +

    address

    Local network interface IPv4 address

    address

    +
    Local IPv4 address (e.g. 10.0.0.1/24).
    +
    +

    gateway

    Gateway network interface IPv4 address

    gateway

    +
    Default gateway IPv4 address.
    +
    +

    address-ipv6

    Local network interface IPv6 address (implicitly /64)

    address-ipv6

    +
    Local IPv6 address (e.g. fc66::1/64)
    +
    +

    gateway-ipv6

    Gateway network interface IPv6 address (implicitly /64)

    gateway-ipv6

    +
    Default gateway IPv6 address.
    +
    +

    ipv6-router-advertisement

    Disable IPv6 router advertisements

    true

    ipv6-router-advertisement

    +
    Send IPv6 router advertisements (ICMPv6 RA).
    +
    Default: true
    +
    +

    vlan

    Network interface VLAN

    0 (untagged)

    vlan

    +
    Network interface VLAN
    +
    Default: 0 (untagged)
    +
    +

    gateway-mac

    Optional set gateway MAC address manually

    gateway-mac

    +
    Optional set default gateway MAC address manually. Per default
    +
    this MAC address is resolved via ARP/ND.
    +
    +

    gateway-resolve-wait

    Sessions will not start until gateways are resolved

    true

    gateway-resolve-wait

    +
    Sessions and protocols will not start until gateways are resolved.
    +
    Default: true
    +
    +

    isis-instance-id

    Assign the interface to ISIS instance

    isis-instance-id

    +
    Assign the interface to an ISIS instance.
    +
    +

    isis-level

    ISIS interface level

    3

    isis-level

    +
    ISIS interface level.
    +
    Default: 3 Range: 1 - 3
    +
    +

    isis-p2p

    +
    ISIS P2P interface.
    +
    Default: true
    +
    +

    isis-l1-metric

    +
    ISIS level 1 interface metric.
    +
    Default: 10
    +
    +

    isis-l2-metric

    +
    ISIS level 2 interface metric.
    +
    Default: 10
    +
    +

    isis-p2p

    ISIS P2P interface

    true

    ospfv2-instance-id

    +
    Assign the interface to an OSPFv2 instance.
    +
    +

    ospfv2-type

    +
    OSPFv2 interface type (p2p or broadcast).
    +
    Default: broadcast
    +
    +

    isis-l1-metric

    ISIS level 1 interface metric

    10

    ospfv2-metric

    +
    OSPFv2 interface metric.
    +
    Default: 10
    +
    +

    isis-l2-metric

    ISIS level 2 interface metric

    10

    ospfv3-instance-id

    +
    Assign the interface to an OSPFv3 instance.
    +
    +

    ospfv3-type

    +
    OSPFv3 interface type (p2p or broadcast).
    +
    Default: broadcast
    +
    +

    ospfv3-metric

    +
    +
    OSPFv3 interface metric.
    +
    +
    Default: 10
    +
    +

    ldp-instance-id

    +
    Assign the interface to a LDP instance.
    +
    +
    @@ -612,218 +776,342 @@

    Links
    { "interfaces": { "access": [] } }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Parent interface link name (e.g. eth0, …)

    interface

    +
    Parent interface/link name (e.g. eth0, …).
    +
    +

    network-interface

    Select the corresponding network interface for this session

    network-interface

    +
    Select the corresponding network interface for those sessions.
    +
    Default: first network interface from configuration
    +
    +

    a10nsp-interface

    Select the corresponding A10NSP interface for this session

    a10nsp-interface

    +
    Select the corresponding A10NSP interface for those sessions.
    +
    Default: first a10nsp interface from configuration
    +
    +

    type

    Set access type (pppoe or ipoe)

    pppoe

    type

    +
    Set access type (pppoe or ipoe).
    +
    Default: pppoe
    +
    +

    vlan-mode

    Set VLAN mode 1:1 or N:1

    1:1

    vlan-mode

    +
    Set VLAN mode to 1:1 or N:1.
    +
    Default: 1:1
    +
    +

    qinq

    Set outer VLAN ethertype to QinQ (0x88a8)

    false

    qinq

    +
    Set outer VLAN ethertype to QinQ (0x88a8).
    +
    Default: false
    +
    +

    outer-vlan-min

    Outer VLAN minimum value

    0 (untagged)

    outer-vlan-min

    +
    Outer VLAN minimum value.
    +
    Default: 0 (untagged)
    +
    +

    outer-vlan-max

    Outer VLAN maximum value

    0 (untagged)

    outer-vlan-max

    +
    Outer VLAN maximum value.
    +
    Default: 0 (untagged)
    +
    +

    outer-vlan-step

    Outer VLAN step (iterator)

    1

    outer-vlan-step

    +
    Outer VLAN step (iterator).
    +
    Default: 1
    +
    +

    outer-vlan

    Set outer-vlan-min/max equally

    outer-vlan

    +
    Set outer-vlan-min/max equally.
    +
    +

    inner-vlan-min

    Inner VLAN minimum value

    0 (untagged)

    inner-vlan-min

    +
    Inner VLAN minimum value.
    +
    Default: 0 (untagged)
    +
    +

    inner-vlan-max

    Inner VLAN maximum value

    0 (untagged)

    inner-vlan-max

    +
    Inner VLAN maximum value.
    +
    Default: 0 (untagged)
    +
    +

    inner-vlan-step

    Inner VLAN step (iterator)

    1

    inner-vlan-step

    +
    Inner VLAN step (iterator).
    +
    Default: 1
    +
    +

    inner-vlan

    Set inner-vlan-min/max equally

    inner-vlan

    +
    Set inner-vlan-min/max equally.
    +
    +

    third-vlan

    Add a fixed third VLAN (most inner VLAN)

    0 (untagged)

    third-vlan

    +
    Add a static third VLAN (most inner VLAN).
    +
    Default: 0 (untagged)
    +
    +

    address

    Static IPv4 base address (IPoE only)

    ipv4

    +
    Set false to deactivate IPv4.
    +
    +

    ppp-mru

    Overwrite PPP MRU (PPPoE only)

    ipv6

    +
    Set false to deactivate IPv6.
    +
    +

    address-iter

    Static IPv4 base address iterator (IPoE only)

    address

    +
    Static IPv4 base address (IPoE only).
    +
    +

    gateway

    Static IPv4 gateway address (IPoE only)

    address-iter

    +
    Static IPv4 base address iterator (IPoE only).
    +
    Default: 0.0.0.0
    +
    +

    gateway-iter

    Static IPv4 gateway address iterator (IPoE only)

    gateway

    +
    Static IPv4 gateway address (IPoE only).
    +
    +

    username

    Overwrite the username from the authentication section

    gateway-iter

    +
    Static IPv4 gateway address iterator (IPoE only).
    +
    Default: 0.0.0.0
    +
    +

    password

    Overwrite the password from the authentication section

    cfm-cc

    +
    Enable EOAM CFM CC (IPoE only).
    +
    Default: false
    +
    +

    authentication-protocol

    Overwrite the username from the authentication section

    cfm-level

    +
    Set EOAM CFM maintenance domain level.
    +
    Default: 0 Range: 0 - 7
    +
    +

    agent-circuit-id

    Overwrite the agent-circuit-id from the access-line section

    cfm-ma-id

    +
    Set EOAM CFM maintenance association identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    agent-remote-id

    Overwrite the agent-remote-id from the access-line section

    cfm-ma-name

    +
    Set EOAM CFM maintenance association short name (string).
    +
    +

    access-aggregation-circuit-id

    Overwrite the access-aggregation-circuit-id from the access-line section

    username

    +
    Overwrite the username from the authentication section.
    +
    +

    rate-up

    Overwrite the rate-up from the access-line section

    password

    +
    Overwrite the password from the authentication section.
    +
    +

    rate-down

    Overwrite the rate-down from the access-line section

    authentication-protocol

    +
    Overwrite the username from the authentication section.
    +
    +

    dsl-type

    Overwrite the dsl-type from the access-line section

    agent-circuit-id

    +
    Overwrite the agent-circuit-id from the access-line section.
    +
    +

    ipcp

    De-/activate PPP IPCP

    agent-remote-id

    +
    Overwrite the agent-remote-id from the access-line section.
    +
    +

    ip6cp

    De-/activate PPP IP6CP

    access-aggregation-circuit-id

    +
    Overwrite the access-aggregation-circuit-id from the
    +
    access-line section.
    +
    +

    ipv4

    De-/activate IPv4

    rate-up

    +
    Overwrite the rate-up from the access-line section.
    +
    +

    ipv6

    De-/activate IPv6

    rate-down

    +
    Overwrite the rate-down from the access-line section.
    +
    +

    dhcp

    De-/activate DHCP

    dsl-type

    +
    Overwrite the dsl-type from the access-line section.
    +
    +

    dhcpv6

    De-/activate DHCPv6

    ppp-mru

    +
    Overwrite PPP MRU (PPPoE only).
    +
    +

    dhcpv6-ldra

    De-/activate DHCPv6 LDRA

    ipcp

    +
    Overwrite PPP IPCP enable option (PPPoE only).
    +
    +

    igmp-autostart

    Overwrite IGMP autostart

    ip6cp

    +
    Overwrite PPP IP6CP enable option (PPPoE only).
    +
    +

    igmp-version

    Overwrite IGMP protocol version (1, 2 or 3)

    dhcp

    +
    Overwrite DHCP enable option.
    +
    +

    session-group-id

    Session group identifier

    dhcpv6

    +
    Overwrite DHCPv6 enable option.
    +
    +

    stream-group-id

    Stream group identifier

    dhcpv6-ldra

    +
    Overwrite DHCPv6 LDRA option.
    +
    +

    access-line-profile-id

    Access-line-profile identifier

    igmp-autostart

    +
    Overwrite IGMP autostart option.
    +
    +

    cfm-cc

    De-/activate EOAM CFM CC (IPoE only)

    false

    igmp-version

    +
    Overwrite IGMP protocol version (1, 2, or 3).
    +
    +

    cfm-level

    Set EOAM CFM maintenance domain level

    0

    session-group-id

    +
    Set session group identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    cfm-ma-id

    Set EOAM CFM maintenance association identifier

    0

    stream-group-id

    +
    Set stream group identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    cfm-ma-name

    Set EOAM CFM maintenance association short name

    access-line-profile-id

    +
    Set access-line-profile identifier.
    +
    Default: 0 Range: 0 - 65535
    +
    +

    i1-start

    Iterator for usage in strings {i1}

    1

    i1-start

    +
    Iterator {i1} start value.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    i1-step

    Iterator step per session

    1

    i1-step

    +
    Iterator {i1} step per session.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    i2-start

    Iterator for usage in strings {i2}

    1

    i2-start

    +
    Iterator {i2} start value.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    i2-step

    Iterator step per session

    1

    i2-step

    +
    Iterator {i2} step per session.
    +
    Default: 1 Range: 0 - 4294967295
    +
    +

    monkey

    Enable monkey testing

    false

    monkey

    +
    Enable monkey testing.
    +
    Default: false
    +
    +
    @@ -1013,30 +1301,36 @@

    Triple Tagged
    { "interfaces": { "a10nsp": [] } }
     

    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    interface

    Parent interface link name (e.g. eth0, …)

    interface

    +
    Parent interface/link name (e.g. eth0, …).
    +
    +

    qinq

    Set outer VLAN ethertype to QinQ (0x88a8)

    false

    qinq

    +
    Set outer VLAN ethertype to QinQ (0x88a8).
    +
    Default: false
    +
    +

    mac

    Optional set gateway interface address manually

    mac

    +
    Optional set gateway interface address manually.
    +
    Default: parent interface/link MAC address
    +
    +
    diff --git a/docs/nat.html b/docs/nat.html new file mode 100644 index 00000000..1a2c9a4b --- /dev/null +++ b/docs/nat.html @@ -0,0 +1,443 @@ + + + + + + + NAT / CGNAT — BNG Blaster 0.8 documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    NAT / CGNAT

    +

    NAT, or Network Address Translation, is a technology used in +computer networking to enable multiple devices on a local +network to share a single public IP address for connecting to +the internet. NAT works by mapping private IP addresses used +within a local network to a single public IP address when +communicating with external networks, such as the internet. +This allows a single public IP address to serve as an entry +point for multiple devices within the private network, +effectively concealing the internal network structure.

    +

    Carrier-Grade NAT (CGNAT) is an extension of NAT specifically +designed for large-scale service providers, such as internet +service providers (ISPs) and telecommunications companies. +It is used to address the increasing scarcity of IPv4 addresses, +as more and more devices are connected to the internet.

    +

    The BNG Blaster incorporates a comprehensive set of functionalities +tailored to NAT, with a particular focus on CGNAT testing. These +features are purpose-built to address the specific requirements and +complexities associated with Carrier-Grade Network Address Translation.

    +

    The tool offers a range of capabilities that are instrumental in assessing +and validating the performance and functionality of CGNAT systems. +This includes the ability to simulate and analyze large-scale address +translation scenarios, ensuring that the NAT infrastructure effectively +handles the demands of a multitude of users sharing a limited pool of public +IP addresses. Furthermore, the BNG Blaster’s CGNAT testing features enable the +emulation of various network conditions and scenarios, helping service providers +and network operators assess the impact of CGNAT on user experiences and address +any potential issues.

    +

    In addition to CGNAT testing, the BNG Blaster’s NAT-related features encompass +a broad spectrum of testing and evaluation options, ensuring that Network Address +Translation mechanisms, whether they be traditional NAT or CGNAT, are rigorously +examined for performance, scalability, and reliability. This robust suite of tools +makes the BNG Blaster an invaluable resource for network professionals working +with NAT technologies in their infrastructure.

    +
    +

    NAT Features

    +
    +

    Reverse Flow

    +

    For all bidirectional streams (“direction”: “both”), the reverse (other direction) +stream flow-id is now displayed which allows for more efficient analysis of +bidirectional flows.

    +
    $ sudo bngblaster-cli run.sock stream-info flow-id 1
    +{
    +    "status": "ok",
    +    "code": 200,
    +    "stream-info": {
    +        "name": "UDP1",
    +…
    +        "flow-id": 1,
    +…
    +        "reverse-flow-id": 2
    +    }
    +}
    +$ sudo bngblaster-cli run.sock stream-info flow-id 2
    +{
    +    "status": "ok",
    +    "code": 200,
    +    "stream-info": {
    +        "name": "UDP1",
    +…
    +        "flow-id": 2,
    +…
    +        "reverse-flow-id": 1
    +    }
    +}
    +
    +
    +
    +
    +

    Flow Addresses

    +

    The configured or dynamically resolved source and destination +address and port is now shown with stream-info command.

    +
    $ sudo bngblaster-cli run.sock stream-info flow-id 1
    +{
    +    "status": "ok",
    +    "code": 200,
    +    "stream-info": {
    +        "name": "UDP1",
    +        "type": "unicast",
    +        "sub-type": "ipv4",
    +        "direction": "downstream",
    +        "source-address": "10.0.0.1",
    +        "source-port": 65056,
    +        "destination-address": "192.0.2.8",
    +        "destination-port": 65056,
    +        "protocol": "udp", # udp or tcp
    +…
    +    }
    +}
    +
    +
    +
    +
    +

    NAT Enabled Streams

    +

    A new option called nat is added to the stream configuraton. +This option is supported for bidirectional and upstream streams only, +meaning it is not supported for downstream-only streams, as those can’t +pass a NAT gateway.

    +

    For bidirectional streams, the downstream flow waits until first upstream +packet has been received to learn the translated source address and port +which have to be used as destionation for this flow.

    +
    {
    +    "streams": [
    +        {
    +            "name": "UDP1",
    +            "stream-group-id": 1,
    +            "type": "ipv4",
    +            "direction": "both",
    +            "pps": 1,
    +            "nat": true,
    +            "network-ipv4-address": "10.0.0.1"
    +        },
    +        {
    +            "name": "UDP2",
    +            "stream-group-id": 1,
    +            "type": "ipv4",
    +            "direction": "upstream",
    +            "pps": 1,
    +            "nat": true,
    +            "network-ipv4-address": "10.0.0.2"
    +        }
    +    ]
    +}
    +
    +
    +

    The stream in the upstream direction (from the client) will also record the +received source IPv4 address and port, meaning the address and port assigned by the +NAT gateway.

    +
    $ sudo bngblaster-cli run.sock stream-info flow-id 1
    +{
    +    "status": "ok",
    +    "code": 200,
    +    "stream-info": {
    +        "name": "UDP1",
    +        "type": "unicast",
    +        "sub-type": "ipv4",
    +        "direction": "upstream",
    +        "source-address": "100.64.0.2",
    +        "source-port": 65056,
    +        "destination-address": "10.0.0.1",
    +        "destination-port": 65056,
    +        "protocol": "udp", # udp or tcp
    +…
    +        "rx-source-ip": "192.0.2.8",
    +        "rx-source-port": 48523,
    +…
    +        "session-id": 1,
    +        "reverse-flow-id": 2
    +    }
    +}
    +
    +
    +
    +
    +

    TCP RAW Streams

    +

    A new option called raw-tcp is added to the stream configuraton. +If enabled, UDP-like traffic with a constant rate is sent using a +static (RAW) TCP header.

    +
    {
    +    "streams": [
    +        {
    +            "name": "TCP1",
    +            "stream-group-id": 1,
    +            "type": "ipv4",
    +            "direction": "both",
    +            "pps": 1,
    +            "raw-tcp": true,
    +            "network-ipv4-address": "10.0.0.1"
    +        }
    +    ]
    +}
    +
    +
    +

    This option can be used stand-alone to verify firewall filters or together +with the new NAT option to verify NAT TCP streams.

    +

    For now, TCP flags (SYN, …) are statically set to SYN but this could be adopted if needed.

    +
    +
    +

    HTTP NAT Extension

    +

    The existing HTTP client/server was also enhanced for NAT usage. +The actual configuration is uncahnged but the HTTP server will now return the +received client IP address and port in dedicated HTTP headers as shown below +where X-Client-Ip and Port shows the IP address and port assigned from the NAT gateway.

    +
    {
    +    "interfaces": {
    +        "capture-include-streams": true,
    +        "network": {
    +            "interface": "enp6s21",
    +            "address": "192.0.2.254/24",
    +            "gateway": "192.0.2.1"
    +        },
    +        "access": [
    +        {
    +            "interface": "enp6s20",
    +            "type": "ipoe",
    +            "address": "100.64.0.2",
    +            "address-iter": "0.0.0.1",
    +            "gateway": "100.64.0.1",
    +            "gateway-iter": "0.0.0.0",
    +            "dhcp": false,
    +            "ipv6": false,
    +            "http-client-group-id": 1
    +        }
    +    ]
    +    },
    +    "http-client": [
    +        {
    +            "http-client-group-id": 1,
    +            "name": "C1",
    +            "destination-ipv4-address": "192.0.2.254",
    +            "destination-port": 80,
    +            "url": "blaster.test.de"
    +        },
    +        {
    +            "http-client-group-id": 1,
    +            "name": "C2",
    +            "destination-ipv4-address": "192.0.2.254",
    +            "destination-port": 80,
    +            "url": "blaster.test.de"
    +        }
    +    ],
    +    "http-server": [
    +        {
    +            "name": "SERVER",
    +            "ipv4-address": "192.0.2.254",
    +            "port": 80,
    +            "network-interface": "enp6s21"
    +        }
    +    ]
    +}
    +
    +
    +
    $ sudo bngblaster-cli run.sock http-clients
    +{
    +    "status": "ok",
    +    "code": 200,
    +    "http-clients": [
    +        {
    +            "session-id": 1,
    +            "http-client-group-id": 1,
    +            "name": "C2",
    +            "url": "blaster.test.de",
    +            "destination-address": "192.0.2.254",
    +            "destination-port": 80,
    +            "state": "closed",
    +            "response": {
    +                "minor-version": 1,
    +                "status": 200,
    +                "msg": "OK\r\nServer: BNG-Blaster\r\nX-Client-Ip: 192.0.2.5\r\nX-Client-Port: 63122\r\n\r\n",
    +                "headers": [
    +                    {
    +                        "name": "Server",
    +                        "value": "BNG-Blaster"
    +                    },
    +                    {
    +                        "name": "X-Client-Ip",
    +                        "value": "192.0.2.5"
    +                    },
    +                    {
    +                        "name": "X-Client-Port",
    +                        "value": "63122"
    +                    }
    +                ]
    +            }
    +        },
    +        {
    +            "session-id": 1,
    +            "http-client-group-id": 1,
    +            "name": "C1",
    +            "url": "blaster.test.de",
    +            "destination-address": "192.0.2.254",
    +            "destination-port": 80,
    +            "state": "closed",
    +            "response": {
    +                "minor-version": 1,
    +                "status": 200,
    +                "msg": "OK\r\nServer: BNG-Blaster\r\nX-Client-Ip: 192.0.2.5\r\nX-Client-Port: 63121\r\n\r\n",
    +                "headers": [
    +                    {
    +                        "name": "Server",
    +                        "value": "BNG-Blaster"
    +                    },
    +                    {
    +                        "name": "X-Client-Ip",
    +                        "value": "192.0.2.5"
    +                    },
    +                    {
    +                        "name": "X-Client-Port",
    +                        "value": "63121"
    +                    }
    +                ]
    +            }
    +        }
    +    ]
    +}
    +
    +
    +

    Unfortunately HTTP client/server scaling is limited, therefore raw-TCP +streams is the better option to test NAT on scale.

    +
    +
    +

    Scaling

    +

    The number of UDP and raw-TCP traffic streams can be further expanded by +leveraging the following configuration options.

    +

    One option to increase scaling is to disable per stream live rate calculation +which is typically not needed for millions of streams.

    +
    { "traffic": { "stream-rate-calculation": false } }
    +
    +
    +

    All traffic stats are still working but the live rate is not calculated.

    +

    Another option is to setup the traffic streams with a rate of 0.1 PPS, +meaning one packet every 10 seconds. This is enough to keep NAT translation +active but allows 1M streams with only 100K PPS.

    +

    See also performance guide for further optimiisations.

    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/objects.inv b/docs/objects.inv index 64ab040e..48f2340e 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/performance.html b/docs/performance.html index ca65443b..9d7f8eca 100644 --- a/docs/performance.html +++ b/docs/performance.html @@ -8,6 +8,7 @@ + @@ -44,6 +45,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/quickstart.html b/docs/quickstart.html index 8fdd22a6..a9810e92 100644 --- a/docs/quickstart.html +++ b/docs/quickstart.html @@ -8,6 +8,7 @@ + @@ -52,6 +53,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/reports.html b/docs/reports.html index 53ff4907..46092422 100644 --- a/docs/reports.html +++ b/docs/reports.html @@ -8,6 +8,7 @@ + @@ -17,7 +18,7 @@ - + @@ -44,6 +45,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • diff --git a/docs/routing/bgp.html b/docs/routing/bgp.html index e7888791..674e9ca9 100644 --- a/docs/routing/bgp.html +++ b/docs/routing/bgp.html @@ -8,6 +8,7 @@ + @@ -59,6 +60,7 @@
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -128,62 +130,107 @@

    Configuration
    { "bgp": {} }
     

    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + + - - - + + + + +

    Attribute

    Description

    Default

    network-interface

    BGP local interface (source interface)

    first network interface

    network-interface

    +
    BGP local interface (source interface).
    +
    Default: first network interface from configuration
    +
    +

    local-ipv4-address

    BGP local IPv4 address (source address)

    network interface address

    local-ipv4-address

    +
    BGP local IPv4 address (source address).
    +
    Default: network interface address
    +
    +

    local-as

    BGP local AS

    65000

    local-as

    +
    BGP local AS.
    +
    Default: 65000 Range: 0 - 4294967295
    +
    +

    peer-ipv4-address

    BGP peer address

    peer-ipv4-address

    +
    Mandatory BGP peer address.
    +
    +

    peer-as

    BGP peer AS

    local AS

    peer-as

    +
    BGP peer AS.
    +
    Default: local AS Range: 0 - 4294967295
    +
    +

    hold-time

    BGP hold-time in seconds

    90

    hold-time

    +
    BGP hold-time in seconds.
    +
    Default: 90 Range: 0 - 65535
    +
    +

    id

    BGP identifier

    1.2.3.4

    id

    +
    BGP identifier.
    +
    Default: 1.2.3.4
    +
    +

    reconnect

    BGP reconnect

    true

    tos

    +
    BGP IP TOS.
    +
    Default: 0 Range: 0 - 255
    +
    +

    start-traffic

    BGP starts global traffic after RAW update

    false

    ttl

    +
    BGP IP TTL.
    +
    Default: 255 Range: 0 - 255
    +
    +

    reconnect

    +
    Reconnect BGP session automatically.
    +
    Default: true
    +
    +

    teardown-time

    BGP teardown time in seconds

    5

    start-traffic

    +
    Start global traffic after RAW update finished.
    +
    If enabled, the control command traffic-start is automatically
    +
    executed as soon as the BGP RAW update has finished.
    +
    Default: false
    +
    +

    raw-update-file

    BGP RAW update file

    teardown-time

    +
    BGP teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +

    raw-update-file

    +
    BGP RAW update file.
    +
    +
    diff --git a/docs/routing/index.html b/docs/routing/index.html index ce9bab5e..46ee9399 100644 --- a/docs/routing/index.html +++ b/docs/routing/index.html @@ -8,6 +8,7 @@ + @@ -52,6 +53,7 @@
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -87,9 +89,9 @@

    Routing Protocols

    -

    There are various routing protocols supported like ISIS and BGP. -So you can use the BNG Blaster for end-to-end BNG and non-BNG -router testing.

    +

    Multiple routing protocols are available, including ISIS and BGP. +To perform comprehensive end-to-end testing for both BNG and +non-BNG routers, you can use the BNG Blaster.

    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    ISIS instance identifier

    level

    ISIS level

    3

    instance-id

    +
    ISIS instance identifier.
    +
    +

    overload

    ISIS overload

    false

    level

    +
    Level.
    +
    Default: 3 Range: 1 - 3
    +
    +

    protocol-ipv4

    Enable/disable IPv4

    true

    protocol-ipv4

    +
    Enable/disable IPv4 routing.
    +
    Default: true
    +
    +

    protocol-ipv6

    Enable/disable IPv6

    true

    protocol-ipv6

    +
    Enable/disable IPv6 routing.
    +
    Default: true
    +
    +

    level1-auth-key

    ISIS level 1 authentication key

    level1-auth-key

    +
    Level 1 authentication key.
    +
    +

    level1-auth-type

    ISIS level 1 authentication type (simple or md5)

    disabled

    level1-auth-type

    +
    Level 1 authentication type (simple or md5).
    +
    +

    level1-auth-hello

    ISIS level 1 hello authentication

    true

    level1-auth-hello

    +
    Level 1 hello authentication.
    +
    +

    level1-auth-csnp

    ISIS level 1 CSNP authentication

    true

    level1-auth-csnp

    +
    Level 1 CSNP authentication.
    +
    +

    level1-auth-psnp

    ISIS level 1 PSNP authentication

    true

    level1-auth-psnp

    +
    Level 1 PSNP authentication.
    +
    +

    level2-auth-key

    ISIS level 2 authentication key

    level2-auth-key

    +
    Level 2 authentication key.
    +
    +

    level2-auth-type

    ISIS level 2 authentication type (simple or md5)

    disabled

    level2-auth-type

    +
    Level 2 authentication type (simple or md5).
    +
    +

    level2-auth-hello

    ISIS level 2 hello authentication

    true

    level2-auth-hello

    +
    Level 2 hello authentication.
    +
    +

    level2-auth-csnp

    ISIS level 2 CSNP authentication

    true

    level2-auth-csnp

    +
    Level 2 CSNP authentication.
    +
    +

    level2-auth-psnp

    ISIS level 2 PSNP authentication

    true

    level2-auth-psnp

    +
    Level 2 PSNP authentication.
    +
    +

    hello-interval

    ISIS hello interval in seconds

    10

    hello-interval

    +
    Hello interval in seconds
    +
    Default: 10 Range: 1 - 65535
    +
    +

    hello-padding

    ISIS hello padding

    false

    hello-padding

    +
    Enable/disable hello padding.
    +
    Default: false
    +
    +

    hold-time

    ISIS hold time in seconds

    30

    hold-time

    +
    ISIS hold time in seconds.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    lsp-lifetime

    ISIS LSP lifetime in seconds

    65535

    lsp-lifetime

    +
    ISIS LSP lifetime in seconds.
    +
    Default: 65535 Range: 330 - 65535
    +
    +

    lsp-refresh-interval

    ISIS LSP refresh interval in seconds

    300

    lsp-refresh-interval

    +
    ISIS LSP refresh interval in seconds.
    +
    Default: 300 Range: 1 - 65535
    +
    +

    lsp-retry-interval

    ISIS LSP retry interval in seconds

    5

    lsp-retry-interval

    +
    ISIS LSP retry interval in seconds.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    lsp-tx-interval

    ISIS LSP TX interval in ms (time between LSP send windows)

    10

    lsp-tx-interval

    +
    ISIS LSP TX interval in ms (time between LSP send windows).
    +
    Default: 10 Range: 1 - 65535
    +
    +

    lsp-tx-window-size

    ISIS LSP TX window size (LSP send per window)

    1

    lsp-tx-window-size

    +
    ISIS LSP TX window size (LSP send per window).
    +
    Default: 1 Range: 1 - 65535
    +
    +

    csnp-interval

    ISIS CSNP interval in seconds

    30

    csnp-interval

    +
    ISIS CSNP interval in seconds.
    +
    Default: 30 Range: 1 - 65535
    +
    +

    hostname

    ISIS hostname

    bngblaster

    hostname

    +
    ISIS hostname
    +
    Default: bngblaster
    +
    +

    router-id

    ISIS router identifier

    10.10.10.10

    router-id

    +
    ISIS router identifier.
    +
    Default: 10.10.10.10
    +
    +

    system-id

    ISIS system identifier

    0100.1001.0010

    system-id

    +
    ISIS system identifier.
    +
    Default: 0100.1001.0010
    +
    +

    area

    ISIS area(s)

    49.0001/24

    area

    +
    ISIS area(s)
    +
    Default: 49.0001/24
    +
    +

    sr-base

    ISIS SR base

    sr-base

    +
    ISIS SR base
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-range

    ISIS SR range

    sr-range

    +
    ISIS SR range
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-node-sid

    ISIS SR node SID

    sr-node-sid

    +
    ISIS SR node SID
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    teardown-time

    ISIS teardown time in seconds

    5

    teardown-time

    +
    ISIS teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +
    @@ -346,30 +424,37 @@

    Configuration
    { "isis": { "external": {} } }
     

    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    purge

    Automatically purge all external LSP during teardown

    true

    purge

    +
    Automatically purge all external LSP during teardown. This option
    +
    requires a reasonable teardown-time depending on the database size.
    +
    Default: true
    +
    +

    auto-refresh

    Automatically refresh all external LSP

    false

    auto-refresh

    +
    Automatically refresh all external LSP.
    +
    Default: false
    +
    +

    mrt-file

    ISIS MRT file

    mrt-file

    +
    MRT file
    +
    +
    @@ -378,30 +463,36 @@

    Configuration
    { "isis": { "external": { "connections": [] } } }
     
    - +
    ---++ - - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    system-id

    ISIS system identifier

    system-id

    +
    ISIS system identifier.
    +
    +

    l1-metric

    ISIS level 1 interface metric

    10

    l1-metric

    +
    ISIS level 1 interface metric.
    +
    Default: 10
    +
    +

    l2-metric

    ISIS level 2 interface metric

    10

    l2-metric

    +
    ISIS level 2 interface metric.
    +
    Default: 10
    +
    +
    diff --git a/docs/routing/ldp.html b/docs/routing/ldp.html index 4da4ed0f..841ffcff 100644 --- a/docs/routing/ldp.html +++ b/docs/routing/ldp.html @@ -8,6 +8,7 @@ + @@ -61,6 +62,7 @@
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -133,79 +135,108 @@

    Configuration
    { "ldp": {} }
     
    - +
    ---++ - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    LDP instance identifier

    instance-id

    +
    LDP instance identifier.
    +
    +

    keepalive-time

    LDP session keepalive time in seconds

    15

    keepalive-time

    +
    LDP session keepalive time in seconds.
    +
    The keepalive-time defines the local LDP session
    +
    keepalive timeout. Each LDP peer must calculate the
    +
    effective keepalive timeout by using the smaller of its
    +
    locally defined and received timeout in the PDU. The
    +
    value chosen indicates the maximum number of seconds
    +
    that may elapse between the receipt of successive PDUs
    +
    from the LDP peer on the session TCP connection. The
    +
    keepalive timeout is reset each time a PDU arrives. The
    +
    BNG Blaster will send keepalive messages at an interval
    +
    calculated by using the effective keepalive time divided
    +
    by 3. Assuming an effective keepalive time of of 15
    +
    seconds results in a keepalive interval of 5 seconds.
    +
    Default: 15 Range: 0 - 65535
    +
    +

    hold-time

    LDP hello hold time in seconds

    15

    hold-time

    +
    LDP hello hold time in seconds.
    +
    Default: 15 Range: 0 - 65535
    +
    +

    hostname

    LDP hostname

    bngblaster

    teardown-time

    +
    LDP teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +

    lsr-id

    LDP LSR identifier

    10.10.10.10

    hostname

    +
    LDP hostname.
    +
    Default: bngblaster
    +
    +

    teardown-time

    LDP teardown time in seconds

    5

    lsr-id

    +
    LDP LSR identifier.
    +
    Default: 10.10.10.10
    +
    +

    ipv6-transport-address

    LDP transport IPv6 address

    ipv6-transport-address

    +
    LDP transport IPv6 address.
    +
    Setting a valid IPv6 address here enables LDP IPv6
    +
    hello and transport.
    +
    +

    ipv4-transport-address

    LDP transport IPv6 address

    lsr-id

    ipv4-transport-address

    +
    LDP transport IPv4 address.
    +
    Default: lsr-id
    +
    +

    no-ipv4-transport

    Disable/discard IPv4 LDP hello messages

    no-ipv4-transport

    +
    Disable/discard IPv4 LDP hello messages.
    +
    +

    prefer-ipv4-transport

    Prefer IPv4 transport even if IPv6 is enabled

    false

    prefer-ipv4-transport

    +
    According to RFC7552, IPv6 is preferred over IPv4 which
    +
    can be changed with this option to prefer IPv4 transport
    +
    even if IPv6 is enabled.
    +
    Default: false
    +
    +

    raw-update-file

    LDP RAW update file

    raw-update-file

    +
    LDP RAW update file.
    +
    +
    -

    The keepalive-time defines the local LDP session keepalive -timeout. Each LDP peer must calculate the effective keepalive -timeout by using the smaller of its locally defined and received -timeout in the PDU. The value chosen indicates the maximum number -of seconds that may elapse between the receipt of successive PDUs -from the LDP peer on the session TCP connection. The keepalive -timeout is reset each time a PDU arrives. The BNG Blaster will -send keepalive messages at an interval calculated by using the -effective keepalive time divided by 3. Assuming an effective -keepalive time of 15 seconds results in a keepalive interval -of 5 seconds.

    -

    Setting a valid ipv6-transport-address enables LDP IPv6 -hello and transport. According to RFC7552, IPv6 is preferred -over IPv4 which can be changed with prefer-ipv4-transport.

    Limitations

    diff --git a/docs/routing/lspgen.html b/docs/routing/lspgen.html index eaf261b4..5cdec693 100644 --- a/docs/routing/lspgen.html +++ b/docs/routing/lspgen.html @@ -8,6 +8,7 @@ + @@ -57,6 +58,7 @@
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/routing/mpls.html b/docs/routing/mpls.html index 11271dd3..9d28158a 100644 --- a/docs/routing/mpls.html +++ b/docs/routing/mpls.html @@ -8,6 +8,7 @@ + @@ -52,6 +53,7 @@
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/routing/ospf.html b/docs/routing/ospf.html index 6d9bcba7..5658c67f 100644 --- a/docs/routing/ospf.html +++ b/docs/routing/ospf.html @@ -8,6 +8,7 @@ + @@ -64,6 +65,7 @@
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -155,82 +157,118 @@

    Configuration
    { "ospf": {} }
     
    - +
    ---++ - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    instance-id

    OSPF instance identifier

    version

    version

    2

    instance-id

    +
    OSPF instance identifier.
    +
    +

    overload

    OSPF overload

    false

    version

    +
    OSPF version.
    +
    Default: 2
    +
    +

    auth-key

    OSPF authentication key

    auth-key

    +
    OSPF authentication key.
    +
    +

    auth-type

    OSPF authentication type (simple or md5)

    disabled

    auth-type

    +
    OSPF authentication type (simple or md5).
    +
    +

    hello-interval

    OSPF hello interval in seconds

    10

    hello-interval

    +
    OSPF hello interval in seconds.
    +
    Default: 10 Range: 1 - 65535
    +
    +

    dead-interval

    OSPF dead interval in seconds

    40

    dead-interval

    +
    OSPF dead interval in seconds.
    +
    Default: 40 Range: 1 - 65535
    +
    +

    lsa-retry-interval

    OSPF LSA retry interval in seconds

    5

    lsa-retry-interval

    +
    OSPF LSA retry interval in seconds.
    +
    Default: 5 Range: 1 - 65535
    +
    +

    hostname

    OSPF hostname

    bngblaster

    hostname

    +
    OSPF hostname.
    +
    Default: bngblaster
    +
    +

    router-id

    OSPF router identifier

    10.10.10.10

    router-id

    +
    OSPF router identifier.
    +
    Default: 10.10.10.10
    +
    +

    router-priority

    OSPF router priority

    64

    router-priority

    +
    OSPF router priority.
    +
    Default: 64 Range: 0 - 255
    +
    +

    area

    OSPF area

    0.0.0.0

    area

    +
    OSPF area.
    +
    Default: 0.0.0.0
    +
    +

    sr-base

    OSPF SR base

    sr-base

    +
    OSPF SR base.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-range

    OSPF SR range

    sr-range

    +
    OSPF SR range.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    sr-node-sid

    OSPF SR node SID

    sr-node-sid

    +
    OSPF SR node SID.
    +
    Default: 0 Range: 0 - 1048575
    +
    +

    teardown-time

    OSPF teardown time in seconds

    5

    teardown-time

    +
    OSPF teardown time in seconds.
    +
    Default: 5 Range: 0 - 65535
    +
    +
    @@ -266,56 +304,78 @@

    Configuration
    { "ospf": { "external": {} } }
     
    - +
    ---++ - - - - + + - - - + +

    Attribute

    Description

    Default

    purge

    Automatically purge all external LSA during teardown

    true

    purge

    +
    Automatically purge all external LSA during teardown.
    +
    Default: true
    +
    +

    mrt-file

    OSPF MRT file

    mrt-file

    +
    OSPF MRT file.
    +
    +
    { "ospf": { "external": { "connections": [] } } }
     
    - +
    ---++ - - - - + + - - - + + + + + - - - + + + + +

    Attribute

    Description

    Default

    router-id

    Mandatory remote router identifier

    router-id

    +
    Mandatory remote router identifier.
    +
    +

    local-ipv4-address

    Mandatory local IPv4 address (OSPFv2 only)

    metric

    +
    Optional interface metric.
    +
    Default: 10 Range: 0 - 4294967295
    +
    +

    local-ipv4-address

    +
    Mandatory local IPv4 address (OSPFv2 only).
    +
    +

    metric

    Optional interface metric

    10

    local-interface-id

    +
    Local interface identifier (OSPFv3 only).
    +
    Default: 1 (2, 3, …)
    +
    +

    neighbor-interface-id

    +
    Remote interface identifier (OSPFv3 only).
    +
    Default: local-interface-id
    +
    +
    diff --git a/docs/search.html b/docs/search.html index 928db0f7..65584ec8 100644 --- a/docs/search.html +++ b/docs/search.html @@ -7,6 +7,7 @@ + @@ -45,6 +46,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docs/searchindex.js b/docs/searchindex.js index 2227bc5f..fb13e3f7 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["access/index","access/ipoe","access/l2bsa","access/l2tp","access/li","access/monkey","access/multicast","access/pppoe","access/traffic","api/bgp","api/cfm","api/http","api/igmp","api/index","api/interfaces","api/isis","api/l2tp","api/ldp","api/li","api/ospf","api/ppp","api/sessions","api/streams","api/traffic","configuration/access_line","configuration/access_line_profiles","configuration/bgp","configuration/dhcp","configuration/dhcpv6","configuration/http_client","configuration/http_server","configuration/igmp","configuration/index","configuration/interfaces","configuration/interfaces_a10nsp","configuration/interfaces_access","configuration/interfaces_lag","configuration/interfaces_links","configuration/interfaces_network","configuration/ipoe","configuration/isis","configuration/isis_external","configuration/isis_external_connections","configuration/ldp","configuration/lns","configuration/ospf","configuration/ospf_external","configuration/ospf_external_connections","configuration/ppp","configuration/ppp_authentication","configuration/ppp_ip6cp","configuration/ppp_ipcp","configuration/ppp_lcp","configuration/pppoe","configuration/session_traffic","configuration/sessions","configuration/streams","configuration/traffic","controller","faq","http","index","install","interfaces","performance","quickstart","reports","routing/bgp","routing/index","routing/isis","routing/ldp","routing/lspgen","routing/mpls","routing/ospf","streams","troubleshooting"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["access/index.rst","access/ipoe.rst","access/l2bsa.rst","access/l2tp.rst","access/li.rst","access/monkey.rst","access/multicast.rst","access/pppoe.rst","access/traffic.rst","api/bgp.rst","api/cfm.rst","api/http.rst","api/igmp.rst","api/index.rst","api/interfaces.rst","api/isis.rst","api/l2tp.rst","api/ldp.rst","api/li.rst","api/ospf.rst","api/ppp.rst","api/sessions.rst","api/streams.rst","api/traffic.rst","configuration/access_line.rst","configuration/access_line_profiles.rst","configuration/bgp.rst","configuration/dhcp.rst","configuration/dhcpv6.rst","configuration/http_client.rst","configuration/http_server.rst","configuration/igmp.rst","configuration/index.rst","configuration/interfaces.rst","configuration/interfaces_a10nsp.rst","configuration/interfaces_access.rst","configuration/interfaces_lag.rst","configuration/interfaces_links.rst","configuration/interfaces_network.rst","configuration/ipoe.rst","configuration/isis.rst","configuration/isis_external.rst","configuration/isis_external_connections.rst","configuration/ldp.rst","configuration/lns.rst","configuration/ospf.rst","configuration/ospf_external.rst","configuration/ospf_external_connections.rst","configuration/ppp.rst","configuration/ppp_authentication.rst","configuration/ppp_ip6cp.rst","configuration/ppp_ipcp.rst","configuration/ppp_lcp.rst","configuration/pppoe.rst","configuration/session_traffic.rst","configuration/sessions.rst","configuration/streams.rst","configuration/traffic.rst","controller.rst","faq.rst","http.rst","index.rst","install.rst","interfaces.rst","performance.rst","quickstart.rst","reports.rst","routing/bgp.rst","routing/index.rst","routing/isis.rst","routing/ldp.rst","routing/lspgen.rst","routing/mpls.rst","routing/ospf.rst","streams.rst","troubleshooting.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[1,3,4,6,7,8,13,25,27,29,31,32,33,35,36,38,39,44,45,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,73,74],"00":[1,2,7,8,25,32,36,62,63,64,65,66,69,71],"000":[58,64,65],"0000":[64,65,69,71],"0001":[32,40,65,69,71],"000100050ac801000aff010180000001e7790024ffffff00000000140000000000000000":73,"000100050ac802000aff010180000001dc830024ffffff00000000140000000000000000":73,"0002":[65,69,71],"0003":71,"0010":[32,40,69],"0011":69,"0021":69,"0022":69,"01":[1,2,7,58,63,64,65,66,69],"0100":[32,40,69],"0102":69,"02":[1,2,7,32,36,63,65,71],"0204":71,"0204004001010101000000003b780000000000000000000000000001000100050ac80b000aff01018000012d1e0c0024ffffff00000000140000000000000000":73,"020400400101010100000000456e0000000000000000000000000001000100050ac80c000aff01018000012d13160024ffffff00000000140000000000000000":73,"025":63,"0288":74,"03":[65,66],"0304":69,"031917":65,"04":[25,32,58,62,65,71],"0506":69,"07":58,"0792":74,"08":65,"087877":65,"087971":65,"088013":65,"088035":65,"088050":65,"08t14":65,"09":65,"090288":74,"093906":65,"093964":65,"099792":74,"0s":65,"0x1":65,"0x192168001001":65,"0x5274427269636b21":74,"0x83":69,"0x88a8":[32,34,35,63],"1":[1,2,3,4,6,7,8,13,16,26,27,31,32,33,35,38,39,40,42,44,55,56,58,60,61,62,63,64,65,66,67,69,70,71,73,74],"10":[1,2,3,4,6,7,13,27,28,32,38,40,42,43,45,47,50,51,52,53,58,60,63,64,65,66,67,69,70,71,73,74],"100":[4,6,7,8,60,62,63,64,65,66,69,74],"1000":[3,6,7,31,32,58,63,64,65,66,67,69,71,73,74],"10000":[65,70],"100000":[65,67,71],"1000000000":[32,56,74],"10001":70,"1001":[32,40,63,65,69,71,74],"1002":[65,69],"10036":7,"10083":7,"101":[2,6],"1014":74,"102":[3,6],"1024":[3,7,69,73],"1026":74,"103":6,"1030":74,"10561":74,"10589":69,"106876":66,"106881":66,"108580":66,"11":[3,6,58,60,62,64,65,70,71,73],"1100":74,"110156":66,"110161":66,"1102":66,"1104":66,"111410":66,"112":74,"114":[6,74],"1142":69,"1198":66,"11981554":66,"11982029":66,"12":[3,6,8,60,64,65,73],"120000":65,"1206":66,"12252":8,"12278":8,"12299556":66,"12300031":66,"12306":8,"12314":8,"12360218":66,"12361":8,"124":65,"126":74,"12654727":66,"127":[65,66],"128":[1,2,6,7,32,56,63,65,70,74],"129":[7,32,51],"1291":6,"13":[1,3,7,64,65,70,71],"131":[7,32,51],"1337":[1,3,7,60,63,65,69,71,73,74],"1338":66,"138":65,"139":[6,66],"14":[3,58,64,65],"1406":3,"1439":1,"14399":1,"14400":1,"149":1,"1492":[3,7,32,48],"15":[3,32,43,64,66,70],"150":[58,66],"1500":[63,66],"155":58,"158":58,"16":[3,32,44,57,65,73],"16000":8,"160720":4,"163":58,"16384":[3,7],"168":[65,69,71],"17":[3,66],"1700":66,"172":65,"17799":8,"18":[3,58,62,66],"1816":66,"182885":65,"1840":66,"188120":66,"188259":66,"18845":8,"19":[3,65,66],"192":[65,69,71],"1921":[65,69,71],"197":66,"197340":66,"197523":66,"199":66,"1998":63,"1999":[7,63],"1_amd64":62,"1m":[32,33,57,63,64],"1s":[8,66],"2":[1,2,3,4,6,7,13,16,26,28,31,32,35,38,40,42,45,55,56,58,60,62,63,64,65,66,67,69,70,71,73,74],"20":[3,6,58,62,63,65,71,74],"200":[1,3,4,7,13,58,60,63,65,66,69,70,73,74],"2000":[7,63,65,69,74],"20000":65,"20001":67,"2001":74,"2002":69,"2010":2,"202":6,"2020":61,"2022":[58,65],"2023":61,"20425245":66,"206":[3,66],"208":74,"21":[3,62,70],"21009053":66,"213":74,"2147483649":73,"2147483949":73,"2153":7,"218":66,"22":[3,58,62,65],"222":73,"2222":1,"224":[66,70,74],"227":66,"23":[3,6,64,70],"232":6,"239":[6,13,31,32,74],"24":[3,4,5,7,32,40,60,63,65,67,69,70,71,73,74],"242810":71,"242827":71,"25":3,"250":64,"255":[1,32,33,36,56,63,73,74],"256":[2,6,65,74],"26":3,"261":1,"27":[3,65],"27008":74,"27040":74,"28":[3,65],"2891":8,"29":[3,62],"2900":8,"293":[6,31,32],"2957":8,"2978":8,"299":1,"2999":[7,63],"2s":[8,66],"2xx":13,"3":[1,2,3,4,6,7,13,16,26,27,31,32,35,38,40,43,52,55,56,61,62,63,64,65,66,67,69,70,71,73,74],"30":[3,6,7,32,40,44,49,52,65,69,73],"300":[1,32,39,40,69],"30003":71,"30005":71,"302":60,"3033":8,"303904":65,"303952":65,"3040":8,"3071":8,"309235":58,"31":[3,65],"3104":8,"3123":8,"3178":8,"3184":8,"3185":8,"31894":66,"31895":66,"31896":66,"32":[3,64,65,70,71],"320k":64,"322":66,"32461":66,"32465":66,"32633":66,"32635":66,"32641":66,"32768":[32,36,37,63,64],"32867":3,"32k":64,"33":[3,74],"33311":66,"33319":66,"3333":1,"34":[3,70],"35":[3,65],"350":66,"36":[3,65,66],"3600":69,"36000":71,"362":74,"37":[3,65,66,70,71,74],"37119":8,"373":66,"3742":66,"38":[3,65,66],"39":3,"3936":[59,63],"396765":65,"3_amd64":62,"3s":[8,66],"3x1":[32,36,63],"3x30":[32,36,63],"4":[1,4,7,8,13,16,26,32,55,58,60,61,63,64,65,66,67,69,70,73,74],"40":[3,45,66,73],"400":[7,32,55,60],"4000":[1,2,3,63,64,65,74],"404":[13,58],"4049":[7,63],"4094":2,"4096":[32,33,63,65],"41":74,"4194301":4,"422":66,"43":74,"4343":66,"48":[67,74],"48000":3,"4880":66,"49":[32,40,65,69,71],"49152":4,"5":[1,3,4,6,7,8,26,27,28,31,32,33,40,43,44,45,49,50,51,52,53,56,63,64,65,66,67,69,70,73,74],"50":[66,71,74],"500":66,"50000":67,"50011":3,"500mb":58,"5036":70,"51":65,"512":63,"52":65,"53":65,"54":65,"5422":74,"54232":74,"5458":74,"54593":74,"54594":74,"54610":74,"55":[65,71],"55661":66,"56":[7,65],"59":[4,65,71],"59655":74,"59670":74,"6":[1,2,4,7,64,66,67,69,70,73,74],"60":[3,73],"6000":66,"61":4,"6167":8,"6177":8,"61790":66,"61793":66,"62":66,"6205":8,"6226":8,"623":66,"624":66,"63":65,"64":[1,7,8,32,38,45,60,63,65,69,73,74],"64537":66,"646":70,"647569":65,"647630":65,"647633":65,"647639":65,"647642":65,"647645":65,"647648":65,"647651":65,"647654":65,"647657":65,"647660":65,"647669":65,"647672":65,"647678":65,"647813":65,"64bit":8,"65000":[26,32,67],"65001":[65,67],"65056":[32,56,74],"65506":69,"65507":69,"65524":69,"65529":69,"65535":[32,40,65,69],"65772":66,"65784":66,"6800":[65,69,71],"682535":58,"69":66,"6m":58,"6pe":67,"7":[1,2,3,4,32,44,60,63,64,65,67,69,70,73,74],"7142":69,"72":65,"7331":[3,7,60,63,65,69,74],"73763":8,"7456":6,"74810":66,"75":66,"76":[6,8,31,32,56,74],"78":66,"780109":71,"780127":71,"79":[3,8,65],"79200":74,"7min":58,"8":[1,3,4,58,63,67,69,70,73,74],"80":[29,30,32,60],"800":[7,32,55],"800000":74,"8000000":74,"8001":58,"8112":74,"811200":74,"8112000":74,"82":8,"820":4,"8208":74,"820800":74,"8208000":74,"822":66,"8240000":74,"83":8,"831b0100120100000021ffff010203040506000000000003c0d103010403490001":69,"831b0100120100000021ffff010203040506000100000003bad603010403490001":69,"84":8,"844":66,"870722":65,"88":[8,66],"899":1,"9":[4,8,58,63,64,67,69,70,73,74],"90":[26,32,65,67],"9000":[32,56,59,63,74],"90288":74,"9028800":74,"904266":65,"904293":65,"904359":65,"904369":65,"904389":65,"904448":65,"905659":65,"907888":65,"907903":65,"907917":65,"907989":65,"92":65,"93709":66,"94":4,"95265":66,"95685":66,"96000":8,"96548":74,"97":66,"97391":66,"97909":66,"981279":65,"981314":65,"981335":65,"98595":74,"98903":74,"99":74,"99792":74,"99949":66,"abstract":63,"break":[69,73],"byte":[4,32,33,59,63,66,74],"case":[1,7,8,64,69,73],"default":[1,3,4,5,6,7,8,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,63,64,65,67,69,70,71,73,74,75],"do":[6,63,64,74],"export":[69,71,73],"final":[6,8,31,32,58,65,66,69,73],"float":[32,56,74],"function":[1,2,3,4,5,6,8,13,14,32,37,56,58,60,69,70,73,74],"import":[66,69,71,73],"int":58,"long":[6,61],"new":[6,58,61,62,63,65,74],"return":[3,7,12,13,58,73,74],"short":[32,35,36,61,63],"static":[2,32,35,63],"switch":70,"true":[1,2,3,5,6,7,8,26,27,28,29,31,32,33,38,39,40,41,46,50,51,54,55,56,57,58,60,63,64,65,67,69,71,73,74,75],"try":[65,69,73],"var":58,"while":[2,69,73],A:[3,5,6,32,44,61,62,64,66,67,70],AS:[26,32,65,67],As:[5,58,62],At:63,BE:74,But:65,By:[1,58,60],For:[1,5,32,33,56,60,63,64,71,74],IS:[65,69],If:[5,6,7,31,32,61,62,63,64,65,74],In:[1,2,8,13,32,33,60,63,64,65,71],It:[2,3,5,6,32,33,56,58,61,62,63,64,69,70,73,74],ON:62,On:[1,65],One:[13,60,63,69,73],Such:[65,69,73,74],TOS:[1,3,6,27,31,32,44,56,74],The:[1,2,3,4,5,6,7,8,13,16,21,25,31,32,33,37,43,44,56,57,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,74,75],Then:[62,65],There:[61,62,65,67,68,69,70,73],These:[2,58],To:66,With:[7,64],_:71,__:71,___:71,____:71,_____:71,______:71,__comment__:[2,64,65],__main__:[69,73],__name__:[69,73],_amd64:58,_command:58,_start:58,_stop:58,a00:65,a10:[2,63],a10nsp:[2,8,13,14,34,35,56,58,61,64,65,74],a10nsp_interfac:58,abbrev:62,abil:[60,64],abl:[3,64,69,71,73],about:[3,4,13,58,61,66,73],abov:[6,31,32,60,64],ac10:65,accept:[2,7,32,52,63,65],access:[1,2,3,5,7,8,13,14,24,25,27,28,33,35,56,58,60,61,64,65,66,74],access_interfac:58,accommod:71,accord:[32,43,60,70],account:74,accur:1,accuraci:60,achiev:64,aci:3,ack:1,across:60,act:[25,32],action:2,activ:[6,32,35,36,58,61,63,69,70,73],actual:[2,13,24,25,32,33,63,64,66,70,74],ad:[1,13,28,32,65,74],adapt:73,add:[1,3,27,28,32,35,37,44,63,65,67,71],addit:[1,60,62,71],addr:58,address:[2,3,4,6,7,8,9,13,17,26,29,30,31,32,33,34,35,36,37,38,43,44,47,51,54,56,58,60,63,65,67,69,70,71,73,74,75],adjac:[13,15,17,65,73],administr:1,adrout:73,adsl:[2,63],advanc:[6,65],advertis:[1,32,38,59,63,65,69],advisori:2,af_unix:[69,73],affair:2,afi:65,after:[5,6,8,26,31,32,54,55,56,58,65,67,70,74],ag:[61,73],again:[5,65],agenc:2,agent:[1,2,3,7,24,27,28,32,35,63,65],aggreg:[2,13,14,24,35,61,64,75],aggress:[3,32,44],ago:58,algorithm:73,all:[1,2,3,5,6,7,8,9,11,12,13,14,16,17,18,21,22,23,27,32,33,41,44,46,53,54,55,58,59,60,61,62,63,64,65,66,67,69,70,73,74,75],alloc:1,allow:[1,2,3,5,6,7,13,16,27,28,31,32,33,37,49,50,51,58,59,60,61,62,63,64,66,67,69,70,71,73,74,75],alreadi:[58,67],also:[2,3,5,6,13,32,33,56,58,60,61,62,63,64,65,66,69,71,73,74,75],altern:[13,32,55,62,69,73,74],although:73,alwai:64,among:67,amount:[2,13,21,58,61],an:[2,3,6,8,13,32,37,43,58,59,60,61,63,65,66,67,69,70,73,74],analysi:[6,31,32,58],analyz:[58,66,75],ani:[4,7,58,60,61,62,63,65,74],anoth:[2,6,65],api:[61,65],apnic:61,append:[65,67,69,70,73],appendix:[3,32,44],appli:[6,31,32,56,60,63,64,65,74],applic:[13,21,58,60],apr:65,apt:[62,65],ar:[1,2,3,5,6,7,8,31,32,33,38,55,57,58,59,60,61,62,63,64,65,66,67,68,69,70,73,74,75],architectur:[2,64],archiv:63,area:[1,32,40,45,65,69,71,73],area_list:71,areaid:69,arg:[69,71,73],argument:[6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,58,62,66,67,69,70,71,73,74,75],argv:[69,73],ari:3,around:[58,63,64,74],arp:[1,32,39,66],arriv:[32,43,70],articl:61,ascii:[24,32,74],ask:61,asm:[6,31,32],asn:67,ass:[25,32],assess:[1,60],assign:[1,8,13,32,38,56,63,74],associ:[1,32,35,60,63,73],assum:[8,32,43,64,70,74],assur:[25,32],asymmetr:64,att:[25,32],attach:[63,65,69,70,71,73],attain:[25,32],attetr:[25,32],attgdr:[25,32],attribut:[1,3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,67,69,70,73,74],auth:[3,32,40,45,65,69,71,73],authent:[3,35,40,45,49,63,65,67,69,70,71,73],author:2,auto:[5,32,41,69],autogener:[2,6,8,32,54],autom:[58,61],automat:[2,4,5,6,7,8,13,31,32,37,41,46,53,54,55,57,58,60,63,64,67,69,73,74],autonom:67,autostart:[2,3,5,6,8,29,31,32,35,54,55,57,60,63],avail:[2,58],averag:[25,32,66],avg:[8,25,32,66],avoid:[3,32,44],avp:[3,32,44],b1:69,back:58,backbon:69,balanc:[2,64],base:[1,2,3,6,13,15,31,32,35,40,44,45,56,61,63,64,65,67,69,70,71,73,74],basic:[2,7,60,65,73],bbl:74,bbl_header:75,bcm:4,becaus:[13,32,56,69,74],becom:[5,7,58,60],been:[61,66,69,71,75],befor:[6,31,32,55,56,59,62,65,74],begin:60,behav:[7,63,69,73],behavior:[1,6,7,60,61,64,75],belong:63,below:[1,2,3,6,13,16,62,63,65,69,73,75],best:73,besteffort:74,better:[32,56,61,66,74],between:[2,6,8,31,32,40,43,54,60,63,64,65,66,69,70,71,73,74],beyond:64,bgp:[9,26,58,61,64,68,75],bgpupdat:[65,67],bi:70,bidirect:[8,32,54,64,65],bin:[58,62,66],binari:[62,67,70],bind:60,bit:[3,32,44,56,74],bitstream:2,blaster:[1,2,3,4,6,7,8,31,32,43,44,58,59,60,63,64,65,66,67,68,69,70,71,72,73,75],block:[2,63],blog:61,blueprint:[67,70],bnetza:2,bng:[1,2,3,4,5,6,7,8,31,32,43,44,56,58,59,60,63,64,65,66,67,68,69,70,71,72,73,75],bngblaster:[1,3,4,5,6,7,13,16,32,33,40,43,45,58,60,61,62,63,65,67,69,70,73,74,75],bngblaster_test:62,bngblasterctrl:58,bngbnlaster:58,board:2,bodi:58,bonn:2,border:67,both:[1,2,6,32,56,63,64,65,66,73,74],bound:[1,7,65,74],bp:[3,32,56,74],broadband:[2,60],broadcast:[1,27,32,65,73],bsd:61,buffer:[32,33,63],bug:61,build:[61,64,67,69,70,73],build_dpdk:62,built:[61,70],bundesnetzagentur:2,bundl:2,burst:[32,56,57,64,74],bust:64,bypass:[32,33,37,63],c0a8:65,c:[61,62,65,71,75],cach:64,calcualt:63,calcul:[32,43,56,57,59,66,70,74],call:[2,3,8,58,63,66,69,70,71,73],can:[2,3,4,5,6,7,8,13,16,31,32,33,43,49,55,56,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],cap_dac_read_search:62,cap_net_admin:62,cap_net_raw:62,capability_list:71,capabl:[1,58,60,62,65,67,70],capit:[32,56,74],captur:[6,32,33,58,59,61,63,64,65,75],carri:13,cat:[13,69,73],categori:58,caus:[2,64,69],caution:64,cc:[10,13,32,35,63],cd:62,cfm:[10,32,35,63],cgroup:58,chang:[2,5,6,31,32,43,55,58,59,62,63,64,65,67,70,71,73],channel:[3,6,31,32,44],chap:[3,7,32,49,66],chapter:7,check:[6,58,62,65,69,73,74],checksum:65,chosen:[32,43,70],circuit:[1,2,3,7,24,27,28,32,35,63,65],classifi:[67,75],claus:61,cli:[1,3,4,5,6,7,16,60,61,65,67,69,70,73,74],client:[6,11,13,29,56,58,61,63,64,65,69,73,74],clone:62,close:[13,20,60,65,69,73],cmake:62,cmocka:62,code:[1,3,4,7,13,16,58,60,65,69,70,74],coher:64,color:58,com:[7,13,32,49,58,60,61,62,63,65],combin:[4,6,13,21,31,32,58,63,66,74],command:[4,5,6,13,16,60,62,63,65,67,70],commerci:61,commit:[1,7,28,32,61,62],common:[1,3,5,69,73],commun:[13,61,63],compar:73,compat:60,compil:[62,63,67,70],complet:[61,69,73],compon:1,compos:2,comprehens:[1,58,60],comput:73,concept:7,conceptu:73,condit:[7,61],conf:[3,7,32,50,51,52,65],config:[8,58,59,62,65,66,71],configur:[1,2,6,13,21,31,33,37,50,51,52,55,58,59,60,61,63,64,65,75],confus:69,congest:[3,6,32,44],connect:[1,7,13,16,42,43,47,52,63,65,69,70,71,73],connector:65,consid:[32,33,58,59,63,64,73,74],consol:58,constant:61,construct:71,consum:6,contain:[13,58,61,63,69,73],content:[58,60],context:65,continu:[60,64],contrib:[69,73],contribut:[61,64],control:[1,3,6,7,13,27,31,32,44,53,60,61,65,71,73,74],controller_:58,conveni:58,converg:[8,61],convert:67,copi:[7,63],core:[2,32,37,61,63,64],corner:65,correct:6,correctli:[3,8,62],correspond:[2,5,6,8,13,31,32,35,56,58,63,64,67,70,71,74],could:[5,59,64,66,71,74,75],count:[6,7,12,13,31,32,55,58,67,70,71,74],counter:[13,21,58],cours:[65,75],cp:66,cpack:62,cpe:[2,5,7],cpu:[32,37,61,63,64],cpuset:[32,37,63,64],crash:5,creat:[32,55,63,65,67,69,70,71,73],csnp:[32,40,69],csun:3,csurq:[3,13,16],ctrl:[65,71],curl:58,current:[32,33,58,63,64,67,69,70,71],custom:[2,58],d:[4,58],daemon:65,data:[2,24,25,32,44,58,66,69,73,74],databas:[13,15,17,19,66,70],datar:[25,32],datatrack:[1,28,32,69,73],dbngblaster_dpdk:62,dbngblaster_test:62,dcmake_build_typ:62,de:[3,32,35,36,60,63,69],dead:[45,73],deb:[58,62],debian:[58,62,64],debug:[58,62,67,70,71,75],decis:67,decod:[69,73,74],decreas:[32,33,63,66],dedic:[1,6,31,32,63,64],def:[69,73],defin:[1,2,3,6,7,13,21,25,28,31,32,33,36,37,43,48,57,58,60,63,65,67,69,70,71,73,74],definit:[2,60],delai:[6,7,13,21,25,29,31,32,52,55,56,60,74],deleg:[1,7,8,32,54],delet:61,deliveri:[3,32,44,73],demonstr:60,denog13:61,depend:[32,33,59,63,64,74],depict:2,deploy:[1,60],deriv:[66,74],describ:[3,32,44,69,73],descript:[1,3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,67,69,70,73,74],design:[67,69,73],desir:[32,33,63,66],destin:[4,6,29,32,56,60,63,65,70,74],detail:[1,2,3,4,6,7,8,13,18,31,32,58,61,62,63,65,66,73,74],determin:73,deu:[1,3,7,65],deutsch:61,dev:[62,63,65],dev_1:62,develop:[1,13,62,71,73],devic:[3,4,5,7,59,60,63,65,69,70,73],df453a5ee9dbf6440aefbfb9630fa0f06e326d44:62,df:[32,56,74],dgit_ref:62,dgit_sha:62,dhcp4:63,dhcp6:63,dhcp:[27,35,60,61,63,66,75],dhcpv4:[2,5],dhcpv6:[2,5,7,13,28,35,59,60,63,64,65,66],dialogu:2,differ:[1,3,5,6,7,32,44,56,60,61,63,65,66,67,69,73,74],direct:[2,4,6,13,16,32,56,58,64,65,70,74],directli:[2,32,33,63,69,73],directori:[58,62,65,75],disabl:[1,2,5,6,7,8,13,14,21,22,27,28,31,32,38,39,40,43,45,50,51,52,54,63,65,69,70,73,74],discard:[32,43,65,70],disconnect:[9,13,16,17],discov:1,discoveri:[2,3,7,32,53,70],disjoint:63,displai:[3,4,9,11,12,13,15,16,17,19,21,22],dissector:75,distinguish:[63,69,73],distribut:[6,58,62,64,70],divid:[32,43,66,70,74],dn:[7,32,51],dns1:[1,7,32,51,65],dns2:[1,7,32,51,65],doc:[1,28,32,62,69,73],document:[58,61],doe:[6,59,62],domain:[13,32,35,63],done:[6,65,69,70,73],doubl:4,down:[2,3,7,24,25,32,35,63,65],download:[58,62,75],downstream:[1,4,6,7,8,24,25,32,54,56,63,65,66,70,74],dpdk:[61,75],dpkg:[58,62],draft:[25,32,69],driven:64,driver:[59,63,74],drop:[59,75],dsl:[24,25,32,35,63],dump:[69,73],dup:3,durat:[6,31,32,66],dure:[32,41,46,58,67,69,70,73],dut:70,dynam:[1,32,56,59,61,63,67,70,73,74],e:[5,6,31,32,33,34,35,36,37,38,58,62,63,65,69,71,73],each:[1,3,13,32,43,58,60,63,64,70,74],eas:58,easi:63,easiest:62,easili:[4,62,66,67,70,74,75],echo:[7,32,52,63,66],ecmp:70,econom:2,edg:61,effect:[32,43,60,70],effici:[60,69,73],eip:62,either:[58,60,62],elaps:[32,43,70],electr:2,element:[6,13],els:[69,73],emul:[1,2,3,4,6,7,61,63,65,69,73],enabl:[1,2,3,4,5,6,7,8,13,14,21,22,27,28,32,35,39,40,43,50,51,55,57,58,60,62,63,64,65,66,69,70,74],encap:[25,32],encapsul:[25,32],encod:[69,73],encount:58,end:[2,58,61,63,65,66,67,68],endpoint:58,energi:2,enforc:58,engin:69,enhanc:[58,61,67,71],enough:[6,63,69],enrich:2,ens5f1:63,ensur:[1,7,73],enter:65,entir:61,entri:[66,69,73],env:66,environ:[1,64,74],eoam:[10,13,32,35,63],equal:[32,35,56,63,69,73,74],error:[13,16,58,66,69,71,73,75],establ:65,establish:[1,3,5,6,7,8,13,21,31,32,54,56,58,59,60,65,66,67,70,74],etc:58,eth0:[32,34,35,37,38,63,70],eth11:58,eth12:58,eth1:[1,2,3,5,6,7,58,60,63,64,66,67,69,70,73,74],eth2:[3,4,6,7,60,63,64,66,69,73,74],eth3:[63,66],eth4:[2,63],eth5:[2,63],eth:[1,3,7,65],ethernet:[1,2,4,7,59,63,65],ethertyp:[32,34,35,63],ethtool:[63,65],etr:[25,32],evalu:[1,60],even:[32,43,61,63,64,70,71],event:[61,75],everi:[2,6,58,61,63,64,65,66,67,69,73,74],everyth:64,evolv:61,exactli:70,exampl:[1,2,3,4,6,7,8,13,32,56,60,61,62,63,64,65,66,67,69,70,71,73,74],excel:1,except:[32,33,63,69,73,74],exchang:[67,70],exclud:[74,75],exclus:[70,71],execut:[13,16,58,60,62,66],execute_command:[69,73],exist:[67,69,70,73],exit:[67,69,70,73],exp:[32,56,74],expect:[7,13,16,25,32,56,59,67,69,73,74],expens:63,experiment:[32,33,61,62,63,64,73],expir:1,explain:[2,13,32,58,61,62,63,64,65],explicit:[32,37,63],explicitli:[2,58,63,70,74],expos:58,express:74,extend:[1,67,70],extens:[58,65,66],exterior:67,extern:[6,41,42,46,47,58,65,69,71,73],extra:2,extract:66,f1:65,f9:65,f:[65,66,67,70,71,73],face:63,facilit:[1,58],facto:69,fail:[7,62],failur:59,fals:[1,2,3,6,7,26,27,28,31,32,33,34,35,36,40,41,43,44,45,52,53,55,57,60,63,64,65,67,69,70,71,73],famili:67,familiar:65,famou:61,far:64,fast:[6,7,62,63,74],faster:[6,31,32,74],faulti:7,fc00:65,fc66:[1,3,7,60,63,65,67,69,73,74],featur:[5,61,65],feder:2,feed:61,ff:[2,32,36,63],field:[69,73],figur:2,file:[6,9,13,15,17,19,26,32,41,43,46,58,59,61,62,65,66,75],filenam:[66,74],filter:[3,60,65,75],find:61,finish:65,first:[1,2,6,7,8,13,26,32,55,56,63,64,65,66,67,73,74],fix:[3,32,35,44,61,63,74],flag:[1,27,32,58,59,63],flap:[5,13,15,66],flexibl:[1,60],flop:65,flow:[1,4,7,8,13,18,22,32,57,61,64,65,66],focu:6,folder:58,follow:[2,3,4,5,6,7,8,13,31,32,33,55,58,60,62,63,64,65,66,67,69,70,71,73,74,75],footprint:61,forc:69,forcefulli:58,fork:62,format:[4,58,74],forum:2,forward:[2,8,61,70,74],found:[2,13,58,60,61,62,69,70,73],four:3,fragment:[1,7,65,66],free:61,frequent:61,fri:58,friendli:61,from:[2,3,6,7,8,12,13,19,32,33,35,43,44,56,59,61,63,64,65,67,69,70,73,74,75],front:[32,56,74],fsm:61,fulfil:[7,61],full:[61,64,67],fulli:[5,61],further:[4,6,32,33,58,61,63,64,65,67,70,74],furthermor:[1,58],g:[5,6,31,32,33,34,35,36,37,38,56,58,62,63,71,73,74],ga:2,gamma:[25,32],gap:[6,74],gatewai:[1,3,4,6,7,32,34,35,38,60,63,65,67,69,70,73,74],gaug:58,gbp:[32,56,74],gdb:62,gdr:[25,32],gener:[8,31,32,37,54,55,58,60,61,62,63,65,66,69,71,73,74,75],german:2,germani:2,get:[58,61,63,65],giga:[32,56,74],git:62,github:[58,60,61,62],give:[60,66],given:[3,8,32,56,64,73,74],global:[1,5,7,8,13,26,32,33,37,49,63,64,65,66,67,74],gnu:[62,63],go:[61,65],gobgp:65,gobgpd:65,good:61,gracefulli:[5,58],graph:[65,69,71,73],graphviz:71,group:[1,2,6,12,13,21,29,31,32,35,37,56,60,63,64,65,70,74],guid:[61,62,63],h:[67,70,71],ha:[25,32,56,58,61,62,65,67,69,70,71,74,75],hand:1,handl:[1,63,64],handshak:[1,28,32,69],hang:5,happen:65,hard:[61,64],hardwar:[63,64],have:[61,63,65,66],head:62,header:[2,4,6,32,44,56,58,59,60,63,69,73,74,75],hello:[3,32,40,43,44,45,69,70,73],help:[6,58,67,70,71,75],helper:[32,56,74],henc:71,here:[25,32,59,65,67,71],hex:[69,73],hi:2,high:[32,33,63],higher:[32,33,63,64],histor:69,hold:[26,32,40,43,65,67,69,70],hop:67,host:[1,2,4,7,32,53,63,74],hostnam:[3,32,40,43,44,45,58,65,69,70,71,73],hour:5,how:[6,8,31,32,58,63,64,65,66,67,69,73,75],howev:[60,71],html:[1,28,32,62,69,73],http:[1,11,28,29,30,58,61,62,69,73],huge:[58,61],i1:[32,35,63],i2:[32,35,63],i:[58,62,64,65,70,73],ia:[1,28,32],ia_na:[1,28,32],ia_pd:[1,28,32],icmp:[63,66],icmpv6:[59,66],icrq:[3,32,44],id:[1,2,3,6,7,10,11,12,13,15,16,17,20,21,22,24,25,26,27,28,29,32,35,36,38,40,42,43,45,47,56,58,60,63,64,65,67,69,70,71,73,74],idea:[7,59],ident:73,identif:[2,74],identifi:[2,13,15,25,26,29,32,35,36,40,42,43,45,47,56,60,63,64,67,69,70,73],idl:[6,65],iec:69,ietf:[1,28,32,69,70,73],ifac:67,ifindex:13,igmp:[6,12,31,35,63,66,75],igmpv3:[6,31,32],ignor:[7,32,52,70],igp:73,ihhi:73,ii:73,implement:[6,61,63],implicitli:[32,38,63],inc:[3,61],includ:[1,2,6,7,8,13,31,32,33,51,58,61,62,63,65,66,67,69,70,71,73,74,75],increas:[13,32,33,63,64,65],increment:[63,67,70,74],indent:[69,73],independ:5,index:[13,14,74],indic:[32,43,70],individu:1,infin:[7,32,53,56,74],info:[1,3,6,7,12,13,14,21,22,58,65,67,70,75],inform:[1,3,7,8,12,13,21,22,28,32,58,67,69,70,73,75],infrastructur:[1,2],init:65,initi:[1,6,7,31,32,39,51,52,58,60,70,71],inject:[63,67,69,70,73],inner:[1,2,3,7,13,32,35,55,56,63,64,65,67,74],input:[65,75],instal:[61,64,65],instanc:[4,6,11,13,15,17,19,32,38,40,43,45,60,63,65,69,70,71,73],instance_nam:58,instances_run:58,instances_tot:58,integr:[4,58],interact:[13,58,60,65,75],intercept:[0,61],interconnect:69,interest:61,interfac:[1,2,3,4,5,6,7,8,14,19,25,26,30,31,33,34,35,36,37,38,42,47,54,55,56,58,59,60,61,62,64,65,66,67,69,70,74,75],interface_nam:58,interface_typ:58,interfaces_rx_packet:58,interior:73,interl:[25,32],interleav:[25,32],intermedi:[2,69],intern:[4,59,66,69],internet:[2,61,63,67,69],interv:[1,3,4,6,7,27,31,32,33,37,39,40,43,44,45,52,63,64,65,69,70,73,74],introduc:2,introduct:[61,71],intuit:58,invok:74,io:[32,33,36,37,58,59,62,63,64,65,66,74,75],ip6cp:[3,5,13,20,35,50,63,65,66],ip:[1,3,6,7,31,32,44,51,56,58,63,65,70,74,75],ipcp:[3,5,13,20,35,44,51,63,65,66],ipo:[0,2,5,35,39,55,60,61,63,65,66],iptv:[0,61,63],ipv4:[1,2,3,4,5,6,8,9,13,17,26,27,29,30,35,38,39,40,43,44,47,54,56,59,60,63,64,65,66,67,69,70,71,73,74],ipv4_address_list:71,ipv4_prefix:71,ipv4_prefix_list:71,ipv6:[1,2,3,4,5,8,29,30,35,38,39,40,43,54,56,59,60,63,65,66,67,69,70,71,73,74],ipv6avg:66,ipv6pd:[1,7,8,32,54,56,66,74],isi:[15,38,40,41,42,58,61,63,68,71,75],isis_areaentri:69,isis_areatlv:69,isis_commonhdr:69,isis_l1_lsp:69,iso:69,isol:1,issu:[58,61,64],iter:[1,6,12,13,31,32,35,55,63],its:[1,32,43,60,61,63,70,71,73],itself:[69,73],j:[65,66],jitter:74,job:66,join:[12,13,31,32,75],jq:[1,7,13,60,65,69,73,74],json:[13,58,62,65,67,69,73,75],jsonpath:74,jumbo:63,junk:[69,73],just:[3,60,62],k:[32,56,65,71,74],kb:65,keep:5,keepal:[3,7,32,43,52,65,70],kei:[6,13,32,40,45,65,69,71,73,74],kernel:[32,33,37,59,63],keyboard:65,kill:[5,58],kilo:[32,56,74],kind:[7,61,63],kwarg:[69,73],l1:[32,38,42,63,65,66,69],l2:[32,38,42,63,65,69,74],l2bsa:[0,61,63],l2tp:[0,16,32,44,56,61,63,74,75],l2tpv2:[3,61],l3:74,l:[6,65,67,70,71,75],label1:[32,56,74],label2:[32,56,74],label:[8,32,54,56,58,61,65,67,70,72,74],lac:3,lacp:[2,32,36,37,63],lag0:[32,36,63],lag1:63,lag:[2,13,14,36,37,61,64,75],lane:63,larg:[58,63,69,71,73],larger:[63,70],last:[6,66,67,74],latenc:[61,74],later:[69,71],layer:[1,2,32,33,37,56,63,65,74],lcp:[3,5,13,16,44,51,52,65,66],ldconfig:62,ldp:[17,43,56,61,68,74],ldpupdat:[65,70],ldra:[1,28,32,35,63],le:74,lead:[6,61],leak:[5,69],lean:7,learn:[63,69,70,73,75],leas:1,least:[2,13,63,64],leav:[12,13,31,32,75],left:65,legal:[0,61],len:[73,74],length:[2,3,6,31,32,44,56,59,60,63,65,67,69,70,73,74],less:64,let:65,letter:[32,56,74],level1:[32,40,65,69,71],level2:[32,40,69],level:[13,15,32,35,38,40,42,63,65,67,69,70,71],li:[0,18,61],lib:58,libcmocka:62,libcunit1:62,libdict:62,libdict_1:62,libdpdk:62,libjansson4:62,libjansson:62,libncurses5:62,libncurses6:62,libpcap:62,librari:[61,67,70],libssl1:62,libssl3:62,libssl:62,lifetim:[32,40,65,67,69,70,71],lightweight:[1,2,28,32,60,61,65],lihawi:[25,32],liid:4,like:[1,6,27,28,32,56,61,63,67,68,69,70,73,74],limit:[2,32,36,58,59,63,64],line:[1,2,3,7,24,25,27,28,35,63,65,74],link:[1,2,13,14,25,33,34,35,36,37,38,58,61,64,65,69,70,71,73,75],linux:[58,61,62,63],linux_gsg:62,list:[9,13,14,16,17,18,21,32,33,58,63,65,67,69,73,75],listen:58,live:[32,57],ll:65,ln:[3,44,61,75],lns10:3,lns11:3,lns12:3,lns13:3,lns14:3,lns15:3,lns16:3,lns17:3,lns18:3,lns19:3,lns1:3,lns20:3,lns21:3,lns22:3,lns23:3,lns24:3,lns25:3,lns26:3,lns27:3,lns28:3,lns29:3,lns2:3,lns30:3,lns3:3,lns4:3,lns5:3,lns6:3,lns7:3,lns8:3,lns9:3,load:[9,13,15,17,19,32,33,58,63,65,66,67,69,70,73],local:[1,2,9,13,16,17,26,30,32,38,43,47,58,60,63,65,67,70,71,73],local_pref:67,locat:[2,58,60],log:[6,13,65,67,70,71],logging_flag:58,logic:63,longest:70,look:61,lookup:[32,56,65,70,74],loop:[61,71],loss:[1,6,7,61,65,66,74,75],low:[25,32,61,63],lower:[32,33,63],ls:73,lsa:[13,19,45,46,69],lsacount:73,lsdb:[13,15,19,71],lsp:[13,15,32,40,41,65,70,71,73],lspgen:[65,68],lspid:69,lsr:[32,43,65,70],lt:[58,62],lua:75,lua_script:75,m:[32,56,65,67,70,71,74],ma:[32,35,63],mac:[1,2,7,32,33,34,36,37,38,63,65,74],machin:[61,65],mai:[2,5,6,7,32,43,58,67,70],main:[32,33,58,63,64,69,73],maintain:[61,70],mainten:[32,35,63],make:[2,58,62,67],manag:[2,58,60],mandat:2,mandatori:[3,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,29,30,32,44,47,56,60,73,74],mani:[2,5,58,61,63,65],manual:[2,13,21,32,34,38,60,62,63,67,70,71],manufactur:2,map:[2,63,70,73],mar:65,mark:[60,69],marker:67,market:2,mask:73,massiv:[32,57,58,61,64],match:[9,13,16,17,70],max:[1,2,3,6,7,8,25,31,32,35,36,44,49,50,51,52,53,55,56,57,63,64,65,66,73,74],maximum:[5,6,7,25,31,32,33,35,36,43,48,63,64,66,70,74],mbp:74,mc1:6,mc2:6,md5:[32,40,45,65,69,71,73],mean:[1,2,7,8,32,33,39,52,61,63,64,67,70,74],measur:[6,8,31,32,61,66,74],mechan:1,mediat:4,mega:[32,56,74],mellanox:62,member:[2,32,36,63],memori:[5,58,61,63,67,70],mention:[6,31,32],merg:74,meson:62,messag:[3,7,13,16,32,43,44,52,58,65,67,69,70,73],meta:75,method:[1,5],metric:[32,38,42,47,63,65,69,71,73],metric_flag:58,microburst:64,microsecond:74,might:[32,33,63,69,73,74],migrat:2,million:[58,61,64],millisecond:[6,7,31,32,33,37,52,63],min:[1,2,3,7,8,25,32,35,36,55,63,64,65,66,74],mini:63,minimum:[25,32,35,36,63,66,74],ministri:2,minor:60,minu:[59,63],miss:6,mission:61,mkdir:62,mmap:[32,33,59],mode:[1,3,7,32,33,35,37,44,59,60,62,64],model:[2,63],modern:[58,61,62,64],modifi:[6,32,33,63,67,70,71],modul:62,monitor:58,monkei:[0,13,32,35,55,63],more:[2,5,6,31,32,60,61,63,64,65,67,69,70,73],moreov:60,most:[1,3,32,35,59,63,64,75],motiv:61,move:69,mpl:[8,32,54,56,59,61,68,70,74],mpls_ipv4_flag:71,mpls_ipv6_flag:71,mrt:[13,15,19,32,41,46,65,67,71],mru:[3,7,32,35,48,63],ms:[6,32,40,66,69],msg:[60,65],mtu:63,much:64,multicast:[0,13,23,31,32,61,63,66,70],multipl:[1,2,6,8,12,13,31,32,58,60,63,64,67,69,70,73],multipli:64,multiprotocol:[65,70],multithread:[32,36,63,64],must:[2,5,13,32,43,58,63,65,70,71,74],mutual:70,n1:69,n:[1,3,7,13,32,35,55,56,60,63,65,67,70,71,74],na:[1,28,32],nak:1,name:[2,3,6,7,8,29,30,32,34,35,36,37,38,44,53,56,58,60,63,64,65,66,67,70,71,74,75],nano:74,nat:60,navig:65,nc:13,ncontent:60,need:[2,13,32,33,62,63,65,69],negoti:7,neighbor:[13,19,65],neighbor_list:71,netmask:1,netplan:63,network:[1,2,3,4,6,7,8,13,14,26,30,31,35,38,54,56,58,60,61,62,64,66,67,69,70,73,74,75],network_interfac:58,networkd:63,newer:[69,73],next:[4,6,31,32,65,67],nga:2,nic:62,ninja:62,nlocat:60,node1:71,node:[2,32,40,45,61,65,69,71,73],node_flag:71,node_id:71,non:[3,32,44,61,63,68],none:71,normal:[62,71],note:73,notif:65,now:[62,65,66,69,73],nserver:60,nsp:2,num:[67,70],number:[3,4,5,6,8,13,31,32,33,36,37,43,56,58,63,64,65,66,67,69,70,73,75],o:[61,64],obtain:1,occur:59,octet:65,odd:63,off:[10,13,65],offer:[1,58,60],offic:2,offici:64,offload:[65,74],offset:[3,32,44,74],often:[6,31,32],ok:[1,3,4,6,7,13,58,60,65,69,70,74],old:6,onc:[67,70],one:[2,4,6,7,58,63,64,65,66,67,69,70,73,74],onli:[1,3,4,6,7,13,21,28,31,32,35,47,56,59,63,64,69,71,73,74,75],ont:[25,32],onu:[25,32],onupeak:[25,32],open:[7,13,20,61,65,66,67,69,73],openapi:58,openconfirm:65,opens:65,oper:[2,58,60,61,64,67,70],opposit:[7,64],optim:[1,7,61,62,73],option:[1,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,27,28,31,32,34,37,38,47,50,51,56,57,58,61,62,63,65,66,67,69,70,71,73,74,75],order:[3,64,74],org:[1,28,32,62,69,73],origin:[69,73],os:[69,73],osi:[63,69],ospf2:71,ospf:[19,45,46,47,68,71],ospf_external_lsa:73,ospf_hdr:73,ospf_lsupd:73,ospfv2:[47,71,73],other:[1,2,7,13,32,33,49,58,59,60,62,63,64,65,69,73,75],otherwis:2,oui:7,our:61,out:[3,61,62,65,70],outag:5,outcom:58,outer:[1,2,3,7,13,32,34,35,44,55,56,59,60,63,64,65,67,70,74,75],output:[3,58,60,62,67,70,75],outq:65,outstand:[7,32,55],over:[1,2,6,7,12,13,25,32,43,55,56,60,64,66,67,69,70,73,74],overal:[58,60],overhead:[59,63],overlap:6,overload:[32,40,45,69,73],overseen:59,overwrit:[8,32,33,35,37,54,56,63,74],own:[63,67,69,70,73],p2p:[32,38,63,65,69,73],p:[65,67,70,71,75],pack:73,packag:[58,62,64],packet:[1,2,3,4,6,7,31,32,33,44,56,57,58,59,62,64,65,66,67,69,70,71,73,74],packet_mmap:[62,63],packet_mmap_raw:[32,33,62,63],packet_rx_r:63,packet_tx_r:63,pad:[3,32,40,44,66,69],padi:[7,32,53,66],pado:66,padr:[7,32,53,66],padt:[5,66],pages:[59,63],pair:65,pap:[3,7,32,49,66],paramet:[58,60,63,65],parent:[2,32,34,35,38,63],pars:62,particular:[6,66],particularli:1,pass:[58,62],password:[3,7,32,35,49,63],path:[13,67,69,73],payload:[32,56,74],pbit:[1,7,27,32,53,74],pcap:[59,65,67,69,70,71,73],pcap_captur:58,pd:[1,28,32],pdu:[13,15,19,32,43,69,70,73],peak:[25,32],peer:[3,9,13,17,26,32,43,44,65,67,69,70],pend:[13,21],per:[2,5,6,7,13,31,32,33,35,37,40,55,56,57,58,61,62,63,64,66,67,69,74,75],perform:[1,58,60,61,63],period:[1,32,39],permiss:62,permit:[3,32,44],phase:[67,70],physic:63,pid:58,pin:[32,37,63],pkg:62,pkgconfig:62,place:75,plan:[2,67],pleas:58,point:2,polici:[1,67],poll:[32,33,37,63,66],pon:[25,32],pool:64,port:[2,4,29,30,32,56,58,60,70,74],possibl:[3,5,6,58,60,62,63,64,69,71,73],post:[2,58],potenti:59,power:[5,8,25,32],pp:[2,3,6,7,8,31,32,54,56,63,64,65,66,67,70,74],ppp:[3,35,48,49,50,51,52,53,63],pppoe:[0,2,3,5,6,35,53,55,58,59,60,61,63,64,66,74,75],pre:[63,67,70],precis:[32,33,63],pref:67,prefer:[8,32,43,67,70],prefix:[1,7,8,32,54,61,63,64,65,67,70,71],present:[13,58,61],preset:58,press:65,pretti:58,prevent:[59,60,63,64],previous:60,primari:[7,32,51,60,74],primarili:[58,62,64],print:[65,69,73],prioriti:[1,2,3,6,7,25,27,31,32,36,37,44,45,53,56,63,65,70,73,74],problem:58,process:[3,6,31,32,58,74],profil:[25,35,63],program:63,programmat:58,progress:58,project:[61,62],prometheu:58,promot:2,proper:[6,75],properli:64,propos:[7,32,48,64],protocol:[1,3,4,6,7,13,16,31,32,35,40,49,50,51,59,61,63,65,66,67,69,70,71,73],protocol_list:71,provid:[1,2,3,4,6,7,13,58,60,62,63,69,73],provis:2,proxi:3,psnp:[32,40,69],pt:4,pta:63,purg:[13,15,32,41,46,69,71,73],purpos:[58,60,61],put:[32,56,58,74],python3:66,python:[13,66,67,70],q:71,qdisc:[32,33,37,63],qinq:[2,32,34,35,63,65],qmx:4,qo:[61,65,74],queri:74,question:61,queue:[61,63,64],quick:61,quickli:[8,61],quickstart:61,quit:71,r1:[65,69,71,73],r2:[65,69,71,73],r3:71,r6:73,r:[60,71],railwai:2,randomli:[5,71],rang:[2,32,40,45,55,63,65,69,73],rapid:[1,7,28,32],rate:[2,3,7,8,24,25,32,35,55,56,57,61,63,74],rather:69,raw1:65,raw:[6,9,13,17,26,32,33,43,56,58,59,62,65],rbf:58,rcvd:65,rdi:[10,13],re:[2,64],reach:[32,33,63],reachabl:[67,69],read:[63,65,71],readabl:[32,56,74],real:[1,6,62,69,73],realist:1,reason:64,receipt:[32,43,70],receiv:[2,3,4,6,7,8,32,33,43,44,48,56,58,61,63,64,65,66,69,70,72,73,74,75],recogn:6,recommend:[2,6,58,61,62,64],reconnect:[2,3,5,7,13,21,26,32,53,55,64,65,67],record:[6,31,32],recov:[5,59],recv:[69,73],redirect:60,ref:62,refer:[2,4,7,63,67,69,70],referenc:[32,37,63,67,71],refresh:[32,40,41,65,69],region:2,regulatori:2,reject:[7,32,49],rel:62,relai:[1,28,32],relat:[2,75],releas:[1,27,32,58,62,64,67],reli:1,reliabl:[3,6,32,44],remain:[64,69],remot:[1,2,3,7,13,16,24,27,28,32,35,47,63,65,71,73],remote_node_id:71,render:63,renew:1,repeat:65,replac:[13,63,67],repli:[1,65],report:[6,8,31,32,61,65,74],report_flag:58,repres:71,republish:69,request:[1,3,5,6,7,13,16,29,31,32,49,50,51,52,55,58,60,61,63,66,69,73],requir:[1,5,7,32,57,60,62,63,64],reserv:74,reset:[12,13,21,22,32,43,70],resid:63,resolv:[32,38,55,56,61,63,65,70,74],respond:[7,63],respons:[7,13,58,60],rest:58,restart:[5,13,21,60,61,63],result:[3,6,13,16,31,32,43,56,58,59,65,66,70,74],resum:60,retail:2,retri:[1,2,3,7,27,28,32,39,40,44,45,49,50,51,52,53,69,73],retriev:58,rev:62,rfc2661:[3,13,16,32,44],rfc3145:[13,16],rfc6221:[1,28,32],rfc6396:[69,73],rfc7552:[32,43,70],rfc:[7,69,70],rib:67,right:6,ring:[32,33,37,63],robust:[5,7],rollout:2,root:[62,65,71],rout:[61,63,65,67,69],router:[32,38,40,45,47,59,61,63,65,68,69,70,71,73],router_id:71,rpc:[13,58,65],rpf:[32,56,74],rs:66,rtbrick:[1,3,7,13,32,49,58,60,61,62,63,65,74],rule:[60,67],run:[1,3,4,5,6,7,13,16,58,60,61,65,67,69,70,73,74],run_report:58,rx:[1,3,4,6,7,32,33,37,56,58,63,64,65,66,67,70,74],s100:63,s1:[2,64,65,66,70],s200:63,s2:[2,65],s:[1,2,6,13,31,32,33,37,40,58,60,63,65,67,69,71,73],safi:65,same:[2,4,6,13,60,63,64,65,66,67,70,73],sbin:[58,62],scale:[61,64],scapi:[67,70],sccrq:[3,32,44],scenario:[1,2,60,64],schema:58,scratch:61,script:[13,58,66,67,70,74,75],seamless:58,search:[6,66],sec:62,second:[1,6,7,8,13,21,26,27,28,31,32,39,40,43,45,49,50,51,52,53,55,56,65,66,67,69,70,73,74],secondari:[7,32,51],secret123:[65,71],secret:[3,32,44,69,71],section:[2,6,13,25,32,35,58,63,64,74],see:[61,65,74],seed:71,segment:61,segment_id:71,select:[8,32,33,35,56,63,74],self:[69,73],send:[2,3,6,7,8,13,16,31,32,40,43,44,54,56,58,59,61,62,63,64,65,67,69,70,72,73,75],sens:67,sent:[6,8,25,31,32,33,56,58,63,64,65,70,74,75],sep:71,separ:[61,74],seq:[1,7,65,66,69,73,74],seqnum:69,sequenc:[6,8,65,66,69,71,73,75],sequenti:74,seri:[66,67,70],serious:61,serv:[58,61],server:[1,2,3,7,30,44,51,61,64,65],servic:[1,2,6,7,32,53,58,61,63,69],session:[0,1,2,3,4,5,6,7,9,10,11,12,16,17,20,21,22,23,31,33,35,38,43,49,53,54,55,56,58,59,60,61,63,64,65],session_count:58,sessions_establish:58,set:[3,6,7,8,10,13,25,31,32,33,34,35,37,38,43,44,49,56,57,60,62,64,65,66,67,70,71,74],setcap:62,setup:[32,55,61,64,65,70],sever:[60,67],sha:62,share:[1,63],shortest:73,should:[5,6,32,57,58,60,62,63,64,65,67,70,73,74],show:[6,8,58,62,63,65,67,69,70,71,73,74,75],shown:[1,3,4,6,13,16,62,63,69,70,73,75],sid:[32,40,45,65,69,73],side:[63,65],sigint:58,signal:[58,61],signatur:[6,31,32,74],similar:[1,63,66,73],similarli:5,simlar:71,simpl:[13,32,40,45,61,65,66,67,69,70,71,73,74],simpli:61,simplifi:58,simul:[1,60],simultan:60,sinc:58,singl:[2,3,6,13,31,32,61,64,65,70,75],size:[3,32,33,37,40,44,57,63,64,69,74],skip:[13,65],slice:58,slot:[32,33,37,63,64,65],slow:[3,32,44],smaller:[32,43,70],sn:66,so:[2,61,63,68],sock:[1,3,4,5,6,7,13,16,58,60,65,67,69,70,73,74],sock_stream:[69,73],socket:[3,13,32,33,58,63,65,69,71,73],socket_path:[69,73],softwar:[61,63,64],solicit:1,some:[2,4,6,31,32,58,59,63,64,65,75],soon:[5,8,58,67,70,74],sourc:[4,6,26,31,32,56,64,67,69,70,73,74],source1:[6,12,13],source2:[6,12,13],source3:[6,12,13],space:[61,63],special:[6,31,32],specif:[1,2,7,32,52,58,60,71,73],specifi:[2,6,8,31,32,54,65,70],speed:[13,16],split:64,spt:4,sr:[32,40,45,65,69,71,73],srgb:65,srgb_base:71,srgb_rang:71,stabil:73,stabl:62,stack:61,standalon:[4,65],standard:[58,62,67,69,75],start:[3,5,6,7,8,10,11,12,13,21,22,23,26,29,31,32,35,38,44,52,54,55,56,57,59,60,61,62,63,64,65,66,67,69,70,73,75],startup:[60,67,69,70,73],stat:[12,13,22,65,66,70],state:[1,2,3,6,7,25,32,58,60,61,63,65,69,70,71,73],statist:[4,13,18,21,22,32,57,58,61,65,66,74],statu:[1,3,4,6,7,13,32,52,60,65,69,70,74],stderr:[58,69,73],stdout:58,steam:63,step:[32,35,62,63,65],stick:[3,32,44],still:[64,65,73,75],stop:[5,6,7,10,11,12,13,21,22,23,32,55,56,57,60,63,65],store:[3,7,58,59,66,74],stream:[2,4,6,8,21,22,23,33,35,56,57,58,59,61,63,64,65,66,67,71,75],streamlin:58,string:[32,35,58,63],struct:73,sub:[3,4,74],subnet:70,subscrib:[1,61,63],subset:2,substitut:63,subtract:74,subtyp:[69,73],success:[32,43,70],successfulli:[7,13],sudo:[1,3,4,5,6,7,13,16,58,60,62,63,65,67,69,70,73,74,75],suit:61,summari:[13,22],support:[1,2,3,4,6,7,13,32,33,36,44,56,58,61,63,64,65,67,68,69,70,71,73,74,75],suppress:[6,31,32],sy:[69,73],symbol:62,synchron:[69,73],system:[32,33,36,40,42,58,59,64,65,67,69,71,74],systemctl:58,systemd:58,t1:1,t2:1,t:[63,64,65,71,74],tabl:[61,64,66,67],tag:[2,4],take:[6,58,61],tar:62,target:[62,70],task:[58,69],tc:[32,56,74],tcp:[4,29,30,32,43,60,65,70,75],teardown:[9,13,15,17,19,26,32,40,41,43,45,46,55,67,69,70,73],telecommun:2,telekom:61,term:[2,63],termin:[5,7,13,16,32,53,55,58,60,65],test10:3,test11:3,test12:3,test13:3,test14:3,test15:3,test16:3,test17:3,test18:3,test19:3,test1:3,test20:3,test21:3,test22:3,test23:3,test24:3,test25:3,test26:3,test27:3,test28:3,test29:3,test2:3,test30:3,test3:3,test4:3,test5:3,test6:3,test7:3,test8:3,test9:3,test:[1,3,5,7,12,16,32,35,49,55,56,59,60,61,63,64,65,66,67,68,69,70,73,74,75],tester:[4,60,61],testprotocol:62,text:58,than:[2,32,56,61,63,67,69,70,74],thei:[2,65],them:[58,60,63,65,69,71,73],therefor:[6,7,32,55,58,63,64,65,67,70],thi:[1,2,3,5,6,7,8,13,16,21,27,28,31,32,35,49,50,51,56,58,59,60,61,62,63,64,65,66,67,69,70,71,73,74,75],think:66,third:[32,33,35,62,63],thorough:1,those:[2,7,8,25,32,33,56,58,63,64,65,66,67,69,70,71,73,74,75],thousand:61,thread:[2,6,32,33,37,63,64,67,75],three:[2,6,31,32,63,66,69,71,73],threshold:[6,31,32],through:[32,33,58,60,61,63,65,70],throughput:[25,32,33,63,64],thu:2,time:[1,6,7,26,32,40,43,45,53,58,61,62,65,66,67,69,70,73,75],timeout:[1,2,3,7,27,28,32,36,39,43,49,50,51,52,53,63,66,70],timer:[13,15,61],timestamp:[32,33,63,69,73],tlv:[69,71],todai:4,took:[8,74],tool:[8,13,16,61,65,67,69,70,71,73],top:[60,65],topic:65,toplog:71,topolog:[61,65,69,73],tos:[1,3,6,27,31,32,44,74],total:[1,7,8,58,60,62,65,66],tr:[2,63],track:61,traffic:[0,1,2,3,4,7,21,22,23,26,27,31,33,44,53,54,56,57,58,61,63,64,66,67,72,75],translat:60,transmiss:73,transmit:63,transpar:2,transport:[32,43,70],tree:[25,32],tri:59,trigger:[2,67,70],troubleshoot:[58,61,62],ttl:[32,56,74],tunnel:[3,13,16,32,44],turn:58,two:[2,5,7,60,63,65,67,69,70,72,73,74],tx:[1,2,3,4,7,32,33,37,40,56,63,64,65,66,67,69,70,74],txqueuelen:63,type:[1,2,4,6,7,24,25,32,35,40,45,56,58,60,62,63,64,65,66,67,69,70,71,73,74],typic:[6,63,67],u:[2,13],ubuntu:58,udp:[4,70],under:[3,5,7,59,60,61,63,67,69,70,73],underli:[1,58],understand:66,unicast:[8,65,67],unidirect:64,uniq:[2,7,32,53],uniqu:74,unit:[7,32,48,58],unix:13,unknown:66,unlabel:[8,32,54],unset:[10,13],untag:[2,32,35,38],until:[8,32,38,58,63,70,74],unzip:62,up:[2,3,6,7,8,24,25,32,35,59,63,64,65,66,69,70,72],updat:[9,13,15,16,17,19,26,32,43,65],update1:[67,70],update2:67,upstream:[1,2,4,7,8,24,25,32,56,65,66,74],url:[29,32,60],us:[1,2,3,4,5,6,7,8,13,16,31,32,43,44,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,75],usabl:[2,58],usag:[32,35,58,63,67,70,71],user10:13,user1:[7,65],user:[1,2,7,13,32,49,58,60,61,62,63,65],usernam:[3,7,13,32,35,49,63,65],usr:[58,62,66],utc:58,utf:[69,73],util:[1,64],v1:[58,62],v6:2,v:[2,32,33,62,63,71],valid:[1,4,32,43,67,70,71,74],valu:[7,13,25,32,33,35,43,49,60,63,66,70],valuabl:[1,60],variabl:[63,69,73],variou:[1,58,60,61,68,74],vector:67,vendor:[3,32,52,58,61],veri:61,verif:[61,74],verifi:[1,2,6,7,8,32,57,58,61,64,65,66,75],versa:64,versatil:[1,60],version:[6,25,31,32,35,45,58,60,62,63,65,69,70,71,73],veth1:65,veth:65,via:[3,7,32,48,62,63,67],vice:64,view:[6,31,32,65],violat:[8,66],virtual:[1,61,65,69,73],vlan:[1,2,3,7,13,27,32,34,35,38,53,55,56,59,60,63,64,65,74,75],voic:74,volum:74,w:[67,70,71],wa:[2,7,13,61,69,71],wai:[1,6,28,32,58,62,69,73],wait:[5,6,31,32,38,55,56,63,74],walk:65,warn:[13,58,67,70],wb:73,we:[13,61,64,65],welcom:[61,64],well:[2,6,63,71],were:2,wget:[58,62],what:65,when:[60,70],where:[1,2,3,32,44,56,58,61,63,65,74,75],whether:[1,58],which:[2,4,5,6,13,16,31,32,43,55,56,58,59,61,62,63,64,65,66,69,70,71,73,74,75],who:2,whole:69,wholesal:2,why:59,wide:73,window:[3,32,40,44,63,65,69,75],withdraw:[65,67,70],within:[6,31,32,59,69],without:[2,5,6,62,63,65,74],word:74,work:[4,5,6,8,62,64,65,73,74],worker:64,workload:64,world:[1,6],would:[6,8,59,64,65,66,74],write:[63,67,70,71,73],written:69,wrong:[1,7,65,66,74],x:[67,71,75],xjf:62,xz:62,y:[62,71],you:[2,13,60,61,63,64,65,66,68,71,75],your:[59,61,63,64,65,67,70],youtub:61,z:71,zap:[12,13,31,32],zero:[3,32,44,63,64,74],zip:62},titles:["Access Protocols","IPoE","L2BSA","L2TP","Legal Interception (LI)","Monkey","Multicast and IPTV","PPPoE","Session Traffic","<no title>","<no title>","<no title>","<no title>","API/CLI","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Configuration","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Controller","Frequently Asked Questions","HTTP Emulation","BNG Blaster","Installation","Interfaces","Performance Guide","Quickstart Guide","Reports","BGP","Routing Protocols","ISIS","LDP","LSPGEN","MPLS","OSPF","Traffic Streams","Troubleshooting"],titleterms:{"function":63,"static":1,a10nsp:[32,63],access:[0,32,63],address:1,adjac:[69,70],aggreg:[32,63],api:[13,58],ask:59,authent:[7,32],bgp:[13,32,65,67],blaster:[13,61,62,74],bng:[13,61,62,74],build:62,cfm:13,cli:13,client:[32,60],command:[1,3,7,58,69,73,74],configur:[3,7,8,32,67,69,70,71,73,74],connect:32,connector:71,contact:61,content:61,control:58,copyright:61,creat:58,data:3,databas:[69,73],delet:58,depend:62,dhcp:[1,32,65],dhcpv4:1,dhcpv6:[1,32],doubl:63,dpdk:[62,63,64],emul:60,extens:7,extern:32,file:[67,69,70,71,73,74],flood:[69,73],flow:74,frequent:59,from:[62,71],gener:[6,67,70],guid:[64,65],header:3,http:[13,32,60],i:63,identifi:74,igmp:[13,32],instal:[58,62],instanc:58,intercept:[4,13],interfac:[13,32,63,73],ip6cp:[7,32],ipcp:[7,32],ipo:[1,32],iptv:6,ipv4:[7,32],ipv6:[7,32],isi:[13,32,65,69],join:6,json:66,l2bsa:2,l2tp:[3,13],l2tpv2:32,lag:[32,63],lcp:[7,32],ldp:[13,32,65,70],leav:6,legal:[4,13],li:[4,13],licens:61,limit:[6,67,69,70],line:32,link:[32,63],ln:32,log:[58,75],lsa:73,lsp:69,lspgen:[69,71,73],magic:74,manual:6,metric:58,mmap:63,mode:63,monkei:5,mpl:72,mrt:[69,73],multicast:[6,74],nanosecond:74,neighbor:73,network:[32,63,65],number:74,o:63,oper:63,ospf:[13,73],ospfv3:73,output:66,packet:63,pcap:[58,75],perform:64,plugin:75,ppp:[7,13,32],pppoe:[7,32,65],profil:32,protocol:[0,68],question:59,quickstart:65,random:71,rate:66,raw:[63,67,70,74],report:[58,66],rfc5515:3,rout:68,run:62,scapi:[69,73],send:74,sequenc:74,server:[32,60],session:[8,13,32,66,67,70,74],set:63,setup:66,singl:63,sourc:[61,62],standard:66,start:[58,74],statu:58,stop:[58,74],stream:[13,32,70,74],support:62,system:63,tag:63,test:[6,13,58,62],timestamp:74,topolog:71,traffic:[6,8,13,32,65,70,74],tripl:63,troubleshoot:75,ubuntu:62,unicast:74,unit:62,untag:63,updat:[67,69,70,73],v6:1,variabl:3,vendor:7,verif:8,via:[69,73],wireshark:75,zap:6}}) \ No newline at end of file +Search.setIndex({docnames:["access/index","access/ipoe","access/l2bsa","access/l2tp","access/li","access/monkey","access/multicast","access/pppoe","access/traffic","api/bgp","api/cfm","api/http","api/igmp","api/index","api/interfaces","api/isis","api/l2tp","api/ldp","api/li","api/ospf","api/ppp","api/sessions","api/streams","api/traffic","configuration/access_line","configuration/access_line_profiles","configuration/bgp","configuration/dhcp","configuration/dhcpv6","configuration/http_client","configuration/http_server","configuration/igmp","configuration/index","configuration/interfaces","configuration/interfaces_a10nsp","configuration/interfaces_access","configuration/interfaces_lag","configuration/interfaces_links","configuration/interfaces_network","configuration/ipoe","configuration/isis","configuration/isis_external","configuration/isis_external_connections","configuration/ldp","configuration/lns","configuration/ospf","configuration/ospf_external","configuration/ospf_external_connections","configuration/ppp","configuration/ppp_authentication","configuration/ppp_ip6cp","configuration/ppp_ipcp","configuration/ppp_lcp","configuration/pppoe","configuration/session_traffic","configuration/sessions","configuration/streams","configuration/traffic","controller","faq","http","index","install","interfaces","nat","performance","quickstart","reports","routing/bgp","routing/index","routing/isis","routing/ldp","routing/lspgen","routing/mpls","routing/ospf","streams","troubleshooting"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["access/index.rst","access/ipoe.rst","access/l2bsa.rst","access/l2tp.rst","access/li.rst","access/monkey.rst","access/multicast.rst","access/pppoe.rst","access/traffic.rst","api/bgp.rst","api/cfm.rst","api/http.rst","api/igmp.rst","api/index.rst","api/interfaces.rst","api/isis.rst","api/l2tp.rst","api/ldp.rst","api/li.rst","api/ospf.rst","api/ppp.rst","api/sessions.rst","api/streams.rst","api/traffic.rst","configuration/access_line.rst","configuration/access_line_profiles.rst","configuration/bgp.rst","configuration/dhcp.rst","configuration/dhcpv6.rst","configuration/http_client.rst","configuration/http_server.rst","configuration/igmp.rst","configuration/index.rst","configuration/interfaces.rst","configuration/interfaces_a10nsp.rst","configuration/interfaces_access.rst","configuration/interfaces_lag.rst","configuration/interfaces_links.rst","configuration/interfaces_network.rst","configuration/ipoe.rst","configuration/isis.rst","configuration/isis_external.rst","configuration/isis_external_connections.rst","configuration/ldp.rst","configuration/lns.rst","configuration/ospf.rst","configuration/ospf_external.rst","configuration/ospf_external_connections.rst","configuration/ppp.rst","configuration/ppp_authentication.rst","configuration/ppp_ip6cp.rst","configuration/ppp_ipcp.rst","configuration/ppp_lcp.rst","configuration/pppoe.rst","configuration/session_traffic.rst","configuration/sessions.rst","configuration/streams.rst","configuration/traffic.rst","controller.rst","faq.rst","http.rst","index.rst","install.rst","interfaces.rst","nat.rst","performance.rst","quickstart.rst","reports.rst","routing/bgp.rst","routing/index.rst","routing/isis.rst","routing/ldp.rst","routing/lspgen.rst","routing/mpls.rst","routing/ospf.rst","streams.rst","troubleshooting.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[1,3,4,6,7,8,13,24,25,26,27,29,31,32,33,35,36,38,39,40,43,44,45,47,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,68,70,71,72,74,75],"00":[1,2,7,8,25,32,36,62,63,65,66,67,70,72],"000":[58,65,66],"0000":[65,66,70,72],"0001":[32,33,40,63,66,70,72],"000100050ac801000aff010180000001e7790024ffffff00000000140000000000000000":74,"000100050ac802000aff010180000001dc830024ffffff00000000140000000000000000":74,"0002":[66,70,72],"0003":72,"0010":[32,40,70],"0011":70,"0021":70,"0022":70,"01":[1,2,7,58,63,65,66,67,70],"0100":[32,40,70],"0102":70,"02":[1,2,7,32,36,63,66,72],"0204":72,"0204004001010101000000003b780000000000000000000000000001000100050ac80b000aff01018000012d1e0c0024ffffff00000000140000000000000000":74,"020400400101010100000000456e0000000000000000000000000001000100050ac80c000aff01018000012d13160024ffffff00000000140000000000000000":74,"025":63,"0288":75,"03":[66,67],"0304":70,"031917":66,"04":[25,32,58,62,66,72],"0506":70,"07":58,"0792":75,"08":66,"087877":66,"087971":66,"088013":66,"088035":66,"088050":66,"08t14":66,"09":66,"090288":75,"093906":66,"093964":66,"099792":75,"0s":66,"0x1":66,"0x192168001001":66,"0x5274427269636b21":75,"0x83":70,"0x88a8":[32,34,35,63],"1":[0,1,2,3,4,6,7,8,13,16,25,26,27,29,30,31,32,33,35,38,39,40,42,44,45,47,48,55,56,58,60,61,62,63,64,65,66,67,68,70,71,72,74,75],"10":[1,2,3,4,6,7,13,27,28,32,38,40,42,43,45,47,50,51,52,53,56,58,60,63,64,65,66,67,68,70,71,72,74,75],"100":[4,6,7,8,60,62,63,64,65,66,67,70,75],"1000":[0,3,6,7,31,32,33,58,63,65,66,67,68,70,72,74,75],"10000":[32,66,71],"100000":[66,68,72],"1000000000":[32,56,75],"10001":71,"1001":[0,32,40,63,66,70,72,75],"1002":[66,70],"10036":7,"10083":7,"100k":64,"101":[2,6],"1014":75,"102":[3,6],"1024":[3,7,70,74],"1026":75,"103":6,"1030":75,"1048575":[32,40,45,70,74],"10561":75,"10589":70,"106876":67,"106881":67,"108580":67,"11":[3,6,58,60,62,65,66,71,72,74],"1100":75,"110156":67,"110161":67,"1102":67,"1104":67,"111410":67,"112":75,"114":[6,75],"1142":70,"1198":67,"11981554":67,"11982029":67,"12":[3,6,8,60,65,66,74],"120000":66,"1206":67,"12252":8,"12278":8,"12299556":67,"12300031":67,"12306":8,"12314":8,"12360218":67,"12361":8,"124":66,"126":75,"12654727":67,"127":[66,67],"128":[1,2,6,7,32,56,63,66,71,75],"129":[7,32,51],"1291":6,"13":[1,3,7,65,66,71,72],"131":[7,32,51],"1337":[1,3,7,60,63,66,70,72,74,75],"1338":67,"138":66,"139":[6,67],"14":[3,58,65,66],"1406":3,"1439":1,"14399":1,"14400":1,"149":1,"1492":[3,7,32,48],"15":[3,32,43,65,67,71],"150":[58,67],"1500":[63,67],"155":58,"158":58,"16":[3,32,44,57,66,74],"16000":8,"160720":4,"163":58,"16384":[3,7],"168":[66,70,72],"17":[3,67],"1700":67,"172":66,"17799":8,"18":[3,58,62,67],"1816":67,"182885":66,"1840":67,"188120":67,"188259":67,"18845":8,"19":[3,66,67],"192":[64,66,70,72],"1921":[66,70,72],"197":67,"197340":67,"197523":67,"199":67,"1998":[0,63],"1999":[0,7,63],"1_amd64":62,"1m":[32,57,64,65],"1s":[8,67],"2":[0,1,2,3,4,6,7,13,16,26,28,31,32,35,38,40,42,45,47,55,56,58,60,62,63,64,65,66,67,68,70,71,72,74,75],"20":[3,6,58,62,63,66,72,75],"200":[1,3,4,7,13,58,60,63,64,66,67,70,71,74,75],"2000":[7,63,66,70,75],"20000":66,"20001":68,"2001":75,"2002":70,"2010":2,"202":6,"2020":61,"2022":[58,66],"2023":61,"20425245":67,"206":[3,67],"208":75,"21":[3,62,71],"21009053":67,"213":75,"2147483649":74,"2147483949":74,"2153":7,"218":67,"22":[3,58,62,66],"222":74,"2222":1,"224":[67,71,75],"227":67,"23":[3,6,65,71],"232":6,"239":[6,13,31,32,75],"24":[3,4,5,7,32,38,40,60,63,64,66,68,70,71,72,74,75],"242810":72,"242827":72,"25":3,"250":65,"254":64,"255":[1,3,26,32,33,36,44,45,56,63,68,74,75],"256":[2,6,66,75],"26":3,"261":1,"27":[3,66],"27008":75,"27040":75,"28":[3,66],"2891":8,"29":[3,62],"2900":8,"293":[6,31,32],"2957":8,"2978":8,"299":1,"2999":[7,63],"2s":[8,67],"2xx":13,"3":[1,2,3,4,6,7,13,16,26,27,31,32,35,38,40,43,47,52,55,56,61,62,63,65,66,67,68,70,71,72,74,75],"30":[3,6,7,32,40,44,49,52,66,70,74],"300":[1,32,39,40,70],"30003":72,"30005":72,"302":60,"3033":8,"303904":66,"303952":66,"3040":8,"3071":8,"309235":58,"31":[3,66],"3104":8,"3123":8,"3178":8,"3184":8,"3185":8,"31894":67,"31895":67,"31896":67,"32":[3,65,66,71,72],"320k":65,"322":67,"32461":67,"32465":67,"32633":67,"32635":67,"32641":67,"32768":[32,36,37,63,65],"32867":3,"32k":65,"33":[3,75],"330":[32,40,70],"33311":67,"33319":67,"3333":1,"34":[3,71],"35":[3,66],"350":67,"36":[3,66,67],"3600":70,"36000":72,"362":75,"37":[3,66,67,71,72,75],"37119":8,"373":67,"3742":67,"38":[3,66,67],"39":3,"3936":[59,63],"396765":66,"3_amd64":62,"3s":[8,67],"3x1":[32,36,63],"3x30":[32,36,63],"4":[1,4,7,8,13,16,26,32,55,58,60,61,63,65,66,67,68,70,71,74,75],"40":[3,32,45,67,74],"400":[7,32,55,60],"4000":[1,2,3,63,65,66,75],"404":[13,58],"4049":[7,63],"4094":2,"4096":[32,33,63,66],"41":75,"4194301":4,"422":67,"4294967295":[24,25,26,32,35,47,63,68,74],"43":75,"4343":67,"48":[68,75],"48000":3,"48523":64,"4880":67,"49":[32,40,66,70,72],"49152":4,"5":[1,3,4,6,7,8,26,27,28,31,32,40,43,44,45,49,50,51,52,53,56,63,64,65,66,67,68,70,71,74,75],"50":[67,72,75],"500":67,"50000":68,"50011":3,"500mb":58,"5036":71,"51":66,"512":63,"52":66,"53":66,"54":66,"5422":75,"54232":75,"5458":75,"54593":75,"54594":75,"54610":75,"55":[66,72],"55661":67,"56":[7,66],"59":[4,66,72],"59655":75,"59670":75,"6":[1,2,4,7,65,67,68,70,71,74,75],"60":[3,74],"6000":67,"61":4,"6167":8,"6177":8,"61790":67,"61793":67,"62":67,"6205":8,"6226":8,"623":67,"624":67,"63":66,"63121":64,"63122":64,"64":[1,7,8,32,38,45,60,63,64,66,70,74,75],"64537":67,"646":71,"647569":66,"647630":66,"647633":66,"647639":66,"647642":66,"647645":66,"647648":66,"647651":66,"647654":66,"647657":66,"647660":66,"647669":66,"647672":66,"647678":66,"647813":66,"64bit":8,"65000":[26,32,68],"65001":[66,68],"65056":[32,56,64,75],"65506":70,"65507":70,"65524":70,"65529":70,"65535":[3,7,25,26,29,30,32,35,40,43,44,45,48,56,60,63,66,68,70,71,74,75],"65772":67,"65784":67,"6800":[66,70,72],"682535":58,"69":67,"6m":58,"6pe":68,"7":[0,1,2,3,4,32,35,44,56,60,63,65,66,68,70,71,74,75],"7142":70,"72":66,"7331":[3,7,60,63,66,70,75],"73763":8,"7456":6,"74810":67,"75":67,"76":[6,8,31,32,56,75],"78":67,"780109":72,"780127":72,"79":[3,8,66],"79200":75,"7min":58,"8":[1,3,4,58,63,64,68,70,71,74,75],"80":[29,30,32,60,64],"800":[7,32,55],"800000":75,"8000000":75,"8001":58,"8112":75,"811200":75,"8112000":75,"82":8,"820":4,"8208":75,"820800":75,"8208000":75,"822":67,"8240000":75,"83":8,"831b0100120100000021ffff010203040506000000000003c0d103010403490001":70,"831b0100120100000021ffff010203040506000100000003bad603010403490001":70,"84":8,"844":67,"870722":66,"88":[8,67],"899":1,"9":[4,8,58,63,65,68,70,71,74,75],"90":[26,32,66,68],"9000":[32,56,59,63,75],"90288":75,"9028800":75,"904266":66,"904293":66,"904359":66,"904369":66,"904389":66,"904448":66,"905659":66,"907888":66,"907903":66,"907917":66,"907989":66,"92":66,"93709":67,"94":4,"95265":67,"95685":67,"96000":8,"96548":75,"97":67,"97391":67,"97909":67,"981279":66,"981314":66,"981335":66,"98595":75,"98903":75,"99":75,"99792":75,"99949":67,"abstract":63,"break":[70,74],"byte":[4,32,33,59,63,67,75],"case":[0,1,7,8,65,70,74],"default":[1,3,4,5,6,7,8,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,62,63,65,66,68,70,71,72,74,75,76],"do":[6,63,65,75],"export":[70,72,74],"final":[6,8,31,32,58,66,67,70,74],"float":[32,56,75],"function":[0,1,2,3,4,5,6,8,13,14,32,37,56,58,60,64,70,71,74,75],"import":[32,67,70,72,74],"int":58,"long":[6,61],"new":[0,6,32,58,61,62,63,64,66,75],"public":64,"return":[3,7,12,13,58,64,74,75],"short":[32,35,36,61,63],"static":[2,32,35,63,64],"switch":[25,32,71],"true":[1,2,3,5,6,7,8,26,27,28,29,31,32,33,38,39,40,41,46,50,51,54,55,56,57,58,60,63,64,65,66,68,70,72,74,75,76],"try":[66,70,74],"var":58,"while":[2,32,70,74],A:[0,3,5,6,32,44,61,62,64,65,67,68,71],AS:[26,32,66,68],As:[5,58,62],At:63,BE:75,But:66,By:[1,24,32,58,60],For:[0,1,5,32,33,56,60,63,64,65,72,75],IS:[66,70],If:[5,6,7,26,31,32,61,62,63,64,65,66,68,75],In:[1,2,8,13,24,32,33,56,60,63,64,65,66,72,75],It:[0,2,3,5,6,32,33,56,58,61,62,63,64,65,70,71,74,75],ON:62,On:[1,66],One:[13,60,63,64,70,74],Such:[66,70,74,75],TOS:[1,3,6,26,27,31,32,44,56,68,75],The:[0,1,2,3,4,5,6,7,8,13,16,21,24,25,32,33,37,43,44,56,58,59,60,61,62,63,64,65,66,67,68,70,71,72,73,74,75,76],Then:[62,66],There:[61,62,66,68,70,71,74],These:[2,58,64],To:[67,69],With:[7,65],_:72,__:72,___:72,____:72,_____:72,______:72,__comment__:[2,65,66],__main__:[70,74],__name__:[70,74],_amd64:58,_command:58,_start:58,_stop:58,a00:66,a10:[2,32,63],a10nsp:[2,8,13,14,34,35,56,58,61,65,66,75],a10nsp_interfac:58,abbrev:62,abil:[60,64,65],abl:[3,65,70,72,74],about:[3,4,13,58,61,67,74],abov:[6,31,32,60,65],ac10:66,accept:[2,7,32,52,63,66],access:[1,2,3,5,7,8,13,14,24,25,27,28,33,35,56,58,60,61,64,65,66,67,75],access_interfac:58,accommod:72,accord:[32,43,60,71],account:75,accur:1,accuraci:60,achiev:65,aci:3,ack:1,across:60,act:[25,32],action:2,activ:[6,32,36,58,61,63,64,70,71,74],actual:[2,13,24,25,32,33,56,63,64,65,67,71,75],ad:[1,13,28,32,64,66,75],adapt:74,add:[1,3,27,28,32,35,37,44,63,66,68,72],addit:[1,32,60,62,64,72],addr:58,address:[2,3,4,6,7,8,9,13,17,26,29,30,31,32,33,34,35,36,37,38,43,44,47,51,54,56,58,60,63,66,68,70,71,72,74,75,76],adjac:[13,15,17,66,74],administr:1,adopt:64,adrout:74,adsl:[2,63],advanc:[6,66],advertis:[1,32,38,59,63,66,70],advisori:2,af_unix:[70,74],affair:2,afi:66,after:[5,6,26,31,32,55,56,58,66,68,71,75],ag:[61,74],again:[5,66],agenc:2,agent:[1,2,3,7,24,27,28,32,35,63,66],aggreg:[2,13,14,24,35,61,65,76],aggress:[3,32,44],ago:58,algorithm:74,all:[1,2,3,5,6,7,8,9,11,12,13,14,16,17,18,21,22,23,27,32,33,41,44,46,53,54,55,58,59,60,61,62,63,64,65,66,67,68,70,71,74,75,76],alloc:1,allow:[0,1,2,3,5,6,7,13,16,25,27,28,31,32,33,37,49,50,51,58,59,60,61,62,63,64,65,67,68,70,71,72,74,75,76],alon:64,alreadi:[58,68],also:[0,2,3,5,6,13,32,33,56,58,60,61,62,63,64,65,66,67,70,72,74,75,76],altern:[13,24,32,55,62,70,74,75],although:74,alwai:65,among:68,amount:[2,13,21,58,61],an:[0,2,3,6,8,13,24,32,37,38,43,58,59,60,61,63,64,66,67,68,70,71,74,75],analog:[25,32],analysi:[6,31,32,58,64],analyz:[58,64,67,76],ancp:[25,32],ani:[4,7,24,32,58,60,61,62,63,64,66,75],anoth:[2,6,64,66],api:[61,66],apnic:61,append:[66,68,70,71,74],appendix:[3,32,44],appli:[6,24,25,31,32,56,60,63,65,66,75],applic:[0,6,13,21,31,32,58,60],approach:32,apr:66,apt:[62,66],ar:[0,1,2,3,5,6,7,8,24,25,31,32,33,38,55,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,74,75,76],architectur:[2,65],archiv:63,area:[1,32,40,45,66,70,72,74],area_list:72,areaid:70,arg:[70,72,74],argument:[6,9,10,11,12,13,14,15,16,17,19,20,21,22,58,62,67,68,70,71,72,74,75,76],argv:[70,74],ari:3,around:[58,63,65,75],arp:[0,1,32,38,39,63,67],arriv:[32,43,71],articl:61,ascii:[24,32,75],ask:61,asm:[6,31,32],asn:68,ass:[25,32],assess:[1,60,64],assign:[0,1,8,13,32,38,56,63,64,75],associ:[1,32,35,60,63,64,74],assum:[8,32,43,55,65,71,75],assur:[25,32],asymmetr:65,att:[25,32],attach:[63,66,70,71,72,74],attain:[25,32],attetr:[25,32],attgdr:[25,32],attribut:[1,3,6,7,8,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,68,70,71,74,75],auth:[3,32,40,45,66,70,72,74],authent:[0,3,35,40,45,49,63,66,68,70,71,72,74],author:2,auto:[5,32,41,70],autogener:[2,6,8,32,54],autom:[58,61],automat:[2,4,5,6,7,8,13,24,26,31,32,37,41,46,53,54,55,57,58,60,63,65,68,70,74,75],autonom:68,autostart:[2,3,5,6,8,29,31,32,35,54,55,57,60,63],avail:[2,58,69],averag:[25,32,67],avg:[8,25,32,67],avoid:[3,32,44],avp:[3,32,44],b1:70,back:58,backbon:70,balanc:[2,65],base:[1,2,3,6,13,15,31,32,35,40,44,45,56,61,63,65,66,68,70,71,72,74,75],basic:[2,7,60,66,74],bbl:75,bbl_header:76,bcm:4,becaus:[13,32,56,70,75],becom:[5,7,58,60],been:[61,64,67,70,72,76],befor:[6,31,32,55,56,59,62,66,75],begin:60,behav:[7,63,70,74],behavior:[1,6,7,60,61,65,76],belong:63,below:[1,2,3,6,13,16,62,63,64,66,70,74,76],benefici:32,best:74,besteffort:75,better:[32,56,61,64,67,75],between:[2,6,8,25,31,32,40,43,54,60,63,65,66,67,70,71,72,74,75],beyond:65,bgp:[9,26,58,61,65,69,76],bgpupdat:[66,68],bi:71,bidirect:[8,32,54,64,65,66],bin:[58,62,67],binari:[62,68,71],bind:60,bit:[3,32,44,56,75],bitstream:2,blaster:[0,1,2,3,4,6,7,8,24,31,32,33,43,44,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,76],blastert:32,block:[2,63],blog:61,blueprint:[68,71],bnetza:2,bng:[0,1,2,3,4,5,6,7,8,24,31,32,33,43,44,56,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,76],bngblaster:[1,3,4,5,6,7,13,16,32,33,40,43,45,58,60,61,62,63,64,66,68,70,71,74,75,76],bngblaster_test:62,bngblasterctrl:58,bngbnlaster:58,board:2,bodi:58,bonn:2,border:68,both:[1,2,6,7,32,49,56,63,64,65,66,67,69,74,75],bound:[1,7,66,75],bp:[3,32,56,75],broad:64,broadband:[0,2,24,32,60],broadcast:[1,27,32,38,63,66,74],bsd:61,buffer:[32,33,63],bug:61,build:[61,65,68,70,71,74],build_dpdk:62,built:[61,64,71],bundesnetzagentur:2,bundl:2,burst:[32,56,57,65,75],bust:65,bypass:[32,33,37,63],c0a8:66,c1:64,c2:64,c:[32,61,62,66,72,76],cach:65,calcualt:63,calcul:[32,43,56,57,59,64,67,71,75],call:[2,3,8,32,58,63,64,67,70,71,72,74],can:[0,2,3,4,5,6,7,8,13,16,24,32,43,49,55,56,58,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76],cap_dac_read_search:62,cap_net_admin:62,cap_net_raw:62,capability_list:72,capabl:[1,25,32,58,60,62,64,66,68,71],capit:[32,56,75],captur:[6,32,33,58,59,61,63,64,65,66,76],carri:13,carrier:64,cat:[13,70,74],categori:58,caus:[2,65,70],caution:65,cc:[10,13,32,35,63],cd:62,cfm:[10,32,35,63],cgnat:61,cgroup:58,chang:[2,5,6,31,32,43,55,58,59,62,63,65,66,68,71,72,74],channel:[3,6,31,32,44],chap:[3,7,32,49,67],chapter:7,check:[6,58,62,66,70,74,75],checksum:66,chosen:[32,43,71],circuit:[1,2,3,7,24,27,28,32,35,63,66],classifi:[68,76],claus:61,cli:[1,3,4,5,6,7,16,60,61,64,66,68,70,71,74,75],client:[6,11,13,29,56,58,61,63,64,65,66,70,74,75],clone:62,close:[13,20,60,64,66,70,74],cmake:62,cmocka:62,code:[1,3,4,7,13,16,58,60,64,66,70,71,75],coher:65,color:58,com:[0,7,13,32,49,58,60,61,62,63,66],combin:[0,4,6,13,21,31,32,58,63,67,75],command:[0,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,26,32,60,62,63,64,66,68,71],commerci:61,commit:[1,7,28,32,61,62],common:[1,3,5,70,74],commun:[13,61,63,64],compani:64,compar:74,compat:60,compil:[62,63,68,71],complet:[61,70,74],complex:64,compon:1,compos:2,comprehens:[1,58,60,64,69],compris:0,comput:[64,74],conceal:64,concept:7,conceptu:74,condit:[7,61,64],conduct:32,conf:[3,7,32,50,51,52,66],config:[8,32,58,59,62,66,67,72],configur:[1,2,6,13,21,24,26,31,35,37,50,51,52,55,58,59,60,61,63,64,65,66,76],configuraton:64,confus:70,congest:[3,6,32,44],connect:[0,1,7,13,16,42,43,47,52,63,64,66,70,71,72,74],connector:66,consid:[32,33,58,59,63,65,74,75],consol:58,constant:[61,64],construct:72,consum:6,contain:[13,58,61,63,70,74],content:[58,60],context:[24,32,66],continu:[60,65],contrib:[70,74],contribut:[61,65],control:[1,3,7,13,26,27,32,44,53,60,61,66,68,72,74,75],controller_:58,conveni:58,converg:[8,61],convert:68,copi:[7,63],core:[2,32,37,61,63,65],corner:66,correct:6,correctli:[3,8,62],correspond:[2,5,6,8,13,24,32,35,54,56,58,63,65,68,71,72,75],could:[5,59,64,65,67,72,75,76],count:[6,7,12,13,31,32,55,58,68,71,72,75],counter:[13,21,58],cours:[66,76],cp:67,cpack:62,cpe:[2,5,7],cpu:[32,37,61,63,65],cpuset:[32,37,63,65],crash:5,creat:[32,55,63,66,68,70,71,72,74],creation:0,csnp:[32,40,70],csun:3,csurq:[3,13,16],ctrl:[66,72],curl:58,current:[32,33,58,63,65,68,70,71,72],custom:[0,2,32,58],d:[4,58],daemon:66,data:[2,24,25,32,44,58,67,70,74,75],databas:[13,15,17,19,32,41,67,71],datar:[25,32],datatrack:[1,28,32,70,74],dbngblaster_dpdk:62,dbngblaster_test:62,dcmake_build_typ:62,de:[3,60,64,70],deactiv:[32,35,63],dead:[32,45,74],deb:[58,62],debian:[58,62,65],debug:[58,62,68,71,72,76],decis:68,decod:[70,74,75],decreas:67,dedic:[1,6,31,32,63,64,65],def:[70,74],defin:[0,1,2,3,6,7,13,21,24,25,28,31,32,33,36,37,43,48,57,58,60,63,66,68,70,71,72,74,75],definit:[2,25,32,60],delai:[6,7,13,21,25,29,31,32,52,55,56,60,75],deleg:[1,7,8,32,54],delet:61,deliveri:[3,32,44,74],demand:64,demonstr:60,denog13:61,depend:[32,33,41,59,63,65,70,75],depict:2,deploy:[1,60],deriv:[67,75],describ:[3,32,44,70,74],descript:[1,3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,68,70,71,74,75],design:[24,32,64,68,70,74],desir:[32,33,63,67],destin:[4,6,29,32,56,60,63,64,66,71,75],destion:64,detail:[1,2,3,4,6,7,8,13,18,31,32,58,61,62,63,66,67,74,75],determin:74,deu:[1,3,7,32,66],deutsch:61,dev:[62,63,66],dev_1:62,develop:[1,13,62,72,74],deviat:[24,32],devic:[0,3,4,5,7,59,60,63,64,66,70,71,74],df453a5ee9dbf6440aefbfb9630fa0f06e326d44:62,df:[32,56,75],dgit_ref:62,dgit_sha:62,dhcp4:63,dhcp6:63,dhcp:[27,35,60,61,63,64,67,76],dhcpv4:[0,2,5,24,32],dhcpv6:[0,2,5,7,13,24,28,35,59,60,63,65,66,67],dialogu:2,dictat:[24,32],differ:[1,3,5,6,7,25,32,44,56,60,61,63,66,67,68,70,74,75],direct:[2,4,6,13,16,32,56,58,64,65,66,71,75],directli:[2,32,33,63,70,74],directori:[58,62,66,76],disabl:[1,2,5,6,7,8,13,14,21,22,24,27,28,31,32,39,40,43,50,51,52,54,63,64,66,70,71,75],discard:[32,43,66,71],disconnect:[9,13,16,17],discov:1,discoveri:[2,3,7,24,32,53,71],disjoint:[32,33,63],displai:[3,4,9,11,12,13,15,16,17,19,21,22,64],dissector:76,distinct:32,distinguish:[63,70,74],distribut:[6,58,62,65,71],divid:[32,43,67,71,75],dn:[7,32,51],dns1:[1,7,32,51,66],dns2:[1,7,32,51,66],doc:[1,28,32,62,70,74],document:[58,61],doe:[6,59,62],domain:[13,32,35,63],done:[6,66,70,71,74],doubl:4,down:[2,3,7,24,25,32,35,63,66],download:[58,62,76],downstream:[1,4,6,7,8,24,25,32,54,56,63,64,66,67,71,75],dpdk:[32,37,61,76],dpkg:[58,62],draft:[25,32,70],driven:65,driver:[59,63,75],drop:[59,76],dsl:[24,25,32,35,63],dual:0,dump:[70,74],dup:3,durat:[6,31,32,67],dure:[32,41,46,58,68,70,71,74],dut:71,dynam:[1,32,56,59,61,63,64,68,71,74,75],e:[5,6,31,32,34,35,36,37,38,57,58,62,63,66,70,72,74],each:[0,1,3,13,25,32,43,58,60,63,65,71,75],eas:[32,58],easi:63,easiest:62,easili:[4,62,67,68,71,75,76],echo:[7,32,52,63,67],ecmp:71,econom:2,edg:61,effect:[32,43,60,64,71],effici:[60,64,70,74],eip:62,either:[24,32,58,60,62],elaps:[32,43,71],electr:2,element:[6,13],els:[70,74],emploi:[24,32],empow:32,emul:[1,2,3,4,6,7,32,61,63,64,66,70,74],enabl:[0,1,2,3,4,5,6,7,8,13,14,21,22,24,26,27,28,31,32,35,36,39,40,43,50,51,55,56,57,58,60,62,63,65,66,67,68,70,71,75],encap:[25,32],encapsul:[25,32],encod:[70,74],encompass:64,encount:58,end:[2,58,61,63,66,67,68,69],endpoint:58,energi:2,enforc:58,engin:70,enhanc:[58,61,64,68,72],enough:[6,63,64,70],enp6s20:64,enp6s21:64,enrich:[2,32],ens5f1:63,ensur:[1,7,32,64,74],enter:66,entir:[0,61],entri:[64,67,70,74],env:67,environ:[1,65,75],eoam:[10,13,32,35,63],equal:[32,35,56,63,70,74,75],equip:0,error:[13,16,58,67,70,72,74,76],establ:66,establish:[0,1,3,5,6,7,8,13,21,31,32,54,56,58,59,60,66,67,68,71,75],etc:58,eth0:[32,34,35,37,38,63,71],eth11:58,eth12:58,eth1:[0,1,2,3,5,6,7,58,60,63,65,67,68,70,71,74,75],eth2:[3,4,6,7,32,60,63,65,67,70,74,75],eth3:[63,67],eth4:[2,63],eth5:[2,63],eth:[1,3,7,32,66],ethernet:[1,2,4,7,59,63,66],ethertyp:[32,34,35,63],ethtool:[63,66],etr:[25,32],evalu:[1,60,64],even:[0,24,32,43,61,63,65,71,72],event:[61,76],everi:[0,2,6,32,56,58,61,63,64,65,66,67,68,70,74,75],everyth:65,evolv:61,exactli:71,examin:64,exampl:[1,2,3,4,6,7,8,13,32,56,60,61,62,63,65,66,67,68,70,71,72,74,75],excel:1,except:[32,33,63,70,74,75],exchang:[68,71],exclud:[24,32,75,76],exclus:[24,32,71,72],execut:[13,16,26,32,58,60,62,67,68],execute_command:[70,74],exist:[64,68,70,71,74],exit:[68,70,71,74],exp:[32,56,75],expand:64,expect:[7,13,16,25,32,56,59,68,70,74,75],expens:63,experi:64,experiment:[32,33,61,62,63,65,74],expir:1,explain:[2,13,32,58,61,62,63,65,66],explicit:[32,37,63],explicitli:[2,58,63,71,75],expos:58,express:75,extend:[1,68,71],extens:[25,32,58,66,67],exterior:68,extern:[6,41,42,46,47,58,64,66,70,72,74],extra:2,extract:67,f1:66,f9:66,f:[66,67,68,71,72,74],face:63,facilit:[1,58],facto:70,fail:[7,62],failur:59,fals:[1,2,3,6,7,26,27,28,31,32,33,34,35,36,40,41,43,44,52,53,55,56,57,60,63,64,65,66,68,70,71,72,75],famili:68,familiar:66,famou:61,far:65,fast:[6,7,62,63,75],faster:[6,31,32,75],faulti:7,fc00:66,fc66:[1,3,7,32,38,60,63,66,68,70,74,75],featur:[5,24,32,61,66],feder:2,feed:61,ff:[2,32,36,63],field:[70,74],figur:2,file:[6,9,13,15,17,19,26,32,41,43,46,58,59,61,62,66,67,76],filenam:[67,75],filter:[3,60,64,66,76],find:61,finish:[26,32,66,68],firewal:64,first:[1,2,6,7,8,13,26,31,32,35,55,56,63,64,65,66,67,68,74,75],fix:[3,32,44,61,75],flag:[1,27,32,58,59,63,64],flap:[5,13,15,67],flexibl:[0,1,32,60],flop:66,flow:[1,4,7,8,13,18,22,32,57,61,65,66,67],focu:[6,64],folder:58,follow:[2,3,4,5,6,7,8,13,31,32,55,58,60,62,63,64,65,66,67,68,70,71,72,74,75,76],footprint:61,forc:70,forcefulli:58,fork:62,form:0,format:[4,58,75],forum:[2,24,32],forward:[2,8,24,32,61,71,75],found:[2,13,58,60,61,62,70,71,74],four:3,fragment:[1,7,66,67],free:61,frequent:61,fri:58,friendli:61,from:[2,3,6,7,8,12,13,19,24,26,31,32,35,43,44,56,59,61,63,64,65,66,68,70,71,74,75,76],front:[32,56,75],fsm:61,fulfil:[7,61],full:[61,65,68],fulli:[5,61],further:[4,6,58,61,64,65,66,68,71,75],furthermor:[0,1,58,64],g:[5,6,31,32,34,35,36,37,38,56,57,58,62,63,72,74,75],ga:2,gamma:[25,32],gap:[6,75],gatewai:[0,1,3,4,6,7,32,34,35,38,60,63,64,66,68,70,71,74,75],gaug:58,gbp:[32,56,75],gdb:62,gdr:[25,32],gener:[8,31,32,37,54,55,58,60,61,62,63,66,67,70,72,74,75,76],german:2,germani:2,get:[58,61,63,66],giga:[32,56,75],git:62,github:[58,60,61,62],give:[60,67],given:[3,8,32,56,65,74,75],global:[0,1,5,7,8,13,24,26,32,37,49,63,65,66,67,68,75],gnu:[62,63],go:[61,66],gobgp:66,gobgpd:66,good:61,gracefulli:[5,58],grade:64,graph:[66,70,72,74],graphviz:72,group:[0,1,2,6,12,13,21,29,31,32,35,37,56,60,63,64,65,66,71,75],guid:[61,62,63,64],guidelin:[24,32],h:[68,71,72],ha:[24,26,32,56,58,61,62,64,66,68,70,71,72,75,76],hand:1,handl:[1,32,63,64,65],handshak:[1,28,32,70],hang:5,happen:66,hard:[61,65],hardwar:[63,65],have:[0,32,61,63,64,66,67],head:62,header:[2,4,6,32,44,56,58,59,60,63,64,70,74,75,76],hello:[3,32,40,43,44,45,70,71,74],help:[6,58,64,68,71,72,76],helper:[32,56,75],henc:72,here:[25,32,43,59,66,68,71,72],hex:[70,74],hi:2,higher:[63,65],histor:70,hold:[26,32,40,43,66,68,70,71],hop:68,host:[1,2,4,7,32,53,63,75],hostnam:[3,32,40,43,44,45,58,66,70,71,72,74],hour:5,how:[6,8,31,32,58,63,65,66,67,68,70,74,76],howev:[32,60,72],html:[1,28,32,62,70,74],http:[1,11,28,29,30,58,61,62,70,74],huge:[58,61],i1:[32,35,63],i2:[32,35,63],i:[58,62,65,66,71,74],ia:[1,28,32],ia_na:[1,28,32],ia_pd:[1,28,32],icmp:[63,67],icmpv6:[32,38,59,63,67],icrq:[3,32,44],id:[0,1,2,3,6,7,10,11,12,13,16,17,20,21,22,24,25,26,27,28,29,32,35,36,38,40,42,43,45,47,56,58,60,63,64,65,66,68,70,71,72,74,75],idea:[7,59],ident:74,identif:[2,75],identifi:[0,2,13,15,25,26,29,32,35,36,40,42,43,45,47,56,60,63,65,68,70,71,74],idl:[6,66],iec:70,ietf:[1,28,32,70,71,74],ifac:68,ifindex:13,igmp:[6,12,31,35,63,67,76],igmpv3:[6,31,32],ignor:[7,32,52,71],igp:74,ihhi:74,ii:74,impact:64,implement:[6,61,63],imposs:[24,32],inc:[3,61],includ:[1,2,6,7,8,13,24,31,32,33,51,58,61,62,63,64,66,67,68,69,70,71,72,74,75,76],incorpor:64,increas:[0,13,32,33,63,64,65,66],increment:[32,63,68,71,75],indent:[70,74],independ:5,index:[13,14,75],indic:[32,43,71],individu:1,infin:[7,32,53,56,75],info:[1,3,6,7,12,13,14,21,22,58,64,66,68,71,76],inform:[1,3,7,8,12,13,21,22,28,32,58,68,70,71,74,76],infrastructur:[1,2,64],init:66,initi:[1,6,7,31,32,39,51,52,58,60,71,72],inject:[63,68,70,71,74],inner:[0,1,2,3,7,13,32,35,55,56,63,65,66,68,75],input:[66,76],instal:[61,65,66],instanc:[0,4,6,11,13,15,17,19,32,33,38,40,43,45,60,63,66,70,71,72,74],instance_nam:58,instances_run:58,instances_tot:58,instrument:64,integr:[4,58],interact:[13,58,60,66,76],intercept:[0,61],interconnect:70,interest:61,interfac:[0,1,2,3,4,5,6,7,8,14,19,24,25,26,30,31,33,34,35,36,37,38,42,47,54,55,56,58,59,60,61,62,64,65,66,67,68,70,71,75,76],interface_nam:58,interface_typ:58,interfaces_rx_packet:58,interior:74,interl:[25,32],interleav:[25,32],intermedi:[2,70],intern:[4,59,64,67,70],internet:[0,2,61,63,64,68,70],interv:[1,3,4,6,7,27,31,32,33,37,39,40,43,44,45,52,63,65,66,70,71,74,75],introduc:2,introduct:[61,72],intuit:58,invalu:64,invok:75,involv:32,io:[32,33,37,58,59,62,63,65,66,67,75,76],ip6cp:[3,5,13,20,35,50,63,66,67],ip:[1,3,6,7,26,31,32,44,51,56,58,63,64,66,68,71,75,76],ipcp:[3,5,13,20,35,44,51,63,66,67],ipo:[0,5,35,39,55,60,61,63,64,66,67],iptv:[0,61,63],ipv4:[1,2,3,4,5,6,8,9,13,17,26,27,29,30,35,38,39,40,43,44,47,54,56,59,60,63,64,65,66,67,68,70,71,72,74,75],ipv4_address_list:72,ipv4_prefix:72,ipv4_prefix_list:72,ipv6:[1,3,4,5,8,29,30,35,38,39,40,43,54,56,59,60,63,64,66,67,68,70,71,72,74,75],ipv6avg:67,ipv6pd:[1,7,8,32,54,56,67,75],isi:[15,38,40,41,42,58,61,63,69,72,76],isis_areaentri:70,isis_areatlv:70,isis_commonhdr:70,isis_l1_lsp:70,iso:70,isol:1,isp:64,issu:[58,61,64,65],iter:[1,6,12,13,31,32,35,55,63,64],its:[1,32,43,60,61,63,71,72,74],itself:[70,74],j:[66,67],jitter:75,job:67,join:[12,13,31,32,76],jq:[1,7,13,60,66,70,74,75],json:[13,32,58,62,66,68,70,74,76],jsonpath:75,jumbo:63,junk:[70,74],just:[3,60,62],k:[32,56,66,72,75],kb:66,keep:[5,64],keepal:[3,7,32,43,52,66,71],kei:[6,13,32,40,45,66,70,72,74,75],kernel:[32,33,37,59,63],keyboard:66,kill:[5,58],kilo:[32,56,75],kind:[7,61,63],kwarg:[70,74],l1:[32,38,42,63,66,67,70],l2:[32,38,42,63,66,70,75],l2bsa:[0,32,61,63],l2tp:[0,16,32,44,56,61,63,75,76],l2tpv2:[3,61],l3:75,l:[6,66,68,71,72,76],label1:[32,56,75],label2:[32,56,75],label:[8,32,54,56,58,61,66,68,71,73,75],lac:3,lacp:[2,32,36,37,63],lag0:[32,36,63],lag1:63,lag:[2,13,14,36,37,61,65,76],lane:63,larg:[32,58,63,64,70,72,74],larger:[63,71],last:[6,67,68,75],latenc:[61,75],later:[70,72],layer:[1,2,32,33,37,56,63,66,75],lcp:[3,5,13,16,44,52,66,67],ldconfig:62,ldp:[17,38,43,56,61,63,69,75],ldpupdat:[66,71],ldra:[1,24,28,32,35,63],le:75,lead:[6,61],leak:[5,70],lean:7,learn:[63,64,70,71,74,76],leas:1,least:[2,13,32,63,65],leav:[12,13,31,32,76],left:66,legal:[0,61],len:[74,75],length:[2,3,6,31,32,44,56,59,60,63,66,68,70,71,74,75],less:65,let:66,letter:[32,56,75],level1:[32,40,66,70,72],level2:[32,40,70],level:[13,15,32,35,38,40,42,63,66,68,70,71,72],leverag:64,li:[0,18,61],lib:58,libcmocka:62,libcunit1:62,libdict:62,libdict_1:62,libdpdk:62,libjansson4:62,libjansson:62,libncurses5:62,libncurses6:62,libpcap:62,librari:[61,68,71],libssl1:62,libssl3:62,libssl:62,lifetim:[32,40,66,68,70,71,72],lightweight:[1,24,28,32,60,61,66],lihawi:[25,32],liid:4,like:[1,6,27,28,32,56,61,63,64,68,70,71,74,75],limit:[2,32,36,58,59,63,64,65],line:[1,2,3,7,24,25,27,28,35,63,66,75],link:[1,2,13,14,25,33,34,35,36,37,38,58,61,65,66,70,71,72,74,76],linux:[58,61,62,63],linux_gsg:62,list:[9,13,14,16,17,18,21,22,32,33,58,63,66,68,70,74,76],listen:58,live:[32,57,64],ll:66,ln:[3,44,61,76],lns10:3,lns11:3,lns12:3,lns13:3,lns14:3,lns15:3,lns16:3,lns17:3,lns18:3,lns19:3,lns1:3,lns20:3,lns21:3,lns22:3,lns23:3,lns24:3,lns25:3,lns26:3,lns27:3,lns28:3,lns29:3,lns2:3,lns30:3,lns3:3,lns4:3,lns5:3,lns6:3,lns7:3,lns8:3,lns9:3,load:[9,13,15,17,19,58,66,67,68,70,71,74],local:[1,2,9,13,16,17,26,30,32,38,43,47,58,60,63,64,66,68,71,72,74],local_pref:68,locat:[2,32,58,60],log:[6,13,66,68,71,72],logging_flag:58,logic:63,longest:71,look:61,lookup:[32,56,66,71,75],loop:[61,72],loss:[1,6,7,61,66,67,75,76],low:[25,32,61,63],ls:74,lsa:[13,19,32,45,46,70],lsacount:74,lsdb:[13,15,19,72],lsp:[13,15,32,40,41,66,71,72,74],lspgen:[66,69],lspid:70,lsr:[32,43,66,71],lt:[58,62],lua:76,lua_script:76,m:[32,56,66,68,71,72,75],ma:[32,35,63],mac:[1,2,7,32,33,34,36,37,38,63,66,75],machin:[61,66],mai:[2,5,6,7,32,43,58,68,71],main:[32,33,58,63,65,70,74],maintain:[32,61,71],mainten:[32,35,63],make:[2,24,32,58,62,64,68],manag:[0,2,32,58,60],mandat:2,mandatori:[3,9,12,13,14,15,16,17,19,21,25,26,29,30,32,44,47,56,60,68,74,75],mani:[2,5,58,61,63,66],manual:[2,13,21,32,34,38,60,62,63,68,71,72],manufactur:2,map:[2,63,64,71,74],mar:66,mark:[60,70],marker:68,market:2,mask:74,massiv:[32,57,58,61,65],match:[9,13,16,17,71],max:[0,1,2,3,6,7,8,25,31,32,35,36,44,49,50,51,52,53,55,56,57,63,65,66,67,74,75],maximum:[5,6,7,25,31,32,33,35,36,43,48,63,65,67,71,75],mbp:75,mc1:6,mc2:6,md5:[32,40,45,66,70,72,74],mean:[1,2,7,8,32,33,39,52,56,61,63,64,65,68,71,75],measur:[6,8,31,32,61,67,75],mechan:[1,64],mediat:4,mega:[32,56,75],mellanox:62,member:[2,32,36,63],memori:[5,58,61,63,68,71],mention:[6,31,32],merg:75,meson:62,messag:[3,7,13,16,24,32,43,44,52,58,66,68,70,71,74],meta:76,method:[1,5],metric:[32,38,42,47,63,66,70,72,74],metric_flag:58,microburst:65,microsecond:75,might:[32,33,63,70,74,75],migrat:2,million:[32,58,61,64,65],millisecond:[6,7,31,32,33,37,52,63],min:[0,1,2,3,7,8,25,32,35,36,55,63,65,66,67,75],mini:63,minim:32,minimum:[25,32,35,36,63,67,75],ministri:2,minor:[60,64],minu:[59,63],miss:6,mission:61,mkdir:62,mmap:[32,33,59],mode:[1,3,7,32,33,35,37,44,59,60,62,65],model:[2,63],modern:[58,61,62,65],modifi:[6,32,33,63,68,71,72],modul:62,monitor:58,monkei:[0,13,32,35,55,63],more:[2,5,6,31,32,57,60,61,63,64,65,66,68,70,71,74],moreov:60,most:[1,3,32,35,59,63,65,76],motiv:61,move:70,mpl:[8,32,54,56,59,61,69,71,75],mpls_ipv4_flag:72,mpls_ipv6_flag:72,mrt:[13,15,19,32,41,46,66,68,72],mru:[3,7,32,35,48,63],ms:[6,32,40,67,70],msg:[60,64,66],mtu:63,much:65,multicast:[0,13,23,31,32,61,63,67,71],multipl:[0,1,2,6,8,12,13,31,32,33,58,60,63,64,65,68,69,70,71,74],multipli:65,multiprotocol:[66,71],multithread:[32,36,63,65],multitud:64,must:[2,5,13,32,43,58,63,66,71,72,75],mutual:71,n1:70,n:[1,3,7,13,32,35,55,56,60,63,64,66,68,71,72,75],na:[1,28,32],nak:1,name:[2,3,6,7,8,29,30,32,34,35,36,37,38,44,53,56,58,60,63,64,65,66,67,68,71,72,75,76],nano:75,nat:[32,56,60,61,75],navig:66,nc:13,ncontent:60,nd:[0,32,38,63],need:[2,13,32,33,62,63,64,66,70],negoti:7,neighbor:[13,19,32,47,66],neighbor_list:72,netmask:1,netplan:63,network:[0,1,2,3,4,6,7,8,13,14,26,30,31,35,38,54,56,58,60,61,62,64,65,67,68,70,71,74,75,76],network_interfac:58,networkd:63,newer:[70,74],next:[4,6,31,32,66,68],nga:2,nic:62,ninja:62,nlocat:60,node1:72,node:[2,32,40,45,61,66,70,72,74],node_flag:72,node_id:72,non:[3,32,44,61,63,69],none:72,normal:[62,72],note:[32,74],notif:66,now:[62,64,66,67,70,74],nserver:[60,64],nsp:[2,32],num:[68,71],number:[0,3,4,5,6,8,13,31,32,33,36,37,43,56,58,63,64,65,66,67,68,70,71,74,76],nx:64,o:[61,65],obtain:1,occur:59,octet:66,odd:[0,63],off:[10,13,66],offer:[1,58,60,64],offic:2,offici:65,offload:[66,75],offset:[3,32,44,75],often:[6,31,32],ok:[1,3,4,6,7,13,58,60,64,66,70,71,75],old:6,onc:[68,71],one:[2,4,6,7,32,56,58,63,64,65,66,67,68,70,71,74,75],onli:[1,3,4,6,7,13,21,28,31,32,35,37,47,56,59,63,64,65,70,72,74,75,76],ont:[25,32],onu:[25,32],open:[7,13,20,61,66,67,68,70,74],openapi:58,openconfirm:66,opens:66,oper:[2,58,60,61,64,65,68,71],opposit:[7,65],optim:[1,7,61,62,74],optimiis:64,option:[0,1,3,5,6,7,8,13,24,25,27,28,31,32,33,34,35,37,38,41,43,47,50,51,55,56,57,58,61,62,63,64,66,67,68,70,71,72,74,75,76],order:[3,32,65,75],org:[1,28,32,62,70,74],organ:32,origin:[70,74],os:[70,74],osi:[63,70],ospf2:72,ospf:[19,45,46,47,69,72],ospf_external_lsa:74,ospf_hdr:74,ospf_lsupd:74,ospfv2:[32,38,47,63,72,74],ospfv3:[32,38,47,63],other:[1,2,7,13,24,32,33,49,58,59,60,62,63,64,65,66,70,74,76],otherwis:2,oui:7,our:61,out:[3,61,62,66,71],outag:5,outcom:58,outer:[0,1,2,3,7,13,32,34,35,44,55,56,59,60,63,65,66,68,71,75,76],output:[3,58,60,62,68,71,76],outq:66,outstand:[7,32,55],over:[1,2,6,7,12,13,25,32,43,55,56,60,65,67,68,70,71,74,75],overal:[58,60],overhead:[59,63],overlap:6,overseen:59,overwrit:[8,32,35,37,54,56,63,75],overwritten:[24,25,32],own:[63,68,70,71,74],p2p:[32,38,63,66,70,74],p:[66,68,71,72,76],pack:74,packag:[58,62,65],packet:[1,2,3,4,6,7,24,31,32,33,44,56,57,58,59,62,64,65,66,67,68,70,71,72,74,75],packet_mmap:[62,63],packet_mmap_raw:[32,33,62,63],packet_rx_r:63,packet_tx_r:63,pad:[3,32,40,44,67,70],padi:[7,32,53,67],pado:67,padr:[7,32,53,67],padt:[5,67],pages:[59,63],pair:66,pap:[3,7,32,49,67],paramet:[58,60,63,66],parent:[2,32,34,35,38,63],pars:62,particular:[6,64,67],particularli:[1,32],pass:[58,62,64],password:[3,7,32,35,49,63],path:[9,13,68,70,74],payload:[32,56,75],pbit:[1,7,27,32,53,75],pcap:[59,66,68,70,71,72,74],pcap_captur:58,pd:[1,28,32],pdu:[13,15,19,32,43,70,71,74],peak:[25,32],peer:[3,9,13,17,26,32,43,44,66,68,70,71],pend:[13,21,22],per:[2,5,6,7,13,31,32,33,35,37,38,40,55,56,57,58,61,62,63,64,65,67,68,70,75,76],perform:[1,58,60,61,63,64,69],period:[1,32,39],permiss:62,permit:[3,24,32,44],phase:[68,71],physic:[32,37,63],pid:58,pin:[32,37,63],pkg:62,pkgconfig:62,place:76,plan:68,pleas:58,point:[2,64],polici:[1,68],poll:[32,33,37,63,67],pon:[25,32],pool:[64,65],port:[2,4,29,30,32,56,58,60,64,71,75],possibl:[0,3,5,6,58,60,62,63,65,70,72,74],post:[2,58],potenti:[59,64],power:[5,8,25,32],pp:[2,3,6,7,8,31,32,54,56,63,64,65,66,67,68,71,75],ppp:[3,35,48,49,50,51,52,53,63],pppoe:[0,2,3,5,6,13,24,35,53,55,58,59,60,61,63,65,67,75,76],pre:[63,68,71],preced:[25,32],pref:68,prefer:[8,32,43,68,71],prefix:[1,7,8,32,54,61,63,65,66,68,71,72],premis:0,present:[13,32,58,61],preset:58,press:66,pretti:58,prevent:[59,60,63,65],previous:60,primari:[7,32,51,60,75],primarili:[58,62,65],print:[66,70,74],prioriti:[1,2,3,6,7,27,31,32,36,37,44,45,53,56,63,66,71,74,75],privat:64,problem:58,process:[3,6,31,32,58,75],profession:64,profil:[25,35,63],program:63,programmat:58,progress:58,project:[61,62],prometheu:58,promot:2,proper:[6,76],properli:65,propos:[7,32,48,65],protocol:[1,3,4,6,7,13,16,24,25,31,32,35,38,40,49,50,51,59,61,63,64,66,67,68,70,71,72,74],protocol_list:72,prove:32,provid:[0,1,2,3,4,6,7,13,24,25,32,58,60,62,63,64,70,74],provis:2,proxi:3,psnp:[32,40,70],pt:4,pta:63,purg:[13,15,32,41,46,70,72,74],purpos:[58,60,61,64],put:[32,56,58,75],python3:67,python:[13,67,68,71],q:72,qdisc:[32,33,37,63],qinq:[2,32,34,35,63,66],qmx:4,qo:[0,61,66,75],qualiti:0,queri:75,question:61,queue:[61,63,65],quick:61,quickli:[8,61],quickstart:61,quit:72,r1:[66,70,72,74],r2:[66,70,72,74],r3:72,r6:74,r:[60,64,72],ra:[32,38,63],railwai:2,randomli:[5,72],rang:[2,3,7,24,25,26,29,30,32,33,35,38,40,43,44,45,47,48,55,56,60,63,64,66,68,70,71,74,75],rapid:[1,7,28,32],rate:[2,3,7,8,24,25,32,35,55,56,57,61,63,64,75],rather:70,raw1:66,raw:[6,9,13,17,26,32,33,43,56,58,59,62,66],rbf:58,rcvd:66,rdi:[10,13],re:[2,65],reach:[32,33,63],reachabl:[68,70],read:[63,66,72],readabl:[32,56,75],real:[1,6,62,70,74],realist:1,reason:[32,41,65,70],receipt:[32,43,71],receiv:[2,3,4,6,7,8,32,33,43,44,48,56,58,61,63,64,65,66,67,70,71,73,74,75,76],recogn:6,recommend:[2,6,58,61,62,65],reconnect:[2,3,5,7,13,21,26,32,53,55,65,66,68],record:[6,31,32,64],recov:[5,59],recv:[70,74],redirect:60,ref:62,refer:[2,4,7,63,68,70,71],referenc:[32,37,63,68,72],refresh:[32,40,41,66,70],region:2,regulatori:2,reject:[7,32,49],rel:62,relai:[1,24,28,32],relat:[2,64,76],releas:[1,27,32,58,62,65,68],reli:1,reliabl:[3,6,32,44,64],reloc:32,remain:[65,70],remot:[1,2,3,7,13,16,24,27,28,32,35,47,63,66,72,74],remote_node_id:72,render:63,renew:1,repeat:66,replac:[13,32,63,68],repli:[1,66],report:[6,8,31,32,61,66,75],report_flag:58,repres:72,republish:70,request:[1,3,5,6,7,13,16,29,31,32,49,50,51,52,55,58,60,61,63,67,70,74],requir:[1,5,7,32,37,41,57,60,62,63,64,65,70],reserv:75,reset:[12,13,21,22,32,43,71],resid:63,resolv:[32,38,55,56,61,63,64,66,71,75],resourc:64,respond:[7,63],respons:[7,13,58,60,64],rest:58,restart:[5,13,21,60,61,63],result:[3,6,13,16,31,32,43,56,58,59,66,67,71,75],resum:60,retail:2,retri:[1,2,3,7,27,28,32,39,40,44,45,49,50,51,52,53,70,74],retriev:58,rev:62,rfc2661:[3,13,16,32,44],rfc3145:[13,16],rfc6221:[1,28,32],rfc6396:[70,74],rfc7552:[32,43,71],rfc:[7,24,25,32,70,71],rib:68,right:6,rigor:64,ring:[32,33,37,63],robust:[5,7,64],rollout:2,root:[62,66,72],rout:[0,32,40,61,63,66,68,70],router:[32,38,40,45,47,59,61,63,66,69,70,71,72,74],router_id:72,rpc:[13,58,66],rpf:[32,56,75],rs:67,rtbrick:[0,1,3,7,13,32,49,58,60,61,62,63,66,75],rule:[60,68],run:[1,3,4,5,6,7,13,16,32,33,58,60,61,63,64,66,68,70,71,74,75],run_report:58,rx:[1,3,4,6,7,32,33,37,56,58,63,64,65,66,67,68,71,75],s100:63,s1:[2,65,66,67,71],s200:63,s2:[2,66],s:[0,1,2,6,13,31,32,33,37,40,58,60,63,64,66,68,70,72,74],safi:66,same:[2,4,6,13,60,63,65,66,67,68,71,74],sbin:[58,62],scalabl:64,scale:[32,61,65],scapi:[68,71],scarciti:64,sccrq:[3,32,44],scenario:[1,2,32,60,64,65],schema:58,scratch:61,script:[13,58,67,68,71,75,76],seamless:58,search:[6,67],sec:62,second:[1,6,7,8,13,21,26,27,28,29,31,32,39,40,43,45,49,50,51,52,53,55,56,60,64,66,67,68,70,71,74,75],secondari:[7,32,51],secret123:[66,72],secret:[3,32,44,70,72],section:[0,2,6,13,24,25,32,35,58,63,65,75],see:[61,64,66,75],seed:72,segment:61,segment_id:72,select:[8,32,33,35,56,63,75],self:[70,74],send:[2,3,6,7,8,13,16,24,31,32,38,40,43,44,54,56,58,59,61,62,63,65,66,68,70,71,73,74,76],sens:68,sent:[6,8,31,32,33,56,58,63,64,65,66,71,75,76],sep:72,separ:[32,61,75],seq:[1,7,66,67,70,74,75],seqnum:70,sequenc:[6,8,66,67,70,72,74,76],sequenti:[0,75],seri:[67,68,71],serious:61,serv:[58,61,64],server:[1,3,7,30,44,51,61,64,65,66],servic:[0,1,2,6,7,32,53,58,61,63,64,70],session:[0,1,2,3,4,5,6,7,9,10,11,12,16,17,20,21,22,23,26,31,33,35,38,43,49,53,54,55,56,58,59,60,61,63,64,65,66],session_count:58,sessions_establish:58,set:[3,6,7,8,10,13,24,31,32,34,35,37,38,43,44,49,56,57,60,62,64,65,66,67,68,71,72,75],setcap:62,setup:[32,55,61,64,65,66,71],seubscrib:0,sever:[60,68],sha:62,share:[1,63,64],shortest:74,should:[1,5,6,28,32,57,58,60,62,63,65,66,68,71,74,75],show:[6,8,58,62,63,64,66,68,70,71,72,74,75,76],shown:[1,3,4,6,13,16,62,63,64,70,71,74,76],sid:[32,40,45,66,70,74],side:[63,66],sigint:58,signal:[58,61],signatur:[6,31,32,75],similar:[1,63,67,74],similarli:5,simlar:72,simpl:[13,32,40,45,61,66,67,68,70,71,72,74,75],simpli:61,simplifi:58,simul:[1,24,32,60,64],simultan:[0,60],sinc:58,singl:[0,2,3,6,13,31,32,61,64,65,66,71,76],size:[3,32,33,37,40,41,44,57,63,65,70,75],skip:[13,66],slice:58,slot:[32,33,37,63,65,66],slow:[3,32,44],smaller:[32,43,71],sn:67,so:[2,32,61,63],sock:[1,3,4,5,6,7,13,16,58,60,64,66,68,70,71,74,75],sock_stream:[70,74],socket:[3,13,32,33,58,63,66,70,72,74],socket_path:[70,74],softwar:[61,63,65],solicit:1,some:[2,4,6,31,32,58,59,63,65,66,76],soon:[5,8,26,32,54,58,68,71,75],sourc:[4,6,26,31,32,56,64,65,68,70,71,74,75],source1:[6,12,13],source2:[6,12,13],source3:[6,12,13],space:[61,63],special:[6,31,32],specif:[1,2,7,32,52,58,60,64,72,74],specifi:[2,6,8,25,31,32,54,66,71],spectrum:64,speed:[13,16],split:65,spt:4,sr:[32,40,45,66,70,72,74],srgb:66,srgb_base:72,srgb_rang:72,stabil:74,stabl:62,stack:[0,61],stand:64,standalon:[4,66],standard:[58,62,68,70,76],start:[0,3,5,6,7,8,10,11,12,13,21,22,23,26,29,31,32,35,38,44,52,54,55,56,57,59,60,61,62,63,65,66,67,68,70,71,74,76],startup:[60,68,70,71,74],stat:[12,13,22,64,66,67,71],state:[1,2,3,6,7,25,32,58,60,61,63,64,66,70,71,72,74],statist:[4,13,18,21,22,32,57,58,61,66,67,75],statu:[1,3,4,6,7,13,32,52,60,64,66,70,71,75],stderr:[58,70,74],stdout:58,steam:63,step:[0,32,35,62,63,66],stick:[3,32,44],still:[64,65,66,74,76],stop:[5,6,7,10,11,12,13,21,22,23,32,55,56,57,60,63,66],store:[3,7,58,59,67,75],stream:[2,4,6,8,21,22,23,33,35,56,57,58,59,61,63,65,66,67,68,72,76],streamlin:58,string:[24,32,35,58,63],struct:74,structur:64,sub:[3,4,64,75],subnet:71,subscrib:[1,61,63],subsequ:[24,32],subset:2,substitut:[24,32,63],subtract:75,subtyp:[70,74],success:[32,43,71],successfulli:[7,13],sudo:[1,3,4,5,6,7,13,16,58,60,62,63,64,66,68,70,71,74,75,76],suit:[61,64],summari:[13,22],support:[0,1,2,3,4,6,7,13,24,32,33,36,44,56,58,61,63,64,65,66,68,70,71,72,74,75,76],sy:[70,74],symbol:62,syn:64,synchron:[70,74],system:[32,36,40,42,58,59,64,65,66,68,70,72,75],systemctl:58,systemd:58,t1:1,t2:1,t:[32,63,64,65,66,72,75],tabl:[61,65,67,68],tag:[2,4],tailor:64,take:[6,25,32,58,61],tar:62,target:[62,71],task:[58,70],tc:[32,56,75],tcp1:64,tcp:[4,29,30,32,43,56,60,66,71,75,76],teardown:[9,13,15,17,19,26,32,40,41,43,45,46,55,68,70,71,74],technolog:64,telecommun:[2,64],telekom:61,term:[2,63],termin:[5,7,13,16,32,53,58,60,66],test10:3,test11:3,test12:3,test13:3,test14:3,test15:3,test16:3,test17:3,test18:3,test19:3,test1:3,test20:3,test21:3,test22:3,test23:3,test24:3,test25:3,test26:3,test27:3,test28:3,test29:3,test2:3,test30:3,test3:3,test4:3,test5:3,test6:3,test7:3,test8:3,test9:3,test:[1,3,5,7,12,16,32,35,49,55,56,59,60,61,63,64,65,66,67,68,69,70,71,74,75,76],tester:[4,60,61],testprotocol:62,text:58,than:[2,32,56,57,61,63,68,70,71,75],thei:[2,25,32,64,66],them:[58,60,63,66,70,72,74],therefor:[6,7,24,32,58,63,64,65,66,68,71],thi:[1,2,3,5,6,7,8,13,16,21,24,25,27,28,31,32,33,37,38,41,43,49,50,51,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,72,74,75,76],think:67,third:[32,33,35,62,63],thorough:1,those:[2,7,8,25,32,35,56,58,63,64,65,66,67,68,70,71,72,74,75,76],thousand:61,thread:[2,6,32,33,37,63,65,68,76],three:[2,6,31,32,63,67,70,72,74],threshold:[6,31,32],through:[32,33,58,60,61,63,66,71],throughput:[25,32,33,63,65],thu:2,time:[1,6,7,26,32,40,41,43,45,53,58,61,62,66,67,68,70,71,74,76],timeout:[1,2,3,7,27,28,32,36,39,43,49,50,51,52,53,63,67,71],timer:[13,15,61],timestamp:[70,74],tlv:[70,72],todai:4,togeth:[0,64],took:[8,75],tool:[8,13,16,61,64,66,68,70,71,72,74],top:[60,66],topic:66,toplog:72,topolog:[61,66,70,74],tos:[1,3,6,26,27,31,32,44,68,75],total:[1,7,8,58,60,62,66,67],tr:[2,63],track:61,tradit:64,traffic:[0,1,2,3,4,7,21,22,23,26,27,31,33,44,53,54,56,57,58,61,63,64,65,67,68,73,76],translat:[60,64],transmiss:74,transmit:63,transpar:2,transport:[32,43,71],treat:[25,32],tree:[25,32],tri:59,trigger:[2,68,71],troubleshoot:[58,61,62],ttl:[26,32,56,68,75],tunnel:[3,13,16,32,44],turn:58,two:[2,5,7,32,60,63,66,68,70,71,73,74,75],tx:[1,2,3,4,7,32,33,36,37,40,56,63,65,66,67,68,70,71,75],txqueuelen:63,type:[0,1,2,4,6,7,24,25,32,35,38,40,45,56,58,60,62,63,64,65,66,67,68,70,71,72,74,75],typic:[6,63,64,68],u:[2,13,32],ubuntu:58,udp1:64,udp2:64,udp:[4,32,56,64,71,75],uncahng:64,under:[3,5,7,59,60,61,63,68,70,71,74],underli:[1,58],understand:67,unfortun:64,unicast:[8,64,66,68],unidirect:65,uniq:[2,7,32,53],uniqu:[0,75],unit:[7,32,48,58],unix:13,unknown:67,unlabel:[8,32,54],unset:[10,13],untag:[2,32,35,38],until:[8,32,38,58,63,64,71,75],unzip:62,up:[2,3,6,7,8,24,25,32,35,59,63,65,66,67,70,71,73],updat:[9,13,15,16,17,19,26,32,43,66],update1:[68,71],update2:68,upstream:[1,2,4,7,8,24,25,32,56,64,66,67,75],url:[29,32,60,64],us:[0,1,2,3,4,5,6,7,8,13,16,28,31,32,43,44,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76],usabl:[2,58],usag:[58,64,68,71,72],user10:13,user1:[7,66],user:[0,1,2,7,13,32,49,58,60,61,62,63,64,66],usernam:[0,3,7,13,32,35,49,63,66],usr:[58,62,67],utc:58,utf:[70,74],util:[1,32,65],v1:[58,62],v6:2,v:[2,32,33,62,63,72],valid:[1,4,32,43,64,68,71,72,75],valu:[7,13,24,25,32,35,43,49,56,60,63,64,67,71,75],valuabl:[1,60],variabl:[24,63,70,74],variou:[0,1,24,32,58,60,61,64,75],vector:68,vendor:[3,32,52,58,61],verfi:[13,22],veri:61,verif:[61,75],verifi:[1,2,6,7,8,32,57,58,61,64,65,66,67,76],versa:65,versatil:[0,1,60],version:[6,25,31,32,35,45,58,60,62,63,64,66,70,71,72,74],veth1:66,veth:66,via:[3,7,32,38,48,62,63,68],vice:65,view:[6,31,32,66],violat:[8,67],virtual:[1,61,66,70,74],vlan:[0,1,2,3,7,13,27,32,34,35,38,53,55,56,59,60,63,65,66,75,76],voic:75,volum:75,w:[68,71,72],wa:[2,7,13,61,64,70,72],wai:[1,6,28,32,58,62,70,74],wait:[5,6,31,32,38,55,56,63,64,75],walk:66,warn:[13,58,68,71],wb:74,we:[13,61,65,66],welcom:[61,65],well:[0,2,6,24,32,63,72],were:[2,32],wget:[58,62],what:66,when:[32,60,64,71],where:[1,2,3,32,44,56,58,61,63,64,66,75,76],whether:[1,58,64],which:[0,2,4,5,6,13,16,24,32,43,55,56,58,59,61,62,63,64,65,66,67,70,71,72,74,75,76],who:2,whole:70,wholesal:2,why:59,wide:74,window:[3,32,40,44,63,66,70,76],withdraw:[66,68,71],within:[6,25,31,32,59,64,70],without:[2,5,6,62,63,66,75],word:[24,32,75],work:[4,5,6,8,62,64,65,66,74,75],worker:65,workload:65,world:[1,6],would:[6,8,59,65,66,67,75],write:[63,68,71,72,74],written:70,wrong:[1,7,66,67,75],x:[64,68,72,76],xjf:62,xz:62,y:[62,72],you:[0,2,13,32,60,61,63,65,66,67,69,72,76],your:[32,59,61,63,65,66,68,71],youtub:61,z:72,zap:[12,13,31,32],zero:[3,24,32,44,63,65,75],zip:62},titles:["Access Protocols","IPoE","L2BSA","L2TP","Legal Interception (LI)","Monkey","Multicast and IPTV","PPPoE","Session Traffic","<no title>","<no title>","<no title>","<no title>","API/CLI","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Configuration","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Controller","Frequently Asked Questions","HTTP Emulation","BNG Blaster","Installation","Interfaces","NAT / CGNAT","Performance Guide","Quickstart Guide","Reports","BGP","Routing Protocols","ISIS","LDP","LSPGEN","MPLS","OSPF","Traffic Streams","Troubleshooting"],titleterms:{"function":63,"static":1,a10nsp:[32,63],access:[0,32,63],address:[1,64],adjac:[70,71],aggreg:[32,63],api:[13,58],ask:59,authent:[7,32],bgp:[13,32,66,68],blaster:[13,61,62,75],bng:[13,61,62,75],build:62,cfm:13,cgnat:64,cli:13,client:[32,60],command:[1,3,7,58,70,74,75],configur:[3,7,8,32,68,70,71,72,74,75],connect:32,connector:72,contact:61,content:61,control:58,copyright:61,creat:58,data:3,databas:[70,74],delet:58,depend:62,dhcp:[1,32,66],dhcpv4:1,dhcpv6:[1,32],doubl:63,dpdk:[62,63,65],emul:60,enabl:64,extens:[7,64],extern:32,featur:64,file:[68,70,71,72,74,75],flood:[70,74],flow:[64,75],frequent:59,from:[62,72],gener:[6,68,71],guid:[65,66],header:3,http:[13,32,60,64],i:63,identifi:75,igmp:[13,32],instal:[58,62],instanc:58,intercept:[4,13],interfac:[13,32,63,74],ip6cp:[7,32],ipcp:[7,32],ipo:[1,32],iptv:6,ipv4:[7,32],ipv6:[7,32],isi:[13,32,66,70],join:6,json:67,l2bsa:2,l2tp:[3,13],l2tpv2:32,lag:[32,63],lcp:[7,32],ldp:[13,32,66,71],leav:6,legal:[4,13],li:[4,13],licens:61,limit:[6,68,70,71],line:32,link:[32,63],ln:32,log:[58,76],lsa:74,lsp:70,lspgen:[70,72,74],magic:75,manual:6,metric:58,mmap:63,mode:63,monkei:5,mpl:73,mrt:[70,74],multicast:[6,75],nanosecond:75,nat:64,neighbor:74,network:[32,63,66],number:75,o:63,oper:63,ospf:[13,32,74],ospfv3:74,output:67,packet:63,pcap:[58,76],perform:65,plugin:76,ppp:[7,13,32],pppoe:[7,32,66],profil:32,protocol:[0,69],question:59,quickstart:66,random:72,rate:67,raw:[63,64,68,71,75],report:[58,67],revers:64,rfc5515:3,rout:69,run:62,scale:64,scapi:[70,74],send:75,sequenc:75,server:[32,60],session:[8,13,32,67,68,71,75],set:63,setup:67,singl:63,sourc:[61,62],standard:67,start:[58,75],statu:58,stop:[58,75],stream:[13,32,64,71,75],support:62,system:63,tag:63,tcp:64,test:[6,13,58,62],timestamp:75,topolog:72,traffic:[6,8,13,32,66,71,75],tripl:63,troubleshoot:76,ubuntu:62,unicast:75,unit:62,untag:63,updat:[68,70,71,74],v6:1,variabl:[3,32],vendor:7,verif:8,via:[70,74],wireshark:76,zap:6}}) \ No newline at end of file diff --git a/docs/streams.html b/docs/streams.html index ea8b6d61..d3b519d3 100644 --- a/docs/streams.html +++ b/docs/streams.html @@ -8,6 +8,7 @@ + @@ -60,6 +61,7 @@
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • @@ -166,161 +168,257 @@

    Configuration
    { "streams": {} }
     
    - +
    ---++ - - - - - - - - - - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + - - - + + - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + + + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + +

    Attribute

    Description

    Default

    name

    Mandatory stream name

    stream-group-id

    Stream group identifier

    0 (raw)

    type

    Mandatory stream type (ipv4, ipv6 or ipv6pd)

    Attribute

    Description

    direction

    Mandatory stream direction (upstream, downstream or both)

    both

    name

    +
    Mandatory stream name.
    +
    +

    source-port

    Overwrite the default source port

    65056

    stream-group-id

    +
    Stream group identifier.
    +
    Default: 0 (raw)
    +
    +

    destination-port

    Overwrite the default destination port

    65056

    type

    +
    Mandatory stream type (ipv4, ipv6, or ipv6pd).
    +
    +

    ipv4-df

    Set IPv4 DF bit

    true

    direction

    +
    Stream direction (upstream, downstream, or both).
    +
    Default: both
    +
    +

    priority

    IPv4 TOS / IPv6 TC

    0

    source-port

    +
    Overwrite the default source port.
    +
    Default: 65056 Range: 0 - 65535
    +
    +

    vlan-priority

    VLAN priority

    0

    destination-port

    +
    Overwrite the default destination port.
    +
    Default: 65056 Range: 0 - 65535
    +
    +

    length

    Layer 3 (IP header + payload) traffic length (76 - 9000)

    128

    ipv4-df

    +
    Set IPv4 DF bit.
    +
    Default: true
    +
    +

    priority

    +
    IPv4 TOS / IPv6 TC.
    +
    For L2TP downstream traffic, the IPv4 TOS is applied
    +
    to the outer IPv4 and inner IPv4 header.
    +
    Default: 0 Range: 0 - 255
    +
    +

    pps

    Stream traffic rate in packets per second

    1

    vlan-priority

    +
    VLAN priority.
    +
    Default: 0 Range: 0 - 7
    +
    +

    bps

    Stream traffic rate in bits per second (layer 3)

    length

    +
    Layer 3 (IP header + payload) traffic length.
    +
    Default: 128 Range: 76 - 9000
    +
    +

    pps

    +
    Stream traffic rate in packets per second.
    +
    This value supports also float numbers like 0.1 or 2.5.
    +
    In example 0.1 means one packet every 10 seconds.
    +
    Default: 1.0
    +
    +

    bps

    +
    Stream traffic rate in bits per second (layer 3).
    +
    PPS has priority over bps where the second is only a helper
    +
    to calculate the actual PPS based on given bps and length.
    +
    The resulting rate in bps is the layer 3 rate because length
    +
    is also the layer 3 length (IP header + payload).
    +
    It is also supported to put the capital letters K (Kilo),
    +
    M (Mega) or G (Giga) in front of bps for better readability.
    +
    For example, "Gbps": 1
    +
    which is equal to "bps": 1000000000.
    +
    +

    a10nsp-interface

    Select the corresponding A10NSP interface for this stream

    a10nsp-interface

    +
    Select the corresponding A10NSP interface for this stream.
    +
    +

    network-interface

    Select the corresponding network interface for this stream

    network-interface

    +
    Select the corresponding network interface for this stream.
    +
    +

    network-ipv4-address

    Overwrite network interface IPv4 address

    network-ipv4-address

    +
    Overwrite network interface IPv4 address.
    +
    +

    network-ipv6-address

    Overwrite network interface IPv6 address

    network-ipv6-address

    +
    Overwrite network interface IPv6 address.
    +
    +

    destination-ipv4-address

    Overwrite the IPv4 destination address

    destination-ipv4-address

    +
    Overwrite the IPv4 destination address.
    +
    +

    destination-ipv6-address

    Overwrite the IPv6 destination address

    destination-ipv6-address

    +
    Overwrite the IPv6 destination address.
    +
    +

    access-ipv4-source-address

    +
    Overwrite the access IPv4 source address (client).
    +
    This option can be used to test the BNG RPF functionality
    +
    with traffic sent from source addresses different than those
    +
    assigned to the client.
    +
    +

    access-ipv6-source-address

    +
    Overwrite the access IPv6 source address (client).
    +
    This option can be used to test the BNG RPF functionality
    +
    with traffic sent from source addresses different than those
    +
    assigned to the client.
    +
    +

    access-ipv4-source-address

    Overwrite the access IPv4 source address (client)

    max-packets

    +
    Send a burst of N packets and stop.
    +
    Default: 0 (infinity)
    +
    +

    access-ipv6-source-address

    Overwrite the access IPv6 source address (client)

    start-delay

    +
    Wait N seconds after the session is established
    +
    before starting the traffic stream.
    +
    Default: 0
    +
    +

    max-packets

    Send a burst of N packets and stop

    0 (infinity)

    tx-label1

    +
    MPLS send (TX) label (outer label).
    +
    +

    start-delay

    Wait N seconds after the session is established before starting

    0

    tx-label1-exp

    +
    EXP bits of the first label (outer label).
    +
    Default: 0
    +
    +

    tx-label1

    MPLS send (TX) label (outer label)

    tx-label1-ttl

    +
    TTL of the first label (outer label).
    +
    Default: 255
    +
    +

    tx-label1-exp

    EXP bits of the first label (outer label)

    0

    tx-label2

    +
    MPLS send (TX) label (inner label).
    +
    +

    tx-label1-ttl

    TTL of the first label (outer label)

    255

    tx-label2-exp

    +
    EXP bits of the second label (inner label).
    +
    Default: 0
    +
    +

    tx-label2

    MPLS send (TX) label (inner label)

    tx-label2-ttl

    +
    TTL of the second label (inner label).
    +
    Default: 255
    +
    +

    tx-label2-exp

    EXP bits of the second label (inner label)

    0

    rx-label1

    +
    Expected receive MPLS label (outer label).
    +
    +

    tx-label2-ttl

    TTL of the second label (inner label)

    255

    rx-label2

    +
    Expected receive MPLS label (inner label).
    +
    +

    rx-label1

    Expected receive MPLS label (outer label)

    ldp-ipv4-lookup-address

    +
    Dynamically resolve outer label.
    +
    +

    rx-label2

    Expected receive MPLS label (inner label)

    ldp-ipv6-lookup-address

    +
    Dynamically resolve outer label.
    +
    +

    ldp-ipv4-lookup-address

    Dynamically resolve outer label

    nat

    +
    Enable NAT support.
    +
    Default: false
    +
    +

    ldp-ipv6-lookup-address

    Dynamically resolve outer label

    raw-tcp

    +
    Send RAW TCP traffic (UDP-like traffic with TCP header).
    +
    Default: false
    +
    +
    -

    For L2TP downstream traffic, the IPv4 TOS is applied to the outer IPv4 -and inner IPv4 header.

    -

    The pps option supports also float numbers like 0.1, or 2.5 PPS and has -priority over bps where the second is only a helper to calculate the pps -based on given bps and length. The resulting rate in bps is the -layer 3 rate because length is also the layer 3 length (IP header + payload). -It is also supported to put the capital letters K (Kilo), M (Mega) -or G (Giga) in front of bps for better readability. -For example "Gbps": 1 which is equal to "bps": 1000000000.

    -

    The options access-ipv4-source-address and access-ipv6-source-address -can be used to test the BNG RPF functionality with traffic sent from source addresses -different than those assigned to the client.

    Stream Configuration File

    diff --git a/docs/troubleshooting.html b/docs/troubleshooting.html index bd62d3ff..da7dd62d 100644 --- a/docs/troubleshooting.html +++ b/docs/troubleshooting.html @@ -8,6 +8,7 @@ + @@ -44,6 +45,7 @@
  • Routing Protocols
  • Traffic Streams
  • HTTP Emulation
  • +
  • NAT / CGNAT
  • Reports
  • Configuration
  • API/CLI
  • diff --git a/docsrc/sources/_static/custom.css b/docsrc/sources/_static/custom.css new file mode 100644 index 00000000..58524532 --- /dev/null +++ b/docsrc/sources/_static/custom.css @@ -0,0 +1,5 @@ +table { + width: 100%; + max-width: 100%; + table-layout: auto; +} \ No newline at end of file diff --git a/docsrc/sources/access/index.rst b/docsrc/sources/access/index.rst index 01e10947..437f66ad 100644 --- a/docsrc/sources/access/index.rst +++ b/docsrc/sources/access/index.rst @@ -1,6 +1,56 @@ Access Protocols ================ +A BNG, or Broadband Network Gateway, is a network device that +connects customer premises equipment to the service provider's +broadband network, managing user authentication, traffic routing, +and quality of service (QoS) for internet services. + +.. _sessions: + +The BNG Blaster is equipped with versatile support for various +access protocols, allowing the creation of seubscriber sessions, +each of which can comprise multiple protocols. For instance, in the +case of dual-stack IPoE sessions, these are formed by a combination of +DHCPv4, DHCPv6, as well as ARP/ND protocols. Every session is +defined by an :ref:`access interface function ` +and identified by a globally unique **session-id**, with the +numbering starting at 1 and increasing sequentially for each +new session established. Furthermore, you have the flexibility +to group multiple sessions together using the optional +**session-group-id**, which enables the application of commands +:ref:`commands ` to an entire group of sessions simultaneously. + +.. code-block:: json + + { + "access": [ + { + "interface": "eth1", + "type": "pppoe", + "session-group-id": 1, + "username": "even@rtbrick.com", + "outer-vlan-min": 1000, + "outer-vlan-max": 1998, + "outer-vlan-step": 2, + "inner-vlan": 7 + }, + { + "interface": "eth1", + "type": "pppoe", + "session-group-id": 2, + "username": "odd@rtbrick.com", + "outer-vlan-min": 1001, + "outer-vlan-max": 1999, + "outer-vlan-step": 2, + "inner-vlan": 7 + }, + ] + } + +It is also possible to assign multiple access interface +sections to a single session group. + .. toctree:: :maxdepth: 1 diff --git a/docsrc/sources/access/l2bsa.rst b/docsrc/sources/access/l2bsa.rst index 5b42574b..0f61decd 100644 --- a/docsrc/sources/access/l2bsa.rst +++ b/docsrc/sources/access/l2bsa.rst @@ -55,10 +55,6 @@ as the intermediate agent functionality. The BNG Blaster A10NSP interface emulates such a layer two provider interface. This interface type accepts all DHCPv4 and PPPoE sessions were received to verify forwarding and header enrichment. -.. note:: - It is also planned to emulate a lightweight DHCPv6 server - to verify IPv6 forwarding and header enrichment for IPoE. - Following a basic PPPoE/A10NSP configuration example which is detailed explained in the configuration section. diff --git a/docsrc/sources/api/bgp.rst b/docsrc/sources/api/bgp.rst index 53ddf4d7..58fb08ff 100644 --- a/docsrc/sources/api/bgp.rst +++ b/docsrc/sources/api/bgp.rst @@ -1,27 +1,27 @@ -.. list-table:: - :header-rows: 1 ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **bgp-sessions** | | Display all matching BGP sessions. | +| | | | +| | | **Arguments:** | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-disconnect** | | Disconnect all matching BGP sessions. | +| | | | +| | | **Arguments:** | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-teardown** | | Teardown BGP. | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-raw-update-list** | | List all loaded BGP RAW update files. | ++-----------------------------------+----------------------------------------------------------------------+ +| **bgp-raw-update** | | Update all matching BGP sessions. | +| | | | +| | | **Arguments:** | +| | | ``file`` Mandatory path to BGP RAW update file. | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `bgp-sessions` - - Display all matching BGP sessions - - - - `local-ipv4-address`, `peer-ipv4-address` - * - `bgp-disconnect` - - Disconnect all matching BGP sessions - - - - `local-ipv4-address`, `peer-ipv4-address` - * - `bgp-teardown` - - Teardown BGP - - - - - * - `bgp-raw-update-list` - - List all loaded BGP RAW update files - - - - - * - `bgp-raw-update` - - Update all matching BGP session - - `file` - - `local-ipv4-address`, `peer-ipv4-address` diff --git a/docsrc/sources/api/cfm.rst b/docsrc/sources/api/cfm.rst index 2e4d75bd..d03be28d 100644 --- a/docsrc/sources/api/cfm.rst +++ b/docsrc/sources/api/cfm.rst @@ -1,23 +1,23 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `cfm-cc-start` - - Start EOAM CFM CC - - - - `session-id` - * - `cfm-cc-stop` - - Stop EOAM CFM CC - - - - `session-id` - * - `cfm-cc-rdi-on` - - Set EOAM CFM CC RDI - - - - `session-id` - * - `cfm-cc-rdi-off` - - Unset EOAM CFM CC RDI - - - - `session-id` \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **cfm-cc-start** | | Start EOAM CFM CC. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc-stop** | | Stop EOAM CFM CC. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc-rdi-on** | | Set EOAM CFM CC RDI. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc-rdi-off** | | Unset EOAM CFM CC RDI. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/api/http.rst b/docsrc/sources/api/http.rst index 218986c0..d681f8f9 100644 --- a/docsrc/sources/api/http.rst +++ b/docsrc/sources/api/http.rst @@ -1,19 +1,18 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `http-clients` - - Display all HTTP client instances - - - - `session-id` - * - `http-clients-start` - - Start all HTTP client instances - - - - `session-id` - * - `http-clients-stop` - - Stop all HTTP client instances - - - - `session-id` \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **http-clients** | | Display all HTTP client instances. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **http-clients-start** | | Start all HTTP client instances. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **http-clients-stop** | | Stop all HTTP client instances. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/igmp.rst b/docsrc/sources/api/igmp.rst index 12603d54..3628fdf1 100644 --- a/docsrc/sources/api/igmp.rst +++ b/docsrc/sources/api/igmp.rst @@ -1,39 +1,44 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `igmp-join` - - Join group - - `session-id`, `group` - - `source1`, `source2`, `source3` - * - `igmp-join-iter` - - Join multiple groups over all sessions - - `group` - - `group-iter`, `group-count`, `source1`, `source2`, `source3` - * - `igmp-leave` - - Leave group - - `session-id`, `group` - - - * - `igmp-leave-all` - - Leave all groups from all sessions - - - - - * - `igmp-info` - - Display group information - - `session-id` - - - * - `zapping-start` - - Start IGMP zapping test - - - - - * - `zapping-stop` - - Stop IGMP zapping test - - - - - * - `zapping-stats` - - Return IGMP zapping stats - - - - `reset` \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **igmp-join** | | Join group. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | +| | | ``group`` Mandatory | +| | | ``source1`` | +| | | ``source2`` | +| | | ``source3`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-join-iter** | | Join multiple groups over all sessions. | +| | | | +| | | **Arguments:** | +| | | ``group`` Mandatory | +| | | ``group-iter`` | +| | | ``group-count`` | +| | | ``source1`` | +| | | ``source2`` | +| | | ``source3`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-leave** | | Leave group. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | +| | | ``group`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-leave-all** | | Leave all groups from all sessions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-info** | | Display group information. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-start** | | Start IGMP zapping test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-stop** | | Stop IGMP zapping test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-stats** | | Return IGMP zapping stats. | +| | | | +| | | **Arguments:** | +| | | ``reset`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/index.rst b/docsrc/sources/api/index.rst index 825dba5f..488f1e90 100644 --- a/docsrc/sources/api/index.rst +++ b/docsrc/sources/api/index.rst @@ -1,5 +1,9 @@ .. _api: +.. raw:: html + + + API/CLI ======= @@ -12,7 +16,7 @@ included CLI tool ``bngblaster-cli``. You can use this for interactive communication with the BNG Blaster. You need to enable the control socket by providing the path to -the socket file with the argument ``-S`` (``bngblaster -S run.sock``). +the control socket file with the argument ``-S`` (``bngblaster -S run.sock``). Each request must contain at least the ``command`` element which carries the actual command with optional arguments. @@ -132,37 +136,25 @@ for interactive communication with the BNG Blaster. Test ---- -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `test-info` - - Display information about the running test instance - - - - - * - `test-stop` - - Stop/teardown the test - - - - - * - `terminate` - - Stop/teardown the test - - - - - * - `monkey-start` - - Start monkey test - - - - - * - `monkey-stop` - - Stop monkey test - - - - - ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **test-info** | | Display information about the running test instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **test-stop** | | Stop/teardown the test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **terminate** | | Stop/teardown the test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **monkey-start** | | Start monkey test. | ++-----------------------------------+----------------------------------------------------------------------+ +| **monkey-stop** | | Stop monkey test. | ++-----------------------------------+----------------------------------------------------------------------+ Interfaces ---------- +This is explained detailed in the +:ref:`interfaces ` section. + .. include:: interfaces.rst Sessions @@ -171,10 +163,16 @@ Sessions PPP --- +This is explained detailed in the +:ref:`PPPoE ` section. + .. include:: ppp.rst L2TP ---- +This is explained detailed in the +:ref:`L2TP ` section. + .. include:: l2tp.rst IGMP @@ -187,22 +185,37 @@ Traffic Streams ------- +This is explained detailed in the +:ref:`streams ` section. + .. include:: streams.rst ISIS ---- +This is explained detailed in the +:ref:`ISIS ` section. + .. include:: isis.rst OSPF ---- +This is explained detailed in the +:ref:`OSPF ` section. + .. include:: ospf.rst BGP --- +This is explained detailed in the +:ref:`BGP ` section. + .. include:: bgp.rst LDP --- +This is explained detailed in the +:ref:`LDP ` section. + .. include:: ldp.rst CFM @@ -211,7 +224,6 @@ CFM Legal Interception (LI) ----------------------- - This is explained detailed in the :ref:`Legal Interception (LI)
  • ` section. @@ -219,7 +231,6 @@ This is explained detailed in the HTTP ---- - This is explained detailed in the :ref:`HTTP ` section. diff --git a/docsrc/sources/api/interfaces.rst b/docsrc/sources/api/interfaces.rst index 06611a7d..18ee43ae 100644 --- a/docsrc/sources/api/interfaces.rst +++ b/docsrc/sources/api/interfaces.rst @@ -1,35 +1,23 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `interfaces` - - List all interfaces with index - - - - - * - `access-interfaces` - - List all access interface functions - - - - - * - `network-interfaces` - - List all network interface functions - - - - - * - `a10nsp-interfaces` - - List all a10nsp interface functions - - - - - * - `lag-info` - - List all link aggregation (LAG) interfaces - - - - - * - `interface-enable` - - Enable interface - - `interface` - - - * - `interface-disable` - - Disable interface - - `interface` - - ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **interfaces** | | List all interfaces with index. | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-interfaces** | | List all access interface functions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interfaces** | | List all network interface functions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **a10nsp-interfaces** | | List all a10nsp interface functions. | ++-----------------------------------+----------------------------------------------------------------------+ +| **lag-info** | | List all link aggregation (LAG) interfaces. | ++-----------------------------------+----------------------------------------------------------------------+ +| **interface-enable** | | Enable interface. | +| | | | +| | | **Arguments:** | +| | | ``interface`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **interface-disable** | | Disable interface. | +| | | | +| | | **Arguments:** | +| | | ``interface`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/isis.rst b/docsrc/sources/api/isis.rst index c804d955..0206953e 100644 --- a/docsrc/sources/api/isis.rst +++ b/docsrc/sources/api/isis.rst @@ -1,35 +1,38 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `isis-adjacencies` - - Display ISIS adjacencies - - - - - * - `isis-database` - - Display ISIS database (LSDB) - - `instance`, `level` - - - * - `isis-load-mrt` - - Load ISIS MRT file - - `instance`, `file` - - - * - `isis-lsp-update` - - Update ISIS LSP - - `instance`, `pdu` - - - * - `isis-lsp-purge` - - Purge ISIS LSP based on LSP identifier - - `instance`, `level`, `id` - - - * - `isis-lsp-flap` - - Flap ISIS LSP based on LSP identifier - - `instance`, `level`, `id` - - `timer` - * - `isis-teardown` - - Teardown ISIS - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **isis-adjacencies** | | Display ISIS adjacencies. | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-database** | | Display ISIS database (LSDB). | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``level`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-load-mrt** | | Load ISIS MRT file. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``file`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-lsp-update** | | Update ISIS LSP. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``pdu`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-lsp-purge** | | Purge ISIS LSP based on LSP identifier. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``level`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-lsp-flap** | | Flap ISIS LSP based on LSP identifier. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``level`` Mandatory | +| | | ``timer`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-teardown** | | Teardown ISIS. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/l2tp.rst b/docsrc/sources/api/l2tp.rst index c6918344..f7afad27 100644 --- a/docsrc/sources/api/l2tp.rst +++ b/docsrc/sources/api/l2tp.rst @@ -1,30 +1,40 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `l2tp-tunnels` - - Display all L2TP tunnels - - - - - * - `l2tp-sessions` - - L2TP all matching sessions - - - - `tunnel-id`, `session-id` - * - `l2tp-csurq` - - Send L2TP CSURQ - - `tunnel-id` - - `sessions` (list of remote session-id) - * - `l2tp-tunnel-terminate` - - Terminate L2TP tunnel - - `tunnel-id` - - `result-code`, `error-code`, `error-message` - * - `l2tp-session-terminate` - - Terminate L2TP session - - `session-id` - - `result-code`, `error-code`, `error-message`, `disconnect-code`, `disconnect-protocol`, `disconnect-direction`, `disconnect-message` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **l2tp-tunnels** | | Display all L2TP tunnels. | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-sessions** | | L2TP all matching sessions. | +| | | | +| | | **Arguments:** | +| | | ``tunnel-id`` | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-csurq** | | Send L2TP CSURQ. | +| | | | +| | | **Arguments:** | +| | | ``tunnel-id`` Mandatory | +| | | ``sessions (list of remote session-id)`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-tunnel-terminate** | | Terminate L2TP tunnel. | +| | | | +| | | **Arguments:** | +| | | ``tunnel-id`` Mandatory | +| | | ``result-code`` | +| | | ``error-code`` | +| | | ``error-message`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2tp-session-terminate** | | Terminate L2TP session. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | +| | | ``result-code`` | +| | | ``error-code`` | +| | | ``error-message`` | +| | | ``disconnect-code`` | +| | | ``disconnect-protocol`` | +| | | ``disconnect-direction`` | +| | | ``disconnect-message`` | ++-----------------------------------+----------------------------------------------------------------------+ The L2TP CSURQ command expects the local tunnel-id and a list of remote session-id for which a connect speed update is requested. diff --git a/docsrc/sources/api/ldp.rst b/docsrc/sources/api/ldp.rst index 9ddef527..a5498053 100644 --- a/docsrc/sources/api/ldp.rst +++ b/docsrc/sources/api/ldp.rst @@ -1,35 +1,39 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `ldp-adjacencies` - - Display all LDP adjacencies - - - - `ldp-instance-id` - * - `ldp-sessions` - - Display all matching LDP sessions - - - - `ldp-instance-id`, `local-ipv4-address`, `peer-ipv4-address` - * - `ldp-database` - - Display LDP database - - `ldp-instance-id` - - - * - `ldp-disconnect` - - Disconnect all matching LDP sessions - - - - `ldp-instance-id`, `local-ipv4-address`, `peer-ipv4-address` - * - `ldp-teardown` - - Teardown LDP - - - - - * - `ldp-raw-update-list` - - List all loaded LDP RAW update files - - - - - * - `ldp-raw-update` - - Update all matching LDP session - - `file` - - `ldp-instance-id`, `local-ipv4-address`, `peer-ipv4-address` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **ldp-adjacencies** | | Display all LDP adjacencies. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-sessions** | | Display all matching LDP sessions. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-database** | | Display LDP database. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-disconnect** | | Disconnect all matching LDP sessions. | +| | | | +| | | **Arguments:** | +| | | ``ldp-instance-id`` | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-teardown** | | Teardown LDP. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-raw-update-list** | | List all loaded LDP RAW update files. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-raw-update** | | Update all matching LDP session. | +| | | | +| | | **Arguments:** | +| | | ``file`` Mandatory | +| | | ``ldp-instance-id`` | +| | | ``local-ipv4-address`` | +| | | ``peer-ipv4-address`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/li.rst b/docsrc/sources/api/li.rst index 665c5eb1..e2892ed9 100644 --- a/docsrc/sources/api/li.rst +++ b/docsrc/sources/api/li.rst @@ -1,11 +1,5 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `li-flows` - - List all LI flows with detailed statistics - - - - ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **li-flows** | | List all LI flows with detailed statistics. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/ospf.rst b/docsrc/sources/api/ospf.rst index d3a65e24..9f2aace4 100644 --- a/docsrc/sources/api/ospf.rst +++ b/docsrc/sources/api/ospf.rst @@ -1,35 +1,37 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `ospf-interfaces` - - Display OSPF interfaces - - `instance` - - - * - `ospf-neighbors` - - Display OSPF neighbors - - `instance` - - - * - `ospf-database` - - Display OSPF database (LSDB) - - `instance` - - - * - `ospf-load-mrt` - - Load OSPF MRT file - - `instance`, `file` - - - * - `ospf-lsa-update` - - Update OSPF LSA - - `instance`, `pdu` - - - * - `ospf-pdu-update` - - Update OSPF LSA from PDU - - `instance`, - - - * - `ospf-teardown` - - Teardown OSPF - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **ospf-interfaces** | | Display OSPF interfaces. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-neighbors** | | Display OSPF neighbors. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-database** | | Display OSPF database (LSDB). | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-load-mrt** | | Load OSPF MRT file. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``file`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-lsa-update** | | Update OSPF LSA. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | +| | | ``pdu`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-pdu-update** | | Update OSPF LSA from PDU. | +| | | | +| | | **Arguments:** | +| | | ``instance`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospf-teardown** | | Teardown OSPF. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/ppp.rst b/docsrc/sources/api/ppp.rst index c1b77030..de3f794f 100644 --- a/docsrc/sources/api/ppp.rst +++ b/docsrc/sources/api/ppp.rst @@ -1,23 +1,23 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `ipcp-open` - - Open IPCP - - - - `session-id` - * - `ipcp-close` - - Close IPCP - - - - `session-id` - * - `ip6cp-open` - - Open IP6CP - - - - `session-id` - * - `ip6cp-close` - - Close IP6CP - - - - `session-id` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **ipcp-open** | | Open IPCP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipcp-close** | | Close IPCP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ip6cp-open** | | Open IP6CP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **ip6cp-close** | | Close IP6CP. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/sessions.rst b/docsrc/sources/api/sessions.rst index 3ce12f02..950119c3 100644 --- a/docsrc/sources/api/sessions.rst +++ b/docsrc/sources/api/sessions.rst @@ -1,54 +1,53 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `session-info` - - Display session information - - - - `session-id` - * - `session-counters` - - Display session counters - - - - - * - `sessions-pending` - - List all sessions not established - - - - - * - `session-traffic` - - Display session traffic statistics - - - - - * - `session-traffic-start` - - Enable/start session traffic - - - - `session-id` - * - `session-traffic-stop` - - Disable/stop session traffic - - - - `session-id` - * - `session-traffic-reset` - - Reset all session traffic streams - - - - - * - `session-streams` - - Display session streams - - `session-id` - - - * - `session-start` - - Start session manually - - - - `session-id`, `session-group-id` - * - `session-stop` - - Stop sessions manually - - - - `session-id`, `session-group-id`, `reconnect-delay` - * - `session-restart` - - Restart sessions manually - - - - `session-id`, `session-group-id`, `reconnect-delay` ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **session-info** | | Display session information. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-counters** | | Display session counters. | ++-----------------------------------+----------------------------------------------------------------------+ +| **sessions-pending** | | List all sessions not established. | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic** | | Display session traffic statistics. | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic-start** | | Enable/start session traffic. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic-stop** | | Disable/stop session traffic. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-traffic-reset** | | Reset all session traffic streams. | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-streams** | | Display session streams. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` Mandatory | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-start** | | Start session manually. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | +| | | ``session-group-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-stop** | | Stop sessions manually. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | +| | | ``session-group-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-restart** | | Restart sessions manually. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | +| | | ``session-group-id`` | +| | | ``reconnect-delay`` | ++-----------------------------------+----------------------------------------------------------------------+ The argument ``reconnect-delay`` is only applicable in combination with session reconnect enabled in the configuration. This argument delays the diff --git a/docsrc/sources/api/streams.rst b/docsrc/sources/api/streams.rst index 575a8cf4..bf9a0bf0 100644 --- a/docsrc/sources/api/streams.rst +++ b/docsrc/sources/api/streams.rst @@ -1,35 +1,26 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `stream-stats` - - Display stream traffic statistics - - - - - * - `stream-info` - - Display stream/flow information - - - - `flow-id` - * - `stream-summary` - - Display stream/flow summary information - - - - - * - `stream-traffic-start` - - Enable/start traffic streams - - - - `session-id` - * - `stream-traffic-stop` - - Disable/stop traffic streams - - - - `session-id` - * - `stream-reset` - - Reset all traffic streams - - - - - * - `streams-pending` - - List flow-id of all pending (not verfied) traffic streams - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **stream-stats** | | Display stream traffic statistics. | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-info** | | Display stream/flow information. | +| | | | +| | | **Arguments:** | +| | | ``flow-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-summary** | | Display stream/flow summary information. | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-traffic-start** | | Enable/start traffic streams. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-traffic-stop** | | Disable/stop traffic streams. | +| | | | +| | | **Arguments:** | +| | | ``session-id`` | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-reset** | | Reset all traffic streams. | ++-----------------------------------+----------------------------------------------------------------------+ +| **streams-pending** | | List flow-id of all pending (not verfied) traffic streams. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/api/traffic.rst b/docsrc/sources/api/traffic.rst index d3419a26..c91de76c 100644 --- a/docsrc/sources/api/traffic.rst +++ b/docsrc/sources/api/traffic.rst @@ -1,23 +1,11 @@ -.. list-table:: - :header-rows: 1 - - * - Attribute - - Description - - Mandatory Arguments - - Optional Arguments - * - `traffic-start` - - Start all traffic (session and streams) - - - - - * - `traffic-stop` - - Stop all traffic (session and streams) - - - - - * - `multicast-traffic-start` - - Start multicast traffic - - - - - * - `multicast-traffic-stop` - - Stop multicast traffic - - - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Command | Description | ++===================================+======================================================================+ +| **traffic-start** | | Start all traffic (session and streams). | ++-----------------------------------+----------------------------------------------------------------------+ +| **traffic-stop** | | Stop all traffic (session and streams). | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-start** | | Start multicast traffic. | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-stop** | | Stop multicast traffic. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/conf.py b/docsrc/sources/conf.py index c4bf0329..a18ad7a8 100644 --- a/docsrc/sources/conf.py +++ b/docsrc/sources/conf.py @@ -26,6 +26,10 @@ 'logo_only': False, 'display_version': False, } +html_static_path = ['_static'] +html_css_files = [ + 'custom.css', # Add your custom CSS file +] # -- Options for EPUB output diff --git a/docsrc/sources/configuration/access_line.rst b/docsrc/sources/configuration/access_line.rst index 8223a0bc..e679a9b7 100644 --- a/docsrc/sources/configuration/access_line.rst +++ b/docsrc/sources/configuration/access_line.rst @@ -1,30 +1,40 @@ +This feature is designed to simulate various access line attributes defined by the Broadband Forum, +which are subsequently employed in protocols such as PPPoE discovery, DHCPv4, and DHCPv6 packets. + +The values defined in **access-line** section apply globally but can be overwritten in the +access interface section. The strings agent-remote-id, agent-circuit-id, and +access-aggregation-circuit-id support :ref:`variable substitution `. + .. code-block:: json { "access-line": {} } ++---------------------------------------------+------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **agent-circuit-id** | | Agent-Circuit-Id (string). | ++---------------------------------------------+------------------------------------------------------------+ +| **agent-remote-id** | | Agent-Remote-Id (string). | ++---------------------------------------------+------------------------------------------------------------+ +| **access-aggregation-circuit-id** | | Access-Aggregation-Circuit-ID-ASCII (string). | ++---------------------------------------------+------------------------------------------------------------+ +| **rate-up** | | Actual Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++---------------------------------------------+------------------------------------------------------------+ +| **rate-down** | | Actual Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++---------------------------------------------+------------------------------------------------------------+ +| **dsl-type** | | DSL-Type. | +| | | Default: 0 Range: 0 - 4294967295 | ++---------------------------------------------+------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 +Attributes with values set to zero will be automatically excluded, +making it impossible to send attributes with a zero value. In other words, +any attribute that has a value of zero will not be included in the corresponding +packets. - * - Attribute - - Description - - Default - * - `agent-circuit-id` - - Agent-Circuit-Id - - - * - `agent-remote-id` - - Agent-Remote-Id - - - * - `access-aggregation-circuit-id` - - Access-Aggregation-Circuit-ID-ASCII - - - * - `rate-up` - - Actual Data Rate Upstream - - - * - `rate-down` - - Actual Data Rate Downstream - - - * - `dsl-type` - - DSL-Type - - \ No newline at end of file +In the context of DHCPv6, access line attributes, as well as Agent-Remote-Id or Agent-Circuit-Id, +are exclusively permitted in DHCPv6 relay-forward messages as dictated by RFC. By default, BNG Blaster +includes these attributes in other DHCPv6 messages, even if this deviates from RFC guidelines. +Therefore, the DHCPv6 configuration section provides the option to either disable access-line attributes or, +as an alternative, enable LDRA (Lightweight DHCPv6 Relay Agent). \ No newline at end of file diff --git a/docsrc/sources/configuration/access_line_profiles.rst b/docsrc/sources/configuration/access_line_profiles.rst index 97db1dd8..b97f800f 100644 --- a/docsrc/sources/configuration/access_line_profiles.rst +++ b/docsrc/sources/configuration/access_line_profiles.rst @@ -1,116 +1,119 @@ +Attributes within the **access-line-profiles** are treated analogous to those within the +**access-line** section but they provide the capability to apply different profiles to +each access interface. + .. code-block:: json { "access-line-profiles": [] } ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **access-line-profile-id** | | Mandatory access-line-profile identifier. | +| | | Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-up** | | Actual Data Rate Upstream. | +| | | This value is overwritten by **rate-up**. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-down** | | Actual Data Rate Downstream. | +| | | This value is overwritten by **rate-down** | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-up** | | Minimum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-down** | | Minimum Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **att-up** | | Attainable DataRate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **att-down** | | Attainable DataRate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-up** | | Maximum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-down** | | Maximum Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-up-low** | | Min Data Rate Upstream.in low power state | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **min-down-low** | | Min Data Rate Downstream.in low power state | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-interl-delay-up** | | Max Interleaving Delay Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-interl-delay-up** | | Actual Interleaving Delay Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-interl-delay-down** | | Max Interleaving Delay Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **act-interl-delay-down** | | Actual Interleaving Delay Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **data-link-encaps** | | Data Link Encapsulation | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **dsl-type** | | DSL Type. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-type** | | PON Access Type. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **etr-up** | | Expected Throughput (ETR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **etr-down** | | Expected Throughput (ETR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attetr-up** | | Attainable Expected Throughput (ATTETR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attetr-down** | | Attainable Expected Throughput (ATTETR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **gdr-up** | | Gamma Data Rate (GDR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **gdr-down** | | Gamma Data Rate (GDR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attgdr-up** | | Attainable Gamma Data Rate (ATTGDR) Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **attgdr-down** | | Attainable Gamma Data Rate (ATTGDR) Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-avg-down** | | ONT/ONU Average Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-peak-down** | | ONT/ONU Peak Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-max-up** | | ONT/ONU Maximum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ont-onu-ass-up** | | ONT/ONU Assured Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-max-up** | | PON Tree Maximum Data Rate Upstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-max-down** | | PON Tree Maximum Data Rate Downstream. | +| | | Default: 0 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **pon-access-line-version** | | This option allows to switch between the versions | +| | | 00 (DRAFT-LIHAWI-00) and 04 (DRAFT-LIHAWI-04) of the RFC | +| | | `draft-lihawi-ancp-protocol-access-extension`. | +| | | Default: DRAFT-LIHAWI-04 | ++-----------------------------------+----------------------------------------------------------------------+ ++-----------------------------------+----------------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `access-line-profile-id` - - Mandatory access-line-profile identifier - - - * - `act-up` - - Actual Data Rate Upstream - - 0 - * - `act-down` - - Actual Data Rate Downstream - - 0 - * - `min-up` - - Minimum Data Rate Upstream - - 0 - * - `min-down` - - Minimum Data Rate Downstream - - 0 - * - `att-up` - - Attainable DataRate Upstream - - 0 - * - `att-down` - - Attainable DataRate Downstream - - 0 - * - `max-up` - - Maximum Data Rate Upstream - - 0 - * - `max-down` - - Maximum Data Rate Downstream - - 0 - * - `min-up-low` - - Min Data Rate Upstream in low power state - - 0 - * - `min-down-low` - - Min Data Rate Downstream in low power state - - 0 - * - `max-interl-delay-up` - - Max Interleaving Delay Upstream - - 0 - * - `act-interl-delay-up` - - Actual Interleaving Delay Upstream - - 0 - * - `max-interl-delay-down` - - Max Interleaving Delay Downstream - - 0 - * - `act-interl-delay-down` - - Actual Interleaving Delay Downstream - - 0 - * - `data-link-encaps` - - Data Link Encapsulation - - 0 - * - `dsl-type` - - DSL Type - - 0 - * - `pon-type` - - PON Access Type - - 0 - * - `etr-up` - - Expected Throughput (ETR) Upstream - - 0 - * - `etr-down` - - Expected Throughput (ETR) Downstream - - 0 - * - `attetr-up` - - Attainable Expected Throughput (ATTETR) Upstream - - 0 - * - `attetr-down` - - Attainable Expected Throughput (ATTETR) Downstream - - 0 - * - `gdr-up` - - Gamma Data Rate (GDR) Upstream - - 0 - * - `gdr-down` - - Gamma Data Rate (GDR) Downstream - - 0 - * - `attgdr-up` - - Attainable Gamma Data Rate (ATTGDR) Upstream - - 0 - * - `attgdr-down` - - Attainable Gamma Data Rate (ATTGDR) Downstream - - 0 - * - `ont-onu-avg-down` - - ONT/ONU Average Data Rate Downstream - - 0 - * - `ont-onu-peak-down` - - ONT/ONUPeak Data Rate Downstream - - 0 - * - `ont-onu-max-up` - - ONT/ONU Maximum Data Rate Upstream - - 0 - * - `ont-onu-ass-up` - - ONT/ONU Assured Data Rate Upstream - - 0 - * - `pon-max-up` - - PON Tree Maximum Data Rate Upstream - - 0 - * - `pon-max-down` - - PON Tree Maximum Data Rate Downstream - - 0 - * - `pon-access-line-version` - - DRAFT-LIHAWI-00 or DRAFT-LIHAWI-04 - - DRAFT-LIHAWI-04 - -Attributes with values set to 0 will not be sent. - -The values for ``rate-up``, ``rate-down`` and ``dsl-type`` defined in the -access-line or interface section has priority over those defined here. +The values specified for **rate-up**, **rate-down** and **dsl-type** defined in the +**access-line** or **interface** section section take precedence over the definitions +provided here. diff --git a/docsrc/sources/configuration/bgp.rst b/docsrc/sources/configuration/bgp.rst index 16aa5fdf..22614c19 100644 --- a/docsrc/sources/configuration/bgp.rst +++ b/docsrc/sources/configuration/bgp.rst @@ -2,44 +2,45 @@ { "bgp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `network-interface` - - BGP local interface (source interface) - - first network interface - * - `local-ipv4-address` - - BGP local IPv4 address (source address) - - network interface address - * - `local-as` - - BGP local AS - - 65000 - * - `peer-ipv4-address` - - BGP peer address - - - * - `peer-as` - - BGP peer AS - - local AS - * - `hold-time` - - BGP hold-time in seconds - - 90 - * - `id` - - BGP identifier - - 1.2.3.4 - * - `reconnect` - - BGP reconnect - - true - * - `start-traffic` - - BGP starts global traffic after RAW update - - false - * - `teardown-time` - - BGP teardown time in seconds - - 5 - * - `raw-update-file` - - BGP RAW update file - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **network-interface** | | BGP local interface (source interface). | +| | | Default: `first network interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ +| **local-ipv4-address** | | BGP local IPv4 address (source address). | +| | | Default: `network interface address` | ++-----------------------------------+----------------------------------------------------------------------+ +| **local-as** | | BGP local AS. | +| | | Default: 65000 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **peer-ipv4-address** | | Mandatory BGP peer address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **peer-as** | | BGP peer AS. | +| | | Default: `local AS` Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **hold-time** | | BGP hold-time in seconds. | +| | | Default: 90 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **id** | | BGP identifier. | +| | | Default: 1.2.3.4 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tos** | | BGP IP TOS. | +| | | Default: 0 Range: 0 - 255 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ttl** | | BGP IP TTL. | +| | | Default: 255 Range: 0 - 255 | ++-----------------------------------+----------------------------------------------------------------------+ +| **reconnect** | | Reconnect BGP session automatically. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **start-traffic** | | Start global traffic after RAW update finished. | +| | | If enabled, the control command **traffic-start** is automatically | +| | | executed as soon as the BGP RAW update has finished. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **teardown-time** | | BGP teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **raw-update-file** | | BGP RAW update file. | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/configuration/dhcp.rst b/docsrc/sources/configuration/dhcp.rst index 7bf6c4b6..407149df 100644 --- a/docsrc/sources/configuration/dhcp.rst +++ b/docsrc/sources/configuration/dhcp.rst @@ -2,38 +2,33 @@ { "dhcp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable DHCP - - true - * - `broadcast` - - DHCP broadcast flag - - false - * - `timeout` - - DHCP timeout in seconds - - 5 - * - `retry` - - DHCP retry - - 10 - * - `release-interval` - - DHCP release interval - - 1 - * - `release-retry` - - DHCP release retry - - 3 - * - `tos` - - IPv4 TOS for all DHCP control traffic - - 0 - * - `vlan-priority` - - VLAN PBIT for all DHCP control traffic - - 0 - * - `access-line` - - Add access-line attributes like Agent-Remote/Circuit-Id - - true \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **enable** | | This option allows enabling or disabling DHCP. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **broadcast** | | DHCP broadcast flag. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **timeout** | | DHCP timeout in seconds. | +| | | Default: 5 | ++-----------------------------------+----------------------------------------------------------------------+ +| **retry** | | DHCP retry. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **release-interval** | | DHCP release interval. | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **release-retry** | | DHCP release retry. | +| | | Default: 3 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tos** | | IPv4 TOS for all DHCP control traffic. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **vlan-priority** | | VLAN PBIT for all DHCP control traffic. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-line** | | Add access-line attributes like Agent-Remote/Circuit-Id. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/dhcpv6.rst b/docsrc/sources/configuration/dhcpv6.rst index 8af8d761..64b74ea8 100644 --- a/docsrc/sources/configuration/dhcpv6.rst +++ b/docsrc/sources/configuration/dhcpv6.rst @@ -2,40 +2,35 @@ { "dhcpv6": {} } ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **enable** | | This option allows enabling or disabling DHCPv6. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **ia-na** | | This option allows enabling or disabling DHCPv6 IA_NA. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **ia-pd** | | This option allows enabling or disabling DHCPv6 IA_PD. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **rapid-commit** | | DHCPv6 rapid commit (2-way handshake). | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **timeout** | | DHCPv6 timeout in seconds. | +| | | Default: 5 | ++-----------------------------------+----------------------------------------------------------------------+ +| **retry** | | DHCPv6 retry. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-line** | | Add access-line attributes like Agent-Remote/Circuit-Id. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldra** | | This option allows enabling or disabling LDRA. | +| | | DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in | +| | | [RFC6221](https://datatracker.ietf.org/doc/html/rfc6221). | +| | | Adding access-line information like Agent-Remote-Id or | +| | | Agent-Circuit-Id should be used with LDRA enabled only. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable DHCPv6 - - true - * - `ldra` - - This option allows to enable or disable LDRA - - false - * - `ia-na` - - This option allows to enable or disable DHCPv6 IA_NA - - true - * - `ia-pd` - - This option allows to enable or disable DHCPv6 IA_PD - - true - * - `rapid-commit` - - DHCPv6 rapid commit (2-way handshake) - - true - * - `timeout` - - DHCPv6 timeout in seconds - - 5 - * - `retry` - - DHCPv6 retry - - 10 - * - `access-line` - - Add access-line attributes like Agent-Remote/Circuit-Id - - true - -DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in -[RFC6221](https://datatracker.ietf.org/doc/html/rfc6221). Adding -access-line information like Agent-Remote-Id or Agent-Circuit-Id -is allowed with LDRA enabled only. diff --git a/docsrc/sources/configuration/http_client.rst b/docsrc/sources/configuration/http_client.rst index 50dfeea7..db7fa067 100644 --- a/docsrc/sources/configuration/http_client.rst +++ b/docsrc/sources/configuration/http_client.rst @@ -2,35 +2,26 @@ { "http-client": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory HTTP client name - - - * - `http-client-group-id` - - Mandatory HTTP client identifier - - - * - `url` - - Mandatory HTTP request URL - - - * - `destination-port` - - TCP destination port - - 80 - * - `autostart` - - Autostart HTTP client - - true - * - `start-delay` - - Delay start of HTTP client - - 0 - * - `destination-ipv4-address` - - Destination IPv4 address - - - * - `destination-ipv6-address` - - Destination IPv6 address - - ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **name** | | Mandatory HTTP client name. | ++-----------------------------------+----------------------------------------------------------------------+ +| **http-client-group-id** | | Mandatory HTTP client identifier. | +| | | Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **url** | | Mandatory HTTP request URL. | ++-----------------------------------+----------------------------------------------------------------------+ +| **destination-port** | | TCP destination port. | +| | | Default: 80 Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **autostart** | | Autostart HTTP client. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **start-delay** | | HTTP client start delay in seconds. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **destination-ipv4-address** | | Destination IPv4 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **destination-ipv6-address** | | Destination IPv6 address. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/http_server.rst b/docsrc/sources/configuration/http_server.rst index 2d6a5943..2174f955 100644 --- a/docsrc/sources/configuration/http_server.rst +++ b/docsrc/sources/configuration/http_server.rst @@ -2,26 +2,17 @@ { "http-server": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory HTTP server name - - - * - `network-interface` - - Mandatory HTTP server network-interface - - - * - `port` - - Local TCP port - - 80 - * - `ipv4-address` - - Local IPv4 address - - - * - `ipv6-address` - - Local IPv6 address - - ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **name** | | Mandatory HTTP server name. | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interface** | | Mandatory HTTP server network-interface. | ++-----------------------------------+----------------------------------------------------------------------+ +| **port** | | Local TCP port. | +| | | Default: 80 Range: 1 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv4-address** | | Local IPv4 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv6-address** | | Local IPv6 address. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/igmp.rst b/docsrc/sources/configuration/igmp.rst index 65651c03..260ff788 100644 --- a/docsrc/sources/configuration/igmp.rst +++ b/docsrc/sources/configuration/igmp.rst @@ -2,88 +2,81 @@ { "igmp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `autostart` - - Automatically join after the session is established - - true - * - `version` - - IGMP protocol version (1, 2 or 3) - - 3 - * - `combined-leave-join` - - Combine leave and join records within a single IGMPv3 report - - true - * - `start-delay` - - Delay between session established and initial IGMP join in seconds - - 1 - * - `group` - - Multicast group base address (e.g. 239.0.0.1) - - 0.0.0.0 (disabled) - * - `group-iter` - - Multicast group iterator - - 0.0.0.1 - * - `group-count` - - Multicast group count - - 1 - * - `source` - - Multicast source address (e.g. 1.1.1.1) - - 0.0.0.0 (ASM) - * - `zapping-interval` - - IGMP channel zapping interval in seconds - - 0 (disabled) - * - `zapping-count` - - Define the number of channel changes before starting the view duration - - 0 (disabled) - * - `zapping-wait` - - Wait for multicast traffic before zapping to the next channel - - false - * - `view-duration` - - Define the view duration in seconds - - 0 (disabled) - * - `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 - - - * - `max-join-delay` - - Maximum join delay in milliseconds - - 0 (disabled) - -Per default, join and leave requests are sent using dedicated reports. -The option ``combined-leave-join`` allows the combination of leave and -join records within a single IGMPv3 report using multiple group records. -This option applies to the 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. This traffic starts -automatically, which can be suppressed by setting ``multicast-traffic-autostart`` -to false. The length, TOS and packets per second (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) -1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3 and 1.1.1.1,239.0.0.5. - -If ``max-join-delay`` is configured, the final report includes how often -the measured join delay is above this threshold. ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **autostart** | | Automatically join after the session is established. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **start-delay** | | Delay between session established and initial IGMP join in seconds.| +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **version** | | IGMP protocol version (1, 2, or 3). | +| | | Default: 3 | ++-----------------------------------+----------------------------------------------------------------------+ +| **combined-leave-join** | | Per default, join and leave requests are sent using dedicated | +| | | reports. This option allows the combination of leave and join | +| | | records within a single IGMPv3 report using multiple group records.| +| | | This option applies to the IGMP version 3 only! | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **group** | | Multicast group base address (e.g. 239.0.0.1). | +| | | 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): | +| | | `1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3, 1.1.1.1,239.0.0.5` | +| | | Default: 0.0.0.0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **group-iter** | | Multicast group iterator. | +| | | Default: 0.0.0.1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **group-count** | | Multicast group count. | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **source** | | Multicast source address (e.g. 1.1.1.1). | +| | | Default: 0.0.0.0 (ASM) | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-interval** | | IGMP channel zapping interval in seconds. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-count** | | Define the number of channel changes before starting | +| | | the view duration. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **zapping-wait** | | Wait for multicast traffic before zapping to the next channel. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **view-duration** | | Define the view duration in seconds. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **max-join-delay** | | Maximum join delay in milliseconds. | +| | | If configured, the final report includes how often | +| | | the measured join delay is above this threshold. | +| | | Default: 0 (disabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **send-multicast-traffic** | | If enabled, 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. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-autostart** | | Automatically start multicast traffic. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-length** | | Multicast traffic IP length. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: 76 | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-tos** | | Multicast traffic TOS priority. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **multicast-traffic-pps** | | Multicast traffic PPS (packets-per-second) per group. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: 1000 | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interface** | | Multicast traffic source interface. | +| | | Only applicable with **send-multicast-traffic** enabled! | +| | | Default: `first network interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/index.rst b/docsrc/sources/configuration/index.rst index f531bdd6..195742b4 100644 --- a/docsrc/sources/configuration/index.rst +++ b/docsrc/sources/configuration/index.rst @@ -1,8 +1,66 @@ .. _configuration: +.. raw:: html + + + Configuration ============= +The BNG Blastert configuration is presented as a JSON file. +This configuration must include at least one interface function. + +.. code-block:: json + + { + "interfaces": { + "network": { + "interface": "eth2", + "address": "10.0.0.10/24", + "gateway": "10.0.0.2" + } + } + } + +In order to minimize the size of this configuration, you have the option +to relocate the stream definitions to a separate file. However, it's important +to note that both the streams specified in the main configuration file and +the additional streams configuration file will be applied. This approach +proves particularly beneficial when conducting tests that involve an extensive +number of traffic streams, numbering in the millions. By separating the streams +into distinct files, you can maintain a more organized and manageable +configuration while ensuring that the combined streams are effectively utilized +in your testing scenarios. This flexibility in configuration empowers you to +handle large-scale traffic simulations with ease. + +.. code-block:: bash + + bngblaster -C config.json -T streams.json + +.. _variables: + +Variables +--------- + +Some configuration attributes like **username**, **password**, **agent-remote-id**, +**agent-circuit-id**, or **cfm-ma-name** support variable substitution. +The variable **{session-global}** will be replaced with the actual session-id +starting from 1 and incremented for every new session. The variable **{session}** +is incremented per-interface section. The variables **{outer-vlan}** and **{inner-vlan}** +will be replaced with the corresponding VLAN identifier or 0 if not defined. +The two variables **{i1}** and **{i2}** are configurable per-interface sections +with user-defined start values and steps. + +.. code-block:: json + + { + "username": "user{session-global}@rtbrick.com", + "agent-circuit-id": "0.0.0.0/0.0.0.0 eth {outer-vlan}:{inner-vlan}", + "agent-remote-id": "DEU.RTBRICK.{i1}", + "i1-start": 10000, + "i1-step": 2 + } + Interfaces ---------- @@ -29,6 +87,16 @@ Access Interfaces A10NSP Interfaces ~~~~~~~~~~~~~~~~~ + +The :ref:`L2BSA ` specification defines two interfaces. +The so-called U interface (User Interface) at the customer location +and the A10-NSP interface (A10 Network Service Provider) +between the service provider networks. + +The BNG Blaster A10NSP interface emulates such a layer two provider interface. +This interface type accepts all DHCPv4 and PPPoE sessions were received to verify +forwarding and header enrichment. + .. include:: interfaces_a10nsp.rst Sessions @@ -112,14 +180,27 @@ ISIS External Connections ~~~~~~~~~~~~~~~~~~~~~~~~~ .. include:: isis_external_connections.rst -BGP ---- -.. include:: bgp.rst +OSPF +---- +.. include:: ospf.rst + +OSPF External +~~~~~~~~~~~~~ +.. include:: ospf_external.rst + + +OSPF External Connections +~~~~~~~~~~~~~~~~~~~~~~~~~ +.. include:: ospf_external_connections.rst LDP --- .. include:: ldp.rst +BGP +--- +.. include:: bgp.rst + HTTP-Client ----------- .. include:: http_client.rst diff --git a/docsrc/sources/configuration/interfaces.rst b/docsrc/sources/configuration/interfaces.rst index d5d7ab86..a1c4f4af 100644 --- a/docsrc/sources/configuration/interfaces.rst +++ b/docsrc/sources/configuration/interfaces.rst @@ -1,54 +1,45 @@ -The following configuration allows to overwrite the global default interface link settings. - .. code-block:: json { "interfaces": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `io-mode` - - IO mode - - packet_mmap_raw - * - `io-slots` - - IO slots (ring size) - - 4096 - * - `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 the capture - - false - * - `mac-modifier` - - Third byte of access session MAC address (0-255) - - 0 - -The supported IO modes are listed with ``bngblaster -v`` but except -``packet_mmap_raw`` all other modes are currently considered experimental. In -the default mode (``packet_mmap_raw``) all packets are received in a Packet MMAP -ring buffer and sent directly through 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. \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **io-mode** | | IO mode. | +| | | The supported IO modes are listed with ``bngblaster -v`` | +| | | but except ``packet_mmap_raw`` all other modes are currently | +| | | considered experimental. In the default mode (``packet_mmap_raw``) | +| | | all packets are received in a Packet MMAP ring buffer and sent | +| | | directly through RAW packet sockets. | +| | | Default: packet_mmap_raw | ++-----------------------------------+----------------------------------------------------------------------+ +| **io-slots** | | IO slots (ring size). | +| | | It might be also needed to increase the **io-slots** 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. | +| | | Default: 4096 | ++-----------------------------------+----------------------------------------------------------------------+ +| **qdisc-bypass** | | Bypass the kernel's qdisc layer. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **tx-interval** | | TX polling interval in milliseconds. | +| | | Default: 1.0 Range: 0.0001 to 1000 | ++-----------------------------------+----------------------------------------------------------------------+ +| **rx-interval** | | RX polling interval in milliseconds. | +| | | Default: 1.0 Range: 0.0001 to 1000 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tx-threads** | | Number of TX threads per interface link. | +| | | Default: 0 (main thread) | ++-----------------------------------+----------------------------------------------------------------------+ +| **rx-threads** | | Number of RX threads per interface link. | +| | | Default: 0 (main thread) | ++-----------------------------------+----------------------------------------------------------------------+ +| **capture-include-streams** | | Include traffic streams in the capture. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac-modifier** | | Third byte of access session MAC address (0-255). This option | +| | | allows to run multiple BNG Blaster instances with disjoint session | +| | | MAC addresses. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/configuration/interfaces_a10nsp.rst b/docsrc/sources/configuration/interfaces_a10nsp.rst index 6225a5ab..4ba6a446 100644 --- a/docsrc/sources/configuration/interfaces_a10nsp.rst +++ b/docsrc/sources/configuration/interfaces_a10nsp.rst @@ -2,20 +2,14 @@ { "interfaces": { "a10nsp": [] } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `interface` - - Parent interface link name (e.g. eth0, ...) - - - * - `qinq` - - Set outer VLAN ethertype to QinQ (0x88a8) - - false - * - `mac` - - Optional set gateway interface address manually - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Parent interface/link name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **qinq** | | Set outer VLAN ethertype to QinQ (0x88a8). | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac** | | Optional set gateway interface address manually. | +| | | Default: `parent interface/link MAC address` | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/configuration/interfaces_access.rst b/docsrc/sources/configuration/interfaces_access.rst index 03f40adb..8f4cd6da 100644 --- a/docsrc/sources/configuration/interfaces_access.rst +++ b/docsrc/sources/configuration/interfaces_access.rst @@ -2,161 +2,132 @@ { "interfaces": { "access": [] } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `interface` - - Parent interface link name (e.g. eth0, ...) - - - * - `network-interface` - - Select the corresponding network interface for this session - - - * - `a10nsp-interface` - - Select the corresponding A10NSP interface for this session - - - * - `type` - - Set access type (`pppoe` or `ipoe`) - - pppoe - * - `vlan-mode` - - Set VLAN mode `1:1` or `N:1` - - 1:1 - * - `qinq` - - Set outer VLAN ethertype to QinQ (0x88a8) - - false - * - `outer-vlan-min` - - Outer VLAN minimum value - - 0 (untagged) - * - `outer-vlan-max` - - Outer VLAN maximum value - - 0 (untagged) - * - `outer-vlan-step` - - Outer VLAN step (iterator) - - 1 - * - `outer-vlan` - - Set outer-vlan-min/max equally - - - * - `inner-vlan-min` - - Inner VLAN minimum value - - 0 (untagged) - * - `inner-vlan-max` - - Inner VLAN maximum value - - 0 (untagged) - * - `inner-vlan-step` - - Inner VLAN step (iterator) - - 1 - * - `inner-vlan` - - Set inner-vlan-min/max equally - - - * - `third-vlan` - - Add a fixed third VLAN (most inner VLAN) - - 0 (untagged) - * - `address` - - Static IPv4 base address (IPoE only) - - - * - `ppp-mru` - - Overwrite PPP MRU (PPPoE only) - - - * - `address-iter` - - Static IPv4 base address iterator (IPoE only) - - - * - `gateway` - - Static IPv4 gateway address (IPoE only) - - - * - `gateway-iter` - - Static IPv4 gateway address iterator (IPoE only) - - - * - `username` - - Overwrite the username from the authentication section - - - * - `password` - - Overwrite the password from the authentication section - - - * - `authentication-protocol` - - Overwrite the username from the authentication section - - - * - `agent-circuit-id` - - Overwrite the agent-circuit-id from the access-line section - - - * - `agent-remote-id` - - Overwrite the agent-remote-id from the access-line section - - - * - `access-aggregation-circuit-id` - - Overwrite the access-aggregation-circuit-id from the access-line section - - - * - `rate-up` - - Overwrite the rate-up from the access-line section - - - * - `rate-down` - - Overwrite the rate-down from the access-line section - - - * - `dsl-type` - - Overwrite the dsl-type from the access-line section - - - * - `ipcp` - - De-/activate PPP IPCP - - - * - `ip6cp` - - De-/activate PPP IP6CP - - - * - `ipv4` - - De-/activate IPv4 - - - * - `ipv6` - - De-/activate IPv6 - - - * - `dhcp` - - De-/activate DHCP - - - * - `dhcpv6` - - De-/activate DHCPv6 - - - * - `dhcpv6-ldra` - - De-/activate DHCPv6 LDRA - - - * - `igmp-autostart` - - Overwrite IGMP autostart - - - * - `igmp-version` - - Overwrite IGMP protocol version (1, 2 or 3) - - - * - `session-group-id` - - Session group identifier - - - * - `stream-group-id` - - Stream group identifier - - - * - `access-line-profile-id` - - Access-line-profile identifier - - - * - `cfm-cc` - - De-/activate EOAM CFM CC (IPoE only) - - false - * - `cfm-level` - - Set EOAM CFM maintenance domain level - - 0 - * - `cfm-ma-id` - - Set EOAM CFM maintenance association identifier - - 0 - * - `cfm-ma-name` - - Set EOAM CFM maintenance association short name - - - * - `i1-start` - - Iterator for usage in strings `{i1}` - - 1 - * - `i1-step` - - Iterator step per session - - 1 - * - `i2-start` - - Iterator for usage in strings `{i2}` - - 1 - * - `i2-step` - - Iterator step per session - - 1 - * - `monkey` - - Enable monkey testing - - false ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Parent interface/link name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **network-interface** | | Select the corresponding network interface for those sessions. | +| | | Default: `first network interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ +| **a10nsp-interface** | | Select the corresponding A10NSP interface for those sessions. | +| | | Default: `first a10nsp interface from configuration` | ++-----------------------------------+----------------------------------------------------------------------+ +| **type** | | Set access type (`pppoe` or `ipoe`). | +| | | Default: pppoe | ++-----------------------------------+----------------------------------------------------------------------+ +| **vlan-mode** | | Set VLAN mode to `1:1` or `N:1`. | +| | | Default: 1:1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **qinq** | | Set outer VLAN ethertype to QinQ (0x88a8). | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan-min** | | Outer VLAN minimum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan-max** | | Outer VLAN maximum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan-step** | | Outer VLAN step (iterator). | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **outer-vlan** | | Set outer-vlan-min/max equally. | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan-min** | | Inner VLAN minimum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan-max** | | Inner VLAN maximum value. | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan-step** | | Inner VLAN step (iterator). | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **inner-vlan** | | Set inner-vlan-min/max equally. | ++-----------------------------------+----------------------------------------------------------------------+ +| **third-vlan** | | Add a static third VLAN (most inner VLAN). | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv4** | | Set false to deactivate IPv4. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv6** | | Set false to deactivate IPv6. | ++-----------------------------------+----------------------------------------------------------------------+ +| **address** | | Static IPv4 base address (IPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **address-iter** | | Static IPv4 base address iterator (IPoE only). | +| | | Default: 0.0.0.0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway** | | Static IPv4 gateway address (IPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-iter** | | Static IPv4 gateway address iterator (IPoE only). | +| | | Default: 0.0.0.0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-cc** | | Enable EOAM CFM CC (IPoE only). | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-level** | | Set EOAM CFM maintenance domain level. | +| | | Default: 0 Range: 0 - 7 | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-ma-id** | | Set EOAM CFM maintenance association identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **cfm-ma-name** | | Set EOAM CFM maintenance association short name (string). | ++-----------------------------------+----------------------------------------------------------------------+ +| **username** | | Overwrite the username from the authentication section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **password** | | Overwrite the password from the authentication section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **authentication-protocol** | | Overwrite the username from the authentication section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **agent-circuit-id** | | Overwrite the agent-circuit-id from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **agent-remote-id** | | Overwrite the agent-remote-id from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-aggregation-circuit-id** | | Overwrite the access-aggregation-circuit-id from the | +| | | access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **rate-up** | | Overwrite the rate-up from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **rate-down** | | Overwrite the rate-down from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **dsl-type** | | Overwrite the dsl-type from the access-line section. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ppp-mru** | | Overwrite PPP MRU (PPPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipcp** | | Overwrite PPP IPCP enable option (PPPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **ip6cp** | | Overwrite PPP IP6CP enable option (PPPoE only). | ++-----------------------------------+----------------------------------------------------------------------+ +| **dhcp** | | Overwrite DHCP enable option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **dhcpv6** | | Overwrite DHCPv6 enable option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **dhcpv6-ldra** | | Overwrite DHCPv6 LDRA option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-autostart** | | Overwrite IGMP autostart option. | ++-----------------------------------+----------------------------------------------------------------------+ +| **igmp-version** | | Overwrite IGMP protocol version (1, 2, or 3). | ++-----------------------------------+----------------------------------------------------------------------+ +| **session-group-id** | | Set session group identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **stream-group-id** | | Set stream group identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **access-line-profile-id** | | Set access-line-profile identifier. | +| | | Default: 0 Range: 0 - 65535 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i1-start** | | Iterator **{i1}** start value. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i1-step** | | Iterator **{i1}** step per session. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i2-start** | | Iterator **{i2}** start value. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **i2-step** | | Iterator **{i2}** step per session. | +| | | Default: 1 Range: 0 - 4294967295 | ++-----------------------------------+----------------------------------------------------------------------+ +| **monkey** | | Enable monkey testing. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/interfaces_lag.rst b/docsrc/sources/configuration/interfaces_lag.rst index ecf9a72a..03faec0b 100644 --- a/docsrc/sources/configuration/interfaces_lag.rst +++ b/docsrc/sources/configuration/interfaces_lag.rst @@ -2,39 +2,33 @@ { "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-min-active-links` - - Define the minimum number of active links - - 0 - * - `lacp-max-active-links` - - Limit the maximum number of active links - - 255 - * - `mac` - - LAG interface MAC address - - 02:ff:ff:ff:ff: ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | LAG interface name (e.g. lag0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp** | | Enable LACP. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-timeout-short** | | Enable LACP short timeout (3x1s) | +| | | Default: false (3x30s) | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-system-priority** | | LACP system priority. | +| | | Default: 32768 | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-system-id** | | LACP system identifier | +| | | Default: 02:ff:ff:ff:ff:00 | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-min-active-links** | | Define the minimum number of active links. | +| | | Default: 0 | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-max-active-links** | | Limit the maximum number of active links. | +| | | Default: 255 | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac** | | LAG interface MAC address. | +| | | Default: 02:ff:ff:ff:ff: | ++-----------------------------------+----------------------------------------------------------------------+ .. note:: - Multithreaded IO is not supported for LAG member interfaces! + Multithreaded TX is not supported for LAG member interfaces! diff --git a/docsrc/sources/configuration/interfaces_links.rst b/docsrc/sources/configuration/interfaces_links.rst index e6d4b529..38fbc629 100644 --- a/docsrc/sources/configuration/interfaces_links.rst +++ b/docsrc/sources/configuration/interfaces_links.rst @@ -6,59 +6,42 @@ for interface links referenced by interface functions. { "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 - - - * - `tx-cpuset` - - Optionally pin TX threads to CPU cores (cpuset) - - - * - `rx-cpuset` - - Optionally pin RX threads to CPU cores (cpuset) - - - * - `lag-interface` - - Add interface link to LAG group - - - * - `lacp-priority` - - LACP interface priority - - 32768 ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Interface name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **description** | | Interface description. | ++-----------------------------------+----------------------------------------------------------------------+ +| **mac** | | Overwrite the MAC address. | +| | | Default: `physical interface MAC address` | ++-----------------------------------+----------------------------------------------------------------------+ +| **lag-interface** | | Add interface/link to LAG group. | ++-----------------------------------+----------------------------------------------------------------------+ +| **lacp-priority** | | LACP interface priority. | +| | | Default: 32768 | ++-----------------------------------+----------------------------------------------------------------------+ +| **tx-cpuset** | | Optionally pin TX threads to CPU cores (cpuset). This is required | +| | | for DPDK only. | ++-----------------------------------+----------------------------------------------------------------------+ +| **rx-cpuset** | | Optionally pin RX threads to CPU cores (cpuset). This is required | +| | | for DPDK only. | ++-----------------------------------+----------------------------------------------------------------------+ +| **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. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/interfaces_network.rst b/docsrc/sources/configuration/interfaces_network.rst index a7f2e657..4c39f332 100644 --- a/docsrc/sources/configuration/interfaces_network.rst +++ b/docsrc/sources/configuration/interfaces_network.rst @@ -2,53 +2,60 @@ { "interfaces": { "network": [] } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `interface` - - Parent interface link name (e.g. eth0, ...) - - - * - `address` - - Local network interface IPv4 address - - - * - `gateway` - - Gateway network interface IPv4 address - - - * - `address-ipv6` - - Local network interface IPv6 address (implicitly /64) - - - * - `gateway-ipv6` - - Gateway network interface IPv6 address (implicitly /64) - - - * - `ipv6-router-advertisement` - - Disable IPv6 router advertisements - - true - * - `vlan` - - Network interface VLAN - - 0 (untagged) - * - `gateway-mac` - - Optional set gateway MAC address manually - - - * - `gateway-resolve-wait` - - Sessions will not start until gateways are resolved - - true - * - `isis-instance-id` - - Assign the interface to ISIS instance - - - * - `isis-level` - - ISIS interface level - - 3 - * - `isis-p2p` - - ISIS P2P interface - - true - * - `isis-l1-metric` - - ISIS level 1 interface metric - - 10 - * - `isis-l2-metric` - - ISIS level 2 interface metric - - 10 \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **interface** | | Parent interface/link name (e.g. eth0, ...). | ++-----------------------------------+----------------------------------------------------------------------+ +| **address** | | Local IPv4 address (e.g. 10.0.0.1/24). | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway** | | Default gateway IPv4 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **address-ipv6** | | Local IPv6 address (e.g. fc66::1/64) | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-ipv6** | | Default gateway IPv6 address. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv6-router-advertisement** | | Send IPv6 router advertisements (ICMPv6 RA). | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **vlan** | | Network interface VLAN | +| | | Default: 0 (untagged) | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-mac** | | Optional set default gateway MAC address manually. Per default | +| | | this MAC address is resolved via ARP/ND. | ++-----------------------------------+----------------------------------------------------------------------+ +| **gateway-resolve-wait** | | Sessions and protocols will not start until gateways are resolved. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-instance-id** | | Assign the interface to an ISIS instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-level** | | ISIS interface level. | +| | | Default: 3 Range: 1 - 3 | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-p2p** | | ISIS P2P interface. | +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-l1-metric** | | ISIS level 1 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **isis-l2-metric** | | ISIS level 2 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv2-instance-id** | | Assign the interface to an OSPFv2 instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv2-type** | | OSPFv2 interface type (p2p or broadcast). | +| | | Default: broadcast | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv2-metric** | | OSPFv2 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv3-instance-id** | | Assign the interface to an OSPFv3 instance. | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv3-type** | | OSPFv3 interface type (p2p or broadcast). | +| | | Default: broadcast | ++-----------------------------------+----------------------------------------------------------------------+ +| **ospfv3-metric** | | OSPFv3 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **ldp-instance-id** | | Assign the interface to a LDP instance. | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/ipoe.rst b/docsrc/sources/configuration/ipoe.rst index e7d966ea..1d6c3cfe 100644 --- a/docsrc/sources/configuration/ipoe.rst +++ b/docsrc/sources/configuration/ipoe.rst @@ -2,23 +2,18 @@ { "ipoe": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `ipv6` - - Enable/disable IPv6 - - true (enabled) - * - `ipv4` - - Enable/disable IPv4 - - true (enabled) - * - `arp-timeout` - - Initial ARP timeout/retry interval in seconds - - 1 - * - `arp-interval` - - Periodic ARP interval in seconds (0 means disabled) - - 300 ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **ipv6** | | Enable/disable IPv6. | +| | | Default: true (enabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **ipv4** | | Enable/disable IPv4. | +| | | Default: true (enabled) | ++-----------------------------------+----------------------------------------------------------------------+ +| **arp-timeout** | | Initial ARP timeout/retry interval in seconds. | +| | | Default: 1 | ++-----------------------------------+----------------------------------------------------------------------+ +| **arp-interval** | | Periodic ARP interval in seconds (0 means disabled). | +| | | Default: 300 | ++-----------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/configuration/isis.rst b/docsrc/sources/configuration/isis.rst index 470acf63..d24ff467 100644 --- a/docsrc/sources/configuration/isis.rst +++ b/docsrc/sources/configuration/isis.rst @@ -2,107 +2,88 @@ { "isis": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `instance-id` - - ISIS instance identifier - - - * - `level` - - ISIS level - - 3 - * - `overload` - - ISIS overload - - false - * - `protocol-ipv4` - - Enable/disable IPv4 - - true - * - `protocol-ipv6` - - Enable/disable IPv6 - - true - * - `level1-auth-key` - - ISIS level 1 authentication key - - - * - `level1-auth-type` - - ISIS level 1 authentication type (simple or md5) - - disabled - * - `level1-auth-hello` - - ISIS level 1 hello authentication - - true - * - `level1-auth-csnp` - - ISIS level 1 CSNP authentication - - true - * - `level1-auth-psnp` - - ISIS level 1 PSNP authentication - - true - * - `level2-auth-key` - - ISIS level 2 authentication key - - - * - `level2-auth-type` - - ISIS level 2 authentication type (simple or md5) - - disabled - * - `level2-auth-hello` - - ISIS level 2 hello authentication - - true - * - `level2-auth-csnp` - - ISIS level 2 CSNP authentication - - true - * - `level2-auth-psnp` - - ISIS level 2 PSNP authentication - - true - * - `hello-interval` - - ISIS hello interval in seconds - - 10 - * - `hello-padding` - - ISIS hello padding - - false - * - `hold-time` - - ISIS hold time in seconds - - 30 - * - `lsp-lifetime` - - ISIS LSP lifetime in seconds - - 65535 - * - `lsp-refresh-interval` - - ISIS LSP refresh interval in seconds - - 300 - * - `lsp-retry-interval` - - ISIS LSP retry interval in seconds - - 5 - * - `lsp-tx-interval` - - ISIS LSP TX interval in ms (time between LSP send windows) - - 10 - * - `lsp-tx-window-size` - - ISIS LSP TX window size (LSP send per window) - - 1 - * - `csnp-interval` - - ISIS CSNP interval in seconds - - 30 - * - `hostname` - - ISIS hostname - - bngblaster - * - `router-id` - - ISIS router identifier - - 10.10.10.10 - * - `system-id` - - ISIS system identifier - - 0100.1001.0010 - * - `area` - - ISIS area(s) - - 49.0001/24 - * - `sr-base` - - ISIS SR base - - - * - `sr-range` - - ISIS SR range - - - * - `sr-node-sid` - - ISIS SR node SID - - - * - `teardown-time` - - ISIS teardown time in seconds - - 5 \ No newline at end of file ++----------------------------------+-------------------------------------------------------------------+ +| Attribute | Description | ++==================================+===================================================================+ +| **instance-id** | | ISIS instance identifier. | ++----------------------------------+-------------------------------------------------------------------+ +| **level** | | Level. | +| | | Default: 3 Range: 1 - 3 | ++----------------------------------+-------------------------------------------------------------------+ +| **protocol-ipv4** | | Enable/disable IPv4 routing. | +| | | Default: true | ++----------------------------------+-------------------------------------------------------------------+ +| **protocol-ipv6** | | Enable/disable IPv6 routing. | +| | | Default: true | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-key** | | Level 1 authentication key. | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-type** | | Level 1 authentication type (simple or md5). | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-hello** | | Level 1 hello authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-csnp** | | Level 1 CSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level1-auth-psnp** | | Level 1 PSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-key** | | Level 2 authentication key. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-type** | | Level 2 authentication type (simple or md5). | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-hello** | | Level 2 hello authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-csnp** | | Level 2 CSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **level2-auth-psnp** | | Level 2 PSNP authentication. | ++----------------------------------+-------------------------------------------------------------------+ +| **hello-interval** | | Hello interval in seconds | +| | | Default: 10 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **hello-padding** | | Enable/disable hello padding. | +| | | Default: false | ++----------------------------------+-------------------------------------------------------------------+ +| **hold-time** | | ISIS hold time in seconds. | +| | | Default: 30 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-lifetime** | | ISIS LSP lifetime in seconds. | +| | | Default: 65535 Range: 330 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-refresh-interval** | | ISIS LSP refresh interval in seconds. | +| | | Default: 300 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-retry-interval** | | ISIS LSP retry interval in seconds. | +| | | Default: 5 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-tx-interval** | | ISIS LSP TX interval in ms (time between LSP send windows). | +| | | Default: 10 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsp-tx-window-size** | | ISIS LSP TX window size (LSP send per window). | +| | | Default: 1 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **csnp-interval** | | ISIS CSNP interval in seconds. | +| | | Default: 30 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **hostname** | | ISIS hostname | +| | | Default: bngblaster | ++----------------------------------+-------------------------------------------------------------------+ +| **router-id** | | ISIS router identifier. | +| | | Default: 10.10.10.10 | ++----------------------------------+-------------------------------------------------------------------+ +| **system-id** | | ISIS system identifier. | +| | | Default: 0100.1001.0010 | ++----------------------------------+-------------------------------------------------------------------+ +| **area** | | ISIS area(s) | +| | | Default: 49.0001/24 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-base** | | ISIS SR base | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-range** | | ISIS SR range | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-node-sid** | | ISIS SR node SID | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **teardown-time** | | ISIS teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/isis_external.rst b/docsrc/sources/configuration/isis_external.rst index 11642249..277862f5 100644 --- a/docsrc/sources/configuration/isis_external.rst +++ b/docsrc/sources/configuration/isis_external.rst @@ -2,20 +2,15 @@ { "isis": { "external": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `purge` - - Automatically purge all external LSP during teardown - - true - * - `auto-refresh` - - Automatically refresh all external LSP - - false - * - `mrt-file` - - ISIS MRT file - - \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **purge** | | Automatically purge all external LSP during teardown. This option | +| | | requires a reasonable teardown-time depending on the database size.| +| | | Default: true | ++-----------------------------------+----------------------------------------------------------------------+ +| **auto-refresh** | | Automatically refresh all external LSP. | +| | | Default: false | ++-----------------------------------+----------------------------------------------------------------------+ +| **mrt-file** | | MRT file | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/isis_external_connections.rst b/docsrc/sources/configuration/isis_external_connections.rst index cd3ddea0..ecd4e9a6 100644 --- a/docsrc/sources/configuration/isis_external_connections.rst +++ b/docsrc/sources/configuration/isis_external_connections.rst @@ -2,20 +2,14 @@ { "isis": { "external": { "connections": [] } } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `system-id` - - ISIS system identifier - - - * - `l1-metric` - - ISIS level 1 interface metric - - 10 - * - `l2-metric` - - ISIS level 2 interface metric - - 10 \ No newline at end of file ++-----------------------------------+----------------------------------------------------------------------+ +| Attribute | Description | ++===================================+======================================================================+ +| **system-id** | | ISIS system identifier. | ++-----------------------------------+----------------------------------------------------------------------+ +| **l1-metric** | | ISIS level 1 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ +| **l2-metric** | | ISIS level 2 interface metric. | +| | | Default: 10 | ++-----------------------------------+----------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/ldp.rst b/docsrc/sources/configuration/ldp.rst index d40b7daf..12ba447b 100644 --- a/docsrc/sources/configuration/ldp.rst +++ b/docsrc/sources/configuration/ldp.rst @@ -2,60 +2,51 @@ { "ldp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `instance-id` - - LDP instance identifier - - - * - `keepalive-time` - - LDP session keepalive time in seconds - - 15 - * - `hold-time` - - LDP hello hold time in seconds - - 15 - * - `hostname` - - LDP hostname - - bngblaster - * - `lsr-id` - - LDP LSR identifier - - 10.10.10.10 - * - `teardown-time` - - LDP teardown time in seconds - - 5 - * - `ipv6-transport-address` - - LDP transport IPv6 address - - - * - `ipv4-transport-address` - - LDP transport IPv6 address - - `lsr-id` - * - `no-ipv4-transport` - - Disable/discard IPv4 LDP hello messages - - - * - `prefer-ipv4-transport` - - Prefer IPv4 transport even if IPv6 is enabled - - `false` - * - `raw-update-file` - - LDP RAW update file - - - -The `keepalive-time` defines the local LDP session keepalive -timeout. Each LDP peer must calculate the effective keepalive -timeout by using the smaller of its locally defined and received -timeout in the PDU. The value chosen indicates the maximum number -of seconds that may elapse between the receipt of successive PDUs -from the LDP peer on the session TCP connection. The keepalive -timeout is reset each time a PDU arrives. The BNG Blaster will -send keepalive messages at an interval calculated by using the -effective keepalive time divided by 3. Assuming an effective -keepalive time of 15 seconds results in a keepalive interval -of 5 seconds. - -Setting a valid `ipv6-transport-address` enables LDP IPv6 -hello and transport. According to RFC7552, IPv6 is preferred -over IPv4 which can be changed with `prefer-ipv4-transport`. \ No newline at end of file ++----------------------------------+------------------------------------------------------------+ +| Attribute | Description | ++==================================+============================================================+ +| **instance-id** | | LDP instance identifier. | ++----------------------------------+------------------------------------------------------------+ +| **keepalive-time** | | LDP session keepalive time in seconds. | +| | | The **keepalive-time** defines the local LDP session | +| | | keepalive timeout. Each LDP peer must calculate the | +| | | effective keepalive timeout by using the smaller of its | +| | | locally defined and received timeout in the PDU. The | +| | | value chosen indicates the maximum number of seconds | +| | | that may elapse between the receipt of successive PDUs | +| | | from the LDP peer on the session TCP connection. The | +| | | keepalive timeout is reset each time a PDU arrives. The | +| | | BNG Blaster will send keepalive messages at an interval | +| | | calculated by using the effective keepalive time divided | +| | | by 3. Assuming an effective keepalive time of of 15 | +| | | seconds results in a keepalive interval of 5 seconds. | +| | | Default: 15 Range: 0 - 65535 | ++----------------------------------+------------------------------------------------------------+ +| **hold-time** | | LDP hello hold time in seconds. | +| | | Default: 15 Range: 0 - 65535 | ++----------------------------------+------------------------------------------------------------+ +| **teardown-time** | | LDP teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++----------------------------------+------------------------------------------------------------+ +| **hostname** | | LDP hostname. | +| | | Default: bngblaster | ++----------------------------------+------------------------------------------------------------+ +| **lsr-id** | | LDP LSR identifier. | +| | | Default: 10.10.10.10 | ++----------------------------------+------------------------------------------------------------+ +| **ipv6-transport-address** | | LDP transport IPv6 address. | +| | | Setting a valid IPv6 address here enables LDP IPv6 | +| | | hello and transport. | ++----------------------------------+------------------------------------------------------------+ +| **ipv4-transport-address** | | LDP transport IPv4 address. | +| | | Default: `lsr-id` | ++----------------------------------+------------------------------------------------------------+ +| **no-ipv4-transport** | | Disable/discard IPv4 LDP hello messages. | ++----------------------------------+------------------------------------------------------------+ +| **prefer-ipv4-transport** | | According to RFC7552, IPv6 is preferred over IPv4 which | +| | | can be changed with this option to prefer IPv4 transport | +| | | even if IPv6 is enabled. | +| | | Default: false | ++----------------------------------+------------------------------------------------------------+ +| **raw-update-file** | | LDP RAW update file. | ++----------------------------------+------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/configuration/lns.rst b/docsrc/sources/configuration/lns.rst index cd1281f5..d506a119 100644 --- a/docsrc/sources/configuration/lns.rst +++ b/docsrc/sources/configuration/lns.rst @@ -2,58 +2,52 @@ { "l2tp-server": [] } ++-------------------------------------------+---------------------------------------------------------------------+ +| Attribute | Description | ++===========================================+=====================================================================+ +| **name** | | Mandatory L2TP LNS server hostname (AVP 7) | ++-------------------------------------------+---------------------------------------------------------------------+ +| **address** | | Mandatory L2TP server address. | ++-------------------------------------------+---------------------------------------------------------------------+ +| **secret** | | Tunnel secret. | ++-------------------------------------------+---------------------------------------------------------------------+ +| **receive-window-size** | | Control messages receive window size. | +| | | Default: 16 Range: 1 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **max-retry** | | Control messages max retry. | +| | | Default: 5 Range: 1 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **congestion-mode** | | Control messages congestion mode (default, slow or aggressive). | +| | | The BNG Blaster supports different congestion modes for the | +| | | reliable delivery of control messages. The default mode is | +| | | described in RFC2661 appendix A (Control Channel Slow Start and | +| | | Congestion Avoidance). The mode slow uses a fixed control window | +| | | size of 1 where aggressive sticks to max permitted based on peer | +| | | received window size. | +| | | Default: default | ++-------------------------------------------+---------------------------------------------------------------------+ +| **hello-interval** | | Set hello interval. | +| | | Default: 30 Range: 1 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-control-priority** | | Set the priority bit in the L2TP header for all non-IP data | +| | | packets (LCP, IPCP, ...). | +| | | Default: false | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-length** | | Set length bit for all data packets. | +| | | Default: false | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-offset** | | Set offset bit with offset zero for all data packets. | +| | | Default: false | ++-------------------------------------------+---------------------------------------------------------------------+ +| **control-tos** | | Set L2TP control traffic (SCCRQ, ICRQ, ...) TOS priority. | +| | | Default: 0 Range: 0 - 255 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **data-control-tos** | | Set the L2TP tunnel TOS priority (outer IPv4 header) for all | +| | | non-IP data packets (LCP, IPCP, ...). | +| | | Default: 0 Range: 0 - 255 | ++-------------------------------------------+---------------------------------------------------------------------+ +| **lcp-padding** | | Add fixed padding to LCP packets send from LNS. | +| | | Default: 0 Range: 0 - 65535 | ++-------------------------------------------+---------------------------------------------------------------------+ -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory L2TP LNS server hostname (AVP 7) - - - * - `address` - - Mandatory L2TP server address - - - * - `secret` - - Tunnel secret - - - * - `receive-window-size` - - Control messages receive window size - - 16 - * - `max-retry` - - Control messages max retry - - 5 - * - `congestion-mode` - - Control messages congestion mode - - default - * - `hello-interval` - - Set hello interval - - 30 - * - `data-control-priority` - - Set the priority bit in the L2TP header for all non-IP data packets (LCP, IPCP, ...) - - false - * - `data-length` - - Set length bit for all data packets - - false - * - `data-offset` - - Set offset bit with offset zero for all data packets - - false - * - `control-tos` - - L2TP control traffic (SCCRQ, ICRQ, ...) TOS priority - - 0 - * - `data-control-tos` - - Set the L2TP tunnel TOS priority (outer IPv4 header) for all non-IP data packets (LCP, IPCP, ...) - - 0 - * - `lcp-padding` - - Add fixed padding to LCP packets send from LNS - - 0 - -The BNG Blaster supports different congestion modes for the -reliable delivery of control messages. The ``default`` mode -is described in RFC2661 appendix A (Control Channel Slow Start and -Congestion Avoidance). The mode ``slow`` uses a fixed control window -size of 1 where ``aggressive`` sticks to max permitted based on peer -received window size. diff --git a/docsrc/sources/configuration/ospf.rst b/docsrc/sources/configuration/ospf.rst index be4b78bf..bba8e3ec 100644 --- a/docsrc/sources/configuration/ospf.rst +++ b/docsrc/sources/configuration/ospf.rst @@ -2,59 +2,48 @@ { "ospf": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `instance-id` - - OSPF instance identifier - - - * - `version` - - version - - 2 - * - `overload` - - OSPF overload - - false - * - `auth-key` - - OSPF authentication key - - - * - `auth-type` - - OSPF authentication type (simple or md5) - - disabled - * - `hello-interval` - - OSPF hello interval in seconds - - 10 - * - `dead-interval` - - OSPF dead interval in seconds - - 40 - * - `lsa-retry-interval` - - OSPF LSA retry interval in seconds - - 5 - * - `hostname` - - OSPF hostname - - bngblaster - * - `router-id` - - OSPF router identifier - - 10.10.10.10 - * - `router-priority` - - OSPF router priority - - 64 - * - `area` - - OSPF area - - 0.0.0.0 - * - `sr-base` - - OSPF SR base - - - * - `sr-range` - - OSPF SR range - - - * - `sr-node-sid` - - OSPF SR node SID - - - * - `teardown-time` - - OSPF teardown time in seconds - - 5 \ No newline at end of file ++----------------------------------+-------------------------------------------------------------------+ +| Attribute | Description | ++==================================+===================================================================+ +| **instance-id** | | OSPF instance identifier. | ++----------------------------------+-------------------------------------------------------------------+ +| **version** | | OSPF version. | +| | | Default: 2 | ++----------------------------------+-------------------------------------------------------------------+ +| **auth-key** | | OSPF authentication key. | ++----------------------------------+-------------------------------------------------------------------+ +| **auth-type** | | OSPF authentication type (simple or md5). | ++----------------------------------+-------------------------------------------------------------------+ +| **hello-interval** | | OSPF hello interval in seconds. | +| | | Default: 10 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **dead-interval** | | OSPF dead interval in seconds. | +| | | Default: 40 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **lsa-retry-interval** | | OSPF LSA retry interval in seconds. | +| | | Default: 5 Range: 1 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ +| **hostname** | | OSPF hostname. | +| | | Default: bngblaster | ++----------------------------------+-------------------------------------------------------------------+ +| **router-id** | | OSPF router identifier. | +| | | Default: 10.10.10.10 | ++----------------------------------+-------------------------------------------------------------------+ +| **router-priority** | | OSPF router priority. | +| | | Default: 64 Range: 0 - 255 | ++----------------------------------+-------------------------------------------------------------------+ +| **area** | | OSPF area. | +| | | Default: 0.0.0.0 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-base** | | OSPF SR base. | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-range** | | OSPF SR range. | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **sr-node-sid** | | OSPF SR node SID. | +| | | Default: 0 Range: 0 - 1048575 | ++----------------------------------+-------------------------------------------------------------------+ +| **teardown-time** | | OSPF teardown time in seconds. | +| | | Default: 5 Range: 0 - 65535 | ++----------------------------------+-------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/ospf_external.rst b/docsrc/sources/configuration/ospf_external.rst index 48804481..5c749ecf 100644 --- a/docsrc/sources/configuration/ospf_external.rst +++ b/docsrc/sources/configuration/ospf_external.rst @@ -2,17 +2,11 @@ { "ospf": { "external": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `purge` - - Automatically purge all external LSA during teardown - - true - * - `mrt-file` - - OSPF MRT file - - \ No newline at end of file ++------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==================+==================================================================+ +| **purge** | | Automatically purge all external LSA during teardown. | +| | | Default: true | ++------------------+------------------------------------------------------------------+ +| **mrt-file** | | OSPF MRT file. | ++------------------+------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/configuration/ospf_external_connections.rst b/docsrc/sources/configuration/ospf_external_connections.rst index ed89e508..60849146 100644 --- a/docsrc/sources/configuration/ospf_external_connections.rst +++ b/docsrc/sources/configuration/ospf_external_connections.rst @@ -2,26 +2,19 @@ { "ospf": { "external": { "connections": [] } } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `router-id` - - Mandatory remote router identifier - - - * - `metric` - - Optional interface metric - - 10 - * - `local-ipv4-address` - - Mandatory local IPv4 address (OSPFv2 only) - - - * - `local-interface-id` - - Local interface identifier (OSPFv3 only) - - 1 (2,3,...) - * - `remote-interface-id` - - Remote interface identifier (OSPFv3 only) - - `local-interface-id` ++-----------------------------------+--------------------------------------------------------------------+ +| Attribute | Description | ++===================================+====================================================================+ +| **router-id** | | Mandatory remote router identifier. | ++-----------------------------------+--------------------------------------------------------------------+ +| **metric** | | Optional interface metric. | +| | | Default: 10 Range: 0 - 4294967295 | ++-----------------------------------+--------------------------------------------------------------------+ +| **local-ipv4-address** | | Mandatory local IPv4 address (OSPFv2 only). | ++-----------------------------------+--------------------------------------------------------------------+ +| **local-interface-id** | | Local interface identifier (OSPFv3 only). | +| | | Default: 1 (2, 3, ...) | ++-----------------------------------+--------------------------------------------------------------------+ +| **neighbor-interface-id** | | Remote interface identifier (OSPFv3 only). | +| | | Default: `local-interface-id` | ++-----------------------------------+--------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/ppp.rst b/docsrc/sources/configuration/ppp.rst index b805c60c..2fb8800b 100644 --- a/docsrc/sources/configuration/ppp.rst +++ b/docsrc/sources/configuration/ppp.rst @@ -2,14 +2,9 @@ { "ppp": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `mru` - - Define the maximum receive unit proposed via PPP - - 1492 \ No newline at end of file ++-------------+------------------------------------------------------------------+ +| Attribute | Description | ++=============+==================================================================+ +| **mru** | | Define the maximum receive unit proposed via PPP. | +| | | Default: 1492 Range: 1 - 65535 | ++-------------+------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/ppp_authentication.rst b/docsrc/sources/configuration/ppp_authentication.rst index 96cddd39..5714ed68 100644 --- a/docsrc/sources/configuration/ppp_authentication.rst +++ b/docsrc/sources/configuration/ppp_authentication.rst @@ -2,26 +2,22 @@ { "ppp": { "authentication": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `username` - - Username - - user{session-global}@rtbrick.com - * - `password` - - Password - - test - * - `timeout` - - Authentication request timeout in seconds - - 5 - * - `retry` - - Authentication request max retry - - 30 - * - `protocol` - - This value can be set to `PAP` or `CHAP` to reject the other protocol - - allow PAP and CHAP \ No newline at end of file ++----------------+------------------------------------------------------------------+ +| Attribute | Description | ++================+==================================================================+ +| **username** | | Username. | +| | | Default: user{session-global}@rtbrick.com | ++----------------+------------------------------------------------------------------+ +| **password** | | Password. | +| | | Default: test | ++----------------+------------------------------------------------------------------+ +| **timeout** | | Authentication request timeout in seconds. | +| | | Default: 5 | ++----------------+------------------------------------------------------------------+ +| **retry** | | Authentication request max retry. | +| | | Default: 30 | ++----------------+------------------------------------------------------------------+ +| **protocol** | | This value can be set to PAP or CHAP to reject | +| | | the other protocol. | +| | | Default: `allow both PAP and CHAP` | ++----------------+------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/ppp_ip6cp.rst b/docsrc/sources/configuration/ppp_ip6cp.rst index 3e74537a..fd6833e1 100644 --- a/docsrc/sources/configuration/ppp_ip6cp.rst +++ b/docsrc/sources/configuration/ppp_ip6cp.rst @@ -2,20 +2,15 @@ { "ppp": { "ip6cp": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable the IP6CP protocol - - true - * - `conf-request-timeout` - - IP6CP configuration request timeout in seconds - - 5 - * - `conf-request-retry` - - IP6CP configuration request max retry - - 10 \ No newline at end of file ++----------------------------------+-------------------------------------------------------------------+ +| Attribute | Description | ++==================================+===================================================================+ +| **enable** | | This option allows to enable or disable the IP6CP protocol. | +| | | Default: true | ++----------------------------------+-------------------------------------------------------------------+ +| **conf-request-timeout** | | IP6CP configuration request timeout in seconds. | +| | | Default: 5 | ++----------------------------------+-------------------------------------------------------------------+ +| **conf-request-retry** | | IP6CP configuration request max retry. | +| | | Default: 10 | ++----------------------------------+-------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/ppp_ipcp.rst b/docsrc/sources/configuration/ppp_ipcp.rst index 3c4cda6b..f7b9f6a4 100644 --- a/docsrc/sources/configuration/ppp_ipcp.rst +++ b/docsrc/sources/configuration/ppp_ipcp.rst @@ -2,29 +2,25 @@ { "ppp": { "ipcp": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `enable` - - This option allows to enable or disable the IPCP protocol - - true - * - `request-ip` - - Include IP-Address with 0.0.0.0 in initial LCP configuration request - - true - * - `request-dns1` - - Request Primary DNS Server Address (option 129) - - true - * - `request-dns2` - - Request Secondary DNS Server Address (option 131) - - true - * - `conf-request-timeout` - - IPCP configuration request timeout in seconds - - 5 - * - `conf-request-retry` - - IPCP configuration request max retry - - 10 \ No newline at end of file ++--------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==========================+==================================================================+ +| **enable** | | This option allows to enable or disable the IPCP protocol | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **request-ip** | | Include IP-Address with 0.0.0.0 in the initial IPCP | +| | | configuration request. | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **request-dns1** | | Request Primary DNS Server Address (option 129). | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **request-dns2** | | Request Secondary DNS Server Address (option 131). | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **conf-request-timeout** | | IPCP configuration request timeout in seconds | +| | | Default: 5 | ++--------------------------+------------------------------------------------------------------+ +| **conf-request-retry** | | IPCP configuration request max retry. | +| | | Default: 10 | ++--------------------------+------------------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/configuration/ppp_lcp.rst b/docsrc/sources/configuration/ppp_lcp.rst index cc0fa8f8..33680e94 100644 --- a/docsrc/sources/configuration/ppp_lcp.rst +++ b/docsrc/sources/configuration/ppp_lcp.rst @@ -2,32 +2,27 @@ { "ppp": { "lcp": {} } } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `conf-request-timeout` - - LCP configuration request timeout in seconds - - 5 - * - `conf-request-retry` - - LCP configuration request max retry - - 10 - * - `keepalive-interval` - - LCP echo request interval in seconds (0 means disabled) - - 30 - * - `keepalive-retry` - - PPP LCP echo request max retry - - 3 - * - `start-delay` - - PPP LCP initial request delay in milliseconds - - 0 - * - `ignore-vendor-specific` - - Ignore LCP vendor-specific requests - - false - * - `connection-status-message` - - Accept LCP connection status messages - - false \ No newline at end of file ++-------------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++===============================+==================================================================+ +| **conf-request-timeout** | | LCP configuration request timeout in seconds. | +| | | Default: 5 | ++-------------------------------+------------------------------------------------------------------+ +| **conf-request-retry** | | LCP configuration request max retry. | +| | | Default: 10 | ++-------------------------------+------------------------------------------------------------------+ +| **keepalive-interval** | | LCP echo request interval in seconds (0 means disabled). | +| | | Default: 30 | ++-------------------------------+------------------------------------------------------------------+ +| **keepalive-retry** | | PPP LCP echo request max retry. | +| | | Default: 3 | ++-------------------------------+------------------------------------------------------------------+ +| **start-delay** | | PPP LCP initial request delay in milliseconds. | +| | | Default: 0 | ++-------------------------------+------------------------------------------------------------------+ +| **ignore-vendor-specific** | | Ignore LCP vendor-specific requests. | +| | | Default: false | ++-------------------------------+------------------------------------------------------------------+ +| **connection-status-message** | | Accept LCP connection status messages. | +| | | Default: false | ++-------------------------------+------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/pppoe.rst b/docsrc/sources/configuration/pppoe.rst index 60c50369..0a4057d9 100644 --- a/docsrc/sources/configuration/pppoe.rst +++ b/docsrc/sources/configuration/pppoe.rst @@ -2,32 +2,27 @@ { "pppoe": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `session-time` - - Max PPPoE session time in seconds - - 0 (infinity) - * - `reconnect` - - Automatically reconnect sessions if terminated - - false - * - `discovery-timeout` - - PPPoE discovery (PADI and PADR) timeout in seconds - - 5 - * - `discovery-retry` - - PPPoE discovery (PADI and PADR) max retry - - 10 - * - `service-name` - - PPPoE discovery service name - - - * - `host-uniq` - - PPPoE discovery host-uniq - - false - * - `vlan-priority` - - VLAN PBIT for all PPPoE/PPP control traffic - - 0 ++-----------------------+------------------------------------------------------------------+ +| Attribute | Description | ++=======================+==================================================================+ +| **session-time** | | Max PPPoE session time in seconds. | +| | | Default: 0 (infinity) | ++-----------------------+------------------------------------------------------------------+ +| **reconnect** | | Automatically reconnect sessions if terminated. | +| | | Default: false | ++-----------------------+------------------------------------------------------------------+ +| **discovery-timeout** | | PPPoE discovery (PADI and PADR) timeout in seconds. | +| | | Default: 5 | ++-----------------------+------------------------------------------------------------------+ +| **discovery-retry** | | PPPoE discovery (PADI and PADR) max retry. | +| | | Default: 10 | ++-----------------------+------------------------------------------------------------------+ +| **service-name** | | PPPoE discovery service name. | +| | | Default: | ++-----------------------+------------------------------------------------------------------+ +| **host-uniq** | | PPPoE discovery host-uniq. | +| | | Default: false | ++-----------------------+------------------------------------------------------------------+ +| **vlan-priority** | | VLAN PBIT for all PPPoE/PPP control traffic. | +| | | Default: 0 | ++-----------------------+------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/session_traffic.rst b/docsrc/sources/configuration/session_traffic.rst index 11bc6387..daa6e845 100644 --- a/docsrc/sources/configuration/session_traffic.rst +++ b/docsrc/sources/configuration/session_traffic.rst @@ -2,35 +2,34 @@ { "session-traffic": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `autostart` - - Automatically start session traffic after the session is established - - true - * - `ipv4-pps` - - Autogenerate bidirectional IPv4 traffic between a network interface and all sessions - - 0 (disabled) - * - `ipv4-label` - - Send downstream IPv4 traffic with the specified MPLS label - - 0 (unlabeled) - * - `ipv4-address` - - Overwrite network interface IPv4 address - - network interface address - * - `ipv6-pps` - - Generate bidirectional IPv6 traffic between a network interface and all sessions - - 0 (disabled) - * - `ipv6-label` - - Send downstream IPv6 traffic with the specified MPLS label - - 0 (unlabeled) - * - `ipv6-address` - - Overwrite network interface IPv6 address - - network interface address - * - `ipv6pd-pps` - - Generate bidirectional IPv6PD (delegated prefix) traffic between a network interface and all sessions - - 0 (disabled) ++------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==================+==================================================================+ +| **autostart** | | Automatically start session traffic as soon as the | +| | | corresponding session is established. | +| | | Default: true | ++------------------+------------------------------------------------------------------+ +| **ipv4-pps** | | Autogenerate bidirectional IPv4 traffic | +| | | between a network interface and all sessions. | +| | | Default: 0 (disabled) | ++------------------+------------------------------------------------------------------+ +| **ipv4-label** | | Send downstream IPv4 traffic with the specified MPLS label. | +| | | Default: 0 (unlabeled) | ++------------------+------------------------------------------------------------------+ +| **ipv4-address** | | Overwrite network interface IPv4 address. | +| | | Default: `network interface address` | ++------------------+------------------------------------------------------------------+ +| **ipv6-pps** | | Generate bidirectional IPv6 traffic | +| | | between a network interface and all sessions. | +| | | Default: 0 (disabled) | ++------------------+------------------------------------------------------------------+ +| **ipv6-label** | | Send downstream IPv6 traffic with the specified MPLS label. | +| | | Default: 0 (unlabeled) | ++------------------+------------------------------------------------------------------+ +| **ipv6-address** | | Overwrite network interface IPv6 address | +| | | Default: `network interface address` | ++------------------+------------------------------------------------------------------+ +| **ipv6pd-pps** | | Generate bidirectional IPv6PD (delegated prefix) traffic | +| | | between a network interface and all sessions. | +| | | Default: 0 (disabled) | ++------------------+------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/sessions.rst b/docsrc/sources/configuration/sessions.rst index feb8f97f..d92f0953 100644 --- a/docsrc/sources/configuration/sessions.rst +++ b/docsrc/sources/configuration/sessions.rst @@ -2,55 +2,48 @@ { "sessions": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `count` - - Sessions (PPPoE + IPoE) - - 1 - * - `max-outstanding` - - Max outstanding sessions - - 800 - * - `start-rate` - - Setup request rate in sessions per second - - 400 - * - `stop-rate` - - Teardown request rate in sessions per second - - 400 - * - `iterate-vlan-outer` - - Iterate on outer VLAN first - - false - * - `start-delay` - - Wait N seconds after all interfaces are resolved before starting sessions - - 0 - * - `reconnect` - - Automatically reconnect sessions (PPPoE and IPoE) if terminated - - false - * - `autostart` - - Start sessions automatically - - true - * - `monkey-autostart` - - Start monkey testing automatically if enabled - - true - -Per default, sessions are created by iteration over the inner VLAN range first and -outer VLAN second. Which can be changed by ``iterate-vlan-outer`` to iterate -on the outer VLAN first and inner VLAN second. - -Therefore the following configuration generates the sessions on VLAN (outer:inner) -1:3, 1:4, 2:3, 2:4 per default or alternative 1:3, 2:3, 1:4, 2:4 with -``iterate-vlan-outer`` enabled. - -.. code-block:: json - - { - "outer-vlan-min": 1, - "outer-vlan-max": 2, - "inner-vlan-min": 3, - "inner-vlan-max": 4 - } ++--------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++==========================+==================================================================+ +| **count** | | Sessions (PPPoE + IPoE). | +| | | Default: 1 | ++--------------------------+------------------------------------------------------------------+ +| **max-outstanding** | | Max outstanding sessions. | +| | | Default: 800 | ++--------------------------+------------------------------------------------------------------+ +| **start-rate** | | Setup request rate in sessions per second. | +| | | Default: 400 | ++--------------------------+------------------------------------------------------------------+ +| **stop-rate** | | Teardown request rate in sessions per second. | +| | | Default: 400 | ++--------------------------+------------------------------------------------------------------+ +| **start-delay** | | Wait N seconds after all interfaces are resolved | +| | | before starting sessions. | +| | | Default: 0 | ++--------------------------+------------------------------------------------------------------+ +| **reconnect** | | Automatically reconnect sessions (PPPoE and IPoE). | +| | | Default: false | ++--------------------------+------------------------------------------------------------------+ +| **autostart** | | Start sessions automatically. | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **monkey-autostart** | | Start monkey testing automatically if enabled. | +| | | Default: true | ++--------------------------+------------------------------------------------------------------+ +| **iterate-vlan-outer** | | Iterate on outer VLAN first. | +| | | Per default, sessions are created by iteration over the | +| | | inner VLAN range first and outer VLAN second. Which can be | +| | | changed with this option to iterate on the outer VLAN first | +| | | and inner VLAN second. | +| | | | +| | | Assuming the following configuration: | +| | | "outer-vlan-min": 1 | +| | | "outer-vlan-max": 2 | +| | | "inner-vlan-min": 3 | +| | | "inner-vlan-max": 4 | +| | | This generates the sessions on VLAN (outer:inner) | +| | | 1:3, 1:4, 2:3, 2:4 per default or alternative | +| | | 1:3, 2:3, 1:4, 2:4 with this option enabled. | +| | | | +| | | Default: false | ++--------------------------+------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/streams.rst b/docsrc/sources/configuration/streams.rst index 60ec18dd..3281eb0f 100644 --- a/docsrc/sources/configuration/streams.rst +++ b/docsrc/sources/configuration/streams.rst @@ -2,128 +2,110 @@ { "streams": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `name` - - Mandatory stream name - - - * - `stream-group-id` - - Stream group identifier - - 0 (raw) - * - `type` - - Mandatory stream type (`ipv4`, `ipv6` or `ipv6pd`) - - - * - `direction` - - Mandatory stream direction (`upstream`, `downstream` or `both`) - - `both` - * - `source-port` - - Overwrite the default source port - - 65056 - * - `destination-port` - - Overwrite the default destination port - - 65056 - * - `ipv4-df` - - Set IPv4 DF bit - - true - * - `priority` - - IPv4 TOS / IPv6 TC - - 0 - * - `vlan-priority` - - VLAN priority - - 0 - * - `length` - - Layer 3 (IP header + payload) traffic length (76 - 9000) - - 128 - * - `pps` - - Stream traffic rate in packets per second - - 1 - * - `bps` - - Stream traffic rate in bits per second (layer 3) - - - * - `a10nsp-interface` - - Select the corresponding A10NSP interface for this stream - - - * - `network-interface` - - Select the corresponding network interface for this stream - - - * - `network-ipv4-address` - - Overwrite network interface IPv4 address - - - * - `network-ipv6-address` - - Overwrite network interface IPv6 address - - - * - `destination-ipv4-address` - - Overwrite the IPv4 destination address - - - * - `destination-ipv6-address` - - Overwrite the IPv6 destination address - - - * - `access-ipv4-source-address` - - Overwrite the access IPv4 source address (client) - - - * - `access-ipv6-source-address` - - Overwrite the access IPv6 source address (client) - - - * - `max-packets` - - Send a burst of N packets and stop - - 0 (infinity) - * - `start-delay` - - Wait N seconds after the session is established before starting - - 0 - * - `tx-label1` - - MPLS send (TX) label (outer label) - - - * - `tx-label1-exp` - - EXP bits of the first label (outer label) - - 0 - * - `tx-label1-ttl` - - TTL of the first label (outer label) - - 255 - * - `tx-label2` - - MPLS send (TX) label (inner label) - - - * - `tx-label2-exp` - - EXP bits of the second label (inner label) - - 0 - * - `tx-label2-ttl` - - TTL of the second label (inner label) - - 255 - * - `rx-label1` - - Expected receive MPLS label (outer label) - - - * - `rx-label2` - - Expected receive MPLS label (inner label) - - - * - `ldp-ipv4-lookup-address` - - Dynamically resolve outer label - - - * - `ldp-ipv6-lookup-address` - - Dynamically resolve outer label - - - * - `nat` - - Enable NAT support - - - * - `raw-tcp` - - Send RAW TCP traffic (UDP like traffic with TCP header) - - - -For L2TP downstream traffic, the IPv4 TOS is applied to the outer IPv4 -and inner IPv4 header. - -The ``pps`` option supports also float numbers like 0.1, or 2.5 PPS and has -priority over ``bps`` where the second is only a helper to calculate the ``pps`` -based on given ``bps`` and ``length``. The resulting rate in ``bps`` is the -layer 3 rate because ``length`` is also the layer 3 length (IP header + payload). -It is also supported to put the capital letters ``K`` (Kilo), ``M`` (Mega) -or ``G`` (Giga) in front of ``bps`` for better readability. -For example ``"Gbps": 1`` which is equal to ``"bps": 1000000000``. - -The options ``access-ipv4-source-address`` and ``access-ipv6-source-address`` -can be used to test the BNG RPF functionality with traffic sent from source addresses -different than those assigned to the client. ++--------------------------------+------------------------------------------------------------------+ +| Attribute | Description | ++--------------------------------+------------------------------------------------------------------+ +| **name** | | Mandatory stream name. | ++--------------------------------+------------------------------------------------------------------+ +| **stream-group-id** | | Stream group identifier. | +| | | Default: 0 (raw) | ++--------------------------------+------------------------------------------------------------------+ +| **type** | | Mandatory stream type (`ipv4`, `ipv6`, or `ipv6pd`). | ++--------------------------------+------------------------------------------------------------------+ +| **direction** | | Stream direction (`upstream`, `downstream`, or `both`). | +| | | Default: `both` | ++--------------------------------+------------------------------------------------------------------+ +| **source-port** | | Overwrite the default source port. | +| | | Default: 65056 Range: 0 - 65535 | ++--------------------------------+------------------------------------------------------------------+ +| **destination-port** | | Overwrite the default destination port. | +| | | Default: 65056 Range: 0 - 65535 | ++--------------------------------+------------------------------------------------------------------+ +| **ipv4-df** | | Set IPv4 DF bit. | +| | | Default: true | ++--------------------------------+------------------------------------------------------------------+ +| **priority** | | IPv4 TOS / IPv6 TC. | +| | | For L2TP downstream traffic, the IPv4 TOS is applied | +| | | to the outer IPv4 and inner IPv4 header. | +| | | Default: 0 Range: 0 - 255 | ++--------------------------------+------------------------------------------------------------------+ +| **vlan-priority** | | VLAN priority. | +| | | Default: 0 Range: 0 - 7 | ++--------------------------------+------------------------------------------------------------------+ +| **length** | | Layer 3 (IP header + payload) traffic length. | +| | | Default: 128 Range: 76 - 9000 | ++--------------------------------+------------------------------------------------------------------+ +| **pps** | | Stream traffic rate in packets per second. | +| | | This value supports also float numbers like 0.1 or 2.5. | +| | | In example 0.1 means one packet every 10 seconds. | +| | | Default: 1.0 | ++--------------------------------+------------------------------------------------------------------+ +| **bps** | | Stream traffic rate in bits per second (layer 3). | +| | | PPS has priority over bps where the second is only a helper | +| | | to calculate the actual PPS based on given bps and length. | +| | | The resulting rate in bps is the layer 3 rate because length | +| | | is also the layer 3 length (IP header + payload). | +| | | It is also supported to put the capital letters K (Kilo), | +| | | M (Mega) or G (Giga) in front of bps for better readability. | +| | | For example, ``"Gbps": 1`` | +| | | which is equal to ``"bps": 1000000000``. | ++--------------------------------+------------------------------------------------------------------+ +| **a10nsp-interface** | | Select the corresponding A10NSP interface for this stream. | ++--------------------------------+------------------------------------------------------------------+ +| **network-interface** | | Select the corresponding network interface for this stream. | ++--------------------------------+------------------------------------------------------------------+ +| **network-ipv4-address** | | Overwrite network interface IPv4 address. | ++--------------------------------+------------------------------------------------------------------+ +| **network-ipv6-address** | | Overwrite network interface IPv6 address. | ++--------------------------------+------------------------------------------------------------------+ +| **destination-ipv4-address** | | Overwrite the IPv4 destination address. | ++--------------------------------+------------------------------------------------------------------+ +| **destination-ipv6-address** | | Overwrite the IPv6 destination address. | ++--------------------------------+------------------------------------------------------------------+ +| **access-ipv4-source-address** | | Overwrite the access IPv4 source address (client). | +| | | This option can be used to test the BNG RPF functionality | +| | | with traffic sent from source addresses different than those | +| | | assigned to the client. | ++--------------------------------+------------------------------------------------------------------+ +| **access-ipv6-source-address** | | Overwrite the access IPv6 source address (client). | +| | | This option can be used to test the BNG RPF functionality | +| | | with traffic sent from source addresses different than those | +| | | assigned to the client. | ++--------------------------------+------------------------------------------------------------------+ +| **max-packets** | | Send a burst of N packets and stop. | +| | | Default: 0 (infinity) | ++--------------------------------+------------------------------------------------------------------+ +| **start-delay** | | Wait N seconds after the session is established | +| | | before starting the traffic stream. | +| | | Default: 0 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label1** | | MPLS send (TX) label (outer label). | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label1-exp** | | EXP bits of the first label (outer label). | +| | | Default: 0 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label1-ttl** | | TTL of the first label (outer label). | +| | | Default: 255 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label2** | | MPLS send (TX) label (inner label). | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label2-exp** | | EXP bits of the second label (inner label). | +| | | Default: 0 | ++--------------------------------+------------------------------------------------------------------+ +| **tx-label2-ttl** | | TTL of the second label (inner label). | +| | | Default: 255 | ++--------------------------------+------------------------------------------------------------------+ +| **rx-label1** | | Expected receive MPLS label (outer label). | ++--------------------------------+------------------------------------------------------------------+ +| **rx-label2** | | Expected receive MPLS label (inner label). | ++--------------------------------+------------------------------------------------------------------+ +| **ldp-ipv4-lookup-address** | | Dynamically resolve outer label. | ++--------------------------------+------------------------------------------------------------------+ +| **ldp-ipv6-lookup-address** | | Dynamically resolve outer label. | ++--------------------------------+------------------------------------------------------------------+ +| **nat** | | Enable NAT support. | +| | | Default: false | ++--------------------------------+------------------------------------------------------------------+ +| **raw-tcp** | | Send RAW TCP traffic (UDP-like traffic with TCP header). | +| | | Default: false | ++--------------------------------+------------------------------------------------------------------+ diff --git a/docsrc/sources/configuration/traffic.rst b/docsrc/sources/configuration/traffic.rst index 8cf7bcd8..bbff066c 100644 --- a/docsrc/sources/configuration/traffic.rst +++ b/docsrc/sources/configuration/traffic.rst @@ -2,27 +2,21 @@ { "traffic": {} } - -.. list-table:: - :widths: 25 50 25 - :header-rows: 1 - - * - Attribute - - Description - - Default - * - `autostart` - - Automatically start traffic - - true - * - `stop-verified` - - Automatically stop traffic streams if verified - - false - * - `max-burst` - - Stream flow burst size in packets - - 16 - * - `stream-rate-calculation` - - Enable stream rate calculation - - true - -The option ``stream-rate-calculation`` should be set to -false if massive streams (> 1M) are defined but per-stream -live rate statistics are not required. \ No newline at end of file ++-----------------------------+--------------------------------------------------------+ +| Attribute | Description | ++=============================+========================================================+ +| **autostart** | | Automatically start traffic. | +| | | Default: true | ++-----------------------------+--------------------------------------------------------+ +| **stop-verified** | | Automatically stop traffic streams if verified. | +| | | Default: false | ++-----------------------------+--------------------------------------------------------+ +| **max-burst** | | Stream flow burst size in packets. | +| | | Default: 16 | ++-----------------------------+--------------------------------------------------------+ +| **stream-rate-calculation** | | Enable stream rate calculation. | +| | | This option should be set to false if massive | +| | | streams (e.g. more than 1M) are defined but | +| | | per-stream live rate statistics are not required. | +| | | Default: true | ++-----------------------------+--------------------------------------------------------+ \ No newline at end of file diff --git a/docsrc/sources/index.rst b/docsrc/sources/index.rst index 9845cffe..0f90b09a 100644 --- a/docsrc/sources/index.rst +++ b/docsrc/sources/index.rst @@ -99,6 +99,7 @@ Contents routing/index streams http + nat reports configuration/index api/index diff --git a/docsrc/sources/nat.rst b/docsrc/sources/nat.rst new file mode 100644 index 00000000..081faf97 --- /dev/null +++ b/docsrc/sources/nat.rst @@ -0,0 +1,343 @@ +.. _nat: + +NAT / CGNAT +=========== + +NAT, or Network Address Translation, is a technology used in +computer networking to enable multiple devices on a local +network to share a single public IP address for connecting to +the internet. NAT works by mapping private IP addresses used +within a local network to a single public IP address when +communicating with external networks, such as the internet. +This allows a single public IP address to serve as an entry +point for multiple devices within the private network, +effectively concealing the internal network structure. + +Carrier-Grade NAT (CGNAT) is an extension of NAT specifically +designed for large-scale service providers, such as internet +service providers (ISPs) and telecommunications companies. +It is used to address the increasing scarcity of IPv4 addresses, +as more and more devices are connected to the internet. + +The BNG Blaster incorporates a comprehensive set of functionalities +tailored to NAT, with a particular focus on CGNAT testing. These +features are purpose-built to address the specific requirements and +complexities associated with Carrier-Grade Network Address Translation. + +The tool offers a range of capabilities that are instrumental in assessing +and validating the performance and functionality of CGNAT systems. +This includes the ability to simulate and analyze large-scale address +translation scenarios, ensuring that the NAT infrastructure effectively +handles the demands of a multitude of users sharing a limited pool of public +IP addresses. Furthermore, the BNG Blaster's CGNAT testing features enable the +emulation of various network conditions and scenarios, helping service providers +and network operators assess the impact of CGNAT on user experiences and address +any potential issues. + +In addition to CGNAT testing, the BNG Blaster's NAT-related features encompass +a broad spectrum of testing and evaluation options, ensuring that Network Address +Translation mechanisms, whether they be traditional NAT or CGNAT, are rigorously +examined for performance, scalability, and reliability. This robust suite of tools +makes the BNG Blaster an invaluable resource for network professionals working +with NAT technologies in their infrastructure. + +NAT Features +------------ + +Reverse Flow +~~~~~~~~~~~~ +For all bidirectional streams ("direction": "both"), the reverse (other direction) +stream flow-id is now displayed which allows for more efficient analysis of +bidirectional flows. + +.. code-block:: none + + $ sudo bngblaster-cli run.sock stream-info flow-id 1 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + … + "flow-id": 1, + … + "reverse-flow-id": 2 + } + } + $ sudo bngblaster-cli run.sock stream-info flow-id 2 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + … + "flow-id": 2, + … + "reverse-flow-id": 1 + } + } + +Flow Addresses +~~~~~~~~~~~~~~ +The configured or dynamically resolved source and destination +address and port is now shown with stream-info command. + +.. code-block:: none + + $ sudo bngblaster-cli run.sock stream-info flow-id 1 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + "type": "unicast", + "sub-type": "ipv4", + "direction": "downstream", + "source-address": "10.0.0.1", + "source-port": 65056, + "destination-address": "192.0.2.8", + "destination-port": 65056, + "protocol": "udp", # udp or tcp + … + } + } + + +NAT Enabled Streams +~~~~~~~~~~~~~~~~~~~ +A new option called **nat** is added to the stream configuraton. +This option is supported for bidirectional and upstream streams only, +meaning it is not supported for downstream-only streams, as those can't +pass a NAT gateway. + +For bidirectional streams, the downstream flow waits until first upstream +packet has been received to learn the translated source address and port +which have to be used as destionation for this flow. + +.. code-block:: json + + { + "streams": [ + { + "name": "UDP1", + "stream-group-id": 1, + "type": "ipv4", + "direction": "both", + "pps": 1, + "nat": true, + "network-ipv4-address": "10.0.0.1" + }, + { + "name": "UDP2", + "stream-group-id": 1, + "type": "ipv4", + "direction": "upstream", + "pps": 1, + "nat": true, + "network-ipv4-address": "10.0.0.2" + } + ] + } + +The stream in the upstream direction (from the client) will also record the +received source IPv4 address and port, meaning the address and port assigned by the +NAT gateway. + +.. code-block:: none + + $ sudo bngblaster-cli run.sock stream-info flow-id 1 + { + "status": "ok", + "code": 200, + "stream-info": { + "name": "UDP1", + "type": "unicast", + "sub-type": "ipv4", + "direction": "upstream", + "source-address": "100.64.0.2", + "source-port": 65056, + "destination-address": "10.0.0.1", + "destination-port": 65056, + "protocol": "udp", # udp or tcp + … + "rx-source-ip": "192.0.2.8", + "rx-source-port": 48523, + … + "session-id": 1, + "reverse-flow-id": 2 + } + } + + +TCP RAW Streams +~~~~~~~~~~~~~~~ +A new option called **raw-tcp** is added to the stream configuraton. +If enabled, UDP-like traffic with a constant rate is sent using a +static (RAW) TCP header. + +.. code-block:: json + + { + "streams": [ + { + "name": "TCP1", + "stream-group-id": 1, + "type": "ipv4", + "direction": "both", + "pps": 1, + "raw-tcp": true, + "network-ipv4-address": "10.0.0.1" + } + ] + } + +This option can be used stand-alone to verify firewall filters or together +with the new NAT option to verify NAT TCP streams. + +For now, TCP flags (SYN, …) are statically set to SYN but this could be adopted if needed. + +HTTP NAT Extension +~~~~~~~~~~~~~~~~~~ +The existing :ref:`HTTP client/server ` was also enhanced for NAT usage. +The actual configuration is uncahnged but the HTTP server will now return the +received client IP address and port in dedicated HTTP headers as shown below +where X-Client-Ip and Port shows the IP address and port assigned from the NAT gateway. + +.. code-block:: json + + { + "interfaces": { + "capture-include-streams": true, + "network": { + "interface": "enp6s21", + "address": "192.0.2.254/24", + "gateway": "192.0.2.1" + }, + "access": [ + { + "interface": "enp6s20", + "type": "ipoe", + "address": "100.64.0.2", + "address-iter": "0.0.0.1", + "gateway": "100.64.0.1", + "gateway-iter": "0.0.0.0", + "dhcp": false, + "ipv6": false, + "http-client-group-id": 1 + } + ] + }, + "http-client": [ + { + "http-client-group-id": 1, + "name": "C1", + "destination-ipv4-address": "192.0.2.254", + "destination-port": 80, + "url": "blaster.test.de" + }, + { + "http-client-group-id": 1, + "name": "C2", + "destination-ipv4-address": "192.0.2.254", + "destination-port": 80, + "url": "blaster.test.de" + } + ], + "http-server": [ + { + "name": "SERVER", + "ipv4-address": "192.0.2.254", + "port": 80, + "network-interface": "enp6s21" + } + ] + } + +.. code-block:: none + + $ sudo bngblaster-cli run.sock http-clients + { + "status": "ok", + "code": 200, + "http-clients": [ + { + "session-id": 1, + "http-client-group-id": 1, + "name": "C2", + "url": "blaster.test.de", + "destination-address": "192.0.2.254", + "destination-port": 80, + "state": "closed", + "response": { + "minor-version": 1, + "status": 200, + "msg": "OK\r\nServer: BNG-Blaster\r\nX-Client-Ip: 192.0.2.5\r\nX-Client-Port: 63122\r\n\r\n", + "headers": [ + { + "name": "Server", + "value": "BNG-Blaster" + }, + { + "name": "X-Client-Ip", + "value": "192.0.2.5" + }, + { + "name": "X-Client-Port", + "value": "63122" + } + ] + } + }, + { + "session-id": 1, + "http-client-group-id": 1, + "name": "C1", + "url": "blaster.test.de", + "destination-address": "192.0.2.254", + "destination-port": 80, + "state": "closed", + "response": { + "minor-version": 1, + "status": 200, + "msg": "OK\r\nServer: BNG-Blaster\r\nX-Client-Ip: 192.0.2.5\r\nX-Client-Port: 63121\r\n\r\n", + "headers": [ + { + "name": "Server", + "value": "BNG-Blaster" + }, + { + "name": "X-Client-Ip", + "value": "192.0.2.5" + }, + { + "name": "X-Client-Port", + "value": "63121" + } + ] + } + } + ] + } + +Unfortunately HTTP client/server scaling is limited, therefore raw-TCP +streams is the better option to test NAT on scale. + +Scaling +~~~~~~~ +The number of UDP and raw-TCP traffic streams can be further expanded by +leveraging the following configuration options. + +One option to increase scaling is to disable per stream live rate calculation +which is typically not needed for millions of streams. + +.. code-block:: json + + { "traffic": { "stream-rate-calculation": false } } + +All traffic stats are still working but the live rate is not calculated. + +Another option is to setup the traffic streams with a rate of 0.1 PPS, +meaning one packet every 10 seconds. This is enough to keep NAT translation +active but allows 1M streams with only 100K PPS. + +See also :ref:`performance guide ` for further optimiisations. \ No newline at end of file diff --git a/docsrc/sources/routing/index.rst b/docsrc/sources/routing/index.rst index 07b1b4d2..adf9ee51 100644 --- a/docsrc/sources/routing/index.rst +++ b/docsrc/sources/routing/index.rst @@ -1,9 +1,9 @@ Routing Protocols ================= -There are various routing protocols supported like ISIS and BGP. -So you can use the BNG Blaster for end-to-end BNG and non-BNG -router testing. +Multiple routing protocols are available, including ISIS and BGP. +To perform comprehensive end-to-end testing for both BNG and +non-BNG routers, you can use the BNG Blaster. .. toctree:: :maxdepth: 1