<?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.35 (Ruby 3.0.2) -->


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

]>


<rfc ipr="trust200902" docName="draft-cui-nmrg-auto-test-02" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AI-NPT">A Framework for AI-Assisted Network Protocol Testing from Specifications</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="Kaiwen Chi">
      <organization>Tsinghua University</organization>
      <address>
        <email>ckw24@mails.tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Xiaohui Xie">
      <organization>Tsinghua University</organization>
      <address>
        <email>xiexiaohui@tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Shailesh Prabhu">
      <organization>Nokia</organization>
      <address>
        <email>shailesh.prabhu@nokia.com</email>
      </address>
    </author>

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

    <area>Operations and Management</area>
    <workgroup>Network Management Research Group</workgroup>
    <keyword>protocol testing</keyword> <keyword>automation</keyword> <keyword>network verification</keyword>

    <abstract>


<?line 79?>

<t>Network protocol testing is essential for validating that implementations conform to their specifications.  Traditional testing approaches rely heavily on manual effort or protocol-specific models that are expensive to build and difficult to reuse as specifications evolve and new protocols emerge.</t>

<t>This document describes a framework for AI-assisted network protocol testing that decomposes the testing workflow into six stages: structured protocol representation, coverage scoping, test case generation, executable artifact generation, test execution, and feedback-based refinement.  The framework emphasizes explicit stage boundaries and reviewable intermediate outputs, keeping the workflow auditable and traceable to the specification text.</t>

<t>The document discusses the design motivations and trade-offs behind the framework, presents examples from routing protocol testing, and identifies open research challenges.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://datatracker.ietf.org/doc/draft-cui-nmrg-auto-test/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cui-nmrg-auto-test/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        NMRG Research Group mailing list (<eref target="mailto:nmrg@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/rg/nmrg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/nmrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/WheaterW/draft-cui-nmrg-auto-test"/>.</t>
    </note>


  </front>

  <middle>


<?line 88?>

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

<t>Network protocol testing is used to validate whether an implementation behaves according to the semantics defined by protocol specifications.  It is needed throughout the lifecycle of network systems, from implementation development to deployment and operational maintenance.</t>

<t>Traditional protocol testing remains largely manual.  Engineers read long specifications, identify test points, design topologies, write test procedures, create DUT configurations and tester scripts, execute tests, and inspect results.  Model-based approaches can automate parts of this process, but they often depend on protocol-specific models that are expensive to build and difficult to reuse across new or rapidly evolving protocols.</t>

<t>Recent advances in artificial intelligence, especially Large Language Models (LLMs) and AI agents, create new opportunities for automating parts of this workflow.  However, protocol testing is not a generic text-to-code task.  Generated tests need to preserve protocol semantics from the specification, reflect the intended coverage scope, coordinate tester and DUT behavior, execute in a controlled environment, and provide reviewable result checks.</t>

<t>This document therefore focuses on a framework question: how can a testing workflow carry test-relevant information from protocol specifications to executable test artifacts while remaining auditable and controllable?  The framework decomposes the workflow into structured protocol representation, coverage scoping, test case generation, executable artifact generation, test execution, and feedback-based refinement.  At each stage boundary, the framework preserves not only the generated artifact, but also the protocol semantics, assumptions, and review points needed by later stages.</t>

</section>
<section anchor="problem-scope-and-assumptions"><name>Problem Scope and Assumptions</name>

<t>This document focuses on specification-derived protocol testing.  The primary input is a protocol specification, such as an RFC document.  The target outputs are test cases, tester scripts, DUT configurations, execution results, and reports that can be traced back to the specification.</t>

<t>The framework is mainly intended for conformance, functional, robustness, regression, and related protocol-behavior tests.  It does not attempt to cover all implementation-specific or vendor-specific behavior, which may require additional inputs beyond protocol specifications.</t>

