diff --git a/README.md b/README.md index 960d6ea1..08d68f47 100644 --- a/README.md +++ b/README.md @@ -5,21 +5,19 @@ [![License](https://img.shields.io/badge/License-BSD-lightgrey)](https://github.com/rtbrick/bngblaster/blob/main/LICENSE) [![Documentation](https://img.shields.io/badge/Documentation-lightgrey)](https://rtbrick.github.io/bngblaster) -The BNG Blaster is an open-source network tester for access and routing protocols. -It can simulate massive PPPoE and IPoE (DHCP) subscribers including IPTV, and L2TPv2. +The BNG Blaster is an open-source network tester +for access and routing protocols. It can emulate massive +PPPoE and IPoE (DHCP) subscribers including IPTV, and L2TP (LNS). +There are various routing protocols supported like ISIS and BGP. +So you can use it for end-to-end BNG and non-BNG router testing. -There are various routing protocols supported like ISIS and BGP. So you can use it for -end-to-end BNG and non-BNG router testing. +You can use the included traffic generator for forwarding verification, +QoS testing or to measure convergence times. The traffic generator supports +millions of separate tracked flows. This allows you to verify every single +forwarding state of a full feed internet routing table. You can also send +traffic to every single QoS queue of your service edge router. -You can use the included traffic generator for forwarding verification, which allows you -to test QoS configurations or measure convergence times. - -The traffic generator supports more than a million separate tracked flows. -So you can use this to verify every single forwarding state of a full feed -internet routing table. You can also send traffic for every single QoS queue -of carrier grade BNG hardware. - -The BNG Blaster is used by network operators and vendors of network hard- and software. +The BNG Blaster is used by leading network operators, network hard- and software vendors. A short [introduction](https://youtu.be/EHJ70p0_Sw0 "BNG Blaster") and good presentation from [DENOG13](https://youtu.be/LVg6rlVEfNU "DENOG13") can be found on YouTube. diff --git a/docsrc/sources/access/ipoe.rst b/docsrc/sources/access/ipoe.rst index ee5e56e3..1e8c0991 100644 --- a/docsrc/sources/access/ipoe.rst +++ b/docsrc/sources/access/ipoe.rst @@ -78,7 +78,7 @@ DHCPv6 IPoE Commands ~~~~~~~~~~~~~ -The control socket command ``session-info session-id `` provides +The :ref:`command ` ``session-info session-id `` provides detailed information for IPoE sessions. ``$ sudo bngblaster-cli run.sock session-info session-id 1 | jq .`` diff --git a/docsrc/sources/access/l2tp.rst b/docsrc/sources/access/l2tp.rst index 6269fede..27bd169d 100644 --- a/docsrc/sources/access/l2tp.rst +++ b/docsrc/sources/access/l2tp.rst @@ -325,7 +325,7 @@ is possible to send also CSURQ requests to the LAC. L2TP Commands ~~~~~~~~~~~~~ -The control socket command ``session-info l2tp-tunnels`` provides +The :ref:`command ` ``session-info l2tp-tunnels`` provides detailed information about L2TP tunnels. ``$ sudo bngblaster-cli run.sock l2tp-tunnels`` @@ -357,7 +357,7 @@ detailed information about L2TP tunnels. ] } -The ``l2tp-sessions`` command returns all L2TP sessions. +The ``l2tp-sessions`` :ref:`command ` returns all L2TP sessions. ``$ sudo bngblaster-cli run.sock l2tp-sessions`` diff --git a/docsrc/sources/access/multicast.rst b/docsrc/sources/access/multicast.rst index 8e3f2326..15da36d9 100644 --- a/docsrc/sources/access/multicast.rst +++ b/docsrc/sources/access/multicast.rst @@ -101,8 +101,8 @@ allows to search for the missing packets in the corresponding capture files. Manual Join/Leave Testing ~~~~~~~~~~~~~~~~~~~~~~~~~ -It is possible to join and leave multicast groups manually using the <> as -shown in the example below. +It is possible to join and leave multicast groups manually using the :ref:`command ` +``igmp-join``. ``$ sudo bngblaster-cli run.sock igmp-join session-id 1 group 232.1.1.1 source1 202.11.23.101 source2 202.11.23.102 source3 202.11.23.103`` @@ -183,7 +183,7 @@ sending leave and the last multicast packet received for this group. Multicast p received for the leaved group after first packet of joined group is received are counted as overlap. -The following configuration shows an example of the `igmp` section +The following configuration shows an example of the ``igmp`` section for a typical zapping test. .. code-block:: json @@ -205,13 +205,12 @@ for a typical zapping test. } } +.. include:: ../configuration/igmp.rst + Multicast Limitations ~~~~~~~~~~~~~~~~~~~~~ The BNG Blaster IGMP implementation supports up to 3 sources per group record and 8 group records per session. -The IGMP protocol stops working if IPCP has closed also if session IPCP renegotiates. -The whole session needs to be disconnected to restart IGMP. - The check for overlapping multicast traffic is supported for zapping tests only. diff --git a/docsrc/sources/access/pppoe.rst b/docsrc/sources/access/pppoe.rst index 1e59b58f..1a5772a3 100644 --- a/docsrc/sources/access/pppoe.rst +++ b/docsrc/sources/access/pppoe.rst @@ -125,7 +125,6 @@ PPP IP6CP (IPv6) ^^^^^^^^^^^^^^^^ .. include:: ../configuration/ppp_ip6cp.rst - LCP Vendor Extension ~~~~~~~~~~~~~~~~~~~~ @@ -144,7 +143,7 @@ The value from request is stored in the session as ``connection-status-message`` PPPoE Commands ~~~~~~~~~~~~~~ -The control socket command ``session-info session-id `` provides +The :ref:`command ` ``session-info session-id `` provides detailed information for PPPoE sessions. ``$ sudo bngblaster-cli run.sock session-info session-id 1 | jq .`` diff --git a/docsrc/sources/access/traffic.rst b/docsrc/sources/access/traffic.rst index 69d4651e..90ee32cb 100644 --- a/docsrc/sources/access/traffic.rst +++ b/docsrc/sources/access/traffic.rst @@ -41,8 +41,6 @@ Verification The final report includes detailed information for session traffic. -*Example report output for 100 sessions:* - .. code-block:: none Session Traffic: diff --git a/docsrc/sources/routing/bgp.rst b/docsrc/sources/routing/bgp.rst index e0241941..2c505b84 100644 --- a/docsrc/sources/routing/bgp.rst +++ b/docsrc/sources/routing/bgp.rst @@ -103,7 +103,7 @@ The configured ``raw-update-file`` under the BGP session is loaded during Blaster startup phase and send as soon as the session is established. -The ``bgp-raw-update`` command allows to send further updates during +The ``bgp-raw-update`` :ref:`command ` allows to send further updates during the session lifetime. ``$ sudo bngblaster-cli run.sock bgp-raw-update file update1.bgp`` diff --git a/docsrc/sources/routing/isis.rst b/docsrc/sources/routing/isis.rst index 0ce11ac9..b44bdd2f 100644 --- a/docsrc/sources/routing/isis.rst +++ b/docsrc/sources/routing/isis.rst @@ -168,7 +168,7 @@ LSP entries in the ISIS database. The type ``self`` is used for the self originated LSP describing the own BNG Blaster ISIS instance. LSP entries of type ``adjacency`` are learned via ISIS adjacencies. The type ``external`` is used for those LSP entries -learned via MRT files or injected via ``isis-lsp-update`` command. +learned via MRT files or injected via ``isis-lsp-update`` :ref:`command `. ``$ sudo bngblaster-cli run.sock isis-database instance 1 level 1`` @@ -255,7 +255,7 @@ the ISIS common header starting with ``0x83``. Those files can be loaded at startup via configuration option ``"isis": { "external": { "mrt-file": "" } }`` or alternative -via ``isis-load-mrt`` command. +via ``isis-load-mrt`` :ref:`command `. ``$ sudo bngblaster-cli run.sock isis-load-mrt file test.mrt instance 1`` @@ -263,9 +263,9 @@ LSP Update Command ~~~~~~~~~~~~~~~~~~ It is also possible to inject external LSP's using the ``isis-lsp-update`` -command. +:ref:`command `. -The command expects a list of hex encoded PDU's including +The :ref:`command ` expects a list of hex encoded PDU's including the ISIS common header starting with ``0x83``, ``$ cat command.json | jq .`` @@ -286,15 +286,63 @@ the ISIS common header starting with ``0x83``, LSPGEN ~~~~~~ -The BNG Blaster includes a tool called ```lspgen`` which is able to generate -link state packets and topologies for export as MRT and PCAP files or directly -injected via BNG Blaster LSP update command. +The BNG Blaster includes a tool called ``lspgen`` which is able to generate +link state packets and topologies for export as MRT and PCAP files. This tool +is also able to inject LSP's directly using the ``isis-lsp-update`` +:ref:`command `. + +.. code-block:: none + + $ lspgen --help + + ____ __ ____ _ __ ,/ + / __ \ / /_ / __ ) _____ (_)_____ / /__ ,'/ + / /_/ // __// __ |/ ___// // ___// //_/ ,' / + / _, _// /_ / /_/ // / / // /__ / ,< ,' /_____, + /_/ |_| \__//_____//_/ /_/ \___//_/|_| .'____ ,' + __ _____ ____ ______ / ,' + / / / ___// __ \/ ____/__ ____ / ,' + / / \__ \/ /_/ / / __/ _ \/ __ \ /,' + / /______/ / ____/ /_/ / __/ / / / / + /_____/____/_/ \____/\___/_/ /_/ + + Usage: lspgen [OPTIONS] + + -v --version + -a --area + -K --authentication-key + -T --authentication-type none|simple|md5 + -r --read-config-file + -w --write-config-file + -C --connector + -S --control-socket + -l --ipv4-link-prefix + -L --ipv6-link-prefix + -n --ipv4-node-prefix + -N --ipv6-node-prefix + -x --ipv4-external-prefix + -X --ipv6-external-prefix + -M --lsp-lifetime + -z --no-ipv4 + -Z --no-ipv6 + -e --external-count + -g --graphviz-file + -h --help + -m --mrt-file + -c --node-count + -p --pcap-file + -f --stream-file + -s --seed + -q --sequence + -V --level + -t --log normal|debug|lsp|lsdb|timer|timer-detail|ctrl|error + LSP Update via Scapy ~~~~~~~~~~~~~~~~~~~~ The following example shows how to generate LSP's via Scapy -and inject them using the ``isis-lsp-update`` command. +and inject them using the ``isis-lsp-update`` :ref:`command `. .. code-block:: python diff --git a/docsrc/sources/routing/mpls.rst b/docsrc/sources/routing/mpls.rst index 6e2c9a7d..7ed522fa 100644 --- a/docsrc/sources/routing/mpls.rst +++ b/docsrc/sources/routing/mpls.rst @@ -1,3 +1,5 @@ MPLS ---- +The BNG Blaster is able to send and receive traffic with +up to two MPLS labels. \ No newline at end of file