<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-cui-bmwg-testcase-spec-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="STCSPTA">Specification of Test Case Structure for Protocol Testing Automation</title>

    <author fullname="Yong Cui">
      <organization>Tsinghua University</organization>
      <address>
        <email>cuiyong@tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Yunze Wei">
      <organization>Tsinghua University</organization>
      <address>
        <email>wyz23@mails.tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Xiaohui Xie">
      <organization>Tsinghua University</organization>
      <address>
        <email>xiexiaohui@tsinghua.edu.cn</email>
      </address>
    </author>

    <date year="2025" month="July" day="04"/>

    <area>Operations and Management</area>
    <workgroup>Benchmarking Methodology</workgroup>
    <keyword>protocol testing</keyword> <keyword>benchmarking</keyword>

    <abstract>


<?line 62?>
<t>This document defines a standardized test case specification used in automated network protocol testing. The specification aims to provide a structured and interoperable format for representing test cases that evaluate the implementations of network protocols. This work facilitates the development of protocol-agnostic testing frameworks and improves the repeatability and automation of network testing.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cui-bmwg-testcase-spec/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        bmwg Working Group mailing list (<eref target="mailto:bmwg@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/bmwg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/bmwg/"/>.
      </t>
    </note>


  </front>

  <middle>


<?line 66?>

<section anchor="introduction"><name>Introduction</name>

<t>Test cases have long served as a foundational element in evaluating network protocol implementations. Over the past several decades, informal conventions and community practices have emerged for describing and executing such tests. Despite this evolution, a formal, standardized specification for test case structure remains absent. As a result, test cases are often documented in ad hoc formats, leading to ambiguities in interpretation, inconsistent implementations, and challenges in sharing or reusing test artifacts across different environments.</t>

<t>The rise of automated network testing frameworks and protocol-agnostic validation systems has significantly raised the bar for test case clarity, precision, and interoperability. In these automated systems, even minor ambiguities in test definition can result in incorrect behavior, reduced repeatability, and difficulty in diagnosing failures. A standardized test case structure is therefore critical not only to eliminate misinterpretation during implementation but also to facilitate test intent preservation, enable reproducible testing, and support automated validation pipelines.</t>

<t>This document proposes a unified, machine-readable specification for network protocol test cases. The goal is to bridge the gap between legacy testing practices and modern automation needs by providing a clear, extensible, and interoperable schema for describing test logic, environment, parameters, and evaluation criteria. By aligning the test case definition with automation requirements, this specification lays the groundwork for improved consistency in protocol testing and advances in test automation research.</t>

</section>
<section anchor="definition-and-acronyms"><name>Definition and Acronyms</name>

<t>DUT: Device Under Test</t>

<t>CLI: Command Line Interface</t>

<t>Tester: A network device for protocol conformance and performance testing. It can generate specific network traffic or emulate particular network devices to facilitate the execution of test cases.</t>

</section>
<section anchor="test-case-classification"><name>Test Case Classification</name>

<t>Protocol test cases can be broadly classified into the following categories. Each category serves a distinct validation goal and may require specialized tools or methodologies:</t>

<t><list style="symbols">
  <t>Conformance Testing: Validates whether a protocol implementation adheres strictly to the normative requirements defined in the protocol specification. Conformance test suites are typically designed with exhaustive coverage and are essential for standard compliance.</t>
  <t>Functional Testing: Verifies that the implementation performs its intended functions correctly under both normal and edge-case conditions. Unlike conformance testing, which focuses on specification adherence, functional testing emphasizes operational behavior in representative scenarios, such as route convergence, state transitions, and control plane interactions.</t>
  <t>Performance and Scalability Testing: Evaluates key performance metrics such as throughput, latency, jitter, packet loss, and control plane convergence time. Tests in this category are often based on established benchmarking methodologies (e.g., <xref target="RFC2544"/>, <xref target="RFC2889"/>, <xref target="RFC5180"/>) and may also assess scalability under stress conditions, such as large-scale route distribution or high-volume traffic forwarding.</t>
  <t>Interoperability Testing: Ensures that multiple implementations of the same protocol (often from different vendors) can interoperate correctly. This type of testing focuses on real-world integration scenarios and is critical for multi-vendor environments. Interoperability testing is commonly performed in plugfests or consortium-organized test events.</t>
  <t>Robustness Testing: Assesses the implementation's resilience against malformed, unexpected, or adversarial inputs. These tests may include protocol fuzzing, boundary condition violations, or replayed traffic anomalies. While related to security testing, robustness testing typically focuses on fault tolerance and graceful failure handling rather than exploit prevention.</t>
</list></t>

</section>
<section anchor="test-case-specification"><name>Test Case Specification</name>

<t>Each test case MUST consist of the following components:</t>

<section anchor="metadata"><name>Metadata</name>

<t><list style="symbols">
  <t><spanx style="verb">test-id</spanx>: Unique identifier.</t>
  <t><spanx style="verb">title</spanx>: A human-readable name of the test case.</t>
  <t><spanx style="verb">purpose</spanx>: The summary of test objectives.</t>
  <t><spanx style="verb">category</spanx>: One or more of the above classification types.</t>
  <t><spanx style="verb">protocol</spanx>: Protocol(s) being tested (e.g., OSPFv2, BGP, TCP).</t>
  <t><spanx style="verb">references</spanx>: Related RFCs or drafts.</t>
</list></t>

</section>
<section anchor="topology"><name>Topology</name>

<t>Describes the setup of the test environment, including:</t>

<t><list style="symbols">
  <t>Node roles (e.g., DUT, tester).</t>
  <t>Link characteristics (e.g., delay, bandwidth).</t>
  <t>Addressing scheme (IP, MAC, etc.).</t>
</list></t>

<t>In automated testing scenarios, it is common to construct a <em>minimal common topology</em> for a given set of test cases. This refers to the simplest possible network setup that can support the execution of all selected test cases. The primary advantage of this approach is that the testbed needs to be instantiated only once prior to execution, after which a batch of automated tests can be run efficiently and repeatedly without further reconstruction.</t>

</section>
<section anchor="test-setup"><name>Test Setup</name>

<t>The test setup specifies the initial configuration of all DUTs prior to test execution.  Certain procedural steps may require temporary deviations from this baseline configuration.  When protocol parameter values are not explicitly specified, implementations MUST use the protocol-defined default values.</t>

</section>
<section anchor="parameters"><name>Parameters</name>

<t>Parameters are a critical component of test cases, as any parameter left undefined may introduce ambiguity into the test case. When authoring a test case, it is essential to identify all relevant parameters required for its execution and provide explicit definitions for each.</t>

<t><list style="symbols">
  <t>Protocol-specific knobs (e.g., HelloInterval for OSPF).</t>
  <t>Device configurations for interconnection.</t>
  <t>Traffic profiles (e.g., packet rate, pattern, size).</t>
</list></t>

</section>
<section anchor="test-procedure-and-expected-behavior"><name>Test Procedure and Expected Behavior</name>

<t>To ensure consistency, each step in the test procedure MUST be defined unambiguously, such that different implementations or testing systems interpret and execute it in the same manner. Additionally, each expected behavior MUST be measurable, allowing for objective verification of test results.</t>

<t><list style="symbols">
  <t>For each step:
  <list style="symbols">
      <t>Action, such as enabling interfaces, sending packets, or setting up new configurations.</t>
      <t>Evaluation method, such as packet capture and API call.</t>
      <t>Expected behavior.</t>
    </list></t>
</list></t>

</section>
<section anchor="evaluation-criteria"><name>Evaluation Criteria</name>

<t><list style="symbols">
  <t>Functional: Compliance with expected state or output.</t>
  <t>Performance: Quantitative metrics (e.g., throughput &gt;= 1Gbps).</t>
  <t>Pass/Fail thresholds.</t>
  <t>Result logging: Required telemetry or logs.</t>
</list></t>

</section>
</section>
<section anchor="application-scenarios"><name>Application Scenarios</name>

<section anchor="use-case-1-vendor-internal-testing"><name>Use Case 1: Vendor Internal Testing</name>

<t>Network equipment manufacturers often validate their protocol implementation in controlled environments. Here, test cases focus on functional and performance validation of a single device (DUT), with testers simulating peers or traffic sources.</t>

</section>
<section anchor="use-case-2-live-network-acceptance-testing"><name>Use Case 2: Live Network Acceptance Testing</name>

<t>When new network equipment is introduced into a live production environment, operators often conduct acceptance testing to verify both backward compatibility and forward readiness. This includes ensuring interoperability and stability without disrupting existing services, as well as validating the device's ability to meet the requirements of new service scenarios. The testing process may involve limited-scope deployment, traffic mirroring, or passive monitoring, helping ensure the DUT integrates smoothly while also supporting planned innovations or upgrades.</t>

</section>
</section>
<section anchor="usage-example"><name>Usage Example</name>

<t>The following is a test case example for the OSPF HelloInterval mismatch scenario.</t>

<figure><sourcecode type="yaml"><![CDATA[
test-id: TC-OSPF-HI-001
title: OSPFv2 HelloInterval Mismatch Negative Test
purpose: >
  To verify that the DUT correctly rejects OSPF neighbor formation
  when receiving Hello packets with a mismatched HelloInterval value.
category:
  - Conformance Testing
protocol:
  - OSPFv2
references:
  - RFC2328 Section A.3.2

topology:
  nodes:
    - name: TesterA
      role: tester
      interfaces:
        - name: PortTesterA_1
          ip: 192.0.2.100/24
          connected_to: DeviceA:PortDeviceA_1
    - name: DeviceA
      role: DUT
      interfaces:
        - name: PortDeviceA_1
          ip: 192.0.2.1/24
          connected_to: TesterA:PortTesterA_1
  links:
    - node1: TesterA:PortTesterA_1
      node2: DeviceA:PortDeviceA_1

test-setup:
  DUT-initial-config:
    - Configure interface PortDeviceA_1 with IP 192.0.2.1/24
    - Enable OSPFv2 on PortDeviceA_1
    - Set HelloInterval = 10 seconds on PortDeviceA_1
  tester-initial-config:
    - Configure interface PortTesterA_1 with IP 192.0.2.100/24
    - Enable OSPFv2 on PortTesterA_1
    - Set HelloInterval = 5 seconds on PortTesterA_1

parameters:
  OSPF.HelloInterval.DUT: 10s
  OSPF.HelloInterval.Tester: 5s
  Network.Mask: 255.255.255.0
  OSPF.Network.Type: Broadcast
  OSPF.Area: 0.0.0.0

procedure:
  - step: 1
    action: >
      Initialize both DUT and Tester with the respective interface 
      IPs and enable OSPF.
    evaluation: CLI log and interface status verification
    expected: >
      Interfaces are up and OSPF is enabled with configured 
      HelloIntervals.
  - step: 2
    action: >
      Verify OSPF neighbor state between DUT and Tester.
    evaluation: >
      OSPF neighbor state via CLI and OSPF adjacency state table.
    expected: >
      No OSPF adjacency is formed. DUT interface remains in Down or
      Init state.

evaluation-criteria:
  functional: >
    DUT must reject Hello packets with mismatched HelloInterval and
    not form adjacency.
  performance: null
  pass-fail: >
    PASS if no neighbor relationship is formed; FAIL if OSPF
    adjacency state reaches 2-Way or Full.
  logging:
    - OSPF neighbor state transitions on DUT
    - Packet capture if applicable
    - Interface and OSPF logs on DUT and Tester
]]></sourcecode></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This document defines a test case specification format and does not introduce new protocols or alter protocol behaviors. However, the following considerations apply:</t>

<t><list style="numbers" type="1">
  <t>Test Artifacts Sensitivity: Test configurations and captured traffic may include sensitive information (e.g., IP addresses, authentication exchanges). Proper data sanitization and access control should be enforced during storage and sharing.</t>
  <t>Fuzzing and Adversarial Inputs: Some robustness test cases may involve malformed or adversarial inputs. Care must be taken to ensure such inputs do not propagate beyond the test environment or affect uninvolved systems.</t>
</list></t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>




    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC2544">
  <front>
    <title>Benchmarking Methodology for Network Interconnect Devices</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <author fullname="J. McQuaid" initials="J." surname="McQuaid"/>
    <date month="March" year="1999"/>
    <abstract>
      <t>This document is a republication of RFC 1944 correcting the values for the IP addresses which were assigned to be used as the default addresses for networking test equipment. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2544"/>
  <seriesInfo name="DOI" value="10.17487/RFC2544"/>
</reference>

<reference anchor="RFC2889">
  <front>
    <title>Benchmarking Methodology for LAN Switching Devices</title>
    <author fullname="R. Mandeville" initials="R." surname="Mandeville"/>
    <author fullname="J. Perser" initials="J." surname="Perser"/>
    <date month="August" year="2000"/>
    <abstract>
      <t>This document is intended to provide methodology for the benchmarking of local area network (LAN) switching devices. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2889"/>
  <seriesInfo name="DOI" value="10.17487/RFC2889"/>
</reference>

<reference anchor="RFC5180">
  <front>
    <title>IPv6 Benchmarking Methodology for Network Interconnect Devices</title>
    <author fullname="C. Popoviciu" initials="C." surname="Popoviciu"/>
    <author fullname="A. Hamza" initials="A." surname="Hamza"/>
    <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
    <author fullname="D. Dugatkin" initials="D." surname="Dugatkin"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>The benchmarking methodologies defined in RFC 2544 are IP version independent. However, RFC 2544 does not address some of the specificities of IPv6. This document provides additional benchmarking guidelines, which in conjunction with RFC 2544, lead to a more complete and realistic evaluation of the IPv6 performance of network interconnect devices. IPv6 transition mechanisms are outside the scope of this document. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5180"/>
  <seriesInfo name="DOI" value="10.17487/RFC5180"/>
</reference>




    </references>



<?line 266?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>This work is supported by the National Key R&amp;D Program of China.</t>

</section>
<section numbered="false" anchor="contributors"><name>Contributors</name>

<t>Zhen Li<br />
Beijing Xinertel Technology Co., Ltd.<br />
Email: lizhen_fz@xinertel.com</t>

<t>Zhanyou Li<br />
Beijing Xinertel Technology Co., Ltd.<br />
Email: lizy@xinertel.com</t>

</section>


  </back>

<!-- ##markdown-source:
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
cVI2lgyUkmvne9NzuUB7etI+/Gu6KXvG32Nezd/Y9mZuTp89y9P/T9LsNORa
Hmk9500TILFLP5/JG7KTXP6XZQMR14gWQmr0pNqYV9zinwvVOOoCTaAELqY7
FTAyB8lLrGMEAEcjpDUutd3qRkXn+r5pIJRgjq8vSMnGy1lZgbQRHGdKrnVm
5JVTQVOA6jvLrawkiOojs06XRIku43OcvKf8SKBVK6cPauWvCuf7eK0UN91d
7yvq/nnTUg+tgVJf9DGcwJa/4GS80o1XLDxN/hFNvA2Hk7yUhxtX5kOGVvWm
9zGgnS/4rDk0E7PrXkiQo9izdL1Nx1lOeL/uzcU3vdQ9TGgPpamPJimcNVMM
0+eko/g853ZaK9R9VfE7cJLZUl7I6faXZ1dXfKRah1Gh0nIms1j77aiHL82r
s4vXHEtNqYkPVNywVoMznc5+sFIvvOq1PEplRQSGh+w3uQEjNKQswoplr/LC
/laLD5gzDhn8eLQ+K5W4zsSlyFukeX2VWunnLMHL9E708BnH+N7vY0/84qs7
eRYTMJKmGPssZJrDOzq5T6iIAEMlk2pFVirhji/Iju/1x6fyydFBF7Knestm
zoanTldO1HeLQ2nCO2x2yM2dKnG8bpjeX7RxBWeGB5E4YKwnkQistnOFiPeQ
su6SEtx7fSWOEpPtDzieYQ/ftJZI+MEOrR4WG3rjJheIKD/7qpSH7dyRpUx6
iQ7CnO6h4zMvBNVpDo+SuxUtwCeXMxdyOTPX9+4H1yKx9Jty+eHG52OXPOcE
RInLBaHjxknzOdJ2aQroSFhdbM4HP3alYLZDfnuw5y6bLZcM876OogzPt/SV
xMXZ27N/4pR8WoZwlZHjnbA8iWSpJuV5cVOHO4D3Soqe7Ne5Ppp25Z+PlkBr
d/RbXFXqSr6Y0RJDHtqL7G/TDfdf3M68+68XNCxqjA0LqPO1r62UGue0JG9F
4cMP7/K/ZOGv/d//nj13/hea7keEFHZiO6BY10KAsQ587HVX5hj3Ul/wIn9i
6k/LD1+/jxP4CJ8L2ppP6v/DNXcHy2XZ/wH2xKa+ujIAAA==

-->

</rfc>