<t>The framework does not assume a fixed level of capability for AI-assisted components.  As these capabilities evolve, the degree of automation and the placement of human review can be adjusted according to the risk and maturity of each workflow stage.  The intended role of automation is to reduce repetitive expert effort while preserving traceability and expert control.</t>

</section>
<section anchor="definitions-and-acronyms"><name>Definitions and Acronyms</name>

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

<t>Tester: A device with sufficient network protocol functionality and test-control capabilities to execute test cases. It can generate and receive test-specific packets or traffic, emulate target network behaviors, collect observations, and analyze results.</t>

<t>LLM: Large Language Model</t>

<t>AI Agent: A system that can assist with or drive parts of multi-step workflows by using tools and making decisions based on feedback, subject to configured constraints and review points.</t>

<t>API: Application Programming Interface</t>

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

<t>Test Case: A specification of conditions and inputs to evaluate a protocol behavior.</t>

<t>Tester Script: An executable program or sequence of instructions that controls a tester during test execution.</t>

</section>
<section anchor="background"><name>Background</name>

<t>Protocol testing is required during device development, where vendors verify that their implementations conform to protocol specifications, and during procurement evaluation, where third-party organizations perform black-box conformance testing against a neutral standard.  Both scenarios require coordinated test cases, DUT configuration, tester behavior, execution observations, and result evaluation.</t>

<t>A DUT can be a physical network device such as a switch, router, or firewall, or a virtual network device such as an FRRouting (FRR) instance <xref target="FRRouting"/>.  A tester is typically controlled by scripts that configure protocol behavior, generate test traffic, collect observations, and support result evaluation.</t>

<t>Before executing a test case, the DUT is initialized with test-specific configurations.  During the test, tester actions and DUT configuration need to remain consistent with the intended topology, protocol parameters, procedure, and expected results.</t>

</section>
<section anchor="framework"><name>Framework</name>

<t>The AI-assisted network protocol testing framework is illustrated in the figure below.  Test requirements are an external input, provided by the testing team for each test campaign.</t>

<figure><artwork><![CDATA[
+------------------------+    +-----------------------+
| Protocol Specification |    |   Test Requirements   |
+------------+-----------+    +-----------+-----------+
             |                            |
+------------v----------------------------v-----------+
|  +----------------------+      +-----------------+  |
|  | Structured Protocol  +----->|     Coverage    |  |
|  |   Representation     |      |     Scoping     |  |
|  +----------------------+      +--------+--------+  |
|                                         |           |
|  +----------------------+      +--------v--------+  |
|  |   Test Artifacts     |<-----+    Test Case    |  |
|  |     Generation       |      |    Generation   |  |
|  +----------------------+      +-----------------+  |
+--------+----------------------------------^---------+
         |                                  |
+--------v------+                  +--------+---------+
|     Test      +--->  Test  ----->|   Feedback and   |
|   Execution   |     Reports      |    Refinement    |
+---------------+                  +------------------+
]]></artwork></figure>

<t>The framework has six stages:</t>

<t><list style="numbers" type="1">
  <t>Structured protocol representation: transform specification text into a test-relevant representation.</t>
  <t>Coverage scoping: reconcile the protocol representation with test requirements to produce an explicit, reviewable coverage scope.</t>
  <t>Test case generation: derive test templates, parameters, and oracles from included scope items.</t>
  <t>Test artifacts generation: translate test cases into coordinated tester scripts and DUT configurations.</t>
  <t>Test execution: run the generated artifacts in a controlled test environment.</t>
  <t>Feedback and refinement: analyze failures and decide whether to refine artifacts, scope, or bug reports.</t>
</list></t>

<t>Each stage produces intermediate outputs that can include generated content, source references, assumptions, constraints, and review status.</t>

<t>The six stages support two complementary cycles.  In the forward cycle, coverage scoping and test case generation produce the test suite from the specification and the test requirements.  In the backward cycle, execution feedback is analyzed to localize the likely source of a failure or coverage gap, starting from concrete execution artifacts and moving toward more abstract scope or representation issues when needed.  An AI agent can assist in both cycles, with human review applied where automation uncertainty or risk is high, or where automation maturity is insufficient.</t>

