RFC 5180
IPv6 Benchmarking Methodology for Network Interconnect Devices
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
Full Copyright Statement
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
- ietf: rfc5180 2008-05
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms