RFC 5180

IPv6 Benchmarking Methodology for Network Interconnect Devices

๐Ÿ“… published May 2008, from ietf

IPv6 Benchmarking Methodology for Network Interconnect Devices ๐ŸŽ€

okay bestie, this is RFC 5180 ๐Ÿ’– and it's an Informational doc, so it's sharing knowledge and doesn't set any Internet standard. It's by C. Popoviciu, A. Hamza, and G. Van de Velde from Cisco Systems ๐Ÿฆ‹, plus D. Dugatkin from FastSoft Inc. ๐Ÿซถ It came out in May 2008. The header doesn't list anything it obsoletes or updates, so it stands on its own โœจ


Status of This Memo ๐ŸŒธ

this memo gives info to the Internet community. it does not specify an Internet standard of any kind, and distribution of it is unlimited ๐Ÿ“

Abstract ๐Ÿฆ‹

so the benchmarking methodologies in RFC 2544 are IP version independent, which is iconic ๐Ÿ‘‘ but RFC 2544 doesn't cover some of the IPv6 specificities. this doc adds extra benchmarking guidelines, and together with RFC 2544 they give a more complete and realistic evaluation of the IPv6 performance of network interconnect devices ๐Ÿ’… IPv6 transition mechanisms are outside the scope here, so don't look for them in this doc ๐Ÿ™ˆ

Table of Contents ๐Ÿงš

   1. Introduction ....................................................2
   2. Existing Definitions ............................................3
   3. Tests and Results Evaluation ....................................3
   4. Test Environment Setup ..........................................3
   5. Test Traffic ....................................................4
      5.1. Frame Formats and Sizes ....................................4
           5.1.1. Frame Sizes to Be Used on Ethernet ..................5
           5.1.2. Frame Sizes to Be Used on SONET .....................5
      5.2. Protocol Addresses Selection ...............................6
           5.2.1. DUT Protocol Addresses ..............................6
           5.2.2. Test Traffic Protocol Addresses .....................7
      5.3. Traffic with Extension Headers .............................7
      5.4. Traffic Setup ..............................................9
   6. Modifiers .......................................................9
      6.1. Management and Routing Traffic .............................9
      6.2. Filters ...................................................10
           6.2.1. Filter Format ......................................10
           6.2.2. Filter Types .......................................11
   7. Benchmarking Tests .............................................12
      7.1. Throughput ................................................13
      7.2. Latency ...................................................13
      7.3. Frame Loss ................................................13
      7.4. Back-to-Back Frames .......................................13
      7.5. System Recovery ...........................................14
      7.6. Reset .....................................................14
   8. IANA Considerations ............................................14
   9. Security Considerations ........................................14
   10. Conclusions ...................................................15
   11. Acknowledgements ..............................................15
   12. References ....................................................15
      12.1. Normative References .....................................15
      12.2. Informative References ...................................16
   Appendix A.  Theoretical Maximum Frame Rates Reference ............17
      A.1.  Ethernet .................................................17
      A.2.  Packet over SONET ........................................18

1. Introduction โœจ

okay so the benchmarking methodologies from RFC 2544 [9] are proving super useful for consistently evaluating IPv4 forwarding performance of network elements ๐Ÿ”ฅ following these testing and result analysis procedures makes it easy to objectively compare IPv4 performance data measured on different products and by different people ๐ŸŽ€ the principles in RFC 2544 are mostly IP version independent, but the protocol has kept evolving, especially version 6 (IPv6) ๐ŸŒˆ

this doc gives benchmarking methodology recommendations for the IPv6-specific stuff, like checking the forwarding performance of traffic with extension headers, as defined in RFC 2460 [2] ๐Ÿ’– these recs live inside the RFC 2544 framework and complement its test and result analysis procedures โœจ

the terms in this doc stay consistent with the ones in "Benchmarking Terminology for Network Interconnect Devices", RFC 1242 [7] ๐Ÿ“š this terminology SHOULD be consulted before using or applying the recommendations here ๐Ÿซถ

any methodology aspects not covered in this doc SHOULD be assumed to be handled based on the RFC 2544 recommendations ๐Ÿ’…

2. Existing Definitions ๐Ÿฆ‹

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be read as described in BCP 14, RFC 2119 [1] ๐ŸŒธ RFC 2119 defines how these key words get used so the intent of standards track docs is as clear as possible ๐Ÿ’œ this doc uses these key words too, but it is not a standards track document ๐Ÿ™ˆ

3. Tests and Results Evaluation ๐Ÿ“

