<?xml version="1.0" encoding="US-ASCII"?>
<!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-morton-bmwg-multihome-evpn-04"
     ipr="trust200902" updates="????">
  <front>
    <title abbrev="Multihomed EVPN">Benchmarks and Methods for Multihomed
    EVPN</title>

    <author fullname="Al Morton" initials="A." surname="Morton">
      <organization>AT&amp;T Labs</organization>

      <address>
        <postal>
          <street>200 Laurel Avenue South</street>

          <city>Middletown,</city>

          <region>NJ</region>

          <code>07748</code>

          <country>USA</country>
        </postal>

        <phone>+1 732 420 1571</phone>

        <facsimile>+1 732 368 1192</facsimile>

        <email>acm@research.att.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Jim Uttaro" initials="J." surname="Uttaro">
      <organization>AT&amp;T Labs</organization>

      <address>
        <postal>
          <street>200 Laurel Avenue South</street>

          <city>Middletown,</city>

          <region>NJ</region>

          <code>07748</code>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>uttaro@att.com</email>

        <uri/>
      </address>
    </author>

    <date day="2" month="November" year="2020"/>

    <abstract>
      <t>Fundamental Benchmarking Methodologies for Network Interconnect
      Devices of interest to the IETF are defined in RFC 2544. Key benchmarks
      applicable to restoration and multi-homed sites are in RFC 6894. This
      memo applies these methods to Multihomed nodes implemented on Ethernet
      Virtual Private Networks (EVPN).</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP
      14<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when,
      they appear in all capitals, as shown here.</t>

      <t/>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>The IETF's fundamental Benchmarking Methodologies are defined in<xref
      target="RFC2544"/>, supported by the terms and definitions in <xref
      target="RFC1242"/>, and <xref target="RFC2544"/> actually obsoletes an
      earlier specification, <xref target="RFC1944"/>.</t>

      <t>This memo recognizes the importance of Ethernet Virtual Private
      Network (EVPN) Multihoming connectivity scenarios, where a CE device is
      connected to 2 or more PEs using an instance of an Ethernet Segment.</t>

      <t>In an all-active or Active-Active scenario, CE-PE traffic is
      load-balanced across two or more PEs.</t>

      <t>Mass-withdrawal of routes may take place when an autodiscovery route
      is used on a per Ethernet Segment basis, and there is a link failure on
      one of the Ethernet Segment links (or when configuration changes take
      place).</t>

      <t>Although EVPN depends on address-learning in the control-plane, the
      Ethernet Segment Instance is permitted to use "the method best suited to
      the CE: data-plane learning, IEEE 802.1x, the Link Layer Discovery
      Protocol (LLDP), IEEE 802.1aq, Address Resolution Protocol (ARP),
      management plane, or other protocols" [RFC7432].</t>

      <t>This memo seeks to benchmark these important cases (and others).</t>
    </section>

    <section title="Scope and Goals">
      <t>The scope of this memo is to define a method to unambiguously perform
      tests, measure the benchmark(s), and report the results for Capacity of
      EVPN Multihoming connectivity scenarios, and other key restoration
      activities (such as address withdrawl) covering link failure in the
      Active-Active scenario.</t>

      <t>The goal is to provide more efficient test procedures where possible,
      and to expand reporting with additional interpretation of the results.
      The tests described in this memo address some key multihoming scenarios
      implemented on a Device Under Test (DUT) or System Under Test (SUT).</t>
    </section>

    <section title="Motivation">
      <t>The Multihoming scenarios described in this memo emphasize features
      with practical value to the industry that have seen deployment.
      Therefore, these scenarios deserve further attention that follows from
      benchmarking activities and further study.</t>
    </section>

    <section title="Test Setups">
      <t>For simple Capacity/Throughput Benchmarks, the Test Setup MUST be
      consistent with Figure 1 of <xref target="RFC2544"/>, or Figure 2 when
      the tester's sender and receiver are different devices.<figure
          title="Figure 1 SUT for Throughput and other Ethernet Segment Tests">
          <artwork align="center"><![CDATA[
 +--------+                    ,-----.     +--------+
 |        |                   /       \    |        |
 |        |                 /(   PE    ....|        |
 |        |                /  \    1  /    |        |
 | Test   |     ,-----.   /    `-----'     | Test   |
 |        |    /       \ /                 |        |
 | Device |...(   CE    X                  | Device |
 |        |    \    1  / \                 |        |
 |        |     `-----'   \    ,-----.     |        |
 |        |                \  /       \    |        |
 |        |                 \(   PE    ....|        |
 +--------+                   \    2  /    +--------+
                               `-----']]></artwork>
        </figure></t>

      <t>In Figure 1, the System Under Test (SUT) is comprised of a single CE
      device and two or more PE devices.</t>

      <t>The tester SHALL be connected to all CE and every PE, and be capable
      of simultaneously sending and receiving frames on all ports with
      connectivity. The tester SHALL be capable of generating multiple flows
      (according to a 5-tuple definition, or any sub-set of the 5-tuple). The
      tester SHALL be able to control the IP capacity of sets of individual
      flows, and the presence of sets of flows on specific interface
      ports.</t>

      <t>The tester SHALL be capable of generating and receiving a full mesh
      of Unicast flows, as described in section 3.0 of <xref
      target="RFC2889"/>:</t>

      <t>"In fully meshed traffic, each interface of a DUT/SUT is set up to
      both receive and transmit frames to all the other interfaces under
      test."</t>

      <t>Other mandatory testing aspects described in <xref target="RFC2544"/>
      and <xref target="RFC2889"/> MUST be included, unless explicitly
      modified in the next section.</t>

      <t>The ingress and egress link speeds and link layer protocols MUST be
      specified and used to compute the maximum theoretical frame rate when
      respecting the minimum inter-frame gap.</t>

      <t>A second test case is where a BGP backbone implements MPLS-LDP to
      provide connectivity between multiple PE - ESI - CE locations.<figure
          align="center"
          title="Figure 2 SUT with BGP &amp; MPLS interconnecting multiple PE-ESI-CE locations">
          <artwork><![CDATA[ Test                                                          Test
 Device                                                        Device
                           EVI-1
+---+                    ,-----.                               +---+
|   |                   /       \                              |   |
|   |                 /(   PE    .....                 ESI     |   |
|   |                /  \    1  /     \         EVI-1   0      |   |
|   | MAC ,-----.   /    `-----'       \       ,-----.    +--+ |   |
|   |  A /       \ /                    \     /       \   |  | |   |
|   |...(   CE    X ESI 1                X...(   PE    ...|CE|.|   |
|   |    \    1  / \                    /     \    3  /   | 2| |   |
|   |     `-----'   \    ,-----.       /       `-----'    +--+ |   |
|   |                \  /       \     /                        |   |
|   |                 \(   PE    ..../                         |   |
+---+                   \    2  /                              +---+
                         `-----'
                           EVI-1]]></artwork>
        </figure></t>

      <t>PE1 learns MAC A via data plane learning, PE1 and PE2 share ESI 1 (
      Ethernet Segment Identifier ) and advertise an Ether A-D route with ESI
      1 to PE3, PE1 also advertises MAC A to PE3. PE3 instantiates either
      Active/Backup or Active/Active towards PE1 and PE2 ( Assume PE1 is
      Active in Active/Backup scenario ) for MAC A.</t>

      <t>All Link speeds MUST be reported, along with complete device
      configurations in the SUT and Test Device(s).</t>

      <t>Additional Test Setups and configurations will be provided in this
      section, after review.</t>

      <t>One capacity benchmark pertains to the number of ESIs that a network
      with multiple PE - ESI - CE locations can support.</t>

      <t/>

      <section title="Basic Configuration">
        <t>This configuration serves as the base configuration for all test
        cases.</t>

        <t>All routers except CE are configured with OSPF/IS-IS,LDP,MPLS,BGP
        with EVPN address family.</t>

        <t>All routers except CE must have IBGP configured.</t>

        <t>PE1,PE2,PE3 must be configured with an EVI context ( EVI 1 ).</t>

        <t>PE1 and PE2 must be configured with a non-zero ESI indicating that
        the two VLANS coming from CE1 belong to the same ethernet segment (
        ESI 1 ).</t>

        <t>PE1 and PE2 are running Single Active mode of EVPN.</t>

        <t>CE1 and CE2 are acting as bridges configured with VLANS that are
        configured on PE1, PE2, PE3.</t>

        <t>In <xref target="RFC2889"/> procedures that follow, the test
        traffic will be bidirectional.</t>
      </section>
    </section>

    <section title="Procedure for Full Mesh Throughput Characterization">
      <t>Objective: To characterize the ability of a DUT/SUT to process frames
      between CE and one or more PEs in a multihomed connectivity scenario.
      Figure 1 gives the least-complex test setup. Figure 2 gives a possible
      alternative with full BGP and MPLS interconnection.</t>

      <t>The Procedure follows.</t>

      <section title="Address Learning Phase">
        <t>"For every address, learning frames MUST be sent to the DUT/SUT to
        allow the DUT/SUT to update its address tables properly." <xref
        target="RFC2889"/></t>
      </section>

      <section title="Test for a Single Frame Size and Number of Unicast Flows">
        <t>Each trial in the test requires configuring a number of flows (from
        100 to 100k) and a fixed frame size (64 octets to 128, 256, 512, 1024,
        1280 and 1518 bytes, as per <xref target="RFC2544"/>). Frame formats
        MUST be specified, they are as described in section 4 of <xref
        target="RFC2889"/>.</t>

        <t>Only one of frame size and number of flows SHALL change for each
        test.</t>
      </section>

      <section title="Detailed Procedure">
        <t>The Procedure SHALL follow section 5.1 of <xref
        target="RFC2889"/>.</t>

        <t>Specifically, the Throughput measurement parameters found in
        section 5.1.2 of <xref target="RFC2889"/> SHALL be configured and
        reported with the results.</t>

        <t>The procedure for transmitting Frames on each port is described in
        section 5.1.3 of <xref target="RFC2889"/> and SHALL be followed
        (adapting to the number of ports in the test setup).</t>

        <t>Once the traffic is started, the procedure for Measurements
        described in section 5.1.4 of <xref target="RFC2889"/> SHALL be
        followed (adapting to the number of ports in the test setup). The
        section on Throughput measurement (5.1.4 of <xref target="RFC2889"/>)
        SHALL be followed.</t>

        <t>In the case that one or more of the CE and PE are virtual
        implementations, then the search algorithm of <xref target="TST009"/>
        that provides consistent results when faced with host transient
        activity SHOULD be used (Binary Search with Loss Verification).</t>
      </section>

      <section title="Test Repetition">
        <t>The test MUST be repeated N times for each frame size in the subset
        list, and each Throughput value made available for further processing
        (below).</t>
      </section>

      <section title="Benchmark Calculations">
        <t>For each Frame size and number of flows, calculate the following
        summary statistics for Throughput values over the N tests:<list
            style="symbols">
            <t>Average (Benchmark)</t>

            <t>Minimum</t>

            <t>Maximum</t>

            <t>Standard Deviation</t>
          </list>Comparison will determine how the load was balanced among
        PEs.</t>
      </section>

      <section title="Reporting">
        <t>The recommendation for graphical reporting provided in Section
        5.1.4 of <xref target="RFC2889"/>) SHOULD be followed, along with the
        specifications in Section 7 below.</t>
      </section>
    </section>

    <section title="Procedure for Mass Withdrawal Characterization">
      <t>Objective: To characterize the ability of a DUT/SUT to process frames
      between CE and one or more PE in a multihomed connectivity scenario when
      a mass withdrawal takes place. Figure 2 gives the test setup.</t>

      <t>The Procedure follows.</t>

      <section title="Address Learning Phase">
        <t>"For every address, learning frames MUST be sent to the DUT/SUT to
        allow the DUT/SUT update its address tables properly." <xref
        target="RFC2889"/></t>
      </section>

      <section title="Test for a Single Frame Size and Number of Flows">
        <t>Each trial in the test requires configuring a number of flows (from
        100 to 100k) and a fixed frame size (64 octets to 128, 256, 512, 1024,
        1280 and 1518 bytes, as per <xref target="RFC2544"/>).</t>

        <t>Only one of frame size and number of flows SHALL change for each
        test.</t>

        <t>The Offered Load SHALL be transmitted at the Throughput level
        corresponding to the level previously determined for the selected
        Frame size and number of Flows in use (see section 5).</t>

        <t>The Procedure SHALL follow section 5.1 of <xref target="RFC2889"/>
        (except there is no need to search for the Throughput level). See
        section 5 above for additional requirements, especially section
        5.3.</t>

        <t>When traffic has been sent for 5 seconds one of the CE-PE links on
        the ESI SHALL be disabled, and the time of this action SHALL be
        recorded for further calculations. For example, if the CE1 link to PE1
        is disabled, this should trigger a Mass withdrawal of EVI-1 addresses,
        and the subsequent re-routing of traffic to PE2.</t>

        <t>Frame losses are expected to be recorded during the restoration
        time. Time for restoration may be estimated as described in section
        3.5 of<xref target="RFC6412"/>.</t>
      </section>

      <section title="Test Repetition">
        <t>The test MUST be repeated N times for each frame size in the subset
        list, and each restoration time value made available for further
        processing (below).</t>
      </section>

      <section title="Benchmark Calculations">
        <t>For each Frame size and number of flows, calculate the following
        summary statistics for Loss (or Time to return to Throughput level
        after restoration) values over the N tests:<list style="symbols">
            <t>Average (Benchmark)</t>

            <t>Minimum</t>

            <t>Maximum</t>

            <t>Standard Deviation</t>
          </list></t>
      </section>
    </section>

    <section title="Reporting">
      <t>The results SHOULD be reported in the format of a table with a row
      for each of the tested frame sizes and Number of Flows. There SHOULD be
      columns for the frame size with number of flows, and for the resultant
      average frame count (or time) for each type of data stream tested.</t>

      <t>The number of tests Averaged for the Benchmark, N, MUST be
      reported.</t>

      <t>The Minimum, Maximum, and Standard Deviation across all complete
      tests SHOULD also be reported.</t>

      <t>The Corrected DUT Restoration Time SHOULD also be reported, as
      applicable.</t>

      <t/>

      <texttable style="full"
                 title="Throughput or Loss/Restoration Time Results">
        <ttcol>Frame Size, octets + # Flows</ttcol>

        <ttcol>Ave Benchmark, fps, frames or time</ttcol>

        <ttcol>Min,Max,StdDev</ttcol>

        <ttcol>Calculated Time, Sec</ttcol>

        <c>64,100</c>

        <c>26000</c>

        <c>25500,27000,20</c>

        <c>0.00004</c>
      </texttable>

      <t>Static and configuration parameters:</t>

      <t>Number of test repetitions, N</t>

      <t>Minimum Step Size (during searches), in frames.</t>

      <t/>
    </section>

    <section title="Security Considerations">
      <t>Benchmarking activities as described in this memo are limited to
      technology characterization using controlled stimuli in a laboratory
      environment, with dedicated address space and the other constraints
      <xref target="RFC2544"/>.</t>

      <t>The benchmarking network topology will be an independent test setup
      and MUST NOT be connected to devices that may forward the test traffic
      into a production network, or misroute traffic to the test management
      network. See <xref target="RFC6815"/>.</t>

      <t>Further, benchmarking is performed on a "black-box" basis, relying
      solely on measurements observable external to the DUT/SUT.</t>

      <t>Special capabilities SHOULD NOT exist in the DUT/SUT specifically for
      benchmarking purposes. Any implications for network security arising
      from the DUT/SUT SHOULD be identical in the lab and in production
      networks.</t>
    </section>

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

    <section title="Acknowledgements">
      <t>Thanks to Sudhin Jacob for his review and comments on the
      bmwg-list.</t>

      <t>Thanks to Aman Shaikh for sharing his comments on the draft directly
      with the authors.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2544'?>

      <?rfc include='reference.RFC.1944'?>

      <?rfc include='reference.RFC.1242'?>

      <?rfc include='reference.RFC.2889'?>

      <?rfc include="reference.RFC.2119"?>

      <?rfc include='reference.RFC.6201'?>

      <?rfc include='reference.RFC.6412'?>

      <?rfc include='reference.RFC.6815'?>

      <?rfc include='reference.RFC.5180'?>

      <?rfc include='reference.RFC.6985'?>

      <?rfc include='reference.RFC.8174'?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>
    </references>

    <references title="Informative References">
      <reference anchor="OPNFV-2017"
                 target="https://wiki.opnfv.org/download/attachments/10293193/VSPERF-Dataplane-Perf-Cap-Bench.pptx?api=v2">
        <front>
          <title>Dataplane Performance, Capacity, and Benchmarking in
          OPNFV</title>

          <author fullname="Trevor Cooper" initials="T." surname="Cooper">
            <organization>Intel Corp.</organization>
          </author>

          <author fullname="Al Morton" initials="A." surname="Morton">
            <organization>AT&amp;T Labs</organization>
          </author>

          <author fullname="Sridhar Rao" initials="S." surname="Rao">
            <organization>Spirent Communications</organization>
          </author>

          <date day="15" month="June" year="2017"/>
        </front>
      </reference>

      <reference anchor="VSPERF-b2b"
                 target="https://wiki.opnfv.org/display/vsperf/Traffic+Generator+Testing#TrafficGeneratorTesting-AppendixB:Back2BackTestingTimeSeries(fromCI)">
        <front>
          <title>Back2Back Testing Time Series (from CI)</title>

          <author fullname="Al Morton" initials="A." surname="Morton">
            <organization/>
          </author>

          <date month="June" year="2017"/>
        </front>
      </reference>

      <reference anchor="VSPERF-BSLV"
                 target="https://datatracker.ietf.org/meeting/102/materials/slides-102-bmwg-evolution-of-repeatability-in-benchmarking-fraser-plugfest-summary-for-ietf-bmwg-00">
        <front>
          <title>Evolution of Repeatability in Benchmarking: Fraser Plugfest
          (Summary for IETF BMWG)</title>

          <author fullname="Al Morton" initials="A." surname="Morton">
            <organization>AT&amp;T Labs</organization>
          </author>

          <author fullname="Sridhar Rao" initials="S." surname="Rao">
            <organization>Spirent Communications</organization>
          </author>

          <date month="July" year="2018"/>
        </front>
      </reference>

      <reference anchor="TST009"
                 target="https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/009/03.01.01_60/gs_NFV-TST009v030101p.pdf">
        <front>
          <title>ETSI GS NFV-TST 009 V3.2.1 (2019-06), "Network Functions
          Virtualisation (NFV) Release 3; Testing; Specification of Networking
          Benchmarks and Measurement Methods for NFVI"</title>

          <author fullname="Rapporteur: Al Morton">
            <organization>ETSI Network Function Virtualization
            ISG</organization>
          </author>

          <date month="June" year="2019"/>
        </front>
      </reference>

      <?rfc include='reference.RFC.8239'?>

      <?rfc ?>
    </references>
  </back>
</rfc>
