<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-balarajah-bmwg-ngfw-performance-00"
     ipr="trust200902">
  <front>
    <title abbrev="Benchmarking for NGFW perfromance">Benchmarking Methodology
    for Network Security Device Performance</title>

    <author fullname="Balamuhunthan Balarajah" initials="BB"
            surname="Balarajah">
      <organization>EANTC AG</organization>

      <address>
        <postal>
          <street>Salzufer 14</street>

          <city>Berlin</city>

          <code>10587</code>

          <region/>

          <country>Germany</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>balarajah@eantc.de</email>
      </address>
    </author>

    <date month="December" year="2017"/>

    <area/>

    <workgroup>Benchmarking Methodology Working Group</workgroup>

    <keyword/>

    <keyword/>

    <abstract>
      <t>This document provides benchmarking terminology and methodology for
      next-generation network security devices including next-generation
      firewalls (NGFW), intrusion detection and prevention solutions (IDS/IPS)
      and unified threat management (UTM) implementations. The document aims
      to strongly improve the applicability, reproducibility and transparency
      of benchmarks and to align the test methodology with today’s
      increasingly complex 7application use cases. The main areas covered in
      this document are test terminology, traffic profiles and benchmarking
      methodology for NGFWs to start with.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>TBD</t>
    </section>

    <section title="Requirements">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </section>

    <section title="Scope">
      <t>TBD.</t>
    </section>

    <section anchor="Test_Setup" title="Test Setup">
      <t>Test setup defined in this document will be applicable to all of the
      benchmarking test cases described in <xref pageno="false"
      target="Benchmarking">Section 7</xref>.</t>

      <section title="Testbed Configuration">
        <t>Testbed configuration MUST ensure that any performance implications
        that are discovered during the benchmark testing aren’t due to the
        inherent physical network limitations such as number of physical links
        and forwarding performance capabilities (throughput and latency) of
        the network devise in the testbed. For this reason, this document
        recommends to avoid external devices such as switch and router in the
        testbed as possible.</t>

        <t> In the typical deployment, the security devices (DUT/SUT) will not
        have a large number of entries in MAC or ARP tables, which impact the
        actual DUT/SUT performance due to MAC and ARP table lookup processes.
        Therefore, depend on number of used IP address in client and server
        side, it is recommended to connect Layer 3 device(s) between test
        equipment and DUT/SUT as shown in <xref target="figure1">figure
        1</xref>.</t>

        <t> If the test equipment is capable to emulate layer 3 routing
        functionality and there is no need for test equipment ports
        aggregation, it is recommended to configure the test setup as shown in
        <xref target="figure2">figure 2</xref>.</t>

        <figure anchor="figure1" suppress-title="false"
                title="Testbed Setup - Option 1">
          <artwork> +-------------------+      +-----------+      +--------------------+
 |Aggregation Switch/|      |           |      | Aggregation Switch/|
 | Router            +------+  DUT/SUT  +------+ Router             |
 |                   |      |           |      |                    |
 +----------+--------+      +-----------+      +----------+---------+
            |                                             |
            |                                             |
+-----------+-----------+                    +------------+----------+
|                       |                    |                       |
| +-------------------+ |                    | +-------------------+ |
| | Emulated Router(s)| |                    | | Emulated Router(s)| |
| |     (Optional)    | |                    | |     (Optional)    | |
| +-------------------+ |                    | +-------------------+ |
| +-------------------+ |                    | +-------------------+ |
| |      Clients      | |                    | |     Servers       | |
| +-------------------+ |                    | +-------------------+ |
|                       |                    |                       |
|    Test Equipment     |                    |    Test Equipment     |
+-----------------------+                    +-----------------------+</artwork>
        </figure>

        <figure anchor="figure2" title="Testbed Setup - Option 2">
          <artwork>+-----------------------+                   +-----------------------+