<section anchor="structured-protocol-representation"><name>Structured Protocol Representation</name>

<t>Protocol specifications are usually written for human readers.  They include message formats, state machines, timers, variables, algorithms, exception handling, and normative behavior spread across sections and sometimes across multiple update documents.  Directly generating executable tests from such text risks losing details that determine whether a test is valid.</t>

<t>The framework therefore introduces a structured protocol representation as an intermediate artifact between specification text and downstream test generation.  The representation is not required to be a complete formal model of the protocol.  Instead, it preserves the protocol semantics that are relevant for testing.</t>

<t>Such a representation can include:</t>

<t><list style="symbols">
  <t>message formats, fields, constraints, and valid or invalid values</t>
  <t>local data structures, timers, counters, and protocol variables</t>
  <t>state machines and state transitions</t>
  <t>event-action rules and packet processing behavior</t>
  <t>protocol algorithms, such as route selection or path computation</t>
  <t>error handling and exception behavior</t>
  <t>relationships among modules, such as which messages trigger which transitions or algorithms</t>
  <t>links back to source specification sections</t>
</list></t>

<t>A practical construction workflow can be organized into three steps.</t>

<t>First, specification analysis identifies sections, cross-references, normative statements, summaries, and update relationships in the specification.  This step can combine rule-based extraction with AI-assisted summarization.</t>

<t>Second, module induction groups related text into protocol modules, such as message formats, state machines, algorithms, and event-action rules.  Each module remains linked to the source text used to construct it.</t>

<t>Third, formalization serializes each module into a structured representation that can be queried, traversed, reviewed, and used by test generation tools.</t>

<t>Protocol updates require special handling.  Update documents often add, modify, or deprecate specific protocol behavior rather than restating a complete protocol.  An update-aware representation identifies update points, maps them to existing modules, and expresses the update as a differential change to the base representation.</t>

<t>The main design trade-off is between completeness and usefulness.  A fully formal protocol model can be expensive to build and difficult to apply across many protocols.  A testing-oriented representation instead focuses on the semantics needed to generate valid tests, derive oracles, and trace failures back to specifications.</t>

</section>
<section anchor="coverage-scoping"><name>Coverage Scoping</name>

<t>A structured protocol representation describes what a protocol specification defines.  It does not determine which definitions a particular test campaign intends to cover.  Coverage scoping uses the representation to select the protocol behaviors that a test suite will exercise and to document which items are excluded and why.</t>

<t>Coverage scoping takes two inputs: the structured protocol representation and the test requirements for a test campaign.  These requirements are external to the framework and reflect the campaign's objectives, constraints, and priorities.</t>

<t>The output is a coverage scope: a structured decision record in which each referenced protocol behavior is marked as included or excluded, assigned a priority, and, when excluded, accompanied by a documented reason.</t>

<t>The coverage scope serves three purposes.  First, it turns coverage into an inspectable plan: a human reviewer can assess whether the set of included and excluded behaviors is acceptable for the testing objective.  Second, it provides the input to test case generation, so that generation focuses on how to test rather than what to test.  Third, during iterative refinement, it provides a controlled basis for deciding whether a newly observed behavior or coverage gap should be added to the campaign scope, remain excluded, or trigger a revision of the documented scoping rationale.</t>

<t>An AI agent can assist in producing an initial coverage scope by traversing the representation, applying the test requirements, and proposing inclusion or exclusion with documented reasoning.  Human review can be applied as needed before the scope is used for test generation.</t>

</section>
<section anchor="test-case-generation"><name>Test Case Generation</name>

<t>Once a coverage scope has been established, test generation derives test cases from the included scope items.  These test cases can be based on normative statements, message constraints, state transitions, algorithms, error handling requirements, and update deltas in the representation.</t>

<t>The framework separates the reusable structure of a test from the concrete values used to instantiate it.  A test template captures the reusable structure, including:</t>

<t><list style="symbols">
  <t>test objective</t>
  <t>specification reference</t>
  <t>test topology</t>
  <t>preconditions and static configuration</t>
  <t>test procedure</t>
  <t>expected result or oracle</t>
  <t>variable placeholders</t>
</list></t>

<t>Parameters fill those placeholders with concrete values.  Parameter generation can include valid values, invalid values, boundary values, timing values, topology variants, and values computed by helper logic.  Oracle values can also require computation, especially when expected behavior depends on route selection, timers, path attributes, or other protocol algorithms.</t>

<t>This separation is a key design choice.  Templates provide breadth across protocol functions and test scenarios.  Parameters provide depth across value spaces and boundary conditions.  Equivalence partitioning or similar reduction techniques can then group parameter combinations that exercise the same protocol behavior, reducing redundant execution without discarding meaningful coverage.</t>

<t>Generated test cases should remain reviewable.  Review can consider whether a test reflects the intended protocol semantics and whether the resulting suite exercises the behaviors and parameter spaces identified in the coverage scope.</t>

</section>
<section anchor="executable-artifact-generation-execution-and-feedback"><name>Executable Artifact Generation, Execution, and Feedback</name>

<t>Executable artifact generation translates abstract test cases into runnable tester scripts and DUT configurations.  In practice, these artifacts are often synthesized from tester API documentation, DUT configuration manuals, prior scripts, and testbed context.  Even when generated artifacts appear plausible, they can contain API misuse, invalid configuration, timing errors, or mismatches between tester behavior and DUT configuration.</t>

<t>The framework therefore treats artifact generation and test execution as a refinement loop.  An AI agent can generate candidate artifacts, execute or dry-run them in a controlled test environment, collect execution feedback, and revise the artifacts before a result is treated as evidence about the DUT.  Feedback can include syntax errors, API responses, device diagnostics, packet captures, and pass/fail observations.</t>

<t>Feedback analysis and refinement are not limited to executable artifacts.  When execution feedback indicates that the artifacts correctly implement the intended test case but the test remains invalid, ambiguous, or inconclusive, feedback analysis can trace the problem back to the test case, the coverage scope, or the structured representation.  Refinement actions can therefore update executable artifacts, oracle logic, test-case definitions, scoping decisions, or representation content.  Human review can be applied as needed when the interpretation of feedback or the resulting refinement actions carry high risk.</t>

</section>
</section>
<section anchor="design-considerations"><name>Design Considerations</name>

<section anchor="structured-workflow-boundaries"><name>Structured Workflow Boundaries</name>

<t>Single-pass prompting can produce useful drafts, but protocol testing benefits from a more structured workflow.  Decomposing the workflow into stages makes intermediate outputs reviewable and allows each stage to focus on a specific part of the testing problem, such as preserving protocol semantics, defining coverage, deriving test cases, generating executable artifacts, and interpreting feedback.  This provides a more systematic and inspectable path from specification text to executable tests.</t>

</section>
<section anchor="test-relevant-protocol-representation"><name>Test-Relevant Protocol Representation</name>

<t>Complete formal models can support rigorous analysis, but they are expensive to build and difficult to maintain across many protocols and update documents.  A test-relevant representation makes a narrower claim: it preserves the semantics needed for testing rather than modeling every aspect of the protocol.  This scoped representation is more feasible for broad use across protocol testing workflows.</t>

</section>
<section anchor="separation-of-test-templates-and-test-parameters"><name>Separation of Test Templates and Test Parameters</name>

<t>Generating many concrete tests directly can produce large and redundant suites.  Separating test templates from test parameters allows broad functional coverage and deeper parameter exploration to scale independently.  This separation also requires support for parameter reduction, oracle computation, and test-suite scheduling.</t>