the recommended performance evaluation tests are described in Section 7 of this document ๐Ÿงš not all of them apply to every network element type, but for each device you evaluate, it is recommended to perform as many of the applicable tests described in Section 6 as possible ๐Ÿ”ฅ

test execution and results analysis MUST be performed while observing generally accepted testing practices about repeatability, variance, and statistical significance of small numbers of trials ๐Ÿ’–

4. Test Environment Setup ๐ŸŒˆ

the test environment setup options recommended for IPv6 performance evaluation are the same as the ones in Section 6 of RFC 2544, for both single-port and multi-port scenarios โœจ single-port testing measures per-interface forwarding performance, and multi-port testing measures how well forwarding performance scales across the whole platform ๐Ÿ’…

throughout the test, the Device Under Test (DUT) can be monitored for relevant resource (processor, memory, etc.) utilization ๐Ÿ‘‘ this data can be really helpful for understanding how each DUT processes traffic and which resources need to be allocated for IPv6 ๐ŸŽ€ it can reveal whether IPv6 traffic gets processed in hardware, by the applicable devices, under all test conditions, or whether it gets punted to the software-switched path ๐Ÿฆ‹ if this data is of interest to you, it MUST be collected out of band and be independent of any management data collected through the interfaces forwarding the test traffic โญ

Note: during testing, either static or dynamic options for neighbor discovery can be used ๐Ÿ’€ in the static case, the IPv6 neighbor information for the test tool is manually configured on the DUT, and the IPv6 neighbor information for the DUT is manually configured on the test tool ๐Ÿซถ in the dynamic case, each device dynamically discovers the IPv6 neighbor information through the neighbor discovery protocol ๐ŸŒธ the static option can be used as long as the test tool supports it ๐Ÿ“ the dynamic option is preferred, where the test tool interacts with the DUT for the whole duration of the test to keep the respective neighbor caches in an active state ๐Ÿ’œ to avoid neighbor solicitation (NS) and neighbor advertisement (NA) storms caused by the neighbor unreachability detection (NUD) mechanism [6], the test scenarios assume that the test traffic simulates end points, and that the IPv6 source and destination addresses are one hop beyond the DUT ๐Ÿงš

5. Test Traffic ๐Ÿ’–

traffic used for all tests in this doc SHOULD meet the requirements described in this section ๐Ÿ”ฅ these requirements are designed to reflect the characteristics of IPv6 unicast traffic ๐ŸŒˆ using the recommended IPv6 traffic profile leads to a complete evaluation of the network element performance โœจ

5.1. Frame Formats and Sizes ๐ŸŽ€

two types of media are commonly deployed, and each SHOULD be tested if the network element supports that type of media: Ethernet and SONET (Synchronous Optical Network) ๐Ÿฆ‹ this section identifies the frame sizes that SHOULD be used for each media type ๐Ÿซถ for all other media types, refer to the recommendations in RFC 2544 ๐Ÿ“š

similar to IPv4, small frame sizes help characterize the per-frame processing overhead of the DUT ๐Ÿ’… note that the minimum IPv6 packet size (40 bytes) is larger than that of an IPv4 packet (20 bytes) ๐Ÿ‘‘ tests should compensate for this difference โœจ

the frame sizes listed for IPv6 include the extension headers used in testing (see Section 5.3) ๐ŸŒธ by definition, extension headers are part of the IPv6 packet payload ๐Ÿ“ depending on the total length of the extension headers, using them might not be possible at the smallest frame sizes ๐Ÿ’œ

Note: test tools commonly use signatures to identify test traffic packets, so they can verify that there are no packet drops or out-of-order packets, or calculate statistics like delay and jitter ๐Ÿงš this could be why the minimum frame size selectable through the test tool might not be as low as the theoretical one presented in this doc ๐Ÿ™ˆ

5.1.1. Frame Sizes to Be Used on Ethernet ๐ŸŒˆ

Ethernet, in all its types, has become the most commonly deployed media in today's networks ๐Ÿ’– the following frame sizes SHOULD be used for benchmarking over this media type: 64, 128, 256, 512, 1024, 1280, and 1518 bytes ๐Ÿ”ฅ

Note: the recommended 1518-byte frame size is the maximum size of an untagged Ethernet frame ๐Ÿฆ‹ according to the IEEE 802.3as standard [13], the frame size can be increased up to 2048 bytes to accommodate frame tags and other encapsulation required by the IEEE 802.1AE MAC [14] security protocol ๐Ÿ’€ a frame size commonly used in operational environments is 1522 bytes, the max length for a VLAN-tagged frame, per 802.1D [15] โœจ
Note: while jumbo frames are outside the scope of the 802.3 IEEE standard, tests SHOULD be executed with frame sizes selected based on the values supported by the device under test ๐Ÿซถ examples of commonly used jumbo frame sizes are: 4096, 8192, and 9216 bytes ๐Ÿ‘‘

the maximum frame rates for each frame size and the various Ethernet interface types are provided in Appendix A ๐Ÿงš

5.1.2. Frame Sizes to Be Used on SONET ๐Ÿฆ‹

Packet over SONET (PoS) interfaces are commonly used for edge uplinks and high-bandwidth core links ๐ŸŽ€ evaluating the forwarding performance of the PoS interfaces supported by the DUT is recommended ๐Ÿ’… the following frame sizes SHOULD be used for this media type: 47, 64, 128, 256, 512, 1024, 1280, 1518, 2048, 4096 bytes ๐ŸŒธ

the theoretical maximum frame rates for each frame size and the various PoS interface types are provided in Appendix A ๐Ÿ“

5.2. Protocol Addresses Selection ๐Ÿ’œ

there are two aspects of IPv6 benchmarking testing where IP address selection considerations MUST be analyzed: the selection of IP addresses for the DUT, and the selection of addresses for test traffic ๐Ÿซถ

5.2.1. DUT Protocol Addresses โœจ

okay so IANA reserved an IPv6 address block for IPv6 benchmark testing (see Section 8) ๐Ÿฆ‹ It MAY be assumed that addresses in this block are not globally routable, and they MUST NOT be used as Internet source or destination addresses ๐Ÿšซ not on the internet, bestie, they're just for the lab ๐Ÿงช

Similar to Appendix C of RFC 2544, addresses from the first half of this range SHOULD be used for the ports viewed as input, and addresses from the other half of the range for the output ports ๐Ÿ”€ input on one side, output on the other, very organized ๐Ÿ’…

The prefix length of the IPv6 addresses configured on the DUT interfaces MUST fall into either of the following:

  • Prefix length is /126, which would simulate a point-to-point link for a core router. ๐Ÿ›ฃ๏ธ
  • Prefix length is smaller or equal to /64. ๐ŸŒธ

No prefix lengths SHOULD be selected in the range between 64 and 128 except the 126 value mentioned above ๐Ÿ™…โ€โ™€๏ธ so skip the in-between ones, only /126 gets to be the special exception โœจ

Note that /126 prefixes might not always be the best choice for addressing point-to-point links such as back-to-back Ethernet unless the auto-provisioning mechanism is disabled ๐Ÿค” Also, not all network elements support addresses of this prefix length ๐Ÿ’€ some devices just aren't on that vibe.

While with IPv6, the DUT interfaces can be configured with multiple global unicast addresses, the methodology described in this document does not require testing such a scenario ๐Ÿ™ˆ It is not expected that such an evaluation would bring additional data regarding the performance of the network element ๐Ÿ’ค so we can skip that one, no notes.

The Interface ID portion of global unicast IPv6 DUT addresses SHOULD be set to ::1 ๐Ÿงš There are no requirements in the selection of the Interface ID portion of the link local IPv6 addresses ๐Ÿซถ link local is a free-for-all.

It is recommended that multiple iterations of the benchmark tests be conducted using the following prefix lengths: 48, 64, 126, and 128, for the advertised traffic destination prefix ๐Ÿ“ˆ Other prefix lengths can be used. However, the indicated range reflects major prefix boundaries expected to be present in IPv6 routing tables, and they should be representative to establish baseline performance metrics ๐ŸŒˆ these are the big-deal boundaries, so the baseline has to actually look like the real world ๐Ÿ‘‘

5.2.2. Test Traffic Protocol Addresses ๐ŸŽ€

IPv6 source and destination addresses for the test streams SHOULD belong to the IPv6 range assigned by IANA, as defined in Section 8 ๐Ÿ’œ The source addresses SHOULD belong to one half of the range and the destination addresses to the other, reflecting the DUT interface IPv6 address selection. It's giving mirror image ๐Ÿชž

Tests SHOULD first be executed with a single stream leveraging a single source-destination address pair ๐Ÿง start simple, one pair, no drama. The tests SHOULD then be repeated with traffic using a random destination address in the corresponding range ๐ŸŽฒ If the network element prefix lookup capabilities are evaluated, the tests SHOULD focus on the IPv6 relevant prefix boundaries: 0-64, 126, and 128 ๐ŸŽฏ