| +-------------------+ |   +-----------+   | +-------------------+ |
| | Emulated Router(s)| |   |           |   | | Emulated Router(s)| |
| |    (Optional)     | +----- DUT/SUT  +-----+    (Optional)     | |
| +-------------------+ |   |           |   | +-------------------+ |
| +-------------------+ |   +-----------+   | +-------------------+ |
| |     Clients       | |                   | |      Servers      | |
| +-------------------+ |                   | +-------------------+ |
|                       |                   |                       |
|   Test Equipment      |                   |   Test Equipment      |
+-----------------------+                   +-----------------------+</artwork>
        </figure>
      </section>

      <section anchor="DUT-SUT_Configuration" title="DUT/SUT Configuration">
        <t>An unique DUT/SUT configuration MUST be used for all of the
        benchmarking tests described in <xref target="Benchmarking">section
        7</xref>. Since each DUT/SUT will have their own unique configuration,
        users SHOULD configure their device with the same parameters that
        would be used in the actual deployment of the device or a typical
        deployment. Also it is mandatory to enable all the security features
        on the DUT/SUT in order to achieve maximum security coverage for a
        specific deployment scenario.</t>

        <t>This document attempts to define the recommended security features
        which SHOULD be consistently enabled for all test cases. The table
        below describes the recommended sets of feature list which SHOULD be
        configured on the DUT/SUT. In order to improve repeatability, a
        summary of the DUT configuration including description of all enabled
        DUT/SUT features MUST be published with the benchmarking results.</t>

        <figure title="Table 1: DUT/SUT Feature List">
          <artwork>                  +----------------------------------------------------+
                  |                         Device                     |
                  +---------------------------------+--+----+---+------+
                  |                           |     |  |    |   | SSL  |
                  |             NGFW          |NGIPS|AD| WAF|BPS|Broker|
+----------------------------------------------------------------------+
|                 |       |Included  |Added to| Future test standards  |
|  DUT Features   |Feature|in initial|future  | to be de^eloped        |
|                 |       |Scope     |Scope   |                        |
+---------------------------------------------------+---+---+---+------+
| SSL Inspection  |   x   |          |     x  |     |   |   |   |      |
+----------------------------------------------------------------------+
| IDS/IPS         |   x   |     x    |        |     |   |   |   |      |
+----------------------------------------------------------------------+
| Web Filtering   |   x   |          |     x  |     |   |   |   |      |
+----------------------------------------------------------------------+
| Anti^irus       |   x   |     x    |        |     |   |   |   |      |
+----------------------------------------------------------------------+
| Anti Spyware    |   x   |     x    |        |     |   |   |   |      |
+----------------------------------------------------------------------+
| Anti Botnet     |   x   |     x    |        |     |   |   |   |      |
+----------------------------------------------------------------------+
| DLP             |   x   |          |     x  |     |   |   |   |      |
+----------------------------------------------------------------------+
| DDoS            |   x   |          |     x  |     |   |   |   |      |
+----------------------------------------------------------------------+
| SSL Certificate |   x   |          |     x  |     |   |   |   |      |
| Validation      |       |          |        |     |   |   |   |      |
+----------------------------------------------------------------------+
| Logging and     |   x   |     x    |        |     |   |   |   |      |
| Reporting       |       |          |        |     |   |   |   |      |
+----------------------------------------------------------------------+
| Application     |   x   |     x    |        |     |   |   |   |      |
| Identification  |       |          |        |     |   |   |   |      |
+-----------------+-------+----------+--------+-----+---+---+---+------+        </artwork>
        </figure>

        <t>It is also recommended to configure a realistic number of access
        policy rules on the DUT/SUT. This document attempts to determine the
        number of access policy rules for three different class of DUT/SUT.
        The document classified the DUT/SUT based on its performance
        capability. The access rule defined in the, MUST be configured from
        top to bottom in correct order. The configured access policy rule MUST
        NOT block the test traffic used for the performance test.</t>

        <figure title="Table 2: DUT/SUT Access List">
          <artwork>