</section>
<section anchor="human-in-the-loop-review"><name>Human-in-the-Loop Review</name>

<t>AI-assisted workflows can help analyze execution feedback, but some interpretations and refinement actions can carry high risk.  The framework therefore allows human review to be applied where automation uncertainty or risk is high, or where automation maturity is insufficient.</t>

</section>
<section anchor="specification-derived-testing"><name>Specification-Derived Testing</name>

<t>Specification-derived testing targets behavior defined by protocol specifications.  It can miss implementation-specific or vendor-specific behavior that requires inputs beyond the protocol specification.  Such extensions are possible, but they require additional input modeling and are outside the primary scope of this framework.</t>

</section>
</section>
<section anchor="use-cases"><name>Use Cases</name>

<t>This section uses routing-protocol testing examples to illustrate the framework and motivate the design choices above.</t>

<section anchor="update-aware-testing"><name>Update-Aware Testing</name>

<t>Protocol behavior changes over time as RFCs are updated.  For example, RFC 9774 <xref target="RFC9774"/> deprecated the AS_SET path segment type in BGP, updating behavior originally specified in RFC 4271 <xref target="RFC4271"/>.  A framework that treats the update document in isolation may miss the base-protocol context needed to derive an executable test.</t>

<t>An update-aware representation can record the RFC 9774 change as a delta to the BGP path-attribute behavior in the base representation.  Test generation can then focus on the changed behavior, for example by constructing a route advertisement that contains AS_SET and checking whether the DUT handles it according to the updated specification.</t>

<t>This example illustrates why update documents are best represented as changes to existing protocol modules rather than as standalone specifications.</t>

</section>
<section anchor="specification-derived-bug-exposure"><name>Specification-Derived Bug Exposure</name>

<t>Specifications can define behavior that is easy to overlook in manually curated test suites.  For example, RFC 2453 <xref target="RFC2453"/> defines conditions under which a RIP router originates and advertises a default route to neighbors (Section 3.7).  A manually curated test suite might verify basic route exchange without exercising this specific condition.</t>

<t>A structured representation can make the condition explicit.  Test generation can then configure the DUT to originate a default route, observe RIP update messages, and check whether the expected 0.0.0.0/0 route is advertised.  In prototype evaluation, this test exposed a default-route handling defect in a deployed RIP implementation.</t>

<t>This example illustrates how specification-derived testing can expose coverage gaps in manually curated suites and exercise protocol behavior that is easy to miss in basic functional tests.</t>

</section>
<section anchor="parameterized-boundary-testing"><name>Parameterized Boundary Testing</name>

<t>Some bugs appear only under specific parameter relationships rather than under a single fixed input.  In OSPF, for example, DR election depends on relative router priorities.  A test template can capture the protocol scenario, while parameter instantiation explores priority relationships such as equal priorities and asymmetric priorities.</t>

<t>In an injected OSPF route-overwrite case, the bug was triggered only when the tester-side peers used asymmetric priorities and a DR re-election was forced.  The corresponding parameterized test distinguished this boundary condition from a symmetric-priority configuration that did not trigger the failure.</t>

<t>This example illustrates why test depth depends on parameter relationships and oracle computation, not only on the number of generated test cases.</t>

</section>
</section>
<section anchor="research-challenges"><name>Research Challenges</name>

<t>Several research challenges remain open for AI-assisted protocol testing:</t>

