1
0
mirror of https://github.com/rtbrick/bngblaster.git synced 2024-05-06 15:54:57 +00:00
Christian Giese 0d5b4d84a4 update sphinx docu
2022-03-31 18:45:37 +02:00

265 lines
10 KiB
ReStructuredText

Reports
=======
The BNG Blaster is able to generate detailed result reports
at the end of of the test execution.
Standard Output Reports
-----------------------
.. code-block:: none
____ __ ____ _ __ ,/
/ __ \ / /_ / __ ) _____ (_)_____ / /__ ,'/
/ /_/ // __// __ |/ ___// // ___// //_/ ,' /
/ _, _// /_ / /_/ // / / // /__ / ,< ,' /_____,
/_/ |_| \__//_____//_/ /_/ \___//_/|_| .'____ ,'
____ _ _ ______ ____ _ _ / ,'
/ __ ) / | / // ____/ / __ ) / /____ _ _____ / /_ ___ ____ / ,'
/ __ |/ |/ // / __ / __ |/ // __ `// ___// __// _ \ / ___/ /,'
/ /_/ // /| // /_/ / / /_/ // // /_/ /(__ )/ /_ / __// / /
/_____//_/ |_/ \____/ /_____//_/ \__,_//____/ \__/ \___//_/
Report:
Sessions PPPoE: 500 IPoE: 0
Sessions established: 500/500
DHCPv6 sessions established: 500
Setup Time: 396 ms
Setup Rate: 1262.63 CPS (MIN: 1262.63 AVG: 1262.63 MAX: 1262.63)
Flapped: 0
Network Interface ( eth2 ):
TX: 25503 packets
RX: 24254 packets
TX Session: 8500 packets
RX Session: 8248 packets (0 loss)
TX Session IPv6: 8500 packets
RX Session IPv6: 8000 packets (0 loss)
TX Session IPv6PD: 8500 packets
RX Session IPv6PD: 8000 packets (0 loss)
TX Multicast: 0 packets
RX Drop Unknown: 1 packets
TX Encode Error: 0
RX Decode Error: 0 packets
TX Send Failed: 0
TX No Buffer: 0
TX Poll Kernel: 0
RX Poll Kernel: 3932
Access Interface ( eth1 ):
TX: 33250 packets
RX: 34047 packets
TX Session: 8500 packets
RX Session: 8248 packets (0 loss, 0 wrong session)
TX Session IPv6: 8500 packets
RX Session IPv6: 8000 packets (0 loss, 0 wrong session)
TX Session IPv6PD: 8500 packets
RX Session IPv6PD: 8000 packets (0 loss, 0 wrong session)
RX Multicast: 0 packets (0 loss)
RX Drop Unknown: 1 packets
TX Encode Error: 33250 packets
RX Decode Error: 0 packets
TX Send Failed: 0
TX No Buffer: 0
TX Poll Kernel: 0
RX Poll Kernel: 3932
Access Interface Protocol Packet Stats:
ARP TX: 0 RX: 0
PADI TX: 500 RX: 0
PADO TX: 0 RX: 500
PADR TX: 500 RX: 0
PADS TX: 0 RX: 500
PADT TX: 1 RX: 499
LCP TX: 2249 RX: 2249
PAP TX: 250 RX: 250
CHAP TX: 250 RX: 500
IPCP TX: 1500 RX: 1500
IP6CP TX: 1500 RX: 1500
IGMP TX: 0 RX: 1298
ICMP TX: 0 RX: 0
ICMPv6 TX: 500 RX: 500
DHCPv6 TX: 500 RX: 500
Access Interface Protocol Timeout Stats:
LCP Echo Request: 0
LCP Request: 0
IPCP Request: 0
IP6CP Request: 0
PAP: 0
CHAP: 0
ICMPv6 RS: 0
DHCPv6 Request: 0
Session Traffic:
Config:
IPv4 PPS: 1
IPv6 PPS: 1
IPv6PD PPS: 1
Verified Traffic Flows: 3000/3000
Access IPv4: 500
Access IPv6: 500
Access IPv6PD: 500
Network IPv4: 500
Network IPv6: 500
Network IPv6PD: 500
First Sequence Number Received:
Access IPv4 MIN: 1 ( 1.000s) MAX: 2 ( 2.000s)
Access IPv6 MIN: 2 ( 2.000s) MAX: 2 ( 2.000s)
Access IPv6PD MIN: 2 ( 2.000s) MAX: 2 ( 2.000s)
Network IPv4 MIN: 1 ( 1.000s) MAX: 2 ( 2.000s)
Network IPv6 MIN: 2 ( 2.000s) MAX: 2 ( 2.000s)
Network IPv6PD MIN: 2 ( 2.000s) MAX: 2 ( 2.000s)
JSON Reports
------------
A detailed JSON report is generated if enabled using the optional
argument ``-J <filename>`` as shown in the example below.
.. code-block:: json
{
"report": {
"sessions": 500,
"sessions-pppoe": 500,
"sessions-ipoe": 0,
"sessions-established": 500,
"sessions-flapped": 0,
"setup-time-ms": 396,
"setup-rate-cps": 1263,
"setup-rate-cps-min": 1263,
"setup-rate-cps-avg": 1263,
"setup-rate-cps-max": 1263,
"dhcpv6-sessions-established": 500,
"network-interfaces": [
{
"name": "eth2",
"tx-packets": 25503,
"rx-packets": 24254,
"tx-session-packets": 8500,
"rx-session-packets": 8248,
"rx-session-packets-loss": 0,
"tx-session-packets-avg-pps-max": 500,
"rx-session-packets-avg-pps-max": 500,
"tx-session-packets-ipv6": 8500,
"rx-session-packets-ipv6": 8000,
"rx-session-packets-ipv6-loss": 0,
"tx-session-packets-avg-pps-max-ipv6": 500,
"rx-session-packets-avg-pps-max-ipv6": 500,
"tx-session-packets-ipv6pd": 8500,
"rx-session-packets-ipv6pd": 8000,
"rx-session-packets-ipv6pd-loss": 0,
"tx-session-packets-avg-pps-max-ipv6pd": 500,
"rx-session-packets-avg-pps-max-ipv6pd": 500,
"tx-multicast-packets": 0
}
],
"access-interfaces": [
{
"name": "eth1",
"tx-packets": 33250,
"rx-packets": 34047,
"tx-session-packets": 8500,
"rx-session-packets": 8248,
"rx-session-packets-loss": 0,
"rx-session-packets-wrong-session": 0,
"tx-session-packets-avg-pps-max": 500,
"rx-session-packets-avg-pps-max": 500,
"tx-session-packets-ipv6": 8500,
"rx-session-packets-ipv6": 8000,
"rx-session-packets-ipv6-loss": 0,
"rx-session-packets-ipv6-wrong-session": 0,
"tx-session-packets-avg-pps-max-ipv6": 500,
"rx-session-packets-avg-pps-max-ipv6": 500,
"tx-session-packets-ipv6pd": 8500,
"rx-session-packets-ipv6pd": 8000,
"rx-session-packets-ipv6pd-loss": 0,
"rx-session-packets-ipv6pd-wrong-session": 0,
"tx-session-packets-avg-pps-max-ipv6pd": 500,
"rx-session-packets-avg-pps-max-ipv6pd": 500,
"rx-multicast-packets": 0,
"rx-multicast-packets-loss": 0,
"protocol-stats": {
"arp-tx": 0,
"arp-rx": 0,
"padi-tx": 500,
"pado-rx": 500,
"padr-tx": 500,
"pads-rx": 500,
"padt-tx": 1,
"padt-rx": 499,
"lcp-tx": 2249,
"lcp-rx": 2249,
"pap-tx": 250,
"pap-rx": 250,
"chap-tx": 250,
"chap-rx": 500,
"ipcp-tx": 1500,
"ipcp-rx": 1500,
"ip6cp-tx": 1500,
"ip6cp-rx": 1500,
"igmp-tx": 0,
"igmp-rx": 1298,
"icmp-tx": 0,
"icmp-rx": 0,
"icmpv6-tx": 500,
"icmpv6-rx": 500,
"dhcpv6-tx": 500,
"dhcpv6-rx": 500,
"lcp-echo-timeout": 0,
"lcp-request-timeout": 0,
"ipcp-request-timeout": 0,
"ip6cp-request-timeout": 0,
"pap-timeout": 0,
"chap-timeout": 0,
"icmpv6-rs-timeout": 0,
"dhcpv6-timeout": 0
}
],
"session-traffic": {
"config-ipv4-pps": 1,
"config-ipv6-pps": 1,
"config-ipv6pd-pps": 1,
"total-flows": 3000,
"verified-flows": 3000,
"verified-flows-access-ipv4": 500,
"verified-flows-access-ipv6": 500,
"verified-flows-access-ipv6pd": 500,
"verified-flows-network-ipv4": 500,
"verified-flows-network-ipv6": 500,
"verified-flows-network-ipv6pd": 500,
"first-seq-rx-access-ipv4-min": 1,
"first-seq-rx-access-ipv4-max": 2,
"first-seq-rx-access-ipv6-min": 2,
"first-seq-rx-access-ipv6-max": 2,
"first-seq-rx-access-ipv6pd-min": 2,
"first-seq-rx-access-ipv6pd-max": 2,
"first-seq-rx-network-ipv4-min": 1,
"first-seq-rx-network-ipv4-max": 2,
"first-seq-rx-network-ipv6-min": 2,
"first-seq-rx-network-ipv6-max": 2,
"first-seq-rx-network-ipv6pd-min": 2,
"first-seq-rx-network-ipv6pd-max": 2
}
}
}
The optional argument ``-j sessions`` allows to include per session statistics
in the report file. Similar with ``-j streams`` which allows to include per stream
statistics. Both options could be also combined.
Those extensive JSON reports could be easily verified with simple python scripts to
extract the desired results.
.. code-block:: python
#!/usr/bin/env python3
import json
# Open JSON report ...
with open('report.json') as f:
data = json.load(f)
# Analyze data ...