+---------------------------------------------------+------------------+
|                                                   |  DUT/SUT         |
|                                                   |  Classification  |
|                                                   |  # Rules         |
+-----------+-----------+--------------------+------+------------------+
|           |   Match   |                    |                         |
|Rules Type |   Criteria|        Description |Action|Small|Medium|Large|
+----------------------------------------------------------------------+
|Application|Application|Any application     |block |  10 |  20  |  50 |
|layer      |           |traffic NOT included|      |     |      |     |
|           |           |in the test traffic |      |     |      |     |
+----------------------------------------------------------------------+
|Transport  |Src IP and |Any src IP used in  |block |  50 | 100  | 250 |
|layer      |TCP/UDP    |the test AND any dst|      |     |      |     |
|           |Dst ports  |ports NOT used in   |      |     |      |     |
|           |           |the test traffic    |      |     |      |     |
+----------------------------------------------------------------------+
|IP layer   |Src/Dst IP |Any src/dst IP NOT  |block |  50 | 100  | 250 |
|           |           |used in the test    |      |     |      |     |
+----------------------------------------------------------------------+
|Application|Application|Applications        |allow |  10 |  10  |  10 |
|layer      |           |included in the test|      |     |      |     |
|           |           |traffic             |      |     |      |     |
+----------------------------------------------------------------------+
|Transport  |Src IP and |Half of the src IP  |allow |   1 |   1  |   1 |
|layer      |TCP/UDP    |used in the test AND|      |     |      |     |
|           |Dst ports  |any dst ports used  |      |     |      |     |
|           |           |in the test traffic.|      |     |      |     |
|           |           |One rule per subnet |      |     |      |     |
+----------------------------------------------------------------------+
|IP layer   |Src IP     |The rest of the src |allow |   1 |   1  |   1 |
|           |           |IP subnet range used|      |     |      |     |
|           |           |in the test.        |      |     |      |     |
|           |           |One rule per subnet |      |     |      |     |
+-----------+--------------------------------+------+-----+------+-----+</artwork>
        </figure>
      </section>

      <section anchor="Test_Equipment_Configuration"
               title="Test Equipment Configuration">
        <t>In general, test equipment allows configuring parameters in
        different protocol level. These parameters thereby influencing the
        traffic flows which will be offered and impacting performance
        measurements. This document attempts to explicitly specify which test
        equipment parameters SHOULD be configurable, any such parameter(s)
        MUST be noted in the test report.</t>

        <section title="Client Configuration">
          <t>This section specifies which parameters SHOULD be considerable
          while configuring emulated clients using test equipment. Also this
          section specifies the recommended values for certain parameters.</t>

          <section title="TCP Stack Attributes">
            <t>The TCP stack SHOULD use a TCP Reno variant, which include
            congestion avoidance, back off and windowing, retransmission and
            recovery on every TCP connection between client and server
            endpoints. The default IPv4 and IPv6 MSS segments size MUST be set
            to 1460 bytes and 1440 bytes and a TX and RX receive windows of
            32768 bytes. Delayed ACKs are permitted, but it SHOULD be limited
            to either a 200 mSec delay timeout or 3000 in bytes before a
            forced ACK. Up to 3 retries SHOULD be allowed before a timeout
            event is declared. All traffic MUST set the TCP PSH flag to high.
            The source port range SHOULD be in the range of 1024 – 65535.
            Internal timeout SHOULD be dynamically scalable per RFC 793..</t>
          </section>

          <section title="Client IP Address Space">
            <t>The sum of the client IP space SHOULD contain the following
            attributes. The traffic blocks SHOULD consist of multiple unique,
            continuous static address blocks. A default gateway is permitted.
            The IPv4 ToS byte should be set to ‘00’.</t>

            <t>The following equation can be used to determine the required
            total number of client IP address.</t>

            <t>Desired total number of client IP = Target throughput [Mbit/s]
            / Throughput per IP address [Mbit/s]</t>

            <t><list style="format (Idea %d)">
                <t>6-7 Mbps per IP= 1,400–1,700 IPs per 10Gbit/s
                throughput</t>

                <t>0.1-0.2 Mbps per IP = 50,000–100,000 IPs per 10Gbit/s
                throughput</t>
              </list></t>

            <t>Based on deployment and usecase scenario, client IP addresses
            SHOULD be distributed between IPv4 and IPv6 type. This document
            recommends using the following ratio(s) between IPv4 and IPv6:</t>

            <t><list style="format (Idea %d)">
                <t>100 % IPv4, no IPv6</t>

                <t>80 % IPv4, 20 % IPv6</t>

                <t>50 % IPv4, 50 % IPv6</t>

                <t>0 % IPv4, 100 % IPv6</t>
              </list></t>
          </section>

          <section title="Emulated Web Browser Attributes">
            <t>The emulated web browser contains attributes that will
            materially affect how traffic is loaded. The objective is to
            emulate a modern, typical browser attributes to improve realism of
            the result set. The emulated browser must negotiate HTTP 1.1 with
            persistence. The browser will open up to 6 TCP connections per
            Server endpoint IP at any time depending on how many sequential
            transactions are needed to be processed. Within the TCP connection
            multiple transactions can be processed if the emulated browser has
            available connections, for example where transactions to the same
            server endpoint IP exceed 6 or are non-sequential. The browser
            must advertise a User-Agent header. Headers will be sent
            uncompressed. The browser should enforce content length
            validation.</t>
          </section>

          <section title="Client Emulated Web Browser SSL/TLS Layer Attributes">
            <t>The test traffic shall be a realistic blend of encrypted and
            clear traffic. For encrypted traffic, the following attributes
            shall define the negotiated encryption parameters. The tests must
            use TLSv1.2 or higher with a record size of 16383, commonly used
            cipher suite and key strength. Session reuse or ticket resumption
            may be used for subsequent connections to the same Server endpoint
            IP. The client endpoint must send TLS Extension SNI information
            when opening up a security tunnel. Server certificate validation
            should be disabled.</t>

            <t>If the DUT/SUT doesn’t perform SSL inspection, cipher suite and
            certificate selection for the test is irrelevant. However, it is
            recommended to use latest and not deprecated certificates, in
            order to mimic real world traffic.</t>
          </section>
        </section>

        <section title="Backend Server Configuration">
          <t>This document attempts to specify which parameters should be
          considerable while configuring emulated backend servers using test
          equipment.</t>

          <section title="TCP Stack Attributes">
            <t>The TCP stack SHOULD use a TCP Reno variant, which include
            congestion avoidance, back off and windowing, retransmission and
            recovery on every TCP connection between client and server
            endpoints. The default IPv4 MSS segment size MUST be set to 1460
            bytes and a TX and RX receive windows of at least 32768 bytes.
            Delayed ACKs are permitted but SHOULD be limited to either a 200
            mSec delay timeout or 3k in bytes before a forced ACK. Up to 2
            retries SHOULD be allowed before a timeout event is declared. All
            traffic must set the TCP PSH flag to high. The source port range
            SHOULD be in the range of 1024 – 65535. Internal timeout should be
            dynamically scalable per RFC 793.</t>
          </section>

          <section title="Server Endpoint IP Addressing">
            <t>The server IP blocks should consist of unique, continuous
            static address blocks with one IP per Server FQDN endpoint per
            test port. The IPv4 ToS byte should be set to ‘00’. The source mac
            address of the server endpoints shall be the same emulating routed
            behavior. Each Server FQDN should have it’s own unique IP address.
            The Server IP addressing should be fixed to the same number of
            FQDN entries.</t>
          </section>

          <section title="HTTP / HTTPS Server Pool Endpoint Attributes">
            <t>The emulated server pool for HTTP should listen on TCP port 80
            and emulated HTTP version 1.1 with persistence. For HTTPS server,
            the pool must have the same basic attributes of an HTTP server
            pool plus attributes for SSL/TLS. The server must advertise a
            server type. For HTTPS server, TLS 1.2 or higher must be used with
            a record size of 16,383 bytes and ticket resumption or Session ID
            reuse enabled. The server must listen on port TCP 443. The server
            shall serve a 2048 server SSL certificate to the client. It is
            required that the HTTPS server also check Host SNI information
            with the Fully Qualified Domain Name (FQDN). Client certificate
            validation should be disabled.</t>

            <t>If the DUT/SUT doesn’t perform SSL inspection, cipher suite and
            certificate selection for the test is irrelevant. However, it is
            recommended to use latest and not deprecated certificates, in
            order to mimic real world traffic.</t>
          </section>
        </section>

        <section title="Traffic Flow Definition">
          <t>The section describes the traffic pattern between the client and
          server endpoints. At the beginning of the test, the server endpoint
          initializes and will be in a ready to accept connection state
          including initialization of the TCP stack as well as bound HTTP and
          HTTPS servers. When a client endpoint is needed, it will initialize
          and be given attributes such as the MAC and IP address. The behavior
          of the client is to sweep though the given server IP space,
          sequentially generating a recognizable service by the DUT. Thus, a
          balanced, mesh between client endpoints and server endpoints will be
          generated in a client port server port combination. Each client
          endpoint performs the same actions as other endpoints, with the
          difference being the source IP of the client endpoint and the target
          server IP pool. The client shall use Fully Qualified Domain Names in
          Host Headers and for TLS 1.2 Server Name Indication (SNI).</t>

          <section title=" Description of Intra-Client Behavior">
            <t>Client endpoints are independent of other clients that are
            concurrently executing. When a client endpoint initiate traffic,
            this section will describe how the steps though different
            services. Once initialized, the user should randomly hold (perform
            no operation) for a few milliseconds to allow for better
            randomization of start of client traffic. The client will then
            either open up a new TCP connection or connect to a TCP
            persistence stack still open to that specific server. At any point
            that the service profile may require encryption, a TLS 1.2
            encryption tunnel will form presenting the URL request to the
            server. The server will then perform an SNI name check with the
            proposed FQDN compared to the domain embedded in the certificate.
            Only when correct, will the server process the object. The initial
            object to the server does not have a fixed size, its size is based
            on for example the URL path length. Up to six additional sub-URLs
            (Objects on the service page) may be requested simultaneously.
            This may or may not be to the same server IP as the initial URL.
            Each sub-object will also use a conical FQDN and URL path, as
            observed in the traffic mix used. The traffic mix in the appendix
            table is represented by the actions of each and every client
            endpoint. Therefor the instantaneous percent of mix will vary, but
            the overall mix through the duration of the test will be fixed.
            This is based on the number of active users, TCP recovery
            mechanism, etc.</t>
          </section>
        </section>

        <section anchor="Traffic_Load_Profile" title="Traffic Load Profile">
          <t>The loading of traffic will be described in this section. The
          loading of an traffic load profile has five distinct phases: Init,
          ramp up, sustain, ramp down/close, and collection.</t>

          <t>Within the Init phase, test bed devices including the client and
          server endpoints should negotiate layer 2-3 connectivity such as MAC
          learning and ARP. Only after successful MAC learning or ARP
          resolution shall the test iteration move to the next phase. No
          measurements are made in this phase. The minimum recommended time
          for init phase is 5 seconds. During this phase the emulated clients
          SHOULD NOT initiate any sessions with the DUT/SUT, in contrast, the
          emulated servers should be ready to accept requests from DUT/SUT or
          from emulated clients.</t>

          <t>In the ramp up phase, the test equipment should start to generate
          the test traffic. It should use a set approximate number of unique
          client IP addresses actively to generate traffic. The traffic should
          ramp from zero to desired target throughput objective. The duration
          for the ramp up phase must be configured long enough, so that the
          test equipment does not overwhelm DUT/SUT’s supported performance
          metrics, namely: connection setup rate, concurrent connection and
          application transaction. The recommended time duration for the ramp
          up phase is 180-300 seconds. No measurements are made in this
          phase.</t>

          <t>In the sustain phase, the test equipment should keep to generate
          traffic at constant rate for a constant number of active client IPs.
          The recommended time duration for sustain phase is 600 seconds. This
          is the phase where measurements occur.</t>

          <t>In the ramp down/close phase, no new connection is established
          and no measurements are made. The recommend duration of this phase
          is 180- 300 seconds.</t>

          <t>The last phase is administrative and will be when the tester
          merges and collates the report data.</t>
        </section>
      </section>
    </section>

    <section title="Test Bed Considerations">
      <t>This section recommends steps to control the test environment and
      test equipment, specifically focusing on virtualized environments and
      virtualized test equipment.</t>

      <t><list style="numbers">
          <t>Ensure that any ancillary switching or routing functions between
          the system under test and the test equipment do not limit the
          performance of the traffic generator. This is specifically important
          for virtualized components (vSwitches, vRouters).</t>

          <t>Verify that the performance of the test equipment matches and
          reasonably exceeds the expected maximum performance of the system
          under test.</t>

          <t>Assert that the test bed characteristics are stable during the
          whole test session. A number of factors might influence stability
          specifically for virtualized test beds, for example additional work
          loads in a virtualized system, load balancing and movement of
          virtual machines during the test, or simple issues such as
          additional heat created by high workloads leading to an emergency
          CPU performance reduction.</t>
        </list></t>

      <t>Test bed reference pre-tests help to ensure that the desired traffic
      generator aspects such as maximum throughput and the network performance
      metrics such as maximum latency and maximum packet loss are met.</t>

      <t>Once the desired maximum performance goals for the system under test
      have been identified, a safety margin of 10 % SHOULD be added for
      throughput and subtracted for maximum latency and maximum packet
      loss.</t>

      <t>Test bed preparation can be performed either by configuring the DUT
      in the most trivial setup (fast forwarding) or without presence of
      DUT.</t>
    </section>

    <section title="Reporting">
      <t>This section describes how the final report should be formatted and
      presented. The final test report may have two major sections;
      Introduction and result sections. The following attributes should be
      present in the introduction section of the test report.</t>

      <t><list style="numbers">
          <t>The name of the NetSecOPEN traffic mix must be prominent.</t>

          <t>The time and date of the execution of the test must be
          prominent.</t>

          <t>Summary of testbed software and Hardware details<list
              style="letters">
              <t>DUT Hardware/Virtual Configuration<list style="symbols">
                  <t>This section should clearly identify the make and model
                  of the DUT</t>

                  <t>iThe port interfaces, including speed and link
                  information must be documented.</t>

                  <t>If the DUT is a virtual VNF, interface acceleration such
                  as DPDK and SR-IOV must be documented as well as cores used,
                  RAM used, and the pinning / resource sharing configuration.
                  The Hypervisor and version must be documented.</t>

                  <t>Any additional hardware relevant to the DUT such as
                  controllers must be documented</t>
                </list></t>

              <t>DUT Software<list style="symbols">
                  <t>The operating system name must be documented</t>

                  <t>The version must be documented</t>

                  <t>The specific configuration must be documented</t>
                </list></t>

              <t>DUT Enabled Features<list style="symbols">
                  <t>Specific features, such as logging, NGFW, DPI must be
                  documented</t>

                  <t>iAttributes of those featured must be documented</t>

                  <t>Any additional relevant information about features must
                  be documented</t>
                </list></t>

              <t>Test equipment hardware and software <list style="symbols">
                  <t>Test equipment vendor name</t>

                  <t>Hardware details including model number, interface
                  type</t>

                  <t>Test equipment firmware and test application software
                  version</t>
                </list></t>
            </list></t>

          <t>Results Summary / Executive Summary<list>
              <t>Results should resemble a pyramid in how it is reported, with
              the introduction section documenting the summary of results in a
              prominent, easy to read block.</t>

              <t>In the result section of the test report, the following
              attributes should be present for each test scenario.<list
                  style="letters">
                  <t>KPIs must be documented separately for each test
                  scenario. The format of the KPI metrics should be presented
                  as described in <xref
                  target="Key_Performance_Indicators">section 6.1</xref>.</t>

                  <t>The next level of detains should be graphs showing each
                  of these metrics over the duration (sustain phase) of the
                  test. This allows the user to see the measured performance
                  stability changes over time.</t>
                </list></t>
            </list></t>
        </list></t>

      <section anchor="Key_Performance_Indicators"
               title=" Key Performance Indicators">
        <t>This section lists KPIs for overall benchmarking tests scenarios.
        All KPIs MUST be measured in whole period of sustain phase as
        described in<xref target="Traffic_Load_Profile">section 4.3.4</xref>.
        All KPIs MUST be measured from test equipment statistics only.</t>

        <t><list style="symbols">
            <t>TCP Concurrent Connection Capacity<vspace/>This key performance
            indicator will measure the average concurrent open TCP connections
            in the sustaining period.</t>

            <t>TCP Connection Setup Rate<vspace/>This key performance
            indicator will measure the average established TCP connections per
            second in the sustaining period.<vspace/> For Session setup rate
            benchmarking test scenario, the KPI will measure average
            established and terminated TCP connections per second
            simultaneously. </t>

            <t>Application Transaction Rate<vspace/>This key performance
            indicator will measure the average successful transactions per
            seconds in the sustaining period.</t>

            <t>TLS Handshake Rate<vspace/>This key performance indicator will
            measure the average TLS 1.2 or higher session formation rate
            within the sustaining period.</t>

            <t>URL Response time / Time to Last Byte (TTLB)<vspace/>This key
            performance indicator will measure the minimum, average and
            maximum per URL response time in the sustaining period as well as
            the average variance in the same period.</t>

            <t>Application Transaction Time<vspace/>This key performance
            indicator will measure the minimum, average and maximum the amount
            of time to receive all objects from the server.</t>

            <t>Time to First Byte (TTFB)<vspace/>This key performance
            indicator will measure minimum, average and maximum the time to
            first byte. TTFB is the elapsed time between sending the SYN
            packet from the client and receiving the first byte of application
            date from the DUT/SUT. TTFB SHOULD be expressed in
            millisecond.</t>

            <t>TCP Connect Time<vspace/>This key performance indicator will
            measure minimum, average and maximum TCP connect time. It is
            elapsed between the time the client sends a SYN packet and the
            time it receives the SYN/ACK. TCP connect time SHOULD be expressed
            in millisecond. </t>
          </list></t>
      </section>
    </section>

    <section anchor="Benchmarking" title=" Benchmarking Tests">
      <section title="Throughput Performance">
        <section title="Objective">
          <t>To determine the average throughput performance of the DUT/SUT
          when using application traffic mix defined in<xref
          target="Traffic_Profile">section 7.1.3.3</xref>.</t>
        </section>

        <section title="Test Setup">
          <t>Test bed setup MUST be configured as defined in <xref
          target="Test_Setup">section 4</xref>. Any test scenario specific
          test bed configuration changes must be documented.</t>
        </section>

        <section title="Test Parameters">
          <t>In this section, test scenario specific parameters SHOULD be
          defined.</t>

          <section title="Test Equipment Configuration Parameters">
            <t>Test equipment configuration parameters MUST conform to the
            requirements defined in <xref
            target="Test_Equipment_Configuration">section 4.3</xref>.
            Following parameters MUST be noted for this test scenario:</t>

            <t><list>
                <t>Client IP address range</t>

                <t>Server IP address range</t>

                <t>Traffic distribution ratio between IPv4 and IPv6</t>

                <t>Traffic load objective or specification type (e.g
                Throughput, SimUsers and etc.) </t>

                <t> Target throughput: It can be defined based on
                requirements. Otherwise it represents aggregated line rate of
                interface(s) used in the DUT/SUT</t>

                <t>Initial throughput: Initial throughput can be up to 10% of
                the “Target throughput” </t>
              </list></t>
          </section>

          <section title="DUT/SUT Configuration Parameters">
            <t>DUT/SUT parameters MUST conform to the requirements defined in
            <xref target="DUT-SUT_Configuration">section 4.2</xref>. Any
            configuration changes for this specific test scenario MUST be
            documented.</t>
          </section>

          <section anchor="Traffic_Profile" title="Traffic Profile">
            <t>Test scenario MUST be run with a single application traffic mix
            profile. The name of the NetSecOpen traffic mix MUST be
            documented.</t>
          </section>

          <section anchor="Test_Results_Acceptance_Criteria"
                   title="Test Results Acceptance Criteria">
            <t>The following test Criteria is defined as test results
            acceptance criteria<list style="letters">
                <t>Number of failed Application transaction MUST be 0.01%.</t>

                <t>Number of Terminated TCP connection due to unexpected TCP
                RST sent by DUT/SUT MUST be less than 0.01%</t>

                <t>Maximum deviation (max. dev) of application transaction
                time / TTLB (Time To Last Byte) MUST be less than X (e.g. 2,
                TBD)<vspace/>The following equation MUST be used to calculate
                the deviation of application transaction time or
                TTLB.<vspace/><vspace/>max. dev = max((avg_latency –
                min_latency),(max_latency – avg_latency)) / (Initial
                latency)<vspace/><vspace/>Where, the initial latency is
                calculated using the following equation. For this calculation,
                the latency values (min’, avg’ and max’) MUST be measured
                during test procedure step 1 as defined in <xref
                target="Step1_Test_Initialization">section 7.1.4.1</xref>.
                <vspace/>The variable latency represents application
                transaction time or TTLB. <vspace/><vspace/>Initial latency:=
                min((avg’ latency – min’ latency) | (max’ latency – avg’
                latency))</t>

                <t>Maximum value of TCP connect time must be less than (TBD)
                ms. (beta tests required to determine the value). The
                definition for TCP connect time can be found in <xref
                target="Key_Performance_Indicators">section 6.2</xref>. </t>

                <t>Maximum value of Time to First Byte must be less than 2*
                TCP connect time. <vspace/></t>
              </list></t>

            <t>Test Acceptance criteria for this test scenario MUST be
            monitored during the sustain phase of the traffic load profile
            only.</t>
          </section>

          <section anchor="Measurement" title="Measurement">
            <t>Following KPI metrics MUST be reported for this test
            scenario.</t>

            <t>Mandatory KPIs: average Throughput, maximum Concurrent TCP
            connection, TTLB/application transaction time (minimum, average
            and maximum) and average application transaction rate</t>

            <t>Optional KPIs: average TCP connection setup rate, average TLS
            handshake rate, TCP connect time and TTFB</t>
          </section>
        </section>

        <section title="Test Procedures and expected Results">
          <t>The test procedure is designed to measure the throughput
          performance of the DUT/SUT at the sustaining period of traffic load
          profile. The test procedure consists of three major steps.</t>

          <section anchor="Step1_Test_Initialization"
                   title="Step 1: Test Initialization and Qualification">
            <t>Verify the link status of the all connected physical
            interfaces. All interfaces are expected to be “UP” status.</t>

            <t>Configure traffic load profile of the test equipment to
            generate test traffic at “initial throughput" rate as described in
            the parameters section. The DUT/SUT SHOULD reach the "initial
            throughput" during the sustain phase. Measure all KPI as defined
            in <xref target="Measurement">section 7.1.3.5</xref>. The measured
            KPIs during the sustain phase MUST meet acceptance criteria “a”
            and “b” defined in <xref
            target="Test_Results_Acceptance_Criteria">section
            7.1.3.4</xref>.</t>

            <t>If the KPI metrics do not meet the acceptance criteria, the
            test procedure MUST NOT be continued to step 2.</t>
          </section>

          <section title="Step 2: Test Run with Target Objective">
            <t>Configure test equipment to generate traffic at “Target
            throughput” rate defined in the parameter table. The test
            equipment SHOULD follow the traffic load profile definition as
            described in <xref target="Traffic_Load_Profile">section
            4.3.4</xref>. The test equipment SHOULD start to measure and
            record all specified KPIs. The frequency of KPI metrics
            measurement MUST be less than 5 seconds. Continue the test until
            all traffic profile phases are completed.</t>

            <t>The DUT/SUT is expected to reach the desired target throughput
            during the sustain phase. In addition, the measured KPIs must meet
            all acceptance criteria. Follow the step 3, if the KPI metrics do
            not meet the acceptance criteria.</t>
          </section>

          <section title="Step 3: Test Iteration with Binary Search">
            <t>Use binary search algorithm to configure the desired traffic
            load profile for each test iteration.</t>

            <t>Determine the maximum and average achievable throughput within
            the acceptance criteria.</t>

            <section title="Pseudocode for binary search algorithm">
              <t>TBD Resolution:=0.01* Target throughput and Backoff:= 50%
              </t>
            </section>
          </section>
        </section>
      </section>

      <section title="TCP Concurrent Connection Capacity"/>

      <section title="TCP Connection Setup Rate"/>

      <section title="Application Transaction Rate"/>

      <section title="SSL/TLS Handshake Rate"/>
    </section>

    <section title="Formal Syntax"/>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document makes no request of IANA.</t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t/>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
    </references>

    <section title="An Appendix">
      <t>tbd</t>
    </section>
  </back>
</rfc>
