<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC6514 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6514.xml">
<!ENTITY RFC7385 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7385.xml">
<!ENTITY RFC9012 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9012.xml">
<!ENTITY RFC9552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9552.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<?rfc consensus="yes" ?>
<rfc category="info" docName="draft-hares-idr-bess-tea-templates-00"  ipr="trust200902">
  <front>
    <title abbrev="BGP TEA Template">Guidance for Authors writing text for the BGP Tunnel Encapsulation Attribute </title>
    <author fullname="Susan Hares" initials="S" surname="Hares">
      <organization>Hickory Hill Consulting</organization>
      <address>
        <postal>
          <street>7453 Hickory Hill</street>
          <city>Saline</city>
          <region>MI</region>
          <code>48176</code>
          <country>USA</country>
        </postal>
		<phone>+1-734-604-0332</phone>
        <email>shares@ndzh.com</email>
      </address>
    </author>
	 <date year="2025" />
    <area>Routing Area</area>
    <workgroup>IDR Working Group</workgroup>
    <keyword>RFC</keyword>
    <keyword>Request for Comments</keyword>
    <keyword>I-D</keyword>
    <keyword>Internet-Draft</keyword>
    <keyword>BGP Tunnel Encapsulation Attribute </keyword>
	<keyword>BGP TEA </keyword>
	<abstract>
	<t>The BGP (RFC4271) Tunnel Encapsulation Attribute (TEA) is defined in 
	RFC9012. Currently proposed BGP specifications in the IDR and BESS 
	Working groups have defined new tunnels and new parameters
	for these tunnels in Sub-TLV.  The Segment Routing usage 
	of the TEA has suggested a number of new Sub-TLVs. 
	This document provides guidelines to help authors quickly write 
    correct text for new tunnels (defined in tunnel TLVs) and new Sub-TLVs.
    These guidelines are given as "templates" to aid new authors. 
    More experience authors should view these templates as a list 
    of expected content. 	
    </t>
    <t>One additional challenge for tunnels using the PMSI 
    tunnels is to carefully define the interaction between 
    PMSI tunnels and TEA tunnels. 
    </t>
