1
0
mirror of https://github.com/rtbrick/bngblaster.git synced 2024-05-06 15:54:57 +00:00
2021-03-12 14:09:38 +01:00

13 KiB

Reports

The BNG Blaster is able to generate detailed result reports at the end of of the test execution.

Standard Output Reports


      ____   __   ____         _        __                                  ,/
     / __ \ / /_ / __ ) _____ (_)_____ / /__                              ,'/
    / /_/ // __// __  |/ ___// // ___// //_/                            ,' /
   / _, _// /_ / /_/ // /   / // /__ / ,<                             ,'  /_____,    
  /_/ |_| \__//_____//_/   /_/ \___//_/|_|                          .'____    ,'   
      ____   _   _  ______   ____   _               _                    /  ,'
     / __ ) / | / // ____/  / __ ) / /____ _ _____ / /_ ___   ____      / ,'
    / __  |/  |/ // / __   / __  |/ // __ `// ___// __// _ \ / ___/    /,'
   / /_/ // /|  // /_/ /  / /_/ // // /_/ /(__  )/ /_ /  __// /       / 
  /_____//_/ |_/ \____/  /_____//_/ \__,_//____/ \__/ \___//_/

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 MAX:        2
    Access  IPv6    MIN:        2 MAX:        2
    Access  IPv6PD  MIN:        2 MAX:        2
    Network IPv4    MIN:        1 MAX:        2
    Network IPv6    MIN:        2 MAX:        2
    Network IPv6PD  MIN:        2 MAX:        2

JSON Reports

A detailed JSON report is generated if enabled using the optional argument -J <filename> as shown in the example below.

{
  "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
    }
  }
}

Interface Statistics

Session Traffic Statistics

Those statistics are related to the test traffic send between PPPoE sessions and the network interface.

Flow Description
Access RX Network traffic received on access interface (downstream)
Access TX Network traffic send from access interface (Upstream)
Network RX Access traffic received on network interface (Upstream)
Network TX Access traffic send from network interface (downstream)

Verified Traffic Flows

Counts the verified traffic flows per type and direction.

The Access IPv4 tells how many sessions have successfully received session verification traffic IPv4 traffic on the access interface. Similar for IPv6 or IPv6PD (prefix delegation). Session verification traffic received on the network interface is counted similar using the Network IP... statistics.

Assuming session traffic is enabled for IPv4, IPv6 and IPv6PD, in this case all statics should be equal matching the number of sessions.

Example report output for 100 sessions:

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 MAX:        2
    Access  IPv6    MIN:        2 MAX:        2
    Access  IPv6PD  MIN:        2 MAX:        2
    Network IPv4    MIN:        1 MAX:        2
    Network IPv6    MIN:        2 MAX:        2
    Network IPv6PD  MIN:        2 MAX:        2

JSON:

{
    "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 flow verification status can be also queried via global control socket command session-traffic.

$ cat command.json | jq .

{
  "command": "session-traffic"
}

$ cat command.json | sudo nc -U test.socket | jq .

{
    "status": "ok",
    "code": 200,
    "session-traffic": {
        "total-flows": 3000,
        "verified-flows": 3000
    }
}

First Sequence Number Received

If session traffic is enabled, the BNG Blaster will start sending bidirectional traffic between PPPoE session and network interface as soon as the session is established using the rate as configured starting with sequence number 1 for each flow.

Example config output with 1 packet per second:

{
    "session-traffic": {
        "ipv4-pps": 1,
        "ipv6-pps": 1,
        "ipv6pd-pps": 1
    }
}

Assuming the first sequence number received for given flow is 5 combined with a rate of 1 PPS would mean that it took between 4 and 5 seconds until forwarding is working.

Example report output with 1 packet per second:

STDOUT:

  First Sequence Number Received:
    Access  IPv4    MIN:        1 MAX:        1
    Access  IPv6    MIN:        1 MAX:        1
    Access  IPv6PD  MIN:        1 MAX:        1
    Network IPv4    MIN:        1 MAX:        1
    Network IPv6    MIN:        1 MAX:        1
    Network IPv6PD  MIN:        1 MAX:        1

JSON:

{
      "first-seq-rx-access-ipv4-min": 1,
      "first-seq-rx-access-ipv4-max": 1,
      "first-seq-rx-access-ipv6-min": 1,
      "first-seq-rx-access-ipv6-max": 1,
      "first-seq-rx-access-ipv6pd-min": 1,
      "first-seq-rx-access-ipv6pd-max": 1,
      "first-seq-rx-network-ipv4-min": 1,
      "first-seq-rx-network-ipv4-max": 1,
      "first-seq-rx-network-ipv6-min": 1,
      "first-seq-rx-network-ipv6-max": 1,
      "first-seq-rx-network-ipv6pd-min": 1,
      "first-seq-rx-network-ipv6pd-max": 1
}