Note: When statically defined neighbors are not used, the parameters affecting Neighbor Unreachability Detection should be consistently set. The IPv6 prefix-reachable time in the router advertisement SHOULD be set to 30 seconds โฑ๏ธ keep your settings consistent, no mixed signals, ngl.

5.3. Traffic with Extension Headers ๐Ÿงš

Extension headers are an intrinsic part of the IPv6 architecture [2] ๐Ÿ’… They show up in all kinds of real traffic, like fragmented traffic, mobile IP-based traffic, and authenticated and encrypted traffic ๐Ÿ“ฆ For these reasons, all tests described in this document SHOULD be performed with both traffic that has no extension headers and traffic that has a set of extension headers. Extension header types can be selected from the following list [2] that reflects the recommended order of multiple extension headers in a packet:

  • Hop-by-hop header
  • Destination options header
  • Routing header
  • Fragment header
  • Authentication header
  • Encapsulating security payload (ESP) header
  • Destination options header
  • Mobility header

Since extension headers are an intrinsic part of the protocol and they fulfill different roles, benchmarking of traffic containing each extension header SHOULD be executed individually ๐Ÿงฉ one at a time, each gets its own moment โœจ

The special processing rules for the hop-by-hop extension header require a specific benchmarking approach ๐Ÿ”ฅ Unlike other extension headers, this header must be processed by each node that forwards the traffic. Tests with traffic containing these extension header types will not measure the forwarding performance of the DUT, but rather its extension-header processing capability, which is dependent on the information contained in the extension headers ๐Ÿ™ƒ The concern is that this traffic, at high rates, could have a negative impact on the operational resources of the router, and it could be used as a security threat ๐Ÿ’€ When benchmarking with traffic that contains the hop-by-hop extension header, the goal is not to measure throughput [9] as in the case of the other extension headers, but rather to evaluate the impact of such traffic on the router. In this case, traffic with the hop-by-hop extension headers should be sent at 1%, 10%, and 50% of the interface total bandwidth ๐Ÿ“‰ Device resources must be monitored at each traffic rate to determine the impact ๐Ÿ‘€ watch the router like it's your ex's story.

Tests with traffic containing each individual extension header MUST be complemented with tests containing a chain of two or more extension headers (the chain MUST NOT contain the hop-by-hop extension header) ๐Ÿšซ This chain should also exclude the ESP [5] extension header, since traffic with an encrypted payload cannot be used in tests with modifiers such as filters based on upper-layer information (see Section 5) ๐Ÿ” Since the DUT is not analyzing the content of the extension headers, any combination of extension headers can be used in testing. The extension header chain recommended for testing is:

  • Routing header - 24-32 bytes
  • Destination options header - 8 bytes
  • Fragment header - 8 bytes

This is a real-life extension-header chain that would be found in an IPv6 packet between two mobile nodes exchanged over an optimized path that requires fragmentation ๐Ÿ›ธ The listed extension headers' lengths represent test tool defaults. The total length of the extension header chain SHOULD be larger than 32 bytes ๐Ÿ“

Extension headers add extra bytes to the payload size of the IP packets, which MUST be factored in when used in testing at low frame sizes ๐Ÿงฎ Their presence will modify the minimum packet size used in testing. For direct comparison between the data obtained with traffic that has extension headers and with traffic that doesn't have them at low frame size, a common value SHOULD be selected for the smallest frame size of both types of traffic โš–๏ธ same starting line for both, fair and square ๐Ÿ

For most cases, the network elements ignore the extension headers when forwarding IPv6 traffic. For these reasons, it is likely the performance impact related to extension headers will be observed only when testing the DUT with traffic filters that contain matching conditions for the upper-layer protocol information ๐Ÿ•ต๏ธโ€โ™€๏ธ In those cases, the DUT MUST traverse the chain of extension headers, a process that could impact performance ๐Ÿซ  that's the plot twist.

5.4. Traffic Setup ๐ŸŒธ

All tests recommended in this document SHOULD be performed with bi-directional traffic. For asymmetric situations, tests MAY be performed with uni-directional traffic for a more granular characterization of the DUT performance. In these cases, the bi-directional traffic testing would reveal only the lowest performance between the two directions โ†”๏ธ the slowest direction is the one that gets exposed, periodt.

All other traffic profile characteristics described in RFC 2544 SHOULD be applied in this testing as well. IPv6 multicast benchmarking is outside the scope of this document ๐Ÿšช not this party, sorry multicast ๐Ÿ™…โ€โ™€๏ธ

