rfc9466xml2.original.xml   rfc9466.xml 
<?xml version="1.0" encoding="utf-8"?> <?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" do
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.9 (Ruby 3.1 cName="draft-ietf-pim-assert-packing-12" number="9466" submissionType="IETF" cat
.2) --> egory="std" consensus="true" tocDepth="5" tocInclude="true" sortRefs="true" symR
efs="true" updates="" obsoletes="" xml:lang="en" prepTime="2023-10-13T16:08:49"
<!DOCTYPE rfc [ indexInclude="true" scripts="Common,Latin">
<!ENTITY nbsp "&#160;"> <link href="https://datatracker.ietf.org/doc/draft-ietf-pim-assert-packing-12"
<!ENTITY zwsp "&#8203;"> rel="prev"/>
<!ENTITY nbhy "&#8209;"> <link href="https://dx.doi.org/10.17487/rfc9466" rel="alternate"/>
<!ENTITY wj "&#8288;"> <link href="urn:issn:2070-1721" rel="alternate"/>
]>
<?rfc comments="yes"?>
<rfc ipr="trust200902" docName="draft-ietf-pim-assert-packing-12" category="std"
consensus="true" submissionType="IETF" tocDepth="5" tocInclude="true" sortRefs=
"true" symRefs="true">
<front> <front>
<title abbrev="assert-packing">PIM Assert Message Packing</title> <title abbrev="PIM Assert Packing">PIM Assert Message Packing</title>
<seriesInfo name="RFC" value="9466" stream="IETF"/>
<author initials="Y." surname="Liu" fullname="Yisong Liu" role="editor"> <author initials="Y." surname="Liu" fullname="Yisong Liu" role="editor">
<organization>China Mobile</organization> <organization showOnFrontPage="true">China Mobile</organization>
<address> <address>
<postal> <postal>
<country>China</country> <country>China</country>
</postal> </postal>
<email>liuyisong@chinamobile.com</email> <email>liuyisong@chinamobile.com</email>
</address> </address>
</author> </author>
<author initials="T." surname="Eckert" fullname="Toerless Eckert" role="edit or"> <author initials="T." surname="Eckert" fullname="Toerless Eckert" role="edit or">
<organization>Futurewei</organization> <organization showOnFrontPage="true">Futurewei</organization>
<address> <address>
<postal> <postal>
<country>USA</country> <country>United States of America</country>
</postal> </postal>
<email>tte@cs.fau.de</email> <email>tte@cs.fau.de</email>
</address> </address>
</author> </author>
<author initials="M." surname="McBride" fullname="Mike McBride"> <author initials="M." surname="McBride" fullname="Mike McBride">
<organization>Futurewei</organization> <organization showOnFrontPage="true">Futurewei</organization>
<address> <address>
<postal> <postal>
<country>USA</country> <country>United States of America</country>
</postal> </postal>
<email>michael.mcbride@futurewei.com</email> <email>michael.mcbride@futurewei.com</email>
</address> </address>
</author> </author>
<author initials="Z." surname="Zhang" fullname="Zheng(Sandy) Zhang"> <author initials="Z." surname="Zhang" fullname="Zheng (Sandy) Zhang">
<organization>ZTE Corporation</organization> <organization showOnFrontPage="true">ZTE Corporation</organization>
<address> <address>
<postal> <postal>
<country>China</country> <country>China</country>
</postal> </postal>
<email>zhang.zheng@zte.com.cn</email> <email>zhang.zheng@zte.com.cn</email>
</address> </address>
</author> </author>
<date month="10" year="2023"/>
<date year="2023" month="April" day="19"/> <area>rtg</area>
<workgroup>pim</workgroup>
<workgroup>PIM</workgroup> <workgroup>ip</workgroup>
<workgroup>ipv6</workgroup>
<abstract> <workgroup>multicast</workgroup>
<workgroup>performance</workgroup>
<t>In PIM-SM shared LAN networks, there is often more than one upstream router. <workgroup>scalability</workgroup>
When PIM Sparse Mode (PIM-SM), including PIM Source Specific-Specific Multicast <workgroup>subnet</workgroup>
(PIM-SSM), is used, this <workgroup>lan</workgroup>
can lead to duplicate IP multicast packets being forwarded by these <workgroup>sparse-mode</workgroup>
PIM routers. PIM Assert messages are used to elect a single forwarder for <workgroup>ASM</workgroup>
each IP multicast traffic flow between these routers.</t> <workgroup>SSM</workgroup>
<abstract pn="section-abstract">
<t>This document defines a mechanism to send <t indent="0" pn="section-abstract-1">When PIM Sparse Mode (PIM-SM), inclu
and receive information for multiple IP multicast flows ding PIM Source-Specific
in a single PackedAssert message. This optimization reduces the Multicast (PIM-SSM), is used in shared LAN networks, there is often more
total number of PIM packets on the LAN and can therefore speed up than one upstream router. This can lead to duplicate IP multicast packets
the election of the single forwarder, reducing the number of duplicate IP being forwarded by these PIM routers. PIM Assert messages
multicast packets incurred.</t> are used to elect a single forwarder for each IP multicast traffic
flow between these routers.</t>
<t indent="0" pn="section-abstract-2">This document defines a mechanism to
send and receive information for
multiple IP multicast flows in a single PackedAssert message. This
optimization reduces the total number of PIM packets on the LAN and can
therefore speed up the election of the single forwarder, reducing the
number of duplicate IP multicast packets incurred.</t>
</abstract> </abstract>
<boilerplate>
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc=
"exclude" pn="section-boilerplate.1">
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name
>
<t indent="0" pn="section-boilerplate.1-1">
This is an Internet Standards Track document.
</t>
<t indent="0" pn="section-boilerplate.1-2">
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by
the Internet Engineering Steering Group (IESG). Further
information on Internet Standards is available in Section 2 of
RFC 7841.
</t>
<t indent="0" pn="section-boilerplate.1-3">
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
<eref target="https://www.rfc-editor.org/info/rfc9466" brackets="non
e"/>.
</t>
</section>
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl
ude" pn="section-boilerplate.2">
<name slugifiedName="name-copyright-notice">Copyright Notice</name>
<t indent="0" pn="section-boilerplate.2-1">
Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved.
</t>
<t indent="0" pn="section-boilerplate.2-2">
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<eref target="https://trustee.ietf.org/license-info" brackets="none
"/>) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Revised BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Revised BSD License.
</t>
</section>
</boilerplate>
<toc>
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p
n="section-toc.1">
<name slugifiedName="name-table-of-contents">Table of Contents</name>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to
c.1-1">
<li pn="section-toc.1-1.1">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der
ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-introduction">
Introduction</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.1.2">
<li pn="section-toc.1-1.1.2.1">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><
xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.
1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-re
quirements-language">Requirements Language</xref></t>
</li>
<li pn="section-toc.1-1.1.2.2">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><
xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.
2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-te
rminology">Terminology</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.2">
<t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" form
at="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-problem-statement">Problem Stateme
nt</xref></t>
</li>
<li pn="section-toc.1-1.3">
<t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" form
at="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-specification">Specification</xref
></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.3.2">
<li pn="section-toc.1-1.3.2.1">
<t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent=
"3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-pim-packed-assert-capa
bilit">PIM Packed Assert Capability Hello Option</xref></t>
</li>
<li pn="section-toc.1-1.3.2.2">
<t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent=
"3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-assert-packing-message
-form">Assert Packing Message Formats</xref></t>
</li>
<li pn="section-toc.1-1.3.2.3">
<t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent=
"3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-packedassert-mechanism
">PackedAssert Mechanism</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se
ction-toc.1-1.3.2.3.2">
<li pn="section-toc.1-1.3.2.3.2.1">
<t indent="0" pn="section-toc.1-1.3.2.3.2.1.1"><xref derived
Content="3.3.1" format="counter" sectionFormat="of" target="section-3.3.1"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-sending-pa
ckedassert-messag">Sending PackedAssert Messages</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn
="section-toc.1-1.3.2.3.2.1.2">
<li pn="section-toc.1-1.3.2.3.2.1.2.1">
<t indent="0" pn="section-toc.1-1.3.2.3.2.1.2.1.1"><xref
derivedContent="3.3.1.1" format="counter" sectionFormat="of" target="section-3.
3.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="nam
e-handling-of-reception-trigg">Handling of Reception-Triggered Assert Records</x
ref></t>
</li>
<li pn="section-toc.1-1.3.2.3.2.1.2.2">
<t indent="0" pn="section-toc.1-1.3.2.3.2.1.2.2.1"><xref
derivedContent="3.3.1.2" format="counter" sectionFormat="of" target="section-3.
3.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="nam
e-handling-of-timer-expiry-tr">Handling of Timer Expiry-Triggered Assert Records
</xref></t>
</li>
<li pn="section-toc.1-1.3.2.3.2.1.2.3">
<t indent="0" pn="section-toc.1-1.3.2.3.2.1.2.3.1"><xref
derivedContent="3.3.1.3" format="counter" sectionFormat="of" target="section-3.
3.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="nam
e-beneficial-delay-in-sending">Beneficial Delay in Sending PackedAssert Messages
</xref></t>
</li>
<li pn="section-toc.1-1.3.2.3.2.1.2.4">
<t indent="0" pn="section-toc.1-1.3.2.3.2.1.2.4.1"><xref
derivedContent="3.3.1.4" format="counter" sectionFormat="of" target="section-3.
3.1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="nam
e-handling-assert-packedasser">Handling Assert/PackedAssert Message Loss</xref><
/t>
</li>
<li pn="section-toc.1-1.3.2.3.2.1.2.5">
<t indent="0" pn="section-toc.1-1.3.2.3.2.1.2.5.1"><xref
derivedContent="3.3.1.5" format="counter" sectionFormat="of" target="section-3.
3.1.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="nam
e-optimal-degree-of-assert-re">Optimal Degree of Assert Record Packing</xref></t
>
</li>
</ul>
</li>
<li pn="section-toc.1-1.3.2.3.2.2">
<t indent="0" pn="section-toc.1-1.3.2.3.2.2.1"><xref derived
Content="3.3.2" format="counter" sectionFormat="of" target="section-3.3.2"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-receiving-
packedassert-mess">Receiving PackedAssert Messages</xref></t>
</li>
</ul>
</li>
</ul>
</li>
<li pn="section-toc.1-1.4">
<t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form
at="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-packet-formats">Packet Formats</xr
ef></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.4.2">
<li pn="section-toc.1-1.4.2.1">
<t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent=
"4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-pim-packed-assert-capa
bility">PIM Packed Assert Capability Hello Option</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2">
<t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent=
"4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-assert-message-format"
>Assert Message Format</xref></t>
</li>
<li pn="section-toc.1-1.4.2.3">
<t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent=
"4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-simple-packedassert-me
ssage">Simple PackedAssert Message Format</xref></t>
</li>
<li pn="section-toc.1-1.4.2.4">
<t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent=
"4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-aggregated-packedasser
t-mes">Aggregated PackedAssert Message Format</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se
ction-toc.1-1.4.2.4.2">
<li pn="section-toc.1-1.4.2.4.2.1">
<t indent="0" pn="section-toc.1-1.4.2.4.2.1.1"><xref derived
Content="4.4.1" format="counter" sectionFormat="of" target="section-4.4.1"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-source-agg
regated-assert-re">Source Aggregated Assert Record</xref></t>
</li>
<li pn="section-toc.1-1.4.2.4.2.2">
<t indent="0" pn="section-toc.1-1.4.2.4.2.2.1"><xref derived
Content="4.4.2" format="counter" sectionFormat="of" target="section-4.4.2"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-rp-aggrega
ted-assert-record">RP Aggregated Assert Record</xref></t>
</li>
</ul>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5">
<t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form
at="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-iana-considerations">IANA Consider
ations</xref></t>
</li>
<li pn="section-toc.1-1.6">
<t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form
at="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-security-considerations">Security
Considerations</xref></t>
</li>
<li pn="section-toc.1-1.7">
<t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form
at="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-references">References</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.7.2">
<li pn="section-toc.1-1.7.2.1">
<t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent=
"7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-normative-references">
Normative References</xref></t>
</li>
<li pn="section-toc.1-1.7.2.2">
<t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent=
"7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-informative-references
">Informative References</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.8">
<t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="Appendi
x A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref d
erivedContent="" format="title" sectionFormat="of" target="name-use-case-example
s">Use Case Examples</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.8.2">
<li pn="section-toc.1-1.8.2.1">
<t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent=
"A.1" format="counter" sectionFormat="of" target="section-appendix.a.1"/>.  <xre
f derivedContent="" format="title" sectionFormat="of" target="name-enterprise-ne
twork">Enterprise Network</xref></t>
</li>
<li pn="section-toc.1-1.8.2.2">
<t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent=
"A.2" format="counter" sectionFormat="of" target="section-appendix.a.2"/>.  <xre
f derivedContent="" format="title" sectionFormat="of" target="name-video-surveil
lance">Video Surveillance</xref></t>
</li>
<li pn="section-toc.1-1.8.2.3">
<t indent="0" pn="section-toc.1-1.8.2.3.1"><xref derivedContent=
"A.3" format="counter" sectionFormat="of" target="section-appendix.a.3"/>.  <xre
f derivedContent="" format="title" sectionFormat="of" target="name-financial-ser
vices">Financial Services</xref></t>
</li>
<li pn="section-toc.1-1.8.2.4">
<t indent="0" pn="section-toc.1-1.8.2.4.1"><xref derivedContent=
"A.4" format="counter" sectionFormat="of" target="section-appendix.a.4"/>.  <xre
f derivedContent="" format="title" sectionFormat="of" target="name-iptv-broadcas
t-video">IPTV Broadcast Video</xref></t>
</li>
<li pn="section-toc.1-1.8.2.5">
<t indent="0" pn="section-toc.1-1.8.2.5.1"><xref derivedContent=
"A.5" format="counter" sectionFormat="of" target="section-appendix.a.5"/>.  <xre
f derivedContent="" format="title" sectionFormat="of" target="name-mvpn-mdt">MVP
N MDT</xref></t>
</li>
<li pn="section-toc.1-1.8.2.6">
<t indent="0" pn="section-toc.1-1.8.2.6.1"><xref derivedContent=
"A.6" format="counter" sectionFormat="of" target="section-appendix.a.6"/>.  <xre
f derivedContent="" format="title" sectionFormat="of" target="name-special-l2-se
rvices">Special L2 Services</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.9">
<t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" forma
t="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent=""
format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments
</xref></t>
</li>
<li pn="section-toc.1-1.10">
<t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add
resses</xref></t>
</li>
</ul>
</section>
</toc>
</front> </front>
<middle> <middle>
<section anchor="introduction" numbered="true" removeInRFC="false" toc="incl
<section anchor="introduction"><name>Introduction</name> ude" pn="section-1">
<name slugifiedName="name-introduction">Introduction</name>
<t>In PIM-SM shared LAN networks, there is typically more than one <t indent="0" pn="section-1-1">When PIM-SM is used in shared LAN networks,
upstream router. When duplicate data packets appear on the LAN, from there is typically more than
different upstream routers, assert packets are sent from these one upstream router. When duplicate data packets appear on the LAN from
routers to elect a single forwarder according to <xref target="RFC7761"/>. The P different upstream routers, assert packets are sent from these routers to
IM elect a single forwarder according to <xref target="RFC7761" format="default"
assert messages are sent periodically to keep the assert state. The sectionFormat="of" derivedContent="RFC7761"/>. The PIM
PIM assert message carries information about a single multicast Assert messages are sent periodically to keep the Assert state. The PIM
source and group, along with the corresponding metric-preference and Assert message carries information about a single multicast source and
metric of the route towards the source or PIM Rendezvous Point (RP).</t> group, along with the corresponding Metric and Metric Preference of the
route towards the source or PIM Rendezvous Point (RP).</t>
<t>This document defines a mechanism to encode the information of <t indent="0" pn="section-1-2">This document defines a mechanism to encode
multiple PIM Assert messages into a single PackedAssert message. the information of
This allows to send and receive information for multiple IP multicast flows multiple PIM Assert messages into a single PackedAssert message. This
in a single PackedAssert message without changing the PIM Assert state allows sending and receiving information for multiple IP multicast flows
machinery. It reduces the total number of PIM packets on the LAN and can in a single PackedAssert message without changing the PIM Assert state
therefore speed up the election of the single forwarder, reducing the number machinery. It reduces the total number of PIM packets on the LAN and can
of duplicate IP multicast packets. This can particularly be helpful when therefore speed up the election of the single forwarder, reducing the
there is traffic for a large number of multicast groups or SSM channels and number of duplicate IP multicast packets. This can be particularly
PIM packet processing performance of the routers is slow.</t> helpful when there is traffic for a large number of multicast groups or
SSM channels and PIM packet processing performance of the routers is
<section anchor="requirements-language"><name>Requirements Language</name> slow.</t>
<section anchor="requirements-language" numbered="true" removeInRFC="false
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", " toc="include" pn="section-1.1">
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and <name slugifiedName="name-requirements-language">Requirements Language</
"OPTIONAL" in this document are to be interpreted as described in name>
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, th <t indent="0" pn="section-1.1-1">
ey appear in all The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
capitals, as shown here.</t> IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOUL
D</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>N
</section> OT RECOMMENDED</bcp14>",
<section anchor="terminology"><name>Terminology</name> "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be interpreted as
<t>The reader is expected to be familiar with the terminology of <xref target="R described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="o
FC7761"/>. The following lists the abbreviations repeated in this document.</t> f" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFor
mat="of" derivedContent="RFC8174"/>
<t>AT: Assert Timer</t> when, and only when, they appear in all capitals, as shown here.
</t>
<t>RP: Rendezvous Point</t> </section>
<section anchor="terminology" numbered="true" removeInRFC="false" toc="inc
<t>RPF: Reverse Path Forwarding</t> lude" pn="section-1.2">
<name slugifiedName="name-terminology">Terminology</name>
<t>SPT: Shortest Path Tree</t> <t indent="0" pn="section-1.2-1">The reader is expected to be familiar w
ith the terminology of <xref target="RFC7761" format="default" sectionFormat="of
<t>RPT: RP Tree</t> " derivedContent="RFC7761"/>. The following lists the abbreviations repeated in
this document.</t>
<t>DR: Designated Router</t> <dl newline="false" spacing="normal" indent="6" pn="section-1.2-2">
<dt pn="section-1.2-2.1">AT:</dt>
</section> <dd pn="section-1.2-2.2">Assert Timer</dd>
</section> <dt pn="section-1.2-2.3">DR:</dt>
<section anchor="problem-statement"><name>Problem Statement</name> <dd pn="section-1.2-2.4">Designated Router</dd>
<dt pn="section-1.2-2.5">RP:</dt>
<t>PIM Asserts occur in many deployments. See <xref target="use-case-examples"/> <dd pn="section-1.2-2.6">Rendezvous Point</dd>
<dt pn="section-1.2-2.7">RPF:</dt>
<dd pn="section-1.2-2.8">Reverse Path Forwarding</dd>
<dt pn="section-1.2-2.9">RPT:</dt>
<dd pn="section-1.2-2.10">RP Tree</dd>
<dt pn="section-1.2-2.11">SPT:</dt>
<dd pn="section-1.2-2.12">Shortest Path Tree</dd>
</dl>
</section>
</section>
<section anchor="problem-statement" numbered="true" removeInRFC="false" toc=
"include" pn="section-2">
<name slugifiedName="name-problem-statement">Problem Statement</name>
<t indent="0" pn="section-2-1">PIM Asserts occur in many deployments. See
<xref target="use-case-examples" format="default" sectionFormat="of" derivedCont
ent="Appendix A"/>
for explicit examples and explanations of why it is often not possible to avoid. </t> for explicit examples and explanations of why it is often not possible to avoid. </t>
<t indent="0" pn="section-2-2">PIM Assert state depends mainly on the netw
<t>PIM assert state depends mainly on the network topology. ork topology.
As long as there is a layer 2 network with more than 2 PIM routers, As long as there is a Layer 2 (L2) network with more than two PIM routers,
there may be multiple upstream routers, which can cause duplicate there may be multiple upstream routers, which can cause duplicate
multicast traffic to be forwarded and assert process to occur.</t> multicast traffic to be forwarded and assert processing to occur.</t>
<t indent="0" pn="section-2-3">As the multicast services become widely dep
<t>As the multicast services become widely deployed, the loyed, the
number of multicast entries increases, and a large number of assert number of multicast entries increases, and a large number of Assert
messages may be sent in a very short period when multicast data messages may be sent in a very short period when multicast data
packets trigger PIM assert processing in the shared LAN networks. packets trigger PIM assert processing in the shared LAN networks.
The PIM routers need to process a large number of PIM assert small The PIM routers need to process a large number of small PIM assert
packets in a very short time. As a result, the device load is very packets in a very short time. As a result, the device load is very
large. The assert packet may not be processed in time or even large. The assert packet may not be processed in time or even
discarded, thus extending the time of traffic duplication in the discarded, thus extending the time of traffic duplication in the
network.</t> network.</t>
<t indent="0" pn="section-2-4">The PIM Assert mechanism can only be avoide
<t>The PIM Assert mechanism can only be avoided by designing the network d by designing the network
to be without transit subnets with multiple upstream routers. For to be without transit subnets with multiple upstream routers. For example,
example, an L2 ring between routers can sometimes be reconfigured to be a ring an L2 ring between routers can sometimes be reconfigured to be a ring of
of point-to-point subnets connected by the routers. These L2/L3 topology point-to-point subnets connected by the routers. However, these Layer 2
changes are undesirable though, when they are only done to enable IP multicast (L2) and Layer 3 (L3) topology changes are undesirable when they are only
with PIM because they increase the cost of introducing IP multicast with PIM.</t done to enable IP multicast with PIM because they increase the cost of
> introducing IP multicast with PIM.</t>
<t indent="0" pn="section-2-5">These designs are also not feasible when sp
<t>These designs are also not feasible when specific L2 technologies are needed. ecific L2 technologies are
For example various L2 technologies for rings provide sub 50 msec failover needed. For example, various L2 technologies for rings provide sub-50
mechanisms, something not possible equally with an L3 subnet based ring. msec failover mechanisms, something not possible equally with a ring
Likewise, IEEE Time Sensitive Networking mechanisms would require an composed from L3 subnets. Likewise, IEEE Time-Sensitive Networking
L2 topology that can not simply be replaced by an L3 topology. mechanisms would require an L2 topology that cannot simply be replaced by
L2 sub-topologies can also significantly reduce the cost of deployment.</t> an L3 topology. L2 sub-topologies can also significantly reduce the cost
of deployment.</t>
</section> </section>
<section anchor="specification"><name>Specification</name> <section anchor="specification" numbered="true" removeInRFC="false" toc="inc
lude" pn="section-3">
<t>This document defines three elements in support of PIM assert packing:</t> <name slugifiedName="name-specification">Specification</name>
<t indent="0" pn="section-3-1">This document defines three elements in sup
<t><list style="numbers"> port of PIM assert packing:</t>
<t>The PIM Assert Packing Hello Option.</t> <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-3-2"
<t>The encoding of PackedAssert messages.</t> >
<t>How to send and receive PackedAssert messages.</t> <li pn="section-3-2.1" derivedCounter="1.">The PIM Packed Assert Capabili
</list></t> ty Hello Option</li>
<li pn="section-3-2.2" derivedCounter="2.">The encoding of PackedAssert
<section anchor="pim-assert-packing-hello-option"><name>PIM Assert Packing Hello messages</li>
Option</name> <li pn="section-3-2.3" derivedCounter="3.">How to send and receive Packe
dAssert messages</li>
<t>The PIM Assert Packing Hello Option (<xref target="assert-packing-option"/>) </ol>
is used to announce support <section anchor="pim-assert-packing-hello-option" numbered="true" removeIn
RFC="false" toc="include" pn="section-3.1">
<name slugifiedName="name-pim-packed-assert-capabilit">PIM Packed Assert
Capability Hello Option</name>
<t indent="0" pn="section-3.1-1">The PIM Packed Assert Capability Hello
Option (<xref target="assert-packing-option" format="default" sectionFormat="of"
derivedContent="Section 4.1"/>) is used to announce support
for the assert packing mechanisms specified in this document. for the assert packing mechanisms specified in this document.
PackedAssert messages (<xref target="assert-packing-formats"/>) PackedAssert messages (<xref target="assert-packing-formats" format="default" se
MUST NOT be used unless all PIM routers in the same subnet announce this option. ctionFormat="of" derivedContent="Section 3.2"/>)
</t> <bcp14>MUST NOT</bcp14> be used unless all PIM routers in the same subnet announ
ce this option.</t>
</section> </section>
<section anchor="assert-packing-formats"><name>Assert Packing Message Formats</n <section anchor="assert-packing-formats" numbered="true" removeInRFC="fals
ame> e" toc="include" pn="section-3.2">
<name slugifiedName="name-assert-packing-message-form">Assert Packing Me
<t>The PIM Assert message, as defined in Section 4.9.6 of <xref target="RFC7761" ssage Formats</name>
/>, <t indent="0" pn="section-3.2-1">The PIM Assert message, as defined in <
describes the parameters of a (*,G) or (S,G) assert through the xref target="RFC7761" sectionFormat="of" section="4.9.6" format="default" derive
following information elements: Rendezvous Point Tree flag (R), Source Address, dLink="https://rfc-editor.org/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761
Group "/>, describes the parameters of a
Address, Metric and Metric Preference. This document calls this (*,G) or (S,G) assert using the following information elements:
information an assert record.</t> Rendezvous Point Tree flag (R), Source Address, Group Address, Metric,
and Metric Preference. This document calls this information an "assert
<t>Assert packing introduces two new PIM Assert message encodings record".</t>
through the allocation and use of two flags in the PIM Assert <t indent="0" pn="section-3.2-2">This document introduces two new PIM As
message header <xref target="I-D.ietf-pim-rfc8736bis"/>, the Packed (P) and the sert message encodings
Aggregated (A) through the allocation and use of two flags in the PIM Assert message
flags.</t> header <xref target="RFC9436" format="default" sectionFormat="of" derive
dContent="RFC9436"/>: the Packed (P) and the Aggregated (A)
<t>If the (P)acked flag is 0, the message is a (non-packed) PIM Assert message flags.</t>
as specified in <xref target="RFC7761"/>. See <xref target="rfc7761-assert-messa <t indent="0" pn="section-3.2-3">If P=0, the message is a (non-packed) P
ge"/>. In this case, IM Assert
the (A) flag MUST be set to 0, and MUST be ignored on receipt.</t> message as specified in <xref target="RFC7761" format="default" sectionF
ormat="of" derivedContent="RFC7761"/>. See <xref target="rfc7761-assert-message"
<t>If the (P) flag is 1, then the message is format="default" sectionFormat="of" derivedContent="Section 4.2"/>. In this cas
called a PackedAssert message and the type and hence e, the A flag
encoding format of the payload is determined by the (A) flag.</t> <bcp14>MUST</bcp14> be set to 0 and <bcp14>MUST</bcp14> be ignored on
receipt.</t>
<t>If A=0, then the message body is a sequence of assert records. This is called <t indent="0" pn="section-3.2-4">If P=1, then the message is called a "P
a "Simple PackedAssert" message. See <xref target="simple-packedassert-message" ackedAssert
/>.</t> message", and the type and hence encoding format of the payload are
determined by the A flag.</t>
<t>If A=1, then the message body is a sequence of aggregated assert records. Thi <t indent="0" pn="section-3.2-5">If A=0, then the message body is a sequ
s is called an "Aggregated PackedAssert". See <xref target="aggregated-packedass ence of assert records. This
ert-message"/>.</t> is called a "Simple PackedAssert message". See <xref target="simple-pack
edassert-message" format="default" sectionFormat="of" derivedContent="Section 4.
<t>Two aggregated assert record types are specified.</t> 3"/>.</t>
<t indent="0" pn="section-3.2-6">If A=1, then the message body is a sequ
<t>The "Source Aggregated Assert Record", see <xref target="s-assert-record"/>, ence of aggregated assert
encodes one (common) Source Address, Metric and Metric Preference as well as a l records. This is called an "Aggregated PackedAssert message". See <xref
ist target="aggregated-packedassert-message" format="default" sectionFormat="of" der
of one or more Group Addresses. Source Aggregated Assert Records provide ivedContent="Section 4.4"/>.</t>
a more compact encoding than the Simple PackedAssert message format when multipl <t indent="0" pn="section-3.2-7">Two aggregated assert record types are
e (S,G) flows share the same source S. specified.</t>
A single Source Aggregated Assert Record with n Group Addresses represents the i <t indent="0" pn="section-3.2-8">The "Source Aggregated Assert Record" (
nformation of see <xref target="s-assert-record" format="default" sectionFormat="of" derivedCo
assert records for (S,G1)...(S,Gn).</t> ntent="Section 4.4.1"/>) encodes one (common) Source Address,
Metric, and Metric Preference as well as a list of one or more Group
<t>The "RP Aggregated Assert Record", see <xref target="rp-assert-record"/>, Addresses. Source Aggregated Assert Records provide a more compact
encodes one common Metric and Metric Preference as encoding than the Simple PackedAssert message format when multiple
well as a list of "Group Records", each of which encodes a Group Address (S,G) flows share the same source S. A single Source Aggregated
and a list of zero or more Source Addresses with a count. This is called an Assert Record with n Group Addresses represents the information of
"RP Aggregated Assert Record", because with standard RPF according to (<xref tar assert records for (S,G1)...(S,Gn).</t>
get="RFC7761"/>), <t indent="0" pn="section-3.2-9">The "RP Aggregated Assert Record" (see
all the Group Addresses that use the same RP will have the same Metric and Metri <xref target="rp-assert-record" format="default" sectionFormat="of" derivedConte
c Preference.</t> nt="Section 4.4.2"/>) encodes one common Metric and Metric
Preference as well as a list of "Group Records", each of which encodes
<t>RP Aggregation Records provide a more compact encoding than the Simple Packed a Group Address and a list of zero or more Source Addresses with a
Assert message format count. This is called an "RP Aggregated Assert Record", because with
for (*,G) flows. The Source Address is optionally used by <xref target="RFC7761 standard RPF according to <xref target="RFC7761" format="default" sectio
"/> assert procedures nFormat="of" derivedContent="RFC7761"/>, all the Group
to indicate the source(s) that triggered the assert, otherwise the Source Addres Addresses that use the same RP will have the same Metric and Metric
s is set to 0 in the Preference.</t>
assert record.</t> <t indent="0" pn="section-3.2-10">RP Aggregation Assert Records provide
a more compact encoding than
<t>Both Source Aggregated Assert Records and RP Aggregated Assert Records also i the Simple PackedAssert message format for (*,G) flows. The Source
nclude the Address is optionally used in the assert procedures in <xref target="RFC
R flag which maintains its semantic from <xref target="RFC7761"/> but also disti 7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> to indicate
nguishes the source(s) that triggered the
the encodings. Source Aggregated Assert Records have R=0, as (S,G) assert record assert; otherwise, the Source Address is set to 0 in the assert
s do in <xref target="RFC7761"/>. record.</t>
RP Aggregated Assert Records have R=1, as (*,G) assert records do in <xref targe <t indent="0" pn="section-3.2-11">Both Source Aggregated Assert Records
t="RFC7761"/>.</t> and RP Aggregated Assert
Records also include the R flag, which maintains its semantics from
</section> <xref target="RFC7761" format="default" sectionFormat="of" derivedConten
<section anchor="packedassert-mechanism"><name>PackedAssert Mechanism</name> t="RFC7761"/> but also distinguishes the encodings. Source
Aggregated Assert Records have R=0, as (S,G) assert records do in
<t>PackedAsserts do not change the <xref target="RFC7761"/> PIM assert state mac <xref target="RFC7761" format="default" sectionFormat="of" derivedConten
hine specification. Instead, t="RFC7761"/>. RP Aggregated Assert Records have R=1, as
sending and receiving of PackedAssert messages as specified in the following sub (*,G) assert records do in <xref target="RFC7761" format="default" secti
sections are logically onFormat="of" derivedContent="RFC7761"/>.</t>
new packetization options for assert records in addition to the (not packed) <xr </section>
ef target="RFC7761"/> Assert Message. <section anchor="packedassert-mechanism" numbered="true" removeInRFC="fals
There is no change to the assert record information elements transmitted or e" toc="include" pn="section-3.3">
their semantic. They are just transmitted in fewer but larger packets and fewer <name slugifiedName="name-packedassert-mechanism">PackedAssert Mechanism
total number of bytes used to encode the information elements. In result, PIM ro </name>
uters should be able to send/receive assert records faster and/or with less proc <t indent="0" pn="section-3.3-1">PackedAsserts do not change the PIM Ass
essing overhead.</t> ert state machine
specification <xref target="RFC7761" format="default" sectionFormat="of"
<section anchor="sending-packedassert-messages"><name>Sending PackedAssert messa derivedContent="RFC7761"/>. Instead, sending and
ges</name> receiving of PackedAssert messages, as specified in the following
subsections, are logically new packetization options for assert records
<t>When using assert packing, the regular <xref target="RFC7761"/> Assert messag in addition to the (non-packed) Assert message <xref target="RFC7761" fo
e encoding with A=0 and P=0 is rmat="default" sectionFormat="of" derivedContent="RFC7761"/>. There is no chang
still allowed to be sent. Routers are free to choose which PackedAssert message e to the assert record
format they send information elements transmitted or their semantics. They are just
- simple (<xref target="simple-packedassert-message"/>) and/or aggregated (<xref transmitted in fewer but larger packets, and a fewer total number of
target="aggregated-packedassert-message"/>).</t> bytes is used to encode the information elements. As a result, PIM
routers should be able to send and receive assert records faster
<t><list style="symbols"> and/or with less processing overhead.</t>
<t>When any PIM routers on the LAN have not signaled support for Assert Packin <section anchor="sending-packedassert-messages" numbered="true" removeIn
g, RFC="false" toc="include" pn="section-3.3.1">
implementations MUST send only Asserts and MUST NOT send PackedAsserts under <name slugifiedName="name-sending-packedassert-messag">Sending PackedA
any condition.</t> ssert Messages</name>
<t>Implementations SHOULD support sending of PackedAssert messages. <t indent="0" pn="section-3.3.1-1">When using assert packing, the regu
It is out of scope of this specification for which conditions, such as data-trig lar Assert message encoding
gered asserts or <xref target="RFC7761" format="default" sectionFormat="of" derivedCont
Assert Timer (AT) expiry-triggered asserts, or under which conditions (such as h ent="RFC7761"/> with A=0 and P=0 is still allowed to be
igh load) an implementation sent. Routers are free to choose which PackedAssert message format
will send PackedAsserts instead of Asserts.</t> they send -- simple (<xref target="simple-packedassert-message" format
<t>Implementations are expected to specify in documentation and/or management ="default" sectionFormat="of" derivedContent="Section 4.3"/>)
interfaces (such as a YANG model), and/or aggregated (<xref target="aggregated-packedassert-message" form
which PackedAssert message formats they can send and under which conditions they at="default" sectionFormat="of" derivedContent="Section 4.4"/>).</t>
will send them.</t> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section
<t>Implementations SHOULD be able to indicate to the operator (such as through -3.3.1-2">
a YANG model) <li pn="section-3.3.1-2.1">When any PIM routers on the LAN have not
how many Assert and PackedAssert messages were sent/received and how many assert signaled support for
records were sent/received.</t> assert packing, implementations <bcp14>MUST</bcp14> only send
<t>A configuration option SHOULD be available to disable PackedAssert operatio Asserts and <bcp14>MUST NOT</bcp14> send PackedAsserts under any
ns. condition.</li>
Implementations that introduce support for assert packing from day one of <li pn="section-3.3.1-2.2">The protocol or system conditions for whi
their <xref target="RFC7761"/> implementation MAY omit this configuration option ch an implementation
.</t> sends PackedAsserts instead of Asserts are out of scope
</list></t> for this specification. Protocol conditions include protocol
triggers such as data-triggered asserts or Assert Timer (AT)
<t>When a PIM router has an assert record ready to send according to expiry-triggered asserts, and system conditions include high or
<xref target="RFC7761"/>, it calls one of the following functions:</t> low load or control plane packet reception rates.</li>
<li pn="section-3.3.1-2.3">Implementations are expected to specify i
<t><list style="symbols"> n documentation
<t>send Assert(S,G) / send Assert(*,G) (<xref target="RFC7761"/>, Section 4.2) and/or management interfaces (such as a YANG data model) which
,</t> PackedAssert message formats they can send and under which
<t>Send Assert(S,G) / SendAssertCancel(S,G) (<xref target="RFC7761"/>, Section conditions they will send them.</li>
4.6.1),</t> <li pn="section-3.3.1-2.4">Implementations <bcp14>SHOULD</bcp14> be
<t>Send Assert(*,G) / Send AssertCancel(*,G) (<xref target="RFC7761"/>, Sectio able to indicate to
n 4.6.2)</t> the operator (such as through a YANG data model) how many Assert
<t>send Assert(S,G) (<xref target="RFC7761"/>, Section 4.8.2).</t> and PackedAssert messages were sent/received and how many assert
</list></t> records were sent/received.</li>
<li pn="section-3.3.1-2.5">A configuration option <bcp14>SHOULD</bcp
<t>If sending of PackedAsserts is possible on the network, 14> be available to
instead of sending an Assert message with an assert record, any of these disable PackedAssert operations. PIM-SM implementations <xref target="R
calls MAY instead result in the PIM implementation remembering the assert record FC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> that intr
, oduce support for assert packing from day
and continuing with further processing for other flows which may result in addit one <bcp14>MAY</bcp14> omit this configuration option.</li>
ional assert records.</t> </ul>
<t indent="0" pn="section-3.3.1-3">When a PIM router has an assert rec
<t>PIM MUST then create PackedAssert messages from the remembered assert records ord ready to send according to
and schedule them for sending according to the considerations of the following <xref target="RFC7761" format="default" sectionFormat="of" derivedCont
subsections.</t> ent="RFC7761"/>, it calls one of the following
functions:</t>
<section anchor="handling-of-reception-triggered-assert-records"><name>Handling <ul spacing="normal" bare="false" empty="false" indent="3" pn="section
of reception-triggered assert records.</name> -3.3.1-4">
<li pn="section-3.3.1-4.1">send Assert(S,G) / send Assert(*,G) (<xre
<t>Avoiding additional delay because of assert packing compared to immediate sch f target="RFC7761" sectionFormat="comma" section="4.2" format="default" derivedL
eduling of ink="https://rfc-editor.org/rfc/rfc7761#section-4.2" derivedContent="RFC7761"/>)
Assert messages is most critical for assert records that are triggered by </li>
reception of data or reception of asserts against which the router <li pn="section-3.3.1-4.2">send Assert(S,G) / send AssertCancel(S,G)
is in the "I am Assert Winner" state.  In these cases the router (<xref target="RFC7761" sectionFormat="comma" section="4.6.1" format="default"
SHOULD send out an Assert or PackedAssert message containing this assert record derivedLink="https://rfc-editor.org/rfc/rfc7761#section-4.6.1" derivedContent="R
as soon as possible to minimize the time in which duplicate IP multicast packets FC7761"/>)</li>
can occur.</t> <li pn="section-3.3.1-4.3">send Assert(*,G) / send AssertCancel(*,G)
(<xref target="RFC7761" sectionFormat="comma" section="4.6.2" format="default"
<t>To avoid additional delay in this case, the router should employ appropriate derivedLink="https://rfc-editor.org/rfc/rfc7761#section-4.6.2" derivedContent="R
assert packing and scheduling mechanisms, as explained here.</t> FC7761"/>)</li>
<li pn="section-3.3.1-4.4">send Assert(S,G) (<xref target="RFC7761"
<t>Asserts/PackedAsserts created from reception-triggered assert records should sectionFormat="comma" section="4.8.2" format="default" derivedLink="https://rfc-
be scheduled editor.org/rfc/rfc7761#section-4.8.2" derivedContent="RFC7761"/>)</li>
for serialization with a higher priority than those created from other reasons. </ul>
They <t indent="0" pn="section-3.3.1-5">If sending of PackedAsserts is poss
should also bypass other PIM messages that can create significant bursts, such a ible on the network, instead of
s PIM join/prune messages.</t> sending an Assert message with an assert record, any of these calls
<bcp14>MAY</bcp14> instead result in the PIM implementation
<t>When there is no reception-triggered Assert/PackedAssert messages currently b remembering the assert record and continuing with further
eing serialized processing for other flows, which may result in additional assert
on the interface or scheduled to be sent, the router should immediately generate records.</t>
and schedule an Assert or PackedAssert message without further assert packing.</ <t indent="0" pn="section-3.3.1-6">PIM <bcp14>MUST</bcp14> then create
t> PackedAssert messages from
the remembered assert records and schedule them for sending
<t>If there are one or more reception-triggered Assert/PackedAssert messages alr according to the considerations in the following subsections.</t>
eady serializing <section anchor="handling-of-reception-triggered-assert-records" numbe
and/or scheduled to be serialized on the outgoing interface, then the router can red="true" removeInRFC="false" toc="include" pn="section-3.3.1.1">
use the time <name slugifiedName="name-handling-of-reception-trigg">Handling of R
until the last of those messages will have finished serializing for PIM processi eception-Triggered Assert Records</name>
ng of further <t indent="0" pn="section-3.3.1.1-1">Avoiding additional delay becau
conditions that may result in additional reception-triggered assert records as w se of assert packing compared to
ell as packing of these assert immediately scheduling Assert messages is most critical for
records without introducing additional delay.</t> assert records that are triggered by reception of data or
reception of asserts against which the router is in the "I am
</section> Assert Winner" state. In these cases, the router
<section anchor="handling-of-timer-expiry-triggered-assert-records"><name>Handli <bcp14>SHOULD</bcp14> send out an Assert or PackedAssert message
ng of timer expiry-triggered assert records.</name> containing this assert record as soon as possible to minimize the
time in which duplicate IP multicast packets can occur.</t>
<t>Asserts triggered by expiry of the AT on an assert winner are not time-critic <t indent="0" pn="section-3.3.1.1-2">To avoid additional delay in th
al because is case, the router should
they can be scheduled in advance and because the Assert_Override_Interval parame employ appropriate assert packing and scheduling mechanisms, as
ter of <xref target="RFC7761"/> already explained here.</t>
creates a 3 second window in which such assert records can be sent, received, an <t indent="0" pn="section-3.3.1.1-3">Asserts/PackedAsserts created f
d processed before rom reception-triggered assert
an assert loser's state would expire and duplicate IP multicast packets could oc records should be scheduled for serialization with a higher
cur.</t> priority than those created because of other protocol or system
conditions. They should also bypass other PIM messages that can
<t>An example mechanism to allow packing of AT expiry-triggered assert records o create significant bursts, such as PIM join/prune messages.</t>
n assert winners is <t indent="0" pn="section-3.3.1.1-4">When there are no reception-tri
to round the AT to an appropriate granularity such as 100 msec. This will cause ggered Assert/PackedAssert
AT for multiple messages currently being serialized on the interface or scheduled
(S,G) and/or (*,G) states to expire at the same time, thus allowing them to be e to be sent, the router should immediately generate and schedule an
asily packed Assert or PackedAssert message without further assert packing.</t>
without changes to the assert state machinery.</t> <t indent="0" pn="section-3.3.1.1-5">If one or more reception-trigge
red Assert/PackedAssert messages
<t>AssertCancel messages have assert records with an infinite metric and can use are already serializing or are scheduled to be serialized on the
assert packing outgoing interface, then the router can use the time until the
as any other Assert. They are sent on Override Timer (OT) expiry and can be pack last of those messages has finished serializing for PIM processing
ed for example of further conditions. This may result in additional
with the same considerations as AT expiry-triggered assert records.</t> reception-triggered assert records and the packing of these assert
records without introducing additional delay.</t>
</section> </section>
<section anchor="beneficial"><name>Beneficial delay in sending PackedAssert mess <section anchor="handling-of-timer-expiry-triggered-assert-records" nu
ages</name> mbered="true" removeInRFC="false" toc="include" pn="section-3.3.1.2">
<name slugifiedName="name-handling-of-timer-expiry-tr">Handling of T
<t>Delay in sending PackedAsserts beyond what was discussed in prior subsections imer Expiry-Triggered Assert Records</name>
can still be beneficial when <t indent="0" pn="section-3.3.1.2-1">Asserts triggered by expiry of
it causes the overall amount of (possible) duplicate IP multicast packets to dec the AT on an assert winner are
rease in a condition with not time-critical because they can be scheduled in advance and
large number of (S,G) and/or (*,G), compared to the situation in which an implem because the Assert_Override_Interval parameter <xref target="RFC7761
entation only " format="default" sectionFormat="of" derivedContent="RFC7761"/> already creates
sends Assert messages.</t> a 3-second window in which such
assert records can be sent, received, and processed before an
<t>This delay can simply be used in implementations because it can not support t assert loser's state expires and duplicate IP multicast
he (more advanced) packets could occur.</t>
mechanisms described above, and this longer delay can be achieved by some simple <t indent="0" pn="section-3.3.1.2-2">An example mechanism to allow p
r mechanism acking of AT expiry-triggered
(such as only periodic generation of PackedAsserts) and still achieves an overal assert records on assert winners is to round the AT to an
l reduction appropriate granularity such as 100 msec. This will cause the AT fo
in duplicate IP multicast packets compared to sending only Asserts.</t> r
multiple (S,G) and/or (*,G) states to expire at the same time,
</section> thus allowing them to be easily packed without changes to the
<section anchor="handling-assertpackedassert-message-loss"><name>Handling Assert Assert state machinery.</t>
/PackedAssert message loss</name> <t indent="0" pn="section-3.3.1.2-3">AssertCancel messages have asse
rt records with an infinite
<t>When Asserts are sent, a single packet loss will result only in continued or metric and can use assert packing like any other Assert. They are
new sent on Override Timer (OT) expiry and can be packed, for example,
duplicates from a single IP multicast flow. Loss of (non AssertCancel) PackedAs with the same considerations as AT expiry-triggered assert
sert impacts records.</t>
duplicates for all flows packed into the PackedAssert and may result in the need </section>
for re-sending more than one Assert/PackedAssert, because of the possible inabil <section anchor="beneficial" numbered="true" removeInRFC="false" toc="
ity to pack the assert records in this condition. Therefore, routers SHOULD sup include" pn="section-3.3.1.3">
port mechanisms allowing for PackedAsserts and Asserts to <name slugifiedName="name-beneficial-delay-in-sending">Beneficial De
be sent with an appropriate Differentiated Services Code Point (DSCP, <xref targ lay in Sending PackedAssert Messages</name>
et="RFC2475"/>), such as Expedited Forwarding (EF), to minimize their loss, esp <t indent="0" pn="section-3.3.1.3-1">Delay in sending PackedAsserts
ecially beyond what was discussed in
when duplicate IP multicast packets could cause congestion and loss.</t> prior subsections can still be beneficial when it causes the
overall number of possible duplicate IP multicast packets to
<t>Routers MAY support a configurable option for sending PackedAssert messages t decrease in a situation with a large number of (S,G) and/or (*,G),
wice in short order compared to the situation where an implementation only sends
(such as 50 msec apart), to overcome possible loss, but only when the following Assert messages.</t>
two conditions <t indent="0" pn="section-3.3.1.3-2">This delay can be used in imple
are met.</t> mentations because it cannot
support the more advanced mechanisms described above, and this
<t><list style="numbers"> longer delay can be achieved by some simpler mechanisms (such as
<t>The total size of the two PackedAsserts is less than the total size of equi only periodic generation of PackedAsserts) and still achieves an
valent Assert messages,</t> overall reduction in duplicate IP multicast packets compared to
<t>The condition of the assert records flows in the PackedAssert is such that sending only Asserts.</t>
the router </section>
can expect that their reception by PIM routers will not trigger Assert/PackedAss <section anchor="handling-assertpackedassert-message-loss" numbered="t
erts replies. rue" removeInRFC="false" toc="include" pn="section-3.3.1.4">
This condition is true for example when sending an assert record while becoming <name slugifiedName="name-handling-assert-packedasser">Handling Asse
or being Assert Winner (Action A1/A3 in <xref target="RFC7761"/>).</t> rt/PackedAssert Message Loss</name>
</list></t> <t indent="0" pn="section-3.3.1.4-1">When Asserts are sent, a single
packet loss will result only in
</section> continued or new duplicates from a single IP multicast flow. Loss
<section anchor="optimal-degree-of-assert-record-packing"><name>Optimal degree o of a (non-AssertCancel) PackedAssert impacts duplicates for all
f assert record packing</name> flows packed into the PackedAssert and may result in the need for
resending more than one Assert/PackedAssert, because of the
<t>The optimal target packing size will vary depending on factors possible inability to pack the assert records in this condition.
including implementation characteristics and the required operating Therefore, routers <bcp14>SHOULD</bcp14> support mechanisms
scale. At some point, as the target packing size is varied from the that allow PackedAsserts and Asserts to be sent with an
size of a single non-packed Assert, to the MTU size, a size can be appropriate Differentiated Services Code Point (DSCP) <xref target="
expected to be found where the router can achieve the required RFC2475" format="default" sectionFormat="of" derivedContent="RFC2475"/> such as
operating scale of (S,G) and (*,G) flows with minimum duplicates. Expedited Forwarding (EF) to
Beyond this size, a further increase in the target packing size would minimize their loss, especially when duplicate IP multicast
not produce further benefits, but might introduce possible negative packets could cause congestion and loss.</t>
effects such as the incurrence of more duplicates on loss.</t> <t indent="0" pn="section-3.3.1.4-2">Routers <bcp14>MAY</bcp14> supp
ort a configurable option for
<t>For example, in some router implementations, the total number of sending PackedAssert messages twice in short order (such as 50
packets that a control plane function such as PIM can send/receive msec apart) to overcome possible loss, but only when the following
per unit of time is a more limiting factor than the total amount two conditions are met.</t>
of data across these packets. As soon as the packet size is large <ol spacing="normal" type="1" indent="adaptive" start="1" pn="sectio
enough for the maximum possible payload throughput, increasing the n-3.3.1.4-3">
packet size any further may still reduce the processing overhead <li pn="section-3.3.1.4-3.1" derivedCounter="1.">The total size of
of the router, but may increase latency incurred in creating the the two PackedAsserts is less than the
packet in a way that may increase duplicates compared to smaller total size of equivalent Assert messages.</li>
packets.</t> <li pn="section-3.3.1.4-3.2" derivedCounter="2.">The condition of
the assert record flows in the
</section> PackedAssert is such that the router can expect that their
</section> reception by PIM routers will not trigger Assert/PackedAsserts
<section anchor="receiving-packedassert-messages"><name>Receiving PackedAssert m replies. This condition is true, for example, when sending an
essages</name> assert record while becoming or being assert winner (Action
A1/A3 in <xref target="RFC7761" format="default" sectionFormat="of
<t>Upon reception of a PackedAssert message, the PIM router logically " derivedContent="RFC7761"/>).</li>
</ol>
</section>
<section anchor="optimal-degree-of-assert-record-packing" numbered="tr
ue" removeInRFC="false" toc="include" pn="section-3.3.1.5">
<name slugifiedName="name-optimal-degree-of-assert-re">Optimal Degre
e of Assert Record Packing</name>
<t indent="0" pn="section-3.3.1.5-1">The optimal target packing size
will vary depending on factors
including implementation characteristics and the required
operating scale. At some point, as the target packing size is
varied from the size of a single non-packed Assert to the MTU
size, a size can be expected to be found where the router can
achieve the required operating scale of (S,G) and (*,G) flows with
minimum duplicates. Beyond this size, a further increase in the
target packing size would not produce further benefits but might
introduce possible negative effects such as the incurrence of more
duplicates on loss.</t>
<t indent="0" pn="section-3.3.1.5-2">For example, in some router imp
lementations, the total number
of packets that a control plane function such as PIM can
send/receive per unit of time is a more limiting factor than the
total amount of data across these packets. As soon as the packet
size is large enough for the maximum possible payload throughput,
increasing the packet size any further may still reduce the
processing overhead of the router but may increase latency
incurred in creating the packet in a way that may increase
duplicates compared to smaller packets.</t>
</section>
</section>
<section anchor="receiving-packedassert-messages" numbered="true" remove
InRFC="false" toc="include" pn="section-3.3.2">
<name slugifiedName="name-receiving-packedassert-mess">Receiving Packe
dAssert Messages</name>
<t indent="0" pn="section-3.3.2-1">Upon reception of a PackedAssert me
ssage, the PIM router logically
converts its payload into a sequence of assert records that are then processed converts its payload into a sequence of assert records that are then processed
as if an equivalent sequence of Assert messages were received according to <xref as if an equivalent sequence of Assert messages were received according to <xref
target="RFC7761"/>.</t> target="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/>
.</t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="packet-formats"><name>Packet Formats</name> <section anchor="packet-formats" numbered="true" removeInRFC="false" toc="in
clude" pn="section-4">
<t>This section describes the format of new PIM extensions introduced by <name slugifiedName="name-packet-formats">Packet Formats</name>
<t indent="0" pn="section-4-1">This section describes the format of new PI
M extensions introduced by
this document.</t> this document.</t>
<section anchor="assert-packing-option" numbered="true" removeInRFC="false
<section anchor="assert-packing-option"><name>PIM Assert Packing Hello Option</n " toc="include" pn="section-4.1">
ame> <name slugifiedName="name-pim-packed-assert-capability">PIM Packed Asser
t Capability Hello Option</name>
<figure title="PIM Assert Packing Hello Option" anchor="FIG-HELLO-OPTION"><artwo <t indent="0" pn="section-4.1-1">The PIM Packed Assert Capability Hello
rk><![CDATA[ Option is a new option for PIM Hello
messages according to <xref target="RFC7761" sectionFormat="of" section=
"4.9.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7761#section
-4.9.2" derivedContent="RFC7761"/>.</t>
<figure anchor="FIG-HELLO-OPTION" align="left" suppress-title="false" pn
="figure-1">
<name slugifiedName="name-pim-packed-assert-capability-">PIM Packed As
sert Capability Hello
Option</name>
<artwork align="left" pn="section-4.1-2.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OptionType = TBD | OptionLength = 0 | | OptionType = 40 | OptionLength = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
<t>The PIM Assert Packing Hello Option is a new option for PIM Hello Messages ac <dl spacing="normal" newline="true" indent="3" pn="section-4.1-3">
cording to Section 4.9.2 of <xref target="RFC7761"/>.</t> <dt pn="section-4.1-3.1">OptionType 40 (Packed Assert Capability):</dt
>
<t><list style="symbols"> <dd pn="section-4.1-3.2">Indicates support for the ability to receive
<t>OptionType TBD: and process all the
PIM Packed Assert Capability Hello Option</t> PackedAssert encodings defined in this document.</dd>
</list></t> <dt pn="section-4.1-3.3">OptionLength 0:</dt>
<dd pn="section-4.1-3.4">The Packet Assert Capability has no OptionVal
<t>Including the PIM OptionType TBD indicates support for the ability to ue.</dd>
receive and process all the PackedAssert encodings defined in this document.</t> </dl>
</section>
</section> <section anchor="rfc7761-assert-message" numbered="true" removeInRFC="fals
<section anchor="rfc7761-assert-message"><name>Assert Message Format</name> e" toc="include" pn="section-4.2">
<name slugifiedName="name-assert-message-format">Assert Message Format</
<figure title="Assert Message Format" anchor="FIG-MESSAGE-ASSERT"><artwork><![CD name>
ATA[ <t indent="0" pn="section-4.2-1"><xref target="FIG-MESSAGE-ASSERT" forma
t="default" sectionFormat="of" derivedContent="Figure 2"/> shows a PIM Assert me
ssage as
specified in <xref target="RFC7761" sectionFormat="of" section="4.9.6" f
ormat="default" derivedLink="https://rfc-editor.org/rfc/rfc7761#section-4.9.6" d
erivedContent="RFC7761"/>. The Encoded-Group and Encoded-Unicast address
formats are specified in <xref target="RFC7761" sectionFormat="of" secti
on="4.9.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7761#sect
ion-4.9.1" derivedContent="RFC7761"/> for IPv4 and IPv6.</t>
<figure anchor="FIG-MESSAGE-ASSERT" align="left" suppress-title="false"
pn="figure-2">
<name slugifiedName="name-assert-message-format-2">Assert Message Form
at</name>
<artwork align="left" pn="section-4.2-2.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PIM Ver| Type |7 6 5 4 3 2|A|P| Checksum | |PIM Ver| Type |7 6 5 4 3 2|A|P| Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address (Encoded-Group format) | | Group Address (Encoded-Group format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address (Encoded-Unicast format) | | Source Address (Encoded-Unicast format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R| Metric Preference | |R| Metric Preference |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Metric | | Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
<t><xref target="FIG-MESSAGE-ASSERT"/> shows a PIM Assert message as specified i <t indent="0" pn="section-4.2-3">This common header shows the "7 6 5 4 3
n Section 4.9.6 of 2" flag bits (as defined in
<xref target="RFC7761"/>. The Encoded-Group and Encoded-Unicast address formats <xref target="RFC9436" sectionFormat="of" section="4" format="default" d
are specified in Section 4.9.1 of erivedLink="https://rfc-editor.org/rfc/rfc9436#section-4" derivedContent="RFC943
<xref target="RFC7761"/> for IP and IPv6.</t> 6"/>) and the
location of the P and A flags (as described in <xref target="IANA" forma
<t>This common header is showing the "7 6 5 4 3 2" Flag Bits as defined t="default" sectionFormat="of" derivedContent="Section 5"/>).
in Section 4 of <xref target="I-D.ietf-pim-rfc8736bis"/> and the location of the As specified in <xref target="assert-packing-formats" format="default" s
P and A flags, ectionFormat="of" derivedContent="Section 3.2"/>, both flags in
as described in <xref target="IANA"/>.  As specified in <xref target="assert-pa a (non-packed) PIM Assert message are required to be set to 0.</t>
cking-formats"/>, both </section>
flags in a (non-packed) PIM Assert message are required to be set to 0.</t> <section anchor="simple-packedassert-message" numbered="true" removeInRFC=
"false" toc="include" pn="section-4.3">
</section> <name slugifiedName="name-simple-packedassert-message">Simple PackedAsse
<section anchor="simple-packedassert-message"><name>Simple PackedAssert Message rt Message Format</name>
Format</name> <figure anchor="FIG-MESSAGE-SIMPLE" align="left" suppress-title="false"
pn="figure-3">
<figure title="Simple PackedAssert Message Format" anchor="FIG-MESSAGE-SIMPLE">< <name slugifiedName="name-simple-packedassert-message-">Simple PackedA
artwork><![CDATA[ ssert Message Format</name>
<artwork align="left" pn="section-4.3-1.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PIM Ver| Type |7 6 5 4 3 2|A|P| Checksum | |PIM Ver| Type |7 6 5 4 3 2|A|P| Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Zero | Reserved | | Zero | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
. . . .
. Assert Record [1] . . Assert Record [1] .
skipping to change at line 481 skipping to change at line 661
| . | | . |
. . . . . .
| . | | . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
. . . .
. Assert Record [M] . . Assert Record [M] .
. . . .
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
<t><list style="symbols"> <dl spacing="normal" newline="true" indent="3" pn="section-4.3-2">
<t>PIM Version, Type, Checksum: <vspace blankLines='1'/> <dt pn="section-4.3-2.1">PIM Version, Type, Checksum:</dt>
As specified in Section 4.9.6 of <xref target="RFC7761"/>.</t> <dd pn="section-4.3-2.2">As specified in <xref target="RFC7761" sectio
<t>"7 6 5 4 3 2": IANA registry handled bits according to Section 4 of <xref t nFormat="of" section="4.9.6" format="default" derivedLink="https://rfc-editor.or
arget="I-D.ietf-pim-rfc8736bis"/>.</t> g/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761"/>.</dd>
<t>Zero: <dt pn="section-4.3-2.3">"7 6 5 4 3 2":</dt>
Set to zero on transmission. Serves to make non assert packing capable PIM ro <dd pn="section-4.3-2.4">Flag bits per <xref target="RFC9436" sectionF
uters fail in parsing the message instead of possible mis-parsing if this field ormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/
was used.</t> rfc9436#section-4" derivedContent="RFC9436"/>.</dd>
<t>Reserved: <dt pn="section-4.3-2.5">P:</dt>
Set to zero on transmission. Ignored upon receipt.</t> <dd pn="section-4.3-2.6">Packed flag. <bcp14>MUST</bcp14> be 1.</dd>
<t>P: packed flag. MUST be 1.</t> <dt pn="section-4.3-2.7">A:</dt>
<t>A: aggregated flag. MUST be 0.</t> <dd pn="section-4.3-2.8">Aggregated flag. <bcp14>MUST</bcp14> be 0.</d
<t>M: The number of Assert Records in the message. Derived from the length of d>
the packet carrying the message.</t> <dt pn="section-4.3-2.9">Zero:</dt>
<t>Assert Record: formatted according to {FIG-MESSAGE-SIMPLE}}, which is the s <dd pn="section-4.3-2.10">Set to zero on transmission. Serves to make
ame PIM routers that are
as the PIM assert message body as specified in Section 4.9.6 of <xref target="RF not capable of assert packing to fail in parsing the message instead
C7761"/>. possible mis-parsing of the message as an Assert message <xref target="
The number M of Assert Records is determined from the packet size.</t> RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> if this
</list></t> field was not
zero-filled.</dd>
<t>The format of each Assert Record is the same as the PIM assert message body a <dt pn="section-4.3-2.11">Reserved:</dt>
s specified in Section 4.9.6 of <xref target="RFC7761"/>.</t> <dd pn="section-4.3-2.12">Set to zero on transmission. Ignored upon r
eceipt.</dd>
<figure title="Assert Record" anchor="FIG-ASSERT-RECORD-FORMAT"><artwork><![CDAT <dt pn="section-4.3-2.13">M:</dt>
A[ <dd pn="section-4.3-2.14">The number of Assert Records in the message.
Derived from the
length of the packet carrying the message.</dd>
<dt pn="section-4.3-2.15">Assert Record:</dt>
<dd pn="section-4.3-2.16">Formatted according to <xref target="FIG-MES
SAGE-SIMPLE" format="default" sectionFormat="of" derivedContent="Figure 3"/>,
which is the same as the PIM Assert message body as specified in
<xref target="RFC7761" sectionFormat="of" section="4.9.6" format="defau
lt" derivedLink="https://rfc-editor.org/rfc/rfc7761#section-4.9.6" derivedConten
t="RFC7761"/>.</dd>
</dl>
<t indent="0" pn="section-4.3-3">The format of each Assert Record is the
same as the PIM Assert
message body as specified in <xref target="RFC7761" sectionFormat="of" s
ection="4.9.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7761#
section-4.9.6" derivedContent="RFC7761"/>.</t>
<figure anchor="FIG-ASSERT-RECORD-FORMAT" align="left" suppress-title="f
alse" pn="figure-4">
<name slugifiedName="name-assert-record">Assert Record</name>
<artwork align="left" pn="section-4.3-4.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address (Encoded-Group format) | | Group Address (Encoded-Group format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address (Encoded-Unicast format) | | Source Address (Encoded-Unicast format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R| Metric Preference | |R| Metric Preference |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Metric | | Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
</section> </section>
<section anchor="aggregated-packedassert-message"><name>Aggregated PackedAssert <section anchor="aggregated-packedassert-message" numbered="true" removeIn
Message Format</name> RFC="false" toc="include" pn="section-4.4">
<name slugifiedName="name-aggregated-packedassert-mes">Aggregated Packed
<figure title="Aggregated PackedAssert Message Format" anchor="FIG-PACKET-FORMAT Assert Message Format</name>
-SG"><artwork><![CDATA[ <figure anchor="FIG-PACKET-FORMAT-SG" align="left" suppress-title="false
" pn="figure-5">
<name slugifiedName="name-aggregated-packedassert-mess">Aggregated Pac
kedAssert Message Format</name>
<artwork align="left" pn="section-4.4-1.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PIM Ver| Type |7 6 5 4 3 2|A|P| Checksum | |PIM Ver| Type |7 6 5 4 3 2|A|P| Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Zero | Reserved | | Zero | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
. . . .
. Aggregated Assert Record [1] . . Aggregated Assert Record [1] .
skipping to change at line 548 skipping to change at line 740
| . | | . |
. . . . . .
| . | | . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
. . . .
. Aggregated Assert Record [M] . . Aggregated Assert Record [M] .
. . . .
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
<t><list style="symbols"> <dl spacing="normal" newline="true" indent="3" pn="section-4.4-2">
<t>PIM Version, Type, Reserved, Checksum: <vspace blankLines='1'/> <dt pn="section-4.4-2.1">PIM Version, Type, Reserved, Checksum:</dt>
As specified in Section 4.9.6 of <xref target="RFC7761"/>.</t> <dd pn="section-4.4-2.2">As specified in <xref target="RFC7761" sectio
<t>"7 6 5 4 3 2": IANA registry handled bits according to Section 4 of <xref t nFormat="of" section="4.9.6" format="default" derivedLink="https://rfc-editor.or
arget="I-D.ietf-pim-rfc8736bis"/>.</t> g/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761"/>.</dd>
<t>P: packed flag. MUST be 1.</t> <dt pn="section-4.4-2.3">"7 6 5 4 3 2":</dt>
<t>A: aggregated flag. MUST be 1.</t> <dd pn="section-4.4-2.4">Flag bits per <xref target="RFC9436" sectionF
<t>Zero: ormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/
Set to zero on transmission. Serves to make non assert packing capable PIM ro rfc9436#section-4" derivedContent="RFC9436"/>.</dd>
uters fail in parsing the message instead of possible mis-parsing if this field <dt pn="section-4.4-2.5">P:</dt>
was used.</t> <dd pn="section-4.4-2.6">Packed flag. <bcp14>MUST</bcp14> be 1.</dd>
<t>Aggregated Assert Record: formatted according to <xref target="FIG-PACKET-F <dt pn="section-4.4-2.7">A:</dt>
ORMAT-SG"/>. <dd pn="section-4.4-2.8">Aggregated flag. <bcp14>MUST</bcp14> be 1.</d
The number M of Aggregated Assert Records is determined from the packet size.</t d>
> <dt pn="section-4.4-2.9">Zero:</dt>
</list></t> <dd pn="section-4.4-2.10">Set to zero on transmission. Serves to make
PIM routers that are
<section anchor="s-assert-record"><name>Source Aggregated Assert Record</name> not capable of assert packing to fail in parsing the message instead
possible mis-parsing of the message as an Assert message <xref target="
<figure title="Source Aggregated Assert Record" anchor="FIG-RECORD-FORMAT-SG"><a RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> if this
rtwork><![CDATA[ field was not
zero-filled.</dd>
<dt pn="section-4.4-2.11">Aggregated Assert Record:</dt>
<dd pn="section-4.4-2.12">Formatted according to <xref target="FIG-PAC
KET-FORMAT-SG" format="default" sectionFormat="of" derivedContent="Figure 5"/>.
The number M of Aggregated Assert Records is determined from the
packet size.</dd>
</dl>
<section anchor="s-assert-record" numbered="true" removeInRFC="false" to
c="include" pn="section-4.4.1">
<name slugifiedName="name-source-aggregated-assert-re">Source Aggregat
ed Assert Record</name>
<figure anchor="FIG-RECORD-FORMAT-SG" align="left" suppress-title="fal
se" pn="figure-6">
<name slugifiedName="name-source-aggregated-assert-rec">Source Aggre
gated Assert Record</name>
<artwork align="left" pn="section-4.4.1-1.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R| Metric Preference | |R| Metric Preference |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Metric | | Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address (Encoded-Unicast format) | | Source Address (Encoded-Unicast format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Groups (N) | Reserved | | Number of Groups (N) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address 1 (Encoded-Group format) | | Group Address 1 (Encoded-Group format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address 2 (Encoded-Group format) | | Group Address 2 (Encoded-Group format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . | | . |
| . | | . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address N (Encoded-Group format) | | Group Address N (Encoded-Group format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
<t><list style="symbols"> <dl spacing="normal" newline="true" indent="3" pn="section-4.4.1-2">
<t>Reserved: <dt pn="section-4.4.1-2.1">R:</dt>
Set to zero on transmission. Ignored upon receipt.</t> <dd pn="section-4.4.1-2.2">
<t>R: MUST be 0. <vspace blankLines='1'/> <t indent="0" pn="section-4.4.1-2.2.1"><bcp14>MUST</bcp14> be 0.</
R indicates both that the encoding format of the record is that of a Source Aggr t>
egated Assert Record, <t indent="0" pn="section-4.4.1-2.2.2">R indicates both that the e
but also that all assert records represented by the Source Aggregated Assert R ncoding format of the record is that
ecord have R=0 and are therefore of a Source Aggregated Assert Record and that all assert
(S,G) assert records according to the definition of R in <xref target="RFC7761 records represented by the Source Aggregated Assert Record have
"/>, Section 4.9.6.</t> R=0 and are therefore (S,G) assert records according to the
<t>Source Address, Metric Preference, Metric: <vspace blankLines='1'/> definition of R in <xref target="RFC7761" sectionFormat="comma" sect
As specified in Section 4.9.6 of <xref target="RFC7761"/>. Source Address MUST ion="4.9.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7761#sec
NOT be zero.</t> tion-4.9.6" derivedContent="RFC7761"/>.</t>
<t>Number of Groups: <vspace blankLines='1'/> </dd>
The number of Group Address fields.</t> <dt pn="section-4.4.1-2.3">Metric Preference, Metric, Source Address
<t>Group Address: <vspace blankLines='1'/> :</dt>
As specified in Section 4.9.6 of <xref target="RFC7761"/>.</t> <dd pn="section-4.4.1-2.4">As specified in <xref target="RFC7761" se
</list></t> ctionFormat="of" section="4.9.6" format="default" derivedLink="https://rfc-edito
r.org/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761"/>. Source Address <bc
</section> p14>MUST NOT</bcp14> be
<section anchor="rp-assert-record"><name>RP Aggregated Assert Record</name> zero.</dd>
<dt pn="section-4.4.1-2.5">Number of Groups:</dt>
<t>An RP Aggregation Assert record aggregates (*,G) assert records with <dd pn="section-4.4.1-2.6">The number of Group Address fields.</dd>
the same Metric Preference and Metric. Typically this is the case <dt pn="section-4.4.1-2.7">Reserved:</dt>
for all (*,G) using the same RP, but the encoding is not limited <dd pn="section-4.4.1-2.8"> Set to zero on transmission. Ignored up
to only (*,G) using the same RP because the RP address is not on receipt.</dd>
encoded as it is also not present in <xref target="RFC7761"/> assert records.</t <dt pn="section-4.4.1-2.9">Group Address:</dt>
> <dd pn="section-4.4.1-2.10">As specified in <xref target="RFC7761" s
ectionFormat="of" section="4.9.6" format="default" derivedLink="https://rfc-edit
<figure title="RP Aggregated Assert Record" anchor="FIG-RECORD-FORMAT-RP"><artwo or.org/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761"/>.</dd>
rk><![CDATA[ </dl>
</section>
<section anchor="rp-assert-record" numbered="true" removeInRFC="false" t
oc="include" pn="section-4.4.2">
<name slugifiedName="name-rp-aggregated-assert-record">RP Aggregated A
ssert Record</name>
<t indent="0" pn="section-4.4.2-1">An RP Aggregation Assert Record agg
regates (*,G) assert records
with the same Metric Preference and Metric. Typically, this is the
case for all (*,G) using the same RP, but the encoding is not
limited to only (*,G) using the same RP because the RP address is
not encoded as it is also not present in assert records <xref target="
RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/>.</t>
<figure anchor="FIG-RECORD-FORMAT-RP" align="left" suppress-title="fal
se" pn="figure-7">
<name slugifiedName="name-rp-aggregated-assert-record-2">RP Aggregat
ed Assert Record</name>
<artwork align="left" pn="section-4.4.2-2.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R| Metric Preference | |R| Metric Preference |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Metric | | Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Group Records (K) | Reserved | | Number of Group Records (K) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
skipping to change at line 643 skipping to change at line 850
| . | | . |
. . . . . .
| . | | . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
. . . .
. Group Record [K] . . Group Record [K] .
. . . .
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
<t><list style="symbols"> <dl spacing="normal" newline="true" indent="3" pn="section-4.4.2-3">
<t>R: MUST be 1. <vspace blankLines='1'/> <dt pn="section-4.4.2-3.1">R:</dt>
R indicates both that the encoding format of the record is that of an RP Aggrega <dd pn="section-4.4.2-3.2">
ted Assert Record, <t indent="0" pn="section-4.4.2-3.2.1"><bcp14>MUST</bcp14> be 1.</
and that all assert records represented by the RP Aggregated Assert Record hav t>
e R=1 and are therefore <t indent="0" pn="section-4.4.2-3.2.2">R indicates both that the e
(*,G) assert records according to the definition of R in <xref target="RFC7761 ncoding format of the record is
"/>, Section 4.9.6.</t> that of an RP Aggregated Assert Record and that all assert
<t>Metric Preference, Metric: <vspace blankLines='1'/> records represented by the RP Aggregated Assert Record have R=1
As specified in Section 4.9.6 of <xref target="RFC7761"/>.</t> and are therefore (*,G) assert records according to the
<t>Reserved: definition of R in <xref target="RFC7761" sectionFormat="comma" se
Set to zero on transmission. Ignored upon receipt.</t> ction="4.9.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7761#s
<t>Number of Group Records (K): <vspace blankLines='1'/> ection-4.9.6" derivedContent="RFC7761"/>.</t>
The number of packed Group Records. A record consists of a Group </dd>
Address and a Source Address list with a number of sources.</t> <dt pn="section-4.4.2-3.3">Metric Preference, Metric:</dt>
</list></t> <dd pn="section-4.4.2-3.4">As specified in <xref target="RFC7761" se
ctionFormat="of" section="4.9.6" format="default" derivedLink="https://rfc-edito
<t>The format of each Group Record is:</t> r.org/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761"/>.</dd>
<dt pn="section-4.4.2-3.5">Number of Group Records (K):</dt>
<figure title="Group Record" anchor="FIG-GROUP-RECORD"><artwork><![CDATA[ <dd pn="section-4.4.2-3.6">The number of packed Group Records. A rec
ord consists of a
Group Address and a Source Address list with a number of
sources.</dd>
<dt pn="section-4.4.2-3.7">Reserved:</dt>
<dd pn="section-4.4.2-3.8">Set to zero on transmission. Ignored upo
n receipt.</dd>
</dl>
<t indent="0" pn="section-4.4.2-4">The format of each Group Record is:
</t>
<figure anchor="FIG-GROUP-RECORD" align="left" suppress-title="false"
pn="figure-8">
<name slugifiedName="name-group-record">Group Record</name>
<artwork align="left" pn="section-4.4.2-5.1">
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address (Encoded-Group format) | | Group Address (Encoded-Group format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Sources (P) | Reserved | | Number of Sources (P) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address 1 (Encoded-Unicast format) | | Source Address 1 (Encoded-Unicast format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address 2 (Encoded-Unicast format) | | Source Address 2 (Encoded-Unicast format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . | | . |
| . | | . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address P (Encoded-Unicast format) | | Source Address P (Encoded-Unicast format) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> </artwork>
</figure>
<t><list style="symbols"> <dl spacing="normal" newline="true" indent="3" pn="section-4.4.2-6">
<t>Group Address and Reserved: <vspace blankLines='1'/> <dt pn="section-4.4.2-6.1">Group Address:</dt>
As specified in Section 4.9.6 of <xref target="RFC7761"/>.</t> <dd pn="section-4.4.2-6.2">As specified in <xref target="RFC7761" se
<t>Reserved: ctionFormat="of" section="4.9.6" format="default" derivedLink="https://rfc-edito
Set to zero on transmission. Ignored upon receipt.</t> r.org/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761"/>.</dd>
<t>Number of Sources (P): <vspace blankLines='1'/> <dt pn="section-4.4.2-6.3">Reserved:</dt>
The Number of Sources is corresponding to the number of Source Address fields in <dd pn="section-4.4.2-6.4">Set to zero on transmission. Ignored upo
the Group Record. n receipt.</dd>
If this number is 0, the Group Record indicates one assert record with a Sourc <dt pn="section-4.4.2-6.5">Number of Sources (P):</dt>
e Address of 0. <dd pn="section-4.4.2-6.6">The Number of Sources corresponds to the
If this number is not 0 and one of the (*,G) assert records to be encoded shou number of Source
ld have Address fields in the Group Record. If this number is not 0 and
the Source Address 0, then 0 needs to be encoded as one of the Source Address one of the (*,G) assert records to be encoded has Source Address
fields.</t> 0, then 0 needs to be encoded as one of the Source Address
<t>Source Address: <vspace blankLines='1'/> fields.</dd>
As specified in Section 4.9.6 of <xref target="RFC7761"/>. <dt pn="section-4.4.2-6.7">Reserved:</dt>
But there can be multiple Source Address fields in the Group Record.</t> <dd pn="section-4.4.2-6.8"> Set to zero on transmission. Ignored up
</list></t> on receipt.</dd>
<dt pn="section-4.4.2-6.9">Source Address:</dt>
</section> <dd pn="section-4.4.2-6.10">As specified in <xref target="RFC7761" s
</section> ectionFormat="of" section="4.9.6" format="default" derivedLink="https://rfc-edit
</section> or.org/rfc/rfc7761#section-4.9.6" derivedContent="RFC7761"/>. But there can be
<section anchor="IANA"><name>IANA Considerations</name> multiple Source Address
fields in the Group Record.</dd>
<t>IANA has assigned the following code point value to the "PIM-Hello </dl>
Options" registry for the Packed Assert Capability.</t> </section>
</section>
<figure title="IANA PIM-Hello Options" anchor="FIG-IANA"><artwork><![CDATA[ </section>
+=======+========+=========================+================+ <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn=
| Value | Length | Name | Reference | "section-5">
+=======+========+=========================+================+ <name slugifiedName="name-iana-considerations">IANA Considerations</name>
| 40 | 0 | Packed Assert Capability| [This Document]| <t indent="0" pn="section-5-1">IANA has updated the "PIM Message Types" re
+=======+========+=========================+================+ gistry as follows to
]]></artwork></figure> include the Packed and Aggregated flag bits for the Assert message
type.</t>
<t>IANA has assigned the following two Flag Bits for PIM Assert messages <table anchor="FIG-IANA" align="left" pn="table-1">
to the "PIM Message Types" registry.</t> <name slugifiedName="name-pim-hello-options">PIM-Hello Options</name>
<thead>
<figure title="IANA PIM Message Types" anchor="FIG-IANA2"><artwork><![CDATA[ <tr>
+======+========+=================+====================+ <th align="left" colspan="1" rowspan="1">Value</th>
| Type | Name | Flag Bits | Reference | <th align="left" colspan="1" rowspan="1">Length</th>
+======+========+=================+====================+ <th align="left" colspan="1" rowspan="1">Name</th>
| 5 | Assert | 0: Packed | [This Document] | <th align="left" colspan="1" rowspan="1">Reference</th>
| | | 1: Aggregated | [This Document] | </tr>
| | | 2-7: Unassigned | [RFC3973][RFC7761] | </thead>
+======+========+=================+====================+ <tbody>
]]></artwork></figure> <tr>
<td align="center" colspan="1" rowspan="1">40</td>
</section> <td align="center" colspan="1" rowspan="1">0</td>
<section anchor="security-considerations"><name>Security Considerations</name> <td align="left" colspan="1" rowspan="1">Packed Assert Capability</t
d>
<t>The security considerations of <xref target="RFC7761"/> apply to the extensio <td align="left" colspan="1" rowspan="1">RFC 9466</td>
ns </tr>
defined in this document.</t> </tbody>
</table>
<t>This document packs multiple assert records in a single message. As <t indent="0" pn="section-5-3">IANA has assigned the following two flag bi
described in Section 6.1 of <xref target="RFC7761"/>, a forged Assert message co ts for PIM Assert messages
uld in the "PIM Message Types" registry.</t>
cause the legitimate designated forwarder to stop forwarding traffic <table anchor="FIG-IANA2" align="left" pn="table-2">
to the LAN. The effect may be amplified when using a PackedAssert message.</t> <name slugifiedName="name-pim-message-types">PIM Message Types</name>
<thead>
<t>Like other optional extensions of <xref target="RFC7761"/> that are active <tr>
only when all routers indicate support for them, a single misconfigured or malic <th align="left" colspan="1" rowspan="1">Type</th>
ious <th align="left" colspan="1" rowspan="1">Name</th>
router emitting forged PIM Hello messages can inhibit operations of this extensi <th align="left" colspan="1" rowspan="1">Flag Bits</th>
on.</t> <th align="left" colspan="1" rowspan="1">Reference</th>
</tr>
<t>Authentication of PIM messages such as explained in <xref target="RFC7761"/>, </thead>
Sections 6.2 and 6.3 can <tbody>
protect against the forged message attacks attacks.</t> <tr>
<td align="center" rowspan="3" colspan="1">5</td>
</section> <td rowspan="3" align="left" colspan="1">Assert</td>
<section anchor="acknowledgments"><name>Acknowledgments</name> <td align="left" colspan="1" rowspan="1">0: Packed</td>
<td align="left" colspan="1" rowspan="1">RFC 9466</td>
<t>The authors would like to thank: Stig Venaas for the valuable </tr>
contributions of this document, Alvaro Retana for his thorough <tr>
and constructive RTG AD review, Ines Robles for her Gen-ART review, <td align="left" colspan="1" rowspan="1">1: Aggregated</td>
Tommy Pauly for his transport area review, Robert Sparks for his <td align="left" colspan="1" rowspan="1">RFC 9466</td>
SecDir review, Shuping Peng for her RtgDir review, John Scudder </tr>
for his RTG AD review, Eric Vyncke for his INT AD review, <tr>
Eric Kline for his INT AD review, Paul Wouter for his SEC AD review, <td align="left" colspan="1" rowspan="1">2-7: Unassigned</td>
Zaheduzzaman Sarker for his TSV AD review, Robert Wilton for his <td align="left" colspan="1" rowspan="1">
OPS AD review and Martin Duke for his TSV AD review.</t> <xref target="RFC3973" format="default" sectionFormat="of" derived
Content="RFC3973"/> <xref target="RFC7761" format="default" sectionFormat="of" d
</section> erivedContent="RFC7761"/></td>
<section anchor="working-group-considerations"><name>Working Group consideration </tr>
s</name> </tbody>
</table>
<t>[RFC-Editor: please remove this section].</t> </section>
<section anchor="security-considerations" numbered="true" removeInRFC="false
<section anchor="open-issues"><name>Open Issues</name> " toc="include" pn="section-6">
<name slugifiedName="name-security-considerations">Security Considerations
</section> </name>
<section anchor="changelog"><name>Changelog</name> <t indent="0" pn="section-6-1">The security considerations of <xref target
="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> apply
<t>This document is hosted starting with -06 on https://github.com/toerless/pim- to the
assert-packing.</t> extensions defined in this document.</t>
<t indent="0" pn="section-6-2">This document packs multiple assert records
<section anchor="draft-ietf-pim-assert-packing-12"><name>draft-ietf-pim-assert-p in a single message. As
acking-12</name> described in <xref target="RFC7761" sectionFormat="of" section="6.1" forma
t="default" derivedLink="https://rfc-editor.org/rfc/rfc7761#section-6.1" derived
<t>Changed text of IANA considerations from request to assigned after IANA has a Content="RFC7761"/>,
ssigned the code points.</t> a forged Assert message could cause the legitimate designated forwarder
to stop forwarding traffic to the LAN. The effect may be amplified when
<t>Fixed leftover nits from John Scudders review that where not done right in -1 using a PackedAssert message.</t>
1.</t> <t indent="0" pn="section-6-3">Like other optional extensions of <xref tar
get="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> tha
</section> t are
<section anchor="draft-ietf-pim-assert-packing-11"><name>draft-ietf-pim-assert-p active only when all routers indicate support for them, a single
acking-11</name> misconfigured or malicious router emitting forged PIM Hello messages can
inhibit operations of this extension.</t>
<t>Comprehensive 2 round AD review by John Scudder.</t> <t indent="0" pn="section-6-4">Authentication of PIM messages, such as tha
t explained in Sections
<t>Functional enhancement: add requirement for existing implementation to be abl <xref target="RFC7761" section="6.2" sectionFormat="bare" format="default"
e to disable assert packing so that any possible compatibility issues introduced derivedLink="https://rfc-editor.org/rfc/rfc7761#section-6.2" derivedContent="RF
(which we think will not happen) can be avoided when upgrading to a packedasser C7761"/> and <xref target="RFC7761" section="6.3" sectionFormat="bare" format="d
t version of the software. Also to allow performance comparison. No making a req efault" derivedLink="https://rfc-editor.org/rfc/rfc7761#section-6.3" derivedCont
uirement for day 0 implementations because they may want to save the work of hav ent="RFC7761"/> of <xref target="RFC7761" format="default" sectionFormat="of" de
ing a non-packed-assert code path.</t> rivedContent="RFC7761"/>, can protect against forged message attacks
attacks.</t>
<t>Some rewrite to increase readibility, subdivided 3.3.1 into multiple subsecti </section>
ons to better structure it.</t>
<t>3.3.1 improved core requirements - added requirement for counters to show ass
ert/packedassert operations, documentation (e.g.: YANG) for what/how it can send
, config option to disable packedasserts. Refined text: Bulletized cases of asse
rts in rfc7761,</t>
<t>Subdivided 3.3.1 into multiple subsections for readability improved text base
d on review. Added reference for DSCP.</t>
<t>3.3.1.5 Added explicit example of improvement because of packet size/throughp
ut limits of router.</t>
<t>Added notion of attacks by wrong hellos to security section.</t>
<t>Eric Vyncke review:</t>
<t>Appendix A: Better elaboration of L2 ring vs L3 ring benefits. Nits.</t>
<t>Paul Wouter review:</t>
<t>Changed explanation of number "M" of records to be inline with formatting of
other data (sections 4.3 and 4.4).</t>
<t>Some nits.</t>
</section>
<section anchor="draft-ietf-pim-assert-packing-10"><name>draft-ietf-pim-assert-p
acking-10</name>
<t>Fixed up Reserved field of PackedAsserts to get back to 32 bit alignment
of the following fields (was down to 16 bits). Sorry, had a misinterpretation
reading rfc7761, though there ws something that had only made it 16 bit
aligned. Anyhow. Only this one change, 8 -&gt; 24 bit for this field.</t>
</section>
<section anchor="draft-ietf-pim-assert-packing-09"><name>draft-ietf-pim-assert-p
acking-09</name>
<t>For details of review discussion/replies, see review reply emails in (https:/
/github.com/toerless/pim-assert-packing/tree/main/emails)j</t>
<t>review Alvaro Retana:
Reintroduced ref to PIM-DM, fixed typos, downgraded MAY-&gt;may for "sufficient"
.</t>
<t>IANA Expert Review / Stig Venaas:</t>
<t>Removed Count field from message headers as it complicates parsing and is unn
ecessary. Added "Zero" field to make packed asserts received by a non-packed-ass
ert-capable-router guaranteed to fail ("Reserved" address family type).</t>
<t>Changed from RFC8736 to RFC8736bis so that we can use the word "Unassigned" i
n the IANA table.</t>
<t>Review Shuping Peng</t>
<t>Changed explanation of how assert packing works from "layer" to "alternative
to
packetization via PIM Assert Message.
Fixed various typos, expanded term etc..</t>
<t>Review Robert Sparks:</t>
<t>Moved Intro explanations of how one could avoid asserts (but how its problema
tic) to appendix.
Applied textual nits found. Removed quotes around term "sufficient" for easier r
eadbility.</t>
<t>Review Tommy Paul:</t>
<t>Transport related concern explained in reply, but
no additional explanations in text because the question referred to
basic PIM behavior expected to be understood by readers: No discovery
of loss/trigger for retransmission, just restransmission of same
message element after discover of ongoing duplicates and/or expiry
of timers.</t>
</section>
<section anchor="draft-ietf-pim-assert-packing-08"><name>draft-ietf-pim-assert-p
acking-08</name>
<t>Included changes from review of Alvaro Retana (https://mailarchive.ietf.org/a
rch/msg/pim/GsKq9bB2a6yDdM9DvAUGCWthdEI)</t>
<t>Please see the following emails discussing the changes:</t>
<t>https://raw.githubusercontent.com/toerless/pim-assert-packing/main/emails/07-
alvaro-review-reply.txt</t>
</section>
<section anchor="draft-ietf-pim-assert-packing-07"><name>draft-ietf-pim-assert-p
acking-07</name>
<t>Included changes from review of Alvaro Retana (https://mailarchive.ietf.org/a
rch/msg/pim/Cp4o5glUFge2b84X9CQMwCWZjAk/)</t>
<t>Please see the following emails discussing the changes:</t>
<t>https://raw.githubusercontent.com/toerless/pim-assert-packing/main/emails/05-
alvaro-review-reply.txt</t>
<t>https://raw.githubusercontent.com/toerless/pim-assert-packing/main/emails/07-
pim-wg-announce.txt</t>
</section>
<section anchor="draft-ietf-pim-assert-packing-06"><name>draft-ietf-pim-assert-p
acking-06</name>
<t>This version was converted from txt format into markdown for better editing l
ater, but is otherwise text identical to -05. It was posted to DataTracker to ma
ke diffs easier.</t>
<t>Functional changes:</t>
</section>
</section>
</section>
</middle> </middle>
<back> <back>
<references pn="section-7">
<references title='Normative References'> <name slugifiedName="name-references">References</name>
<references pn="section-7.1">
<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'> <name slugifiedName="name-normative-references">Normative References</na
<front> me>
<title>Key words for use in RFCs to Indicate Requirement Levels</title> <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></a 119" quoteTitle="true" derivedAnchor="RFC2119">
uthor> <front>
<date month='March' year='1997'/> <title>Key words for use in RFCs to Indicate Requirement Levels</tit
<abstract><t>In many standards track documents several words are used to signify le>
the requirements in the specification. These words are often capitalized. This <author fullname="S. Bradner" initials="S." surname="Bradner"/>
document defines these words as they should be interpreted in IETF documents. <date month="March" year="1997"/>
This document specifies an Internet Best Current Practices for the Internet Comm <abstract>
unity, and requests discussion and suggestions for improvements.</t></abstract> <t indent="0">In many standards track documents several words are
</front> used to signify the requirements in the specification. These words are often cap
<seriesInfo name='BCP' value='14'/> italized. This document defines these words as they should be interpreted in IET
<seriesInfo name='RFC' value='2119'/> F documents. This document specifies an Internet Best Current Practices for the
<seriesInfo name='DOI' value='10.17487/RFC2119'/> Internet Community, and requests discussion and suggestions for improvements.</t
</reference> >
</abstract>
<reference anchor='RFC7761' target='https://www.rfc-editor.org/info/rfc7761'> </front>
<front> <seriesInfo name="BCP" value="14"/>
<title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specifica <seriesInfo name="RFC" value="2119"/>
tion (Revised)</title> <seriesInfo name="DOI" value="10.17487/RFC2119"/>
<author fullname='B. Fenner' initials='B.' surname='Fenner'><organization/></aut </reference>
hor> <reference anchor="RFC7761" target="https://www.rfc-editor.org/info/rfc7
<author fullname='M. Handley' initials='M.' surname='Handley'><organization/></a 761" quoteTitle="true" derivedAnchor="RFC7761">
uthor> <front>
<author fullname='H. Holbrook' initials='H.' surname='Holbrook'><organization/>< <title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protoc
/author> ol Specification (Revised)</title>
<author fullname='I. Kouvelas' initials='I.' surname='Kouvelas'><organization/>< <author fullname="B. Fenner" initials="B." surname="Fenner"/>
/author> <author fullname="M. Handley" initials="M." surname="Handley"/>
<author fullname='R. Parekh' initials='R.' surname='Parekh'><organization/></aut <author fullname="H. Holbrook" initials="H." surname="Holbrook"/>
hor> <author fullname="I. Kouvelas" initials="I." surname="Kouvelas"/>
<author fullname='Z. Zhang' initials='Z.' surname='Zhang'><organization/></autho <author fullname="R. Parekh" initials="R." surname="Parekh"/>
r> <author fullname="Z. Zhang" initials="Z." surname="Zhang"/>
<author fullname='L. Zheng' initials='L.' surname='Zheng'><organization/></autho <author fullname="L. Zheng" initials="L." surname="Zheng"/>
r> <date month="March" year="2016"/>
<date month='March' year='2016'/> <abstract>
<abstract><t>This document specifies Protocol Independent Multicast - Sparse Mod <t indent="0">This document specifies Protocol Independent Multica
e (PIM-SM). PIM-SM is a multicast routing protocol that can use the underlying st - Sparse Mode (PIM-SM). PIM-SM is a multicast routing protocol that can use t
unicast routing information base or a separate multicast-capable routing informa he underlying unicast routing information base or a separate multicast-capable r
tion base. It builds unidirectional shared trees rooted at a Rendezvous Point ( outing information base. It builds unidirectional shared trees rooted at a Rende
RP) per group, and it optionally creates shortest-path trees per source.</t><t>T zvous Point (RP) per group, and it optionally creates shortest-path trees per so
his document obsoletes RFC 4601 by replacing it, addresses the errata filed agai urce.</t>
nst it, removes the optional (*,*,RP), PIM Multicast Border Router features and <t indent="0">This document obsoletes RFC 4601 by replacing it, ad
authentication using IPsec that lack sufficient deployment experience (see Appen dresses the errata filed against it, removes the optional (*,*,RP), PIM Multicas
dix A), and moves the PIM specification to Internet Standard.</t></abstract> t Border Router features and authentication using IPsec that lack sufficient dep
</front> loyment experience (see Appendix A), and moves the PIM specification to Internet
<seriesInfo name='STD' value='83'/> Standard.</t>
<seriesInfo name='RFC' value='7761'/> </abstract>
<seriesInfo name='DOI' value='10.17487/RFC7761'/> </front>
</reference> <seriesInfo name="STD" value="83"/>
<seriesInfo name="RFC" value="7761"/>
<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'> <seriesInfo name="DOI" value="10.17487/RFC7761"/>
<front> </reference>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></autho 174" quoteTitle="true" derivedAnchor="RFC8174">
r> <front>
<date month='May' year='2017'/> <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti
<abstract><t>RFC 2119 specifies common key words that may be used in protocol s tle>
pecifications. This document aims to reduce the ambiguity by clarifying that on <author fullname="B. Leiba" initials="B." surname="Leiba"/>
ly UPPERCASE usage of the key words have the defined special meanings.</t></abs <date month="May" year="2017"/>
tract> <abstract>
</front> <t indent="0">RFC 2119 specifies common key words that may be used
<seriesInfo name='BCP' value='14'/> in protocol specifications. This document aims to reduce the ambiguity by clari
<seriesInfo name='RFC' value='8174'/> fying that only UPPERCASE usage of the key words have the defined special meanin
<seriesInfo name='DOI' value='10.17487/RFC8174'/> gs.</t>
</reference> </abstract>
</front>
<reference anchor='I-D.ietf-pim-rfc8736bis' target='https://datatracker.ietf.org <seriesInfo name="BCP" value="14"/>
/doc/html/draft-ietf-pim-rfc8736bis-00'> <seriesInfo name="RFC" value="8174"/>
<front> <seriesInfo name="DOI" value="10.17487/RFC8174"/>
<title>PIM Message Type Space Extension and Reserved Bits</title> </reference>
<author fullname='Stig Venaas' initials='S.' surname='Venaas'> <reference anchor="RFC9436" target="https://www.rfc-editor.org/info/rfc9
<organization>Cisco Systems, Inc.</organization> 436" quoteTitle="true" derivedAnchor="RFC9436">
<front>
<title>PIM Message Type Space Extension and Reserved Bits</title>
<author fullname="S. Venaas" initials="S." surname="Venaas"/>
<author fullname="A. Retana" initials="A." surname="Retana"/>
<date month="August" year="2023"/>
<abstract>
<t indent="0">The PIM version 2 messages share a common message he
ader format. The common header definition contains eight reserved bits. This doc
ument specifies how these bits may be used by individual message types and exten
ds the PIM type space.</t>
<t indent="0">This document updates RFCs 7761 and 3973 by defining
the use of the Reserved field in the PIM common header. This document further u
pdates RFCs 7761 and 3973, along with RFCs 5015, 5059, 6754, and 8364, by specif
ying the use of the bits for each PIM message.</t>
<t indent="0">This document obsoletes RFC 8736.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="9436"/>
<seriesInfo name="DOI" value="10.17487/RFC9436"/>
</reference>
</references>
<references pn="section-7.2">
<name slugifiedName="name-informative-references">Informative References
</name>
<reference anchor="RFC2475" target="https://www.rfc-editor.org/info/rfc2
475" quoteTitle="true" derivedAnchor="RFC2475">
<front>
<title>An Architecture for Differentiated Services</title>
<author fullname="S. Blake" initials="S." surname="Blake"/>
<author fullname="D. Black" initials="D." surname="Black"/>
<author fullname="M. Carlson" initials="M." surname="Carlson"/>
<author fullname="E. Davies" initials="E." surname="Davies"/>
<author fullname="Z. Wang" initials="Z." surname="Wang"/>
<author fullname="W. Weiss" initials="W." surname="Weiss"/>
<date month="December" year="1998"/>
<abstract>
<t indent="0">This document defines an architecture for implementi
ng scalable service differentiation in the Internet. This memo provides informat
ion for the Internet community.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="2475"/>
<seriesInfo name="DOI" value="10.17487/RFC2475"/>
</reference>
<reference anchor="RFC3973" target="https://www.rfc-editor.org/info/rfc3
973" quoteTitle="true" derivedAnchor="RFC3973">
<front>
<title>Protocol Independent Multicast - Dense Mode (PIM-DM): Protoco
l Specification (Revised)</title>
<author fullname="A. Adams" initials="A." surname="Adams"/>
<author fullname="J. Nicholas" initials="J." surname="Nicholas"/>
<author fullname="W. Siadak" initials="W." surname="Siadak"/>
<date month="January" year="2005"/>
<abstract>
<t indent="0">This document specifies Protocol Independent Multica
st - Dense Mode (PIM-DM). PIM-DM is a multicast routing protocol that uses the u
nderlying unicast routing information base to flood multicast datagrams to all m
ulticast routers. Prune messages are used to prevent future messages from propag
ating to routers without group membership information. This memo defines an Expe
rimental Protocol for the Internet community.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="3973"/>
<seriesInfo name="DOI" value="10.17487/RFC3973"/>
</reference>
<reference anchor="RFC6037" target="https://www.rfc-editor.org/info/rfc6
037" quoteTitle="true" derivedAnchor="RFC6037">
<front>
<title>Cisco Systems' Solution for Multicast in BGP/MPLS IP VPNs</ti
tle>
<author fullname="E. Rosen" initials="E." role="editor" surname="Ros
en"/>
<author fullname="Y. Cai" initials="Y." role="editor" surname="Cai"/
>
<author fullname="IJ. Wijnands" initials="IJ." surname="Wijnands"/>
<date month="October" year="2010"/>
<abstract>
<t indent="0">This document describes the MVPN (Multicast in BGP/M
PLS IP VPNs) solution designed and deployed by Cisco Systems. The procedures spe
cified in this document are largely a subset of the generalized MVPN framework r
ecently standardized by the IETF. However, as the deployment of the procedures s
pecified herein predates the publication of IETF standards (in some cases by ove
r five years), an implementation based on these procedures differs in some respe
cts from a fully standards-compliant implementation. These differences are point
ed out in the document. This document defines a Historic Document for the Intern
et community.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="6037"/>
<seriesInfo name="DOI" value="10.17487/RFC6037"/>
</reference>
<reference anchor="RFC7431" target="https://www.rfc-editor.org/info/rfc7
431" quoteTitle="true" derivedAnchor="RFC7431">
<front>
<title>Multicast-Only Fast Reroute</title>
<author fullname="A. Karan" initials="A." surname="Karan"/>
<author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
<author fullname="IJ. Wijnands" initials="IJ." role="editor" surname
="Wijnands"/>
<author fullname="B. Decraene" initials="B." surname="Decraene"/>
<date month="August" year="2015"/>
<abstract>
<t indent="0">As IPTV deployments grow in number and size, service
providers are looking for solutions that minimize the service disruption due to
faults in the IP network carrying the packets for these services. This document
describes a mechanism for minimizing packet loss in a network when node or link
failures occur. Multicast-only Fast Reroute (MoFRR) works by making simple enha
ncements to multicast routing protocols such as Protocol Independent Multicast (
PIM) and Multipoint LDP (mLDP).</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7431"/>
<seriesInfo name="DOI" value="10.17487/RFC7431"/>
</reference>
<reference anchor="RFC7490" target="https://www.rfc-editor.org/info/rfc7
490" quoteTitle="true" derivedAnchor="RFC7490">
<front>
<title>Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)</title>
<author fullname="S. Bryant" initials="S." surname="Bryant"/>
<author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
<author fullname="S. Previdi" initials="S." surname="Previdi"/>
<author fullname="M. Shand" initials="M." surname="Shand"/>
<author fullname="N. So" initials="N." surname="So"/>
<date month="April" year="2015"/>
<abstract>
<t indent="0">This document describes an extension to the basic IP
fast reroute mechanism, described in RFC 5286, that provides additional backup
connectivity for point-to-point link failures when none can be provided by the b
asic mechanisms.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7490"/>
<seriesInfo name="DOI" value="10.17487/RFC7490"/>
</reference>
</references>
</references>
<section anchor="use-case-examples" numbered="true" removeInRFC="false" toc=
"include" pn="section-appendix.a">
<name slugifiedName="name-use-case-examples">Use Case Examples</name>
<t indent="0" pn="section-appendix.a-1">The PIM Assert mechanism can only
be avoided by designing the network
to be without transit subnets with multiple upstream routers. For
example, an L2 ring between routers can sometimes be reconfigured to be
a ring of point-to-point subnets connected by the routers. However, these
L2/L3
topology changes are undesirable when they are only done to
enable IP multicast with PIM because they increase the cost of
introducing IP multicast with PIM.</t>
<t indent="0" pn="section-appendix.a-2">These L3 ring designs are specific
ally undesirable when particular L2
technologies are needed. For example, various L2 technologies for rings
provide sub-50 msec failover mechanisms that will benefit IP unicast and
multicast alike without any added complexity to the IP layer (forwarding
or routing). If such L2 rings were to be replaced by L3 rings just to
avoid PIM asserts, then this would result in the need for a complex
choice of a sub-50 msec IP unicast failover solution (such as <xref target
="RFC7490" format="default" sectionFormat="of" derivedContent="RFC7490"/> with I
P repair tunnels) as well as a
separate sub-50 msec IP multicast failover solution, (such as <xref target
="RFC7431" format="default" sectionFormat="of" derivedContent="RFC7431"/> with d
edicated ring support). The
mere fact that, by running at the IP layer, different solutions for IP
unicast and multicast are required makes them more difficult to operate,
and they typically require more expensive hardware. This often leads to
non-support of the IP multicast part.</t>
<t indent="0" pn="section-appendix.a-3">Likewise, IEEE Time-Sensitive Netw
orking mechanisms would require an
L2 topology that cannot simply be replaced by an L3 topology. L2
sub-topologies can also significantly reduce the cost of deployment.</t>
<t indent="0" pn="section-appendix.a-4">The following subsections give exa
mples of the type of network and
use cases in which subnets with asserts have been observed or are
expected to require scaling as provided by this specification.</t>
<section anchor="enterprise-network" numbered="true" removeInRFC="false" t
oc="include" pn="section-appendix.a.1">
<name slugifiedName="name-enterprise-network">Enterprise Network</name>
<t indent="0" pn="section-appendix.a.1-1">When an enterprise network is
connected through an L2 network,
the intra-enterprise runs L3 PIM multicast. The different sites
of the enterprise are equivalent to the PIM connection through the
shared LAN network. Depending upon the locations and number of groups,
there could be many asserts on the first-hop routers.</t>
</section>
<section anchor="video-surveillance" numbered="true" removeInRFC="false" t
oc="include" pn="section-appendix.a.2">
<name slugifiedName="name-video-surveillance">Video Surveillance</name>
<t indent="0" pn="section-appendix.a.2-1">Video surveillance deployments
have migrated from analog-based
systems to IP-based systems oftentimes using multicast. In the shared
LAN network deployments, when there are many cameras streaming to many
groups, there may be issues with many asserts on first-hop routers.</t>
</section>
<section anchor="financial-services" numbered="true" removeInRFC="false" t
oc="include" pn="section-appendix.a.3">
<name slugifiedName="name-financial-services">Financial Services</name>
<t indent="0" pn="section-appendix.a.3-1">Financial services extensively
rely on IP Multicast to deliver
stock market data and its derivatives, and the current multicast
solution PIM is usually deployed. As the number of multicast flows
grow, many stock data with many groups may result in many PIM asserts
on a shared LAN network from the publisher to the subscribers.</t>
</section>
<section anchor="iptv-broadcast-video" numbered="true" removeInRFC="false"
toc="include" pn="section-appendix.a.4">
<name slugifiedName="name-iptv-broadcast-video">IPTV Broadcast Video</na
me>
<t indent="0" pn="section-appendix.a.4-1">PIM DR deployments are often u
sed in host-side network for IPTV
broadcast video services. Host-side access network failure scenarios
may benefit from assert packing when many groups are being
used. According to <xref target="RFC7761" format="default" sectionFormat
="of" derivedContent="RFC7761"/>, the DR will be elected to
forward multicast traffic in the shared access network. When the DR
recovers from a failure, the original DR starts to send traffic, and
the current DR is still forwarding traffic. In this situation, multicast
traffic duplication maybe happen in the shared access network and can
trigger the assert progress.</t>
</section>
<section anchor="mvpn-mdt" numbered="true" removeInRFC="false" toc="includ
e" pn="section-appendix.a.5">
<name slugifiedName="name-mvpn-mdt">MVPN MDT</name>
<t indent="0" pn="section-appendix.a.5-1">As described in <xref target="
RFC6037" format="default" sectionFormat="of" derivedContent="RFC6037"/>, Multica
st Distribution
Tree (MDT) is used as tunnels for Multicast VPN (MVPN). The
configuration of multicast-enabled VPN Routing and Forwarding (VRF) or
changes to an interface that is in a VRF may cause many assert packets
to be sent at the same time.</t>
</section>
<section anchor="special-l2-services" numbered="true" removeInRFC="false"
toc="include" pn="section-appendix.a.6">
<name slugifiedName="name-special-l2-services">Special L2 Services</name
>
<t indent="0" pn="section-appendix.a.6-1">Additionally, future backhaul,
or fronthaul, networks may want to
connect L3 across an L2 underlay supporting Time-Sensitive Networks
(TSNs). The infrastructure may run Deterministic Networking (DetNet)
over TSN. These transit L2 LANs would have multiple upstreams and
downstreams. This document takes a proactive approach to
prevention of possible future assert issues in these types of
environments.</t>
</section>
</section>
<section anchor="acknowledgments" numbered="false" toc="include" removeInRFC
="false" pn="section-appendix.b">
<name slugifiedName="name-acknowledgments">Acknowledgments</name>
<t indent="0" pn="section-appendix.b-1">The authors would like to thank th
e following individuals: <contact fullname="Stig Venaas"/>
for the valuable contributions of this document, <contact fullname="Alvaro
Retana"/> for his thorough and constructive RTG AD
review, <contact fullname="Ines Robles"/> for her Gen-ART review,
<contact fullname="Tommy Pauly"/> for his Transport Area review,
<contact fullname="Robert Sparks"/> for his SecDir review, <contact fullna
me="Shuping Peng"/> for her RtgDir review, <contact fullname="John Scudder
"/> for his RTG AD review, <contact fullname="Éric Vyncke"/> for
his INT AD review, <contact fullname="Eric Kline"/> for his INT AD
review, <contact fullname="Paul Wouter"/> for his SEC AD review,
<contact fullname="Zaheduzzaman Sarker"/> for his TSV AD review,
<contact fullname="Robert Wilton"/> for his OPS AD review, and <contact fu
llname="Martin Duke"/> for his TSV AD review.</t>
</section>
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc
="include" pn="section-appendix.c">
<name slugifiedName="name-authors-addresses">Authors' Addresses</name>
<author initials="Y." surname="Liu" fullname="Yisong Liu" role="editor">
<organization showOnFrontPage="true">China Mobile</organization>
<address>
<postal>
<country>China</country>
</postal>
<email>liuyisong@chinamobile.com</email>
</address>
</author> </author>
<author fullname='Alvaro Retana' initials='A.' surname='Retana'> <author initials="T." surname="Eckert" fullname="Toerless Eckert" role="ed
<organization>Futurewei Technologies, Inc.</organization> itor">
<organization showOnFrontPage="true">Futurewei</organization>
<address>
<postal>
<country>United States of America</country>
</postal>
<email>tte@cs.fau.de</email>
</address>
</author> </author>
<date day='2' month='March' year='2023'/> <author initials="M." surname="McBride" fullname="Mike McBride">
<abstract> <organization showOnFrontPage="true">Futurewei</organization>
<t> The PIM version 2 messages share a common message header format. <address>
The <postal>
common header definition contains eight reserved bits. This document <country>United States of America</country>
specifies how these bits may be used by individual message types and </postal>
creates a registry containing the per-message-type usage. This <email>michael.mcbride@futurewei.com</email>
document also extends the PIM type space by defining three new </address>
message types. For each of the new types, four of the previously </author>
reserved bits are used to form an extended type range. <author initials="Z." surname="Zhang" fullname="Zheng (Sandy) Zhang">
<organization showOnFrontPage="true">ZTE Corporation</organization>
This document updates RFCs 7761 and 3973 by defining the use of the <address>
currently Reserved field in the PIM common header. This document <postal>
further updates RFCs 7761 and 3973, along with RFCs 5015, 5059, 6754, <country>China</country>
and 8364, by specifying the use of the currently reserved bits for </postal>
each PIM message. <email>zhang.zheng@zte.com.cn</email>
</address>
This document obsoletes RFC 8736. </author>
</section>
</t>
</abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-pim-rfc8736bis-00'/>
</reference>
</references>
<references title='Informative References'>
<reference anchor='RFC2475' target='https://www.rfc-editor.org/info/rfc2475'>
<front>
<title>An Architecture for Differentiated Services</title>
<author fullname='S. Blake' initials='S.' surname='Blake'><organization/></autho
r>
<author fullname='D. Black' initials='D.' surname='Black'><organization/></autho
r>
<author fullname='M. Carlson' initials='M.' surname='Carlson'><organization/></a
uthor>
<author fullname='E. Davies' initials='E.' surname='Davies'><organization/></aut
hor>
<author fullname='Z. Wang' initials='Z.' surname='Wang'><organization/></author>
<author fullname='W. Weiss' initials='W.' surname='Weiss'><organization/></autho
r>
<date month='December' year='1998'/>
<abstract><t>This document defines an architecture for implementing scalable ser
vice differentiation in the Internet. This memo provides information for the In
ternet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2475'/>
<seriesInfo name='DOI' value='10.17487/RFC2475'/>
</reference>
<reference anchor='RFC3973' target='https://www.rfc-editor.org/info/rfc3973'>
<front>
<title>Protocol Independent Multicast - Dense Mode (PIM-DM): Protocol Specificat
ion (Revised)</title>
<author fullname='A. Adams' initials='A.' surname='Adams'><organization/></autho
r>
<author fullname='J. Nicholas' initials='J.' surname='Nicholas'><organization/><
/author>
<author fullname='W. Siadak' initials='W.' surname='Siadak'><organization/></aut
hor>
<date month='January' year='2005'/>
<abstract><t>This document specifies Protocol Independent Multicast - Dense Mode
(PIM-DM). PIM-DM is a multicast routing protocol that uses the underlying unic
ast routing information base to flood multicast datagrams to all multicast route
rs. Prune messages are used to prevent future messages from propagating to rout
ers without group membership information. This memo defines an Experimental Pro
tocol for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='3973'/>
<seriesInfo name='DOI' value='10.17487/RFC3973'/>
</reference>
<reference anchor='RFC6037' target='https://www.rfc-editor.org/info/rfc6037'>
<front>
<title>Cisco Systems' Solution for Multicast in BGP/MPLS IP VPNs</title>
<author fullname='E. Rosen' initials='E.' role='editor' surname='Rosen'><organiz
ation/></author>
<author fullname='Y. Cai' initials='Y.' role='editor' surname='Cai'><organizatio
n/></author>
<author fullname='IJ. Wijnands' initials='IJ.' surname='Wijnands'><organization/
></author>
<date month='October' year='2010'/>
<abstract><t>This document describes the MVPN (Multicast in BGP/MPLS IP VPNs) so
lution designed and deployed by Cisco Systems. The procedures specified in this
document are largely a subset of the generalized MVPN framework recently standa
rdized by the IETF. However, as the deployment of the procedures specified here
in predates the publication of IETF standards (in some cases by over five years)
, an implementation based on these procedures differs in some respects from a fu
lly standards-compliant implementation. These differences are pointed out in th
e document. This document defines a Historic Document for the Internet communi
ty.</t></abstract>
</front>
<seriesInfo name='RFC' value='6037'/>
<seriesInfo name='DOI' value='10.17487/RFC6037'/>
</reference>
<reference anchor='RFC7431' target='https://www.rfc-editor.org/info/rfc7431'>
<front>
<title>Multicast-Only Fast Reroute</title>
<author fullname='A. Karan' initials='A.' surname='Karan'><organization/></autho
r>
<author fullname='C. Filsfils' initials='C.' surname='Filsfils'><organization/><
/author>
<author fullname='IJ. Wijnands' initials='IJ.' role='editor' surname='Wijnands'>
<organization/></author>
<author fullname='B. Decraene' initials='B.' surname='Decraene'><organization/><
/author>
<date month='August' year='2015'/>
<abstract><t>As IPTV deployments grow in number and size, service providers are
looking for solutions that minimize the service disruption due to faults in the
IP network carrying the packets for these services. This document describes a m
echanism for minimizing packet loss in a network when node or link failures occu
r. Multicast-only Fast Reroute (MoFRR) works by making simple enhancements to mu
lticast routing protocols such as Protocol Independent Multicast (PIM) and Multi
point LDP (mLDP).</t></abstract>
</front>
<seriesInfo name='RFC' value='7431'/>
<seriesInfo name='DOI' value='10.17487/RFC7431'/>
</reference>
<reference anchor='RFC7490' target='https://www.rfc-editor.org/info/rfc7490'>
<front>
<title>Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)</title>
<author fullname='S. Bryant' initials='S.' surname='Bryant'><organization/></aut
hor>
<author fullname='C. Filsfils' initials='C.' surname='Filsfils'><organization/><
/author>
<author fullname='S. Previdi' initials='S.' surname='Previdi'><organization/></a
uthor>
<author fullname='M. Shand' initials='M.' surname='Shand'><organization/></autho
r>
<author fullname='N. So' initials='N.' surname='So'><organization/></author>
<date month='April' year='2015'/>
<abstract><t>This document describes an extension to the basic IP fast reroute m
echanism, described in RFC 5286, that provides additional backup connectivity fo
r point-to-point link failures when none can be provided by the basic mechanisms
.</t></abstract>
</front>
<seriesInfo name='RFC' value='7490'/>
<seriesInfo name='DOI' value='10.17487/RFC7490'/>
</reference>
</references>
<section anchor="use-case-examples"><name>Use case examples</name>
<t>The PIM Assert mechanism can only be avoided by designing the network
to be without transit subnets with multiple upstream routers. For
example, an L2 ring between routers can sometimes be reconfigured to be a ring
of point-to-point subnets connected by the routers. These L2/L3 topology
changes are undesirable though, when they are only done to enable IP multicast
with PIM because they increase the cost of introducing IP multicast with PIM.</t
>
<t>These L3 ring designs are specifically undesirable, when particular L2 techno
logies are needed.
For example various L2 technologies for rings provide sub 50 msec failover
mechanisms that will benefit IP unicast and multicast alike without any
added complexity to the IP layer (forwarding or routing). If such L2 rings where
to be replaced
by L3 rings just to avoid PIM asserts, then this would result in the need for
a complex choice of of a sub 50 msec IP unicast failover solutions as well
as a sub 50 msec IP multicast failover solution. The mere fact that by
operating at the IP layer, different solutions for IP unicast and multicast
are required makes them more difficult to operate, they typically require more
expensive hardware and therefore most often, they are not even available
on the target equipment, such as <xref target="RFC7490"/> with IP repair tunnels
for IP unicast or
<xref target="RFC7431"/> for IP multicast.</t>
<t>Likewise, IEEE Time Sensitive Networking mechanisms would require an
L2 topology that can not simply be replaced by an L3 topology.
L2 sub-topologies can also significantly reduce the cost of deployment.</t>
<t>The following subsections give examples of the type of network and use-cases
in which subnets with asserts have been observerd or are expected to require
scaling as provided by this specification.</t>
<section anchor="enterprise-network"><name>Enterprise network</name>
<t>When an Enterprise network is connected through a layer-2 network,
the intra-enterprise runs layer-3 PIM multicast. The different sites
of the enterprise are equivalent to the PIM connection through the
shared LAN network. Depending upon the locations and amount of
groups there could be many asserts on the first-hop routers.</t>
</section>
<section anchor="video-surveillance"><name>Video surveillance</name>
<t>Video surveillance deployments have migrated from analog based
systems to IP-based systems oftentimes using multicast. In the
shared LAN network deployments, when there are many cameras
streaming to many groups there may be issues with many asserts on
first-hop routers.</t>
</section>
<section anchor="financial-services"><name>Financial Services</name>
<t>Financial services extensively rely on IP Multicast to deliver stock
market data and its derivatives, and current multicast solution PIM
is usually deployed. As the number of multicast flows grow, there
are many stock data with many groups may result in many PIM asserts
on a shared LAN network from publisher to the subscribers.</t>
</section>
<section anchor="iptv-broadcast-video"><name>IPTV broadcast Video</name>
<t>PIM DR deployments are often used in host-side network for
IPTV broadcast video services. Host-side access network failure
scenario may be benefitted by assert packing when many groups are
being used. According to <xref target="RFC7761"/> the DR will be elected to forw
ard
multicast traffic in the shared access network. When the DR recovers
from a failure, the original DR starts to send traffic, and the
current DR is still forwarding traffic. In the situation multicast
traffic duplication maybe happen in the shared access network and
can trigger the assert progress.</t>
</section>
<section anchor="mvpn-mdt"><name>MVPN MDT</name>
<t>As described in <xref target="RFC6037"/>, MDT (Multicast Distribution Tree) i
s used
as tunnels for MVPN. The configuration of multicast-enabled VRF (VPN
routing and forwarding) or interface that is in a VRF changing may
cause many assert packets to be sent in a same time.</t>
</section>
<section anchor="special-l2-services"><name>Special L2 services</name>
<t>Additionally, future backhaul, or fronthaul, networks may want to
connect L3 across an L2 underlay supporting Time Sensitive Networks
(TSN). The infrastructure may run DetNet over TSN. These transit L2
LANs would have multiple upstreams and downstreams. This document is
taking a proactive approach to prevention of possible future assert
issues in these types of environments.</t>
</section>
</section>
</back> </back>
<!-- ##markdown-source:
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
YWEp1I8IN5XUCq0aJ3mUE73pCgw5y0CkCR5hGggHCdNVA9GjdzEkdM+SdwIp
P7CJo5NY0zTxKqFGNFTt3acFFLaQ/bcsBwUeqF7VbooDNiFY7RCTLrAZc2dS
8AYO5oK5RH63KguadzSyoqHri8XWioWMKwy3jmzogCz0k2xnh6xl6EOumbAI
qSzKOuhkGZOx08UgZIcQ7Iw8QiUQTAxEvgjxDV7Y3uJZRCjUDDnGDViY8KMw
qTCgwaFAaEOnMAyLPhMcU8wgmYj1B07lybNDzySOg6A0BTtEUcFJx0m5mhXi
TJg+m7OiAnkfiXM0YFngFayMBA8AzzkzgSZPC9qYxayXAluyO9axfQfSiXwk
2engJHNxZHLM4RwjRzIAVRCrYpVgW9g7WTqMR7Pci+aIX2WlP4VAbJdZmz94
cOiVVIS5eHsVILfsgF0c7V8cexlAegNWj/P3UmAgj1jC0GJH45YwrCgceoKR
NoALzFYgPxnaHNtbjA4gnfYdb3N+1+0ltWeJ82kFsTonQEbNcHFjOCJCWDBp
BEzSchnz0pCGZHHIQBbOiyYEl0Rq1lexLg37gX2kFyyAmRrmLqI9SVzWfAFC
GnguwKp3xB3Arnl8YCaFJaMoipPsDorCMxSJCKbcGEupCWoyYtiJ4CWB+MdK
KdOLsAMwTYd0y0X81s7jgjjk/OzsjLUgqREwGizeV8KKYv67OckAmiWwitlO
MrAssRClLGR1yTwFeIqYFrwQpiI10xf2EHgCfUDvE3Rt/QaowACMb94ZhN0o
LWkgMX9r1Kw0oNgcPrwROedztWtRjkkbw/gVS4/2cTGbTiF36kJKg54cyzn0
Tpzb2xpSNV9ZskTM6ynmJDiO5EH2V/AzhlzhAxTy6FfZfKXDse4Vtqw2ALFC
Dq16zOy+f9+I7mb8w8ePey4CxFo/TbMZjGdFklgUZV3cNvhEN8Zq42vl2lZA
Iy5XAXC2t5ytDYZiyGYph06J1f/5j1ANOZ0VTazje7+C0sVdmFKMywaCXLz8
hcxt3n+2BqiVwp7fbYnFDVbj5d+oj/Wo86zzpGHLki3jbHOxJshbIsB5IVD3
Zvd//l/r5R601e4NPijKiYMhK0X/VKZw6KY69l42adkYJWc1GpEPvtdyscHu
YEC6luTKS7hYZN+4vy/Fzwd76scrHwnQWJbfYohfFBo2rMUiUgc6VEw+UAuq
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
mD6/uv3G9PIsGjCczJHsQ9Esp9c1dmTLDlzle6vinLON08VqXqiExph3wuVK
so75yr8V9bmLi3+ZlNVMpBgZjWRiOSZS00jN1WY4Ckwa4izCENJ4j4u4mO6a
Pk2ME1qkml+IMziBqmYTcUvFSZKD4owaRXp9CR3zrWvNSOPCModfRYwuPUt1
gZIcmuXxKIYPQ0/ySXHhurC6qVyDWeQ1KD/Ss5Dk3CdsOT/G7eygtW5gm7gF
uGAJ/xwtelZPGu9dGUBBEk/q+ymWVWNHUjUjhDMdU11+c/XKXJ7e8knJUrcH
wv+Tg+OnyCmhZ8xutVlPkR2n2RvmNrd2jwO2rlVXaIVgCt9tUrpyupClX3Jb
XI+B+eb6hdmlFyS5xsWCK/ztQafyCQKZhlbsi1hzovAuez8sQ6OFy2QKhFnY
J9l1R5V8Ktef23eXkFalsLqLQLB1fcwOkbzhjE8n4cqOo1nSAnDEQGkpfylB
ivCklRNfoPtg9WiDO/EhOVSHrsSajYRVrDbBCJLd25tXe4LVOB2SlPdHpSyH
ZimpzZIe52Z0hh527qLzdi+OyNLqvnIGnCiwptMr+hURBP27Y5oZFMSs7gia
eEvyraTRLC7RoBFuDvvWUdyftSvqhCyQ0nrYDmYtxBRju8ymdzFhlOUa0+b/
A4xDeMs3tQAA
</rfc> </rfc>
 End of changes. 33 change blocks. 
1456 lines changed or deleted 1558 lines changed or added

This html diff was produced by rfcdiff 1.48.