<t><list style="numbers" type="1">
  <t>Measuring representation fidelity: A structured protocol representation is useful only if it preserves the semantics needed for testing.  The community lacks accepted metrics or benchmarks for assessing whether message formats, state transitions, algorithms, exception handling, and update effects have been captured with sufficient fidelity.  This makes it difficult to compare representation methods or decide when a representation is adequate for a testing objective.</t>
  <t>Validating coverage scope: Coverage scope is a decision record rather than a property directly defined by the protocol specification.  A key challenge is to assess whether the included and excluded behaviors are appropriate for a testing objective, and whether important protocol behaviors have been omitted.  This is difficult because both specifications and test requirements are often expressed in natural language.</t>
  <t>Generating and validating oracles: Many protocol tests depend on expected results that are derived from algorithms, timers, ordering constraints, or parameter relationships.  Some oracles can be computed directly, while others require interpretation of protocol context and testbed behavior.  Methods for generating such oracles and validating their correctness remain limited.</t>
  <t>Making feedback-driven refinement reliable: Execution feedback can reveal artifact errors, invalid test cases, incorrect oracles, environment problems, or DUT protocol violations.  When an AI agent participates in artifact generation and refinement, its own actions can also contribute to the failure.  A challenge is to distinguish these causes reliably and record enough context for refinement decisions to be replayed and audited.</t>
  <t>Balancing automation, review, and traceability: AI-assisted workflows need traceability from test results back to executable artifacts, test cases, coverage scope, protocol representation, and specification text.  A remaining challenge is to determine what context should be recorded, how review decisions should be represented, and where human review should be placed as automation capability and operational risk change.</t>
</list></t>

</section>
<section anchor="conclusion"><name>Conclusion</name>

<t>This document has described a framework for AI-assisted network protocol testing from specifications.  The framework provides a structured workflow, from protocol representation through coverage scoping, test generation, execution, and feedback, in which stage boundaries are explicit, intermediate outputs remain traceable to the specification, and human review can be applied where automation uncertainty or risk is high.  The framework identifies design considerations and research challenges for making AI-assisted protocol testing more systematic, auditable, and controllable.</t>

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

<t><list style="numbers" type="1">
  <t>Execution of generated artifacts: Automatically generated tester scripts and DUT configurations can misconfigure devices, generate unintended traffic, or disrupt a test environment.  Such artifacts should be executed only in isolated and recoverable test environments, with appropriate access controls, rollback mechanisms, and traffic containment.  Syntax checks, dry runs, and semantic review can reduce risk, but they do not eliminate the need for operational safeguards.</t>
  <t>AI-assisted generation and refinement: LLMs and AI agents may produce incorrect outputs due to model limitations, incomplete context, or hallucination.  Such errors may lead to false positives, where a valid DUT is reported as failing, or false negatives, where a real deviation from the protocol specification is missed.  Systems using such components should treat generated actions and conclusions as untrusted until they are checked against the test objective, the generated artifacts, and the execution evidence.</t>
  <t>Exposure of sensitive testbed information: DUT configurations, tester scripts, logs, packet captures, and telemetry can contain sensitive operational or implementation information.  Such inputs and outputs should be protected according to the confidentiality requirements of the test environment.</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="RFC2453">
  <front>
    <title>RIP Version 2</title>
    <author fullname="G. Malkin" initials="G." surname="Malkin"/>
    <date month="November" year="1998"/>
    <abstract>
      <t>This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="56"/>
  <seriesInfo name="RFC" value="2453"/>
  <seriesInfo name="DOI" value="10.17487/RFC2453"/>
</reference>

<reference anchor="RFC4271">
  <front>
    <title>A Border Gateway Protocol 4 (BGP-4)</title>
    <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
    <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
    <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
    <date month="January" year="2006"/>
    <abstract>
      <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
      <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
      <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
      <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4271"/>
  <seriesInfo name="DOI" value="10.17487/RFC4271"/>
</reference>

