<?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-nmop-auto-test-00" category="info" submissionType="IETF" 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="05"/>

    <area>Operations and Management</area>
    <workgroup>Network Management Operations</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 operational considerations and open issues for applying the framework in test environments.</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-nmop-auto-test/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cui-nmop-auto-test/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        NMOP Working Group mailing list (<eref target="mailto:nmop@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/nmop/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/nmop/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/WheaterW/draft-cui-nmop-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 how the framework can support operational test workflows.</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 an experimental test workflow, 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 OSPF route-overwrite test 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="operational-considerations-and-open-issues"><name>Operational Considerations and Open Issues</name>

<t>Several operational considerations and open issues remain for applying AI-assisted protocol testing in operational test environments:</t>

<t><list style="numbers" type="1">
  <t>Assessing representation fidelity: A structured protocol representation is useful only if it preserves the semantics needed for testing.  Operators and tool developers lack common criteria for assessing whether message formats, state transitions, algorithms, exception handling, and update effects have been captured with sufficient fidelity.  This makes it difficult to determine 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.  Operational use requires assessing 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.  Operational test environments need practical ways to generate such oracles and validate their correctness.</t>
  <t>Making feedback-driven refinement reliable: Execution feedback can reveal artifact errors, invalid test cases, incorrect oracles, environment problems, or deviations from the protocol specification.  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.  Operational deployments need 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 open issues for making AI-assisted protocol testing more systematic, auditable, and controllable in operational test environments.</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+5PbxpH+HX8FalV1icsk5bOdcx2Ty3n1SlSRLZUkn5NU
6lIgMCQnCwI0BthdyvH/fv119zwAkJLsuro63VW8SwLz6Hd/3TO7XC6zBw8e
ZA/y501vusb0yyddse3zb4rupmrvmvytORzrojcZHnptmuJg8n5vXb61tcm3
XXvIK7yx7NuqXZ7aocMjy2PX9m3Z1qtDlfdtvjN97vqi6021onFkDh5r23aH
os9pwCsZ53d+jN8vf3fXdje7rh2O9DN/RMNdrXgpz9out43tbVHnzvTDcZHT
i3nb1Ke8MYZnNZXtabE0ie1cn2/qtrzJ2y39aurKYSEv8fhVb/vaXPFrDu9t
TF7ui2Znqt/mlalNb/KrYrPpzO1VbreYp8v5HSzb7duux1jXzSlvabYuL1si
ZtPnZdFgLCzDVIt8M/Q8dNGZ7VDnTdtjMtv0XVsNJT3XdW3Hy3rTgjK8yvzO
1jVeo03mxdC3RC1bFjWtuxo62+xk91gXzX3KafB8aHT5QqonbfMronBT1kNF
O1l+9tlVTtS7WoKvrqc9NUqlmvmLFbwoNqZ24RtiUv4R7NERZRGOmLA50VgY
oW/bmmlLeycK0Q/4tBy6DoS6NZ2zbfNb2gstsGpLjHaFaXNzX5AAGtnJWwhe
rxKJGVx+0xUHCOqy25brfN/3R7d++HBn+/2wWZXt4WFZbNqH6VM0zl9IUsCc
ztBIpeG10DpsJ0RQJudHWWyRV3ZLP2ClIq6g0GMmcSAcLZR4jl1gc/RMuQ+k
I/n+9er+UPOG/vzNi0Vu+nK1Wn2CTT14ILK0zq+uny+vnbOOpCV/Ris2IDC/
dC2Mp8+/NT1/+koVjBTU9SQGV1kYZfpuMuqlt0WR3xxNabckXT1tw11lIvOy
sG9fvb3K6Buza7vTmgRj22aZcmqtslEOdtkc2uMScrqEJJCsZW7YHKwDZfrT
kZ59/vTts6wZDhvTrbOKRlxnpDCOiDe4dUbTfZGR/BTr/OXRdLKUvGgqMklN
sTMH4kIWBG8ddhS/Td7LbsyJvq3WWb7MvUnKe9kzPvMK1Tb4rdGxSBwDGbJb
0wy0xDz3E37z8hX9Jnv5nh4H+f6A7+jTQ2HrdQ4afG1Nv121HU1D6lDuo2zi
GXxib83KP/QQHzzcdO2dMw/x+kNMyEJMk+wNUan7/uElKtOzonhxEqJr0XdF
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
5xeOeRoP9z/YExHkGGsAAA==

-->

</rfc>