</abstract>
</front> 
<middle>
<section anchor="intro" title="Introduction">	
	<t>The BGP <xref target="RFC4271"></xref> 
	Tunnel Encapsulation Attribute (TEA) <xref target="RFC9012"></xref>
   defines a BGP attribute that passes tunnel information.
   BGP passes this attribute to associate prefixes with a
    particular tunnel.
	</t>
	<t>
	Currently proposed BGP specifications in the IDR and BESS 
	Working groups have defined new tunnels and new parameters
	for these tunnels in Sub-TLV. 	This document provides 
	guidelines to help authors quickly write 
    correct text for new tunnels (defined in tunnel TLVs) and new Sub-TLVs.
    These guidelines are given as "templates" to aid new authors. 
    More experience authors should view these templates as a list
	of expected content. 
    </t>
    <t>One additional challenge for tunnels defined by [RFC9012]
	TEA is the interaction with the PMSI tunnels 
	(<xref target="RFC6514"></xref>, <xref target="RFC7385"></xref>)
    is to carefully define the interaction between 
    PMSI tunnels and TEA tunnels.
	</t>
	<t>This set of guidelines comes from the lessons learned from reviewing the 
    following different drafts for the BGP TEA: 
    <dl>
	<dt>draft-ietf-idr-sr-policy-safi: </dt><dd>defines a BGP NLRI and 
	a SR Policy tunnel TLV for the BGP TEA, and several Sub-TLVs 
	for the SR Policy Tunnel TLV based on the SR Policy architecture <xref target="RFC9552"></xref>.
	</dd>
	<dt>IDR drafts defining parameters for the SR Policy tunnel: </dt><dd>
	This includes draft-ietf-idr-sr-policy-nrp, draft-idr-sr-policy-path-mtu, 
	draft-ietf-idr-sr-policy-path-segment, and draft-ietf-sr-policy-seglist)
	</dd>
	<dt>draft-ietf-idr-sdwan-edge-discovery: </dt><dd>defines a Hybrid SDWAN Tunnel 
	and several Sub-TLVs. </dd>
	<dt>draft-ietf-bess-multicast-controller: </dt><dd>defines two tunnels 
	(Any Encapsulation tunnel (78), Load-Balancing Tunnel, Segment list Tunnel, 
	and Sub-TLVs for these tunnels. 
	</dd>
	<dt>draft-ietf-bess-evpn-geneve: </dt><dd>defines a Geneve tunnel type, and 
	a Geneve Tunnel Option Sub-TLV. </dd>
	</dl> 
	</t>
    <t>The purpose behind the guidelines is content rather than form. 
    In the draft-ietf-idr-sdwan-discovery-document, I used tables to 
	refer to Sub-TLVs supported and sections with the description. 
	</t>
	<t>I will post prior to IETF-122 on the IDR wiki, reviews and suggested changes based  on 
    this document for the BESS and IDR draft using tunnels. This rought draft is 
	to provides an snapshot of the Wiki prior to IETF-122.  
	</t>
</section> 
<section anchor="Tunnel-TLV" title="Tunnel TLV Specification Guidelines">
<t>This section describes a guideline for information 
regarding new tunnel types.  It is presented as a template to aid new 
authors.  
</t>
<t> 
Tunnel encapsulation specification requires the following things for each tunnel:
<dl>
<dt>Name: </dt><dd>Short name that will go in IANA allocation </dd>
<dt>Code: </dt><dd>Code assigned by IANA </dd>
<dt>Description: </dt><dd>Give a description of the tunnel and usage. 
The authors should strive to have a paragraph of description, but 
the description may point to other sections in the document. </dd>
<dt>List of all Sub-TLVs supported: </dt><dd>This list should include 
the sub-TLV that may be sent in this tunnel TLV. This list should include mandatory 
and optional TLVs. Please denote which sub-TLVs are mandatory and which 
sub-TLVs are optional. Please note any sub-TLVs that are not listed are not supported.</dd>
<dt>List of all Sub-TLVs not supported:</dt><dd> This list includes the 
Sub-TLVs which are not supported by this tunnel TLV. Note that any 
Sub-TLVs which are not explicitly defined as supported are by default unsupported. 
</dd>
<dt> A validation procedure: </dt><dd> Each tunnel should have a set of
procedures to determine if tunnel signaled by BGP is valid. </dd>
<dt>Multiple Tunnel interactions: </dt><dd>Multiple Tunnel TLVs can be 
included in a single BGP TEA.  If there are interactions between 
Tunnel TLVs, then this should be described in this section. 
For example, if one Tunnel TLV defines a security association that 
another TLV uses. </dd> 
<dt>Security Considerations: </dt><dd> A security section needs to provides 
specific comments regarding the information passed in the tunnel TLV. 
Tunnel TLVs can send critical information regarding a network infrastructure, 
and this critical information needs to be identified. After the critical information 
is identified, the security section should discuss how network operators 
should restrict access to such critical information. </dd> 
<dt>Management Considerations:</dt><dd>A management section 
includes comments on how the tunnel will be managed.
</dd>
</dl>
</t>
<t>
It is helpful for items 1-5 be clearly laid out in one section.
</t>
<section title="Do and Donts for Tunnel TLVs">
<t>
<dl> 
<dt>1. Name: </dt><dd>
<list>
<t>Do: Give a short name </t>
<t>Do not: Please do not replicate an existing tunnel or Sub-TLV name </t>
</list> </dd>
<dt>2. Code: </dt><dd>
<list> 
<t>Do: Use a TBDxx unless assigned a number by IANA.</t>
<t>Do not: assign your own number for tunnel type. </t>
</list></dd> 
<dt>3. Description: </dt><dd>
<list>
<t>Do: Do you give a short description regarding the tunnel,
and link to a more extended text block giving a detailed description.</t>
<t>Do not Forget: to give information in the longer text about 
conflicts with any other tunnels if both are attached to the same route,
what network applications use the tunnel, and pros/cons about using tunnel. </t>
</list> </dd>
<dt>4. List of all Sub-TLVs defined for this tunnel TLV </dt><dd>
<list>
<t>Do: Look at RFC9012 and any other TEA document you reference
(e.g. draft-ietf-idr-sr-policy-safi). </t>
<t>Do: Gather a full list of Sub-TLVs from IANA lists and put it in a table 
with an indication for mandatory, optional, or not-supported. 
Report any errors in the IANA list to the IDR chairs. 
</t>
<t>Do: Provide a complete list with the form of
name (code-number) for each item. </t>
</list> </dd>
<dt>5. List of unsupported Sub-TLV: </dt><dd> This contains 
a list of Sub-TLVs which are not supported for this tunnel TLV </dd>
<dt> 6. Validation procedure(s):</dt><dd>
<list>
<t>Do: Write up a validation procedure for each Tunnel.</t>
<t>Do: Look at existing validation procedures in [RFC9012]. 
Validation procedures may or may not include The
 Tunnel-Egress Endpoint. </t>
<t> Do Not Assume that one tunnel validation procedure
matches another.</t>
</list> </dd> 
<dt>7. Multiple Tunnel Interactions</dt><dd>
<list>
<t>Do: Consider if this tunnel interacts with another
tunnel specified for the prefixes (AFI/SAFI).
If so, please give advice to the implementers. </t>
<t> Do not: Forget to look at all existing Tunnel types at
the IANA site (https://www.iana.org/assignments/bgp-tunnel-encapsulation/bgp-tunnel-encapsulation.xhtml).
</t>
</list>
</dd>
<dt>8. Security Considerations: </dt><dd>
<list> 
<t>Do: Please look draft-ietf-idr-sr-policy-safi for a good template.
</t>
<t>Do: Consider what information is critical information or mission-critical 
information in the tunnel TLV or sub-TLV passed in tunnel TLV. 
</t>
<t>Do not: Forget to add the critical information in the security section. 
</t>
</list>
</dd> 
<dt> 9. Manageability section: </dt><dd> 
How is the operator going to create the new tunnels in
configuration? This section consider how easy this 
tunnel is to manage or configure. 
</dd> 
</dl>
</t> 
</section> 
</section> 
<section anchor="Sub-TLV" title="Sub-TLV Specification Guidlines">
<t>
A document specifying a new Sub=TLV needs include the following Information:
<dl>
<dt>1. Title:</dt><dd> Short title that goes in IANA documentation 
(10-15 characters). </dd>
<dt>2. Sub-TLV Type Code: </dt><dd>Value for Type code. </dd>
<dt>3. Encoding of Value bytes: </dt><dd>this information should include:
<list>
<t>3.1 diagram of value byte </t>
<t>3.2 Description of each field in Encoding </t>
<t>3.3 Error handling per field</t>
</list>
</dd>
<dt>4. Tunnel TLVs this Sub-TLV can appear in:   </dt><dd>
The authors should list tunnel TLVs that support this Sub-TLV
as mandatory or optional Sub-TLV</dd>
<dt>5. Sub-TLV role in validation: </dt><dd> Please indicate whether 
this Sub-TLV play a part in validation in the validation of 
the validation of any Tunnel TLV. </dd>
</dl>
</t>
<t>It is helpful for items 1-5 be clearly laid out in one section.
If new sub-TLVs are defined, it is helpful that these Sub-TLVs
go before the list of all sub-TLVs.
</t>
<t>In addition, the SUB-tLV may be part of discussions on:
<list style="symbols">
<t>Multiple Tunnel interactions, </t>
<t>security considerations with specific comments regarding critical 
information passed in a tunnel TLV in a BGP TEA, </t>
<t>management considerations that includes comments on how the tunel will be managed.
</t>
</list>
</t>
<section title="Sub-TLVtemplate form with instructions:">
<t>
<dl>
<dt>1. Title: </dt><dd>One-line summary name that gets added to the IANA Sub-TLV list </dd>
<dt>2. Type: </dt><dd>Type code values (assigned by IANA) in the form value (IANA) or TBDnnn. </dd>
<dt>3. Encoding of value byte</dt><dd>
<dl>
<dt>3.1 diagram of byte layout: </dt><dd>Please use 32 bit layout. </dd>
<dt>3.2 Description of each field: </dt><dd>Each field should have 
<list>
<t>title:</t>
<t>definition:</t>
<t>limits on the field: what values the field can take. If the field is variable give
some indication of what the range or how it is calculated.
</t>
</list> </dd>
<dt>3.3 Error handling: </dt><dd>
<list> 
<t> 1. Do: Specify what constitutes malformed Sub-TLV, and how a malformed Sub-TLV is process.
RFC9012 specifies silently ignoring the Sub-TLV.</t>
<t>2. Do: Point to a description of content checking.
If content checking is done in another process, still give a general hint on what that processing is. </t>
<t>Do not: Hide the Sub-TLV error processing in an error handling section. </t>
<t> Do: Provide an error handling section with an overall summary of error handling.
Refer to this section, but provide the specific details for this Sub-TLV in this section.
</t>
</list> </dd>
</dl></dd>
<dt>4. Tunnel TLV this Sub-TLV can appear in </dt><dd> 
<list>
<t>Do: Give a list on what existing Tunnel types this Sub-TLV can go in as a required or an optional Sub-TLV.  </t>
<t>Do: Give existing tunnel types tunnel types in RFCs and WG document.</t>
<t>Optionally: Authors may list tunnel types in individual drafts. </t>
<t>Do: Give the tunnel types by name and number. </t>
</list></dd>
<dt>5. Does this Sub-TLV play a part in validation</dt><dd>
Please indicate whether this Sub-TLV is involved in the validation of the tunnel.
<list>
<t>Do: Indicate if multiple Sub-TLVs can be in the same tunnel TLV. </t>
<t>Do: Indicate whether on the first Sub-TLV is processed or if all Sub-TLV is processed. </t>
<t>Do: Consider cross-checking of Sub-TLVs within a Tunnel TLV and between two tunnel TLVs 
of the same type. Is there any restriction or cross checking?
</t>
</list>
</dd>
<dt> 5, Specific Security Considerations for this Sub-TLV: </dt><dd>
If this Sub-TLV exposes critical information, how is it protected?</dd>
<dt> 6. Specific Management issues regarding this Sub-TLV: </dt><dd>
If this Sub-TLV exposes a name or an identifier (e.g. binding SID) that helps
the management systems track something for provisioning or debugging, give hints
on how this might be gathered or passed to management system. One example, 
is that the BGP-LS might gather this information in an SR routing system.
</dd>
</dl>
</t>
</section>
</section> 
<section anchor="PMSI-Interact" title="PMSI Interactions Specification Guidelines">	
<t> The Tunnel Encapsulation <xref target="RFC9012"></xref>
states that the consideration of "P-Multicast Service Interface Tunnel" (PMSI Tunnel) attribute
are out of scope.
</t>
<t>
Please fill out the PMSI and TEA template below. Review of these interactions 
took a long time in <xref target="RFC9012"></xref>, so think carefully about these questions. 
</t>
<t>Here's a few questions that must be answered in the Template: 
<list>
<t>1) When is the PMSI tunnel Attribute valid to attach by itself? </t>
<t>2) When is it valid to attach both the PMSI tunnel attribute and a BGP TEA?
<list>
<t>2a) In the case that it is valid to attach both PMSI + TEA, what happens if either is malformed?
</t>
<t>2b) In the case that it is required to attach both, what happens if either the PMSI or TEA is missing?
Note: Malformed implies syntax checking. </t>
<t>2c) When it is invalid to attach both PMSI and TEA, what is the error procedure if
both are attached? </t>
</list> 
</t>
<t>Is there content checking of the TEA that is impacted by PMSI? 
<list>
<t>By content checking, this template document means that given 
valid TEA and PMSI attributes, some content checking must be done 
prior to installing the tunnel and/or a multicast tunnel.
</t>
</list>
</t>
</list> 
</t>
</section> 
<section anchor="IANA" title="IANA Considerations">
   <t>This section specifies no IANA considerations 
   </t>
</section>
 <section title="Security Considerations">
   <t>This document provides administrative guidelines for 
   clearly specifying Tunnel Encapsulation [RFC9012} information 
   in an Internet Draft or RFC. 
   </t>
   <t>Since this is an administrative document, no security 
   consideration are appropriate. 
   </t>
</section>
</middle>
<back>
    <references title="Normative References">
      &RFC4271;
	  &RFC6514;
	  &RFC9012;
	  &RFC9552;
	</references>
	<references title="Informative References">
	 &RFC7385;
	 </references>
  </back>
</rfc>
	