6. Modifiers ๐ŸŒˆ

RFC 2544 underlines the importance of evaluating the performance of network elements under certain operational conditions ๐Ÿ‘‘ The conditions defined in Section 11 of RFC 2544 are common to IPv4 and IPv6, except that IPv6 does not employ layer 2 or 3 broadcast frames. IPv6 does not use layer 2 or layer 3 broadcasts. This section provides additional conditions that are specific to IPv6. The suite of tests recommended in this document SHOULD be first executed in the absence of these conditions and then repeated under each of these conditions separately ๐Ÿงช baseline first, then add the chaos one condition at a time ๐Ÿ’…

6.1. Management and Routing Traffic ๐Ÿ›ฐ๏ธ

The procedures defined in Sections 11.2 and 11.3 of RFC 2544 are applicable for IPv6 management and routing update frames as well ๐Ÿ“ฌ same rules, new faces.

6.2. Filters ๐Ÿ”

The filters defined in Section 11.4 of RFC 2544 apply to IPv6 benchmarking as well. The filter definitions must be expanded to include upper-layer protocol information matching in order to analyze the handling of traffic with extension headers, which are an important architectural component of IPv6 ๐Ÿง  we gotta look deeper to see what's really going on ๐Ÿ‘€

6.2.1. Filter Format ๐ŸŽ€

The filter format defined in RFC 2544 is applicable to IPv6 as well, except that the source addresses (SA) and destination addresses (DA) are IPv6 addresses. In addition to these basic filters, the evaluation of IPv6 performance SHOULD analyze the correct filtering and handling of traffic with extension headers ๐Ÿซถ

While the intent is not to evaluate a platform's capability to process the various extension header types, the goal is to measure performance impact when the network element must parse through the extension headers to reach upper-layer information. In IPv6, routers do not have to parse through the extension headers (other than hop-by-hop) unless, for example, upper-layer information has to be analyzed due to filters ๐Ÿง only digging through the headers when the filter forces it, got it.

To evaluate the network element handling of IPv6 traffic with extension headers, the definition of the filters must be extended to include conditions applied to upper-layer protocol information. The following filter format SHOULD be used for this type of evaluation:

[permit|deny]  [protocol] [SA] [DA]

where permit or deny indicates the action to allow or deny a packet through the interface the filter is applied to. The protocol field is defined as:

  • ipv6: any IP Version 6 traffic ๐ŸŒ
  • tcp: Transmission Control Protocol ๐Ÿงต
  • udp: User Datagram Protocol ๐Ÿฆ‹

and SA stands for the source address and DA for the destination address ๐Ÿ’–

The upper-layer protocols listed above are a recommended selection. However, they do not represent an all-inclusive list of upper-layer protocols that could be used in defining filters ๐ŸŒธ there are more protocols out there, bestie, these are just the starter pack. The filters described in these benchmarking recommendations apply to native IPv6 traffic and upper-layer protocols (tcp, udp) transported in native IPv6 packets โœจ

6.2.2. Filter Types ๐ŸŽ€

okay so bestie, when we're checking performance with modifiers, RFC 2544 says we run two kinds of tests: one with a single filter and one with 25 filters ๐Ÿงš We'll use the IPv6 documentation prefix [11] 2001:DB8:: for all the examples, because it's the safe pretend-address zone for this stuff ๐Ÿ’…

Here are the single-filter examples:

Filter for TCP traffic - permit tcp 2001:DB8::1 2001:DB8::2
Filter for UDP traffic - permit udp 2001:DB8::1 2001:DB8::2
Filter for IPv6 traffic - permit ipv6 2001:DB8::1 2001:DB8::2

For the single line filter case, the network element SHOULD verify that it permits all TCP/UDP/IPv6 traffic, with or without any number of extension headers, from IPv6 SA 2001:DB8::1 to IPv6 DA 2001:DB8::2, and denies all other traffic. The vibe is "only this one lane gets through" ๐Ÿšฆโœจ

Now the 25-filter version, which is giving main character energy ๐Ÿ‘‘

deny tcp 2001:DB8:1::1 2001:DB8:1::2
deny tcp 2001:DB8:2::1 2001:DB8:2::2
deny tcp 2001:DB8:3::1 2001:DB8:3::2
...
deny tcp 2001:DB8:C::1 2001:DB8:C::2
permit tcp 2001:DB8:99::1 2001:DB8:99::2
deny tcp 2001:DB8:D::1 2001:DB8:D::2
deny tcp 2001:DB8:E::1 2001:DB8:E::2
...
deny tcp 2001:DB8:19::1 2001:DB8:19::2
deny ipv6 any any