<reference anchor="RFC9774">
  <front>
    <title>Deprecation of AS_SET and AS_CONFED_SET in BGP</title>
    <author fullname="W. Kumari" initials="W." surname="Kumari"/>
    <author fullname="K. Sriram" initials="K." surname="Sriram"/>
    <author fullname="L. Hannachi" initials="L." surname="Hannachi"/>
    <author fullname="J. Haas" initials="J." surname="Haas"/>
    <date month="May" year="2025"/>
    <abstract>
      <t>BCP 172 (i.e., RFC 6472) recommends not using AS_SET and AS_CONFED_SET AS_PATH segment types in the Border Gateway Protocol (BGP). This document advances that recommendation to a standards requirement in BGP; it prohibits the use of the AS_SET and AS_CONFED_SET path segment types in the AS_PATH. This is done to simplify the design and implementation of BGP and to make the semantics of the originator of a BGP route clearer. This will also simplify the design, implementation, and deployment of various BGP security mechanisms. This document updates RFC 4271 by deprecating the origination of BGP routes with AS_SET (Type 1 AS_PATH segment) and updates RFC 5065 by deprecating the origination of BGP routes with AS_CONFED_SET (Type 4 AS_PATH segment). Finally, it obsoletes RFC 6472.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9774"/>
  <seriesInfo name="DOI" value="10.17487/RFC9774"/>
</reference>


<reference anchor="FRRouting" target="https://frrouting.org/">
  <front>
    <title>FRRouting</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>



<?line 327?>

<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:
H4sIAAAAAAAAA81d+48bx5H+nX/FYAVcbJikfLZzxjG5nFcvR4hsC5J8ToLg
guFMk2zvcIaentldyvH/fvVVVT/mQUkxDodTjGiXnOlHveur6tZqtVo8ePBg
8SB7XnemrU23etLmuy77Jm9vyuauzt6Y46nKO7PAQ69MnR9N1h2sy3a2Mtmu
bY5ZiTdWXVM2q3PTt3hkdWqbrimaan0ss67J9qbLXJe3nSnXNI7MwWPtmvaY
dxkNeCXj/N6P8YfV7++a9mbfNv2JfuaPaLirNS/lWdNmtradzavMma4/LTN6
MWvq6pzVxvCsprQdLZYmsa3rsm3VFDdZs6NfTVU6LOQ7PH7V2a4yV/yaw3tb
kxWHvN6b8ndZaSrTmewq325bc3uV2R3maTN+B8t2h6btMNZ1fc4amq3NioaI
WXdZkdcYC8sw5TLb9h0Pnbdm11dZ3XSYzNZd25R9Qc+1bdPysl43oAyvMruz
VYXXaJNZ3ncNUcsWeUXrLvvW1nvZPdZFc58zGjzra12+kOpJU/+GKFwXVV/S
TlaffnqVEfWuVuCr62hPtVKpYv5iBS/yralc+IaYlH0Ae3REWYQjJmzPNBZG
6JqmYtrS3olC9AM+Lfq2BaFuTetsU/+O9kILLJsCo11h2szc5ySARnbyBoLX
qURiBpfdtPkRgrpqd8UmO3TdyW0ePtzb7tBv10VzfFjk2+Zh+hSN8xeSFDCn
NTRSYXgttA7bChGUydlJFptnpd3RD1ipiCso9JhJHAhHCyWeYxfYHD1THALp
SL4/Wt8fK97Qn795scxMV6zX64+xqQcPRJY22dX189W1c9aRtGTPaMUGBOaX
roXx9Pm3puNPX6qCkYK6jsTgahFGGb+bjHrpbVHk1ydT2B1JV0fbcFcLkXlZ
2Lcv31wt6Buzb9rzhgRj1ywWyqmNykbR21V9bPcryOkKkrD69LOF67dH60CZ
7nyiZ5+/evNsUffHrWk3i5JG3CxIYRwRr3ebBU33+YLkJ99k351MK0vJ8rok
k1Tne3MkLiyC4G3CjuK3ZKWcyVui/9d4ZHFjzvREuVlkq8ybpayTfeMzr1RN
jd9qHY9EMpBicWvqnpaZZX7Sb159Tb/JfkbTZcR8W20yEOIra7rdumlpngyP
RAGlfeddmxc3pl37hx7Sf3jrISZiAd5kPxwMUaj94eElCtOzonTvGZtYdXGM
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

-->

</rfc>