The router SHOULD deny all traffic, with or without extension headers, except TCP traffic with SA 2001:DB8:99::1 and DA 2001:DB8:99::2. Only that one permitted flow survives the whole list ๐Ÿซถ


7. Benchmarking Tests โœจ

okay this section is where we actually run the tests ๐Ÿ”ฅ This document recommends the same benchmarking tests described in RFC 2544, while observing the DUT setup and the traffic setup considerations described above. The following sections state the test types explicitly, and they only highlight the methodology differences that might exist compared with what's described in Section 26 of RFC 2544. Less re-reading for you, bestie ๐Ÿ’–

IPv6 has its own quirks, especially how extension header processing works, so it needs extra benchmarking steps. The tests recommended by RFC 2544 MUST be repeated for IPv6 traffic without extension headers, and for IPv6 traffic with one or multiple extension headers. No skipping, no cap ๐Ÿ™…โ€โ™€๏ธ

IPv6 is getting deployed into IPv4 environments, and the two protocols are going to live side by side for a long time. So network operators care a LOT about how platforms handle both types of traffic ๐Ÿ˜ญ Device resources are shared between the two, so IPv6-enabled platforms should not end up with degraded IPv4 performance. That's why IPv6 benchmarking SHOULD be performed both as a stand-alone protocol and in the context of its coexistence with IPv4 ๐ŸŒˆ

The modifiers are independent of the extension header type, so you can apply them to each of the tests above. Very flexible, very slay ๐Ÿ’…

The benchmarking tests in this section SHOULD be performed under each of the following conditions:

  • Extension header specific conditions:
    • i) IPv6 traffic with no extension headers
    • ii) IPv6 traffic with one extension header from the list in Section 5.3
    • iii) IPv6 traffic with the chain of extension headers described in Section 5.3
  • Coexistence-specific conditions:
    • iv) IPv4 ONLY traffic benchmarking
    • v) IPv6 ONLY traffic benchmarking
    • vi) IPv4-IPv6 traffic mix with the ratio 90% vs 10%
    • vii) IPv4-IPv6 traffic mix with the ratio 50% vs 50%
    • viii) IPv4-IPv6 traffic mix with the ratio 10% vs 90%

Put the IPv6-alone tests and the coexistence tests together and you get a really big coverage matrix ๐Ÿฆ‹ At a minimum, the coexistence tests should use IPv6 traffic with no extension headers, along with the 10%-90%, 90%-10%, or IPv4/IPv6 traffic mix. Start small, then level up ๐Ÿ“

The subsequent sections each describe specific tests that MUST be executed under the conditions listed above for complete benchmarking of IPv6-forwarding performance. Non-negotiable, babe ๐Ÿซถ

7.1. Throughput

Objective: To determine the DUT throughput as defined in RFC 1242.

Procedure: Same as RFC 2544.

Reporting Format: Same as RFC 2544.

7.2. Latency

Objective: To determine the latency as defined in RFC 1242.

Procedure: Same as RFC 2544.

Reporting Format: Same as RFC 2544.

7.3. Frame Loss

Objective: To determine the frame-loss rate (as defined in RFC 1242) of a DUT throughout the entire range of input data rates and frame sizes.

Procedure: Same as RFC 2544.

Reporting Format: Same as RFC 2544.

7.4. Back-to-Back Frames

Based on the IPv4 experience, the back-to-back frames test has significant variance caused by short-term variations in the processing flow ๐Ÿ“‰ For those reasons, this test is no longer recommended for IPv6 benchmarking. RIP bozo test ๐Ÿ’€

7.5. System Recovery

Objective: To characterize the speed at which a DUT recovers from an overload condition.

Procedure: Same as RFC 2544.

Reporting Format: Same as RFC 2544.

7.6. Reset

Objective: To characterize the speed at which a DUT recovers from a device or software reset.

Procedure: Same as RFC 2544.

Reporting Format: Same as RFC 2544.


8. IANA Considerations ๐ŸŒธ

The IANA has allocated 2001:0200::/48 for IPv6 benchmarking. It's a 48-bit prefix from the RFC 4773 pool, and it's kind of like 198.18.0.0/15, which is defined in RFC 3330 [10] for IPv4 benchmarking. This prefix length (48) gives similar flexibility to the range allocated for IPv4 benchmarking, and it balances address conservation with simplicity of usage โœจ The requested size is big enough for testing large network elements and large emulated networks, so it's not going to run out on us ๐Ÿงš

Note: Similar to RFC 2544 avoiding the use of RFC 1918 address space for benchmarking tests, this document does not recommend the use of RFC 4193 [4] (Unique Local Addresses), in order to minimize the possibility of conflicts with operational traffic. Don't mix your test addresses with real ones, bestie ๐Ÿ™ˆ

9. Security Considerations ๐Ÿ”

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 constraints specified in the sections above. Lab only, no sneaking this stuff into prod ๐Ÿงช

The benchmarking network topology will be an independent test setup, and it MUST NOT be connected to devices that may forward the test traffic into a production network, or misroute traffic to the test management network. I cannot stress this enough: a stray test packet in production is an absolute disaster ๐Ÿ˜ญ๐Ÿšจ

Further, benchmarking is performed on a "black-box" basis, relying solely on measurements observable external to the DUT/SUT (System Under Test). We're only looking at what's visible from the outside, no peeking inside ๐Ÿ‘€

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. The device has to behave the same no matter who's watching ๐Ÿซฃ

The isolated nature of the benchmarking environments, and the fact that no special features or capabilities (other than those used in operational networks) are enabled on the DUT/SUT, means no security considerations specific to the benchmarking process are required. Clean setup, clean conscience ๐ŸŒˆ

10. Conclusions ๐ŸŽ€

The Benchmarking Methodology for Network Interconnect Devices document, RFC 2544 [9], is for the most part applicable to evaluating the IPv6 performance of network elements. This document addresses the IPv6-specific requirements that MUST be observed when applying the recommendations of RFC 2544. Those extra requirements come from the architecture characteristics of IPv6 ๐Ÿง  This document is not a replacement for RFC 2544, but a complement to it. Think of it as the sidekick, not the hero ๐Ÿฆธโ€โ™€๏ธ

11. Acknowledgements ๐Ÿ’œ

Scott Bradner provided valuable guidance and recommendations for this document. The authors acknowledge the work done by Cynthia Martin and Jeff Dunn on defining the terminology for IPv6 benchmarking. The authors would like to thank Bill Kine for his contribution to the initial document, and Tom Alexander, Bill Cerveny, Silvija Dry, Sven Lanckmans, Dean Lee, Athanassios Liakopoulos, Benoit Lourdelet, Al Morton, David Newman, Rajiv Papejna, Dan Romascanu, and Pekka Savola for their very helpful feedback. Maryam Hamza inspired the authors to complete this document. Iconic squad goals ๐Ÿ™Œ

12. References ๐Ÿ“š

12.1. Normative References

  • [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [2] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.
  • [3] Malis, A. and W. Simpson, "PPP over SONET/SDH", RFC 2615, June 1999.
  • [4] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, October 2005.
  • [5] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005.
  • [6] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, September 2007.

12.2. Informative References

  • [7] Bradner, S., "Benchmarking Terminology for Network Interconnection Devices", RFC 1242, July 1991.
  • [8] Simpson, W., Ed., "PPP in HDLC-like Framing", STD 51, RFC 1662, July 1994.
  • [9] Bradner, S. and J. McQuaid, "Benchmarking Methodology for Network Interconnect Devices", RFC 2544, March 1999.
  • [10] IANA, "Special-Use IPv4 Addresses", RFC 3330, September 2002.
  • [11] Huston, G., Lord, A., and P. Smith, "IPv6 Address Prefix Reserved for Documentation", RFC 3849, July 2004.
  • [12] Newman, D. and T. Player, "Hash and Stuffing: Overlooked Factors in Network Device Benchmarking", RFC 4814, March 2007.
  • [13] LAN/MAN Standards Committee of the IEEE Computer Society, "IEEE Std 802.3as-2006, Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications, Amendment 3: Frame format extensions", November 2006.
  • [14] Allyn Romanow (editor), "IEEE Std 802.3ae, Media Access Control (MAC) Security", June 2006.
  • [15] Mick Seaman (editor), "IEEE Std 802.1D-2004, MAC Bridges", February 2004.

Appendix A. Theoretical Maximum Frame Rates Reference ๐Ÿงฎ

This appendix gives the formulas for calculating, plus the values for, the theoretical maximum frame rates on two media types: Ethernet and SONET. Math time, but make it cute ๐Ÿฆ‹

A.1. Ethernet

The throughput in frames per second (fps) for various Ethernet interface types, and for a frame size X, can be calculated with this formula:

          Line Rate (bps)
  ------------------------------
  (8bits/byte)*(X+20)bytes/frame

The 20 bytes in the formula are the sum of the preamble (8 bytes) and the inter-frame gap (12 bytes). Here's the throughput for various Ethernet interface types and frame sizes:

  Size     10Mb/s   100Mb/s    1000Mb/s     10000Mb/s
  Bytes    pps      pps        pps          pps

  64       14,880   148,809    1,488,095    14,880,952
  128      8,445    84,459     844,594      8,445,945
  256      4,528    45,289     452,898      4,528,985
  512      2,349    23,496     234,962      2,349,624
  1024     1,197    11,973     119,731      1,197,318
  1280     961      9,615      96,153       961,538
  1518     812      8,127      81,274       812,743
  1522     810      8,106      81,063       810,635
  2048     604      6,044      60,444       604,448
  4096     303      3,036      30,396       303,691
  8192     152      1,522      15,221       152,216
  9216     135      1,353      13,534       135,339
Note: Ethernet's maximum frame rates are subject to variances due to clock slop. The listed rates are theoretical maximums, and actual tests should account for a +/- 100 ppm tolerance. Real life has some wiggle room, so don't trust the numbers blindly ๐Ÿ™ˆ

A.2. Packet over SONET โœจ

okay bestie, so ANSI T1.105 SONET is the one that gives us the formula for how much bandwidth you actually get across the different Packet over SONET (PoS) interface types ๐Ÿงš here it is:

   STS-Nc (N = 3Y, where Y=1,2,3,etc)

   [(N*87) - N/3]*(9 rows)*(8 bit/byte)*(8000 frames/sec)

PoS can wear a few different encapsulations: PPP [3], High-Level Data Link Control (HDLC) [8], and Frame Relay ๐Ÿ’… and honestly they're all giving the same overhead vibes. Each one has a 4-byte header, a 2- or 4-byte Frame Check Sequence (FCS) field, and a 1-byte Flag, and all of that gets counted in the overall frame size ๐ŸŽ€ so no sneaky bytes are being left out.

To get the maximum frame rate for each interface type, you use this formula, where X is the frame size in bytes:

          Line Rate (bps)
  ------------------------------
  (8bits/byte)*(X+1)bytes/frame

Here are the theoretical maximum frame rates for the various PoS interface types and frame sizes ๐ŸŒธ the numbers are huge, I'm obsessed:

   Size   OC-3c    OC-12c     OC-48c     OC-192c     OC-768c
   Bytes  fps      fps        fps        fps         fps

   47     390,000  1,560,000  6,240,000  24,960,000  99,840,000
   64     288,000  1,152,000  4,608,000  18,432,000  73,728,000
   128    145,116  580,465    2,321,860  9,287,441   37,149,767
   256    72,840   291,361    1,165,447  4,661,789   18,647,159
   512    36,491   145,964    583,859    2,335,438   9,341,754
   1024   18,263   73,053     292,214    1,168,858   4,675,434
   2048   9,136    36,544     146,178    584,714     2,338,857
   4096   4,569    18,276     73,107     292,428     1,169,714
โš ๏ธ bestie, real talk: your throughput test results might not match the numbers above, because bit stuffing from various media types [12] can mess with them. Also, the theoretical throughput numbers were rounded down ๐Ÿ™ˆ

Authors' Addresses

Ciprian Popoviciu ๐Ÿ’– (Cisco Systems)

   Ciprian Popoviciu
   Cisco Systems
   Kit Creek Road
   RTP, North Carolina  27709
   USA

   Phone: 919 787 8162
   EMail: cpopovic@cisco.com

Ahmed Hamza ๐Ÿฆ‹ (Cisco Systems)

   Ahmed Hamza
   Cisco Systems
   3000 Innovation Drive
   Kanata  K2K 3E8
   Canada

   Phone: 613 254 3656
   EMail: ahamza@cisco.com

Gunter Van de Velde ๐Ÿงš (Cisco Systems)

   Gunter Van de Velde
   Cisco Systems
   De Kleetlaan 6a
   Diegem  1831
   Belgium

   Phone: +32 2704 5473
   EMail: gunter@cisco.com

Diego Dugatkin ๐Ÿ‘‘ (FastSoft, Inc.)

   Diego Dugatkin
   FastSoft, Inc.
   150 S. Los Robles Ave.
   Pasadena, CA 91101
   USA

   Phone: +1-626-357-7012
   EMail: diego@fastsoft.com

Copyright (C) The IETF Trust (2008) ๐ŸŒˆ

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. ๐Ÿ’œ

๐Ÿ“ฆ where this page comes from