[pim] Re: [Shepherding AD review] review of draft-ietf-p im-gaap-17
Mike McBride <[email protected]> Fri, 3 Jul 2026 21:41:01 -0700
| Newsgroups | gmane.ietf.pim |
|---|---|
| Message-ID | <CAL3FGfxGtpFLtAUA07twoMDnrPPe1vUMdY6CzWDycALRjcvc9w@mail.gmail.com> |
--===============5799601605528147001== Content-Type: multipart/alternative; boundary="000000000000ac87f20655c1a6b9" --000000000000ac87f20655c1a6b9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Gunter, Thank you for the extensive comments. Very helpful. We have incorporated all of your comments in the just submitted -18. See you in Vienna. mike On Mon, Jun 29, 2026 at 11:46=E2=80=AFPM Gunter van de Velde (Nokia) < [email protected]> wrote: > Hi authors, > > Many thanks to Stig Venaas for the Shepherd write-up, Sheng Jiang for the > INTDIR review and Zhang (Sandy) Zheng for the RTGDIR review. > > I reviewed draft-ietf-pim-gaap-17. Thank you for the continued work on > this document. I have a series of major and minor observations that I thi= nk > needs to be looked at before starting further processing and considering > initiating a IETF LC. > > Major Observations > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > 1. IPv4 group address derivation does not match the requested GAAP > allocation range > > Section 6.1 derives an IPv4 multicast address as follows: > > group_address =3D 0xe0000000 | (low_bits & 0x007fffff) > > This produces addresses in 224.0.0.0 through 224.127.255.255, i.e., it > uses only the low-order 23 bits under the 224/8 prefix. That does not > appear to match Section 9.3, which requests an IPv4 /10 block for GAAP > allocation. > > A /10 means that the first 10 bits are fixed, the remaining 22 bits are > available for assigning multicast addresses. > But the algorithm is using 23 variable bits. Those do not seem to natch? > > So if IANA gives you a /10 block, the algorithm should generate addresses > only inside that /10 block. > > This is also problematic because it can produce addresses from ranges tha= t > are already reserved or assigned for other purposes, including > 224.0.0.0/24 and 224.0.1.0/24. Please align the pseudocode with the > actual IANA-allocated GAAP IPv4 range and ensure that GAAP allocation nev= er > generates addresses outside that range. > > The current pseudocode derives addresses from a much broader range than > the one requested from IANA. As a result, it can generate multicast > addresses that are already reserved or assigned for other purposes (for > example, within 224.0.0.0/24 or 224.0.1.0/24). This risks collisions with > existing multicast protocol assignments and incorrect forwarding behavior= . > The address derivation algorithm should be constrained so that it can onl= y > generate addresses within the GAAP-specific block allocated by IANA. > > This may require a construction of the form: > group_address =3D GAAP_V4_BASE | (low_bits & GAAP_V4_MASK) > where GAAP_V4_BASE and GAAP_V4_MASK are derived from the actual allocated > range. > > 2. IPv4 collision model mixes 32-bit uniqueness and 23-bit Ethernet mappi= ng > > Section 2 says that achieving unique 32 bits allows Layer-2 switches to > avoid multicast MAC address collisions. The text then correctly notes tha= t > IPv4 multicast maps only the low-order 23 bits. > > For IPv4, unique 32-bit multicast addresses are not sufficient to avoid > Ethernet multicast MAC aliasing; only the mapped low-order 23 bits matter= . > Please clarify the collision model and whether GAAP is trying to avoid: > > * only network-layer group-address collisions; > * Layer-2 multicast MAC collisions for IPv4; > * Layer-2 multicast MAC collisions for IPv6; > * or all of the above. > > If Layer-2 collision avoidance is part of the protocol objective, the IPv= 4 > and IPv6 rules need to be stated separately and supported by the address > derivation algorithm. > > 3. Encryption/security mechanism is not sufficiently specified for > interoperability > > Section 8 says GAAP should run over an encrypted multicast channel and > says that all implementations should support the same encryption mechanis= m > and key management procedure. It also mentions an implementation using > ChaCha20, but the draft does not define an interoperable encryption profi= le. > > The document needs to be clearer about whether encryption is: > > * mandatory to implement, > * mandatory to use, > * optional but recommended, > * or entirely out of scope. > > If the document expects interoperable encryption, it needs to specify the > complete wire behavior, including algorithm, nonce/IV construction, > authentication/integrity protection, replay considerations, key identifie= r > if any, and how the receiver distinguishes plaintext from ciphertext. > ChaCha20 alone provides confidentiality but not authentication; an AEAD > construction such as ChaCha20-Poly1305 would normally be expected. > > If encryption is out of scope, then the text should not say that all GAAP > implementations should support the same encryption mechanism, because the > document does not define one. > > 4. Missing and outdated security reference > > Section 8 cites RFC7539, but RFC7539 is not listed as normative > references, only informative. Also, RFC7539 has been obsoleted by RFC8439= . > Please add the appropriate reference and consider using RFC8439 instead. > > If encryption remains only an example implementation detail, the referenc= e > can likely be informative. If the draft defines an interoperable encrypti= on > mode, the reference should be normative. > > 5. Dependency on the IPv6 dynamic multicast Group ID update draft > > Section 9.3 says that the GAAP IPv6 allocation should come from the new > Dynamic Multicast Group IDs registry defined by > draft-ietf-pim-updt-ipv6-dyn-mcast-addr-grp-id. > > That makes the GAAP IANA action dependent on that document. The current > reference is informative, but the dependency appears normative for the IA= NA > allocation. Please either: > > * make draft-ietf-pim-updt-ipv6-dyn-mcast-addr-grp-id a normative > reference and ensure the publication dependency is tracked, or > * rewrite the IANA request so it does not depend on a registry that is no= t > yet created. > > 6. UDP usage guidance is missing > > GAAP defines a UDP-based protocol with multicast periodic messages, > triggered messages, suppression, variable-length records, possible > multi-record packets, and use across NAT/firewall devices. I expected a > reference to RFC8085 and some discussion of UDP usage considerations. > > Please address at least: > > * maximum message size and fragmentation avoidance; > * behavior when many records are included in a Claim message; > * rate limiting and congestion considerations; > * checksum requirements; > * packet validation before processing; > * amplification/reflection considerations; > * multicast scope and hop-limit/TTL expectations. > > COMMENTS > =3D=3D=3D=3D=3D=3D=3D=3D > > General reference review > > 1. Missing references that should probably be added > > Please consider adding references to: > > * RFC8085 for UDP usage guidelines; > * RFC6335 and/or RFC7605 for service-name and port-number registration > guidance; > * RFC5771 for IPv4 multicast address allocation guidance; > * RFC8439 if ChaCha20 or ChaCha20-Poly1305 remains in the text; > * an Ethernet multicast mapping reference if Layer-2 multicast collision > avoidance remains a protocol objective. > > 2. Normative/informative classification issues > > RFC8536 is currently normative, but it does not seem like the right > reference for a =E2=80=9C32-bit standard epoch UTC timestamp in seconds.= =E2=80=9D RFC8536 > specifies the Time Zone Information Format, not a general protocol > timestamp format. Please either remove this reference, replace it with a > more appropriate timestamp reference, or define the timestamp directly as > seconds since 1970-01-01T00:00:00Z. > > draft-ietf-pim-updt-ipv6-dyn-mcast-addr-grp-id appears to need to be > normative if the IANA allocation depends on the registry it creates. > > General section review > > 1. Abstract > > The abstract says GAAP requires no configuration setup and no centralized > services. Section 8 later discusses shared-key configuration and key > management. Please qualify the =E2=80=9Cno configuration setup=E2=80=9D s= tatement, for > example: > > The base allocation protocol requires no centralized service and minimal > configuration, although deployments using encryption or administrative > scoping may require configuration. > > 2. Section 1 =E2=80=94 Introduction > > The text says other approaches require =E2=80=9Cglobal scope adding laten= cy, > configuration, use of a single subnet, and are not decentralized.=E2=80= =9D That > sentence seems too broad for the list of protocols cited. Please soften o= r > split the statement so it is clear which limitation applies to which prio= r > mechanism. > > 3. Section 2 =E2=80=94 Definition of Terms > > The =E2=80=9CGroup Address=E2=80=9D definition says =E2=80=9Ca non-link-l= ocal IPv4 multicast group > address=E2=80=9D. IPv4 multicast does not normally use the term =E2=80=9C= link-local=E2=80=9D in the > same way IPv6 does. Consider saying =E2=80=9Cnot from the Local Network C= ontrol > Block unless explicitly assigned for GAAP protocol operation=E2=80=9D or = otherwise > align with RFC5771 terminology. > > The =E2=80=9CGAAP Group Address=E2=80=9D definition says this address mus= t not come from > the GAAP multicast address block allocated by IANA. Please clarify the > distinction between: > > * the GAAP protocol multicast address used for GAAP control messages; and > * the GAAP allocation range used to derive application multicast groups. > > The =E2=80=9CAcceptable Group Hash List=E2=80=9D definition says there ar= e four acceptable > hash values using "", "+1", "+2", and "+3". Later Section 6.1 says =E2=80= =9C3 more > attempts=E2=80=9D. Please clarify whether the maximum number of candidate= addresses > is exactly four and what happens when all four collide. > > 4. Section 3 =E2=80=94 Overview of Protocol Operation > > The text says if no Claim message is sent in response, the application ca= n > start using the group address. Please specify the wait interval and wheth= er > multiple probes are required before using the address. Without a defined > claim/response window, two nodes starting at nearly the same time may bot= h > conclude that no conflict exists. > > The text says a Claim message is =E2=80=9Creturned=E2=80=9D when a collis= ion occurs. Since > this is multicast-based, =E2=80=9Creturned=E2=80=9D may be misleading. Co= nsider =E2=80=9Csent in > response=E2=80=9D or =E2=80=9Ctriggered=E2=80=9D. > > 5. Section 4 =E2=80=94 GAAP Message Format > > The packet format has Type, Reserved, Record Count, Marker, and then > records, but the record format does not include an explicit group-name > length. The text says the length is determined from the overall message > length minus fixed fields. That works for a single record, but it is > ambiguous for multiple records because each variable-length group name is > null-terminated and records may not be aligned. > > Please explicitly define record parsing for multi-record messages, > including: > > * how a receiver finds the next record; > * whether a zero-length group name is valid; > * whether duplicate records in one message are allowed; > * maximum group-name length; > * maximum Record Count; > * malformed-message handling when Record Count exceeds what the packet ca= n > contain. > > The Marker is after Record Count. If the packet is encrypted, it is not > clear which fields remain in cleartext and which are encrypted. Please > specify this if encryption remains part of the protocol. > > The =E2=80=9CReserved=E2=80=9D field says set to 0 and ignored on receipt= . Usually the > receiver should ignore it unless future extensibility requires validation= . > If the intent is future use, =E2=80=9CMUST be set to zero by the sender a= nd ignored > by the receiver=E2=80=9D is fine. > > 6. Section 4 =E2=80=94 Timestamp > > The timestamp is 32-bit seconds and is used for relative ordering. A > 32-bit seconds counter wraps. The text says wraparound does not materiall= y > impact correctness if comparisons are done appropriately, but does not > define the comparison. > > Please define the comparison rule, especially for: > > * wraparound; > * equal timestamps; > * unsynchronized clocks; > * clocks set in the future; > * clocks set before boot or reset. > > There should be a deterministic tie-breaker for equal timestamps, > otherwise two colliding nodes could both believe they won or both believe > they lost. > > 7. Section 5 =E2=80=94 GAAP API > > This section documents a Python API, but the rest of the document defines > a protocol. Please clarify whether Section 5 is normative or illustrative= . > > If illustrative, consider saying: > > "The following API is illustrative and shows one possible application > interface. Implementations are free to expose different programming > interfaces." > > 8. Section 6.1 =E2=80=94 Allocating Group Addresses > > As noted in the above major observation, the IPv4 pseudocode must be > aligned with the actual IANA-allocated GAAP IPv4 range. > > For IPv6, the pseudocode uses: > > group_address =3D 0xff0e...0000 | low_bits > > Please define the full IPv6 address format precisely. In particular, > specify the flags, scope, and group ID placement. The =E2=80=9C...=E2=80= =9D notation is not > sufficient for an implementable wire specification. > > 9. Section 6.1 =E2=80=94 Collision resolution > > The text says there are three more attempts after the initial hash, for a > total of four possible addresses. Please specify what the API returns and > what protocol behavior occurs when all four candidate addresses collide. > > Also, if the same group name always maps to the same four addresses, two > independent partitions using the same group name should converge to the > same address after repair. Please clarify whether a collision for the sam= e > group name is intentionally not a collision even if timestamps differ. > > 10. Section 6.2 =E2=80=94 Claiming Group Addresses > > The timer text says =E2=80=9C1 minute plus a jitter value=E2=80=9D and th= en says =E2=80=9Ca random > number in a 10% range of 1 minute (60 to 66 seconds).=E2=80=9D This is co= nfusing. > If the timer is 1 minute plus jitter, then the range would be 60 to 66 > seconds only if the jitter is 0 to 6 seconds. Please rewrite. > > The suppression mechanism says receivers reset their timer when they > receive a Claim message. Please clarify whether suppression is per group > name, per group address, per node, or global. A global timer could suppre= ss > unrelated group claims incorrectly. > > The text says a new GAAP node may send a Claim for the first group hash > and previous nodes will trigger sending a Claim for one of the other > addresses. Please make the state machine more precise. In particular: > > * when does an existing node respond; > * which address does it claim; > * how does the new node know it must switch; > * what happens if multiple existing nodes respond; > * what happens if the triggered claim is lost. > > 11. Section 6.3 =E2=80=94 Partition Repair > > The partition-repair behavior depends on timestamps. Please add a > tie-breaker for equal timestamps and guidance for badly skewed clocks. > > Also, the text says applications start using the new address, meaning > senders source using the new group address and receivers leave/join. > Multicast senders do not usually =E2=80=9Csource using the group address= =E2=80=9D; they > send to the group address. Please reword to avoid confusion with source > addresses. > > 12. Section 6.4 =E2=80=94 Releasing Group Addresses > > Please define whether release is purely local or whether a release > indication is sent. The current text says the protocol stops claiming the > group address, but does not send a release message. That is acceptable, b= ut > should be explicit. > > Also clarify what happens if one local application releases a group > address while another local application still uses the same group > name/address. > > 13. Section 7 =E2=80=94 Operational Considerations > > The text says applications are required to keep group names unique. This > seems to undercut GAAP=E2=80=99s purpose of deriving group addresses from= shared > group names. Please clarify the intended uniqueness domain: > > * unique across unrelated applications; > * shared by participants in the same application/session; > * administratively unique within a deployment; > * or globally unique. > > The section recommends observing active claims and clearing state, but th= e > protocol is described as stateless. Please clarify what state is expected > or optional. > > 14. Section 8 =E2=80=94 Security Considerations > > Please avoid relying only on encryption as a mitigation. GAAP also needs > validation rules for claims, rate limiting, replay handling, and bad-acto= r > behavior. > > The bad-actor list idea needs more care. A malicious node could spoof > another node=E2=80=99s source address and cause receivers to suppress or = ignore > valid participants. If bad-actor listing remains, describe how spoofing i= s > prevented or make the mechanism local/heuristic. > > The text says a bad actor with an invalid timestamp should be ignored if > the timestamp is earlier than the current time. This seems backwards or a= t > least unclear. Please define what makes a timestamp invalid and how clock > skew is tolerated. > > 15. Section 9.1 =E2=80=94 UDP Port Number > > Please align the request with the Service Name and Transport Protocol Por= t > Number Registry template and guidance. The table should provide a complet= e > service-name request, including service name, transport protocol, > description, reference, and assignment contact/controller as required by > IANA practice. > > 16. Section 9.2 =E2=80=94 GAAP Protocol Multicast Addresses > > The request for one IPv4 multicast address from 224.0.1.x should cite the > IPv4 multicast address assignment guidance. Please also specify whether > GAAP control packets are intended to be routed beyond the local subnet, a= nd > if not, whether 224.0.1.x is the correct block. > > For IPv6, =E2=80=9CFF0X::TBD=E2=80=9D needs clearer scope guidance. Which= scopes are valid > for GAAP control messages? Is GAAP intended for link-local, > site-local/admin-local, organization-local, or global scope? Please speci= fy > how an implementation chooses the scope. > > 17. Section 9.3 =E2=80=94 GAAP Multicast Group Allocation Ranges > > The IPv4 /10 request is very large and the draft already notes that > discussion with IETF and IANA is needed. Please provide stronger > justification for the size, expected utilization, collision probability, > and why existing allocation mechanisms or scoped ranges are insufficient. > > For IPv6, please resolve the dependency on the Dynamic Multicast Group ID= s > registry draft as noted above. > > 18. Appendix B =E2=80=94 Change Log > > The change log is useful during draft development but is usually removed > before RFC publication. Please remove it before publication, or add a not= e > to remove it or confirm with the RFC Editor if the WG wants to retain it. > > Best regards, > Gunter Van de Velde > Routing Area Director --000000000000ac87f20655c1a6b9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Hi Gunter,</div><div><br></div><div>Thank you for the= extensive comments. Very helpful. We have incorporated all of your comment= s in the just submitted -18. See you in Vienna.</div><div><br></div><div>mi= ke</div><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"lt= r" class=3D"gmail_attr">On Mon, Jun 29, 2026 at 11:46=E2=80=AFPM Gunter van= de Velde (Nokia) <<a href=3D"mailto:[email protected]">gunt= [email protected]</a>> wrote:<br></div><blockquote class=3D"gmai= l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20= 4,204);padding-left:1ex">Hi authors,<br> <br> Many thanks to Stig Venaas for the Shepherd write-up, Sheng Jiang for the I= NTDIR review and Zhang (Sandy) Zheng for the RTGDIR review.<br> <br> I reviewed draft-ietf-pim-gaap-17. Thank you for the continued work on this= document. I have a series of major and minor observations that I think nee= ds to be looked at before starting further processing and considering initi= ating a IETF LC.<br> <br> Major Observations<br> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br> <br> 1. IPv4 group address derivation does not match the requested GAAP allocati= on range<br> <br> Section 6.1 derives an IPv4 multicast address as follows:<br> <br> group_address =3D 0xe0000000 | (low_bits & 0x007fffff)<br> <br> This produces addresses in 224.0.0.0 through 224.127.255.255, i.e., it uses= only the low-order 23 bits under the 224/8 prefix. That does not appear to= match Section 9.3, which requests an IPv4 /10 block for GAAP allocation.<b= r> <br> A /10 means that the first 10 bits are fixed, the remaining 22 bits are ava= ilable for assigning multicast addresses.<br> But the algorithm is using 23 variable bits. Those do not seem to natch?<br= > <br> So if IANA gives you a /10 block, the algorithm should generate addresses o= nly inside that /10 block.<br> <br> This is also problematic because it can produce addresses from ranges that = are already reserved or assigned for other purposes, including <a href=3D"h= ttp://224.0.0.0/24" rel=3D"noreferrer" target=3D"_blank">224.0.0.0/24</a> a= nd <a href=3D"http://224.0.1.0/24" rel=3D"noreferrer" target=3D"_blank">224= .0.1.0/24</a>. Please align the pseudocode with the actual IANA-allocated G= AAP IPv4 range and ensure that GAAP allocation never generates addresses ou= tside that range.<br> <br> The current pseudocode derives addresses from a much broader range than the= one requested from IANA. As a result, it can generate multicast addresses = that are already reserved or assigned for other purposes (for example, with= in <a href=3D"http://224.0.0.0/24" rel=3D"noreferrer" target=3D"_blank">224= .0.0.0/24</a> or <a href=3D"http://224.0.1.0/24" rel=3D"noreferrer" target= =3D"_blank">224.0.1.0/24</a>). This risks collisions with existing multicas= t protocol assignments and incorrect forwarding behavior. The address deriv= ation algorithm should be constrained so that it can only generate addresse= s within the GAAP-specific block allocated by IANA.<br> <br> This may require a construction of the form:<br> group_address =3D GAAP_V4_BASE | (low_bits & GAAP_V4_MASK)<br> where GAAP_V4_BASE and GAAP_V4_MASK are derived from the actual allocated r= ange.<br> <br> 2. IPv4 collision model mixes 32-bit uniqueness and 23-bit Ethernet mapping= <br> <br> Section 2 says that achieving unique 32 bits allows Layer-2 switches to avo= id multicast MAC address collisions. The text then correctly notes that IPv= 4 multicast maps only the low-order 23 bits.<br> <br> For IPv4, unique 32-bit multicast addresses are not sufficient to avoid Eth= ernet multicast MAC aliasing; only the mapped low-order 23 bits matter. Ple= ase clarify the collision model and whether GAAP is trying to avoid:<br> <br> * only network-layer group-address collisions;<br> * Layer-2 multicast MAC collisions for IPv4;<br> * Layer-2 multicast MAC collisions for IPv6;<br> * or all of the above.<br> <br> If Layer-2 collision avoidance is part of the protocol objective, the IPv4 = and IPv6 rules need to be stated separately and supported by the address de= rivation algorithm.<br> <br> 3. Encryption/security mechanism is not sufficiently specified for interope= rability<br> <br> Section 8 says GAAP should run over an encrypted multicast channel and says= that all implementations should support the same encryption mechanism and = key management procedure. It also mentions an implementation using ChaCha20= , but the draft does not define an interoperable encryption profile.<br> <br> The document needs to be clearer about whether encryption is:<br> <br> * mandatory to implement,<br> * mandatory to use,<br> * optional but recommended,<br> * or entirely out of scope.<br> <br> If the document expects interoperable encryption, it needs to specify the c= omplete wire behavior, including algorithm, nonce/IV construction, authenti= cation/integrity protection, replay considerations, key identifier if any, = and how the receiver distinguishes plaintext from ciphertext. ChaCha20 alon= e provides confidentiality but not authentication; an AEAD construction suc= h as ChaCha20-Poly1305 would normally be expected.<br> <br> If encryption is out of scope, then the text should not say that all GAAP i= mplementations should support the same encryption mechanism, because the do= cument does not define one.<br> <br> 4. Missing and outdated security reference<br> <br> Section 8 cites RFC7539, but RFC7539 is not listed as normative references,= only informative. Also, RFC7539 has been obsoleted by RFC8439. Please add = the appropriate reference and consider using RFC8439 instead.<br> <br> If encryption remains only an example implementation detail, the reference = can likely be informative. If the draft defines an interoperable encryption= mode, the reference should be normative.<br> <br> 5. Dependency on the IPv6 dynamic multicast Group ID update draft<br> <br> Section 9.3 says that the GAAP IPv6 allocation should come from the new Dyn= amic Multicast Group IDs registry defined by draft-ietf-pim-updt-ipv6-dyn-m= cast-addr-grp-id.<br> <br> That makes the GAAP IANA action dependent on that document. The current ref= erence is informative, but the dependency appears normative for the IANA al= location. Please either:<br> <br> * make draft-ietf-pim-updt-ipv6-dyn-mcast-addr-grp-id a normative reference= and ensure the publication dependency is tracked, or<br> * rewrite the IANA request so it does not depend on a registry that is not = yet created.<br> <br> 6. UDP usage guidance is missing<br> <br> GAAP defines a UDP-based protocol with multicast periodic messages, trigger= ed messages, suppression, variable-length records, possible multi-record pa= ckets, and use across NAT/firewall devices. I expected a reference to RFC80= 85 and some discussion of UDP usage considerations.<br> <br> Please address at least:<br> <br> * maximum message size and fragmentation avoidance;<br> * behavior when many records are included in a Claim message;<br> * rate limiting and congestion considerations;<br> * checksum requirements;<br> * packet validation before processing;<br> * amplification/reflection considerations;<br> * multicast scope and hop-limit/TTL expectations.<br> <br> COMMENTS<br> =3D=3D=3D=3D=3D=3D=3D=3D<br> <br> General reference review<br> <br> 1. Missing references that should probably be added<br> <br> Please consider adding references to:<br> <br> * RFC8085 for UDP usage guidelines;<br> * RFC6335 and/or RFC7605 for service-name and port-number registration guid= ance;<br> * RFC5771 for IPv4 multicast address allocation guidance;<br> * RFC8439 if ChaCha20 or ChaCha20-Poly1305 remains in the text;<br> * an Ethernet multicast mapping reference if Layer-2 multicast collision av= oidance remains a protocol objective.<br> <br> 2. Normative/informative classification issues<br> <br> RFC8536 is currently normative, but it does not seem like the right referen= ce for a =E2=80=9C32-bit standard epoch UTC timestamp in seconds.=E2=80=9D = RFC8536 specifies the Time Zone Information Format, not a general protocol = timestamp format. Please either remove this reference, replace it with a mo= re appropriate timestamp reference, or define the timestamp directly as sec= onds since 1970-01-01T00:00:00Z.<br> <br> draft-ietf-pim-updt-ipv6-dyn-mcast-addr-grp-id appears to need to be normat= ive if the IANA allocation depends on the registry it creates.<br> <br> General section review<br> <br> 1. Abstract<br> <br> The abstract says GAAP requires no configuration setup and no centralized s= ervices. Section 8 later discusses shared-key configuration and key managem= ent. Please qualify the =E2=80=9Cno configuration setup=E2=80=9D statement,= for example:<br> <br> The base allocation protocol requires no centralized service and minimal co= nfiguration, although deployments using encryption or administrative scopin= g may require configuration.<br> <br> 2. Section 1 =E2=80=94 Introduction<br> <br> The text says other approaches require =E2=80=9Cglobal scope adding latency= , configuration, use of a single subnet, and are not decentralized.=E2=80= =9D That sentence seems too broad for the list of protocols cited. Please s= often or split the statement so it is clear which limitation applies to whi= ch prior mechanism.<br> <br> 3. Section 2 =E2=80=94 Definition of Terms<br> <br> The =E2=80=9CGroup Address=E2=80=9D definition says =E2=80=9Ca non-link-loc= al IPv4 multicast group address=E2=80=9D. IPv4 multicast does not normally = use the term =E2=80=9Clink-local=E2=80=9D in the same way IPv6 does. Consid= er saying =E2=80=9Cnot from the Local Network Control Block unless explicit= ly assigned for GAAP protocol operation=E2=80=9D or otherwise align with RF= C5771 terminology.<br> <br> The =E2=80=9CGAAP Group Address=E2=80=9D definition says this address must = not come from the GAAP multicast address block allocated by IANA. Please cl= arify the distinction between:<br> <br> * the GAAP protocol multicast address used for GAAP control messages; and<b= r> * the GAAP allocation range used to derive application multicast groups.<br= > <br> The =E2=80=9CAcceptable Group Hash List=E2=80=9D definition says there are = four acceptable hash values using "", "+1", "+2&qu= ot;, and "+3". Later Section 6.1 says =E2=80=9C3 more attempts=E2= =80=9D. Please clarify whether the maximum number of candidate addresses is= exactly four and what happens when all four collide.<br> <br> 4. Section 3 =E2=80=94 Overview of Protocol Operation<br> <br> The text says if no Claim message is sent in response, the application can = start using the group address. Please specify the wait interval and whether= multiple probes are required before using the address. Without a defined c= laim/response window, two nodes starting at nearly the same time may both c= onclude that no conflict exists.<br> <br> The text says a Claim message is =E2=80=9Creturned=E2=80=9D when a collisio= n occurs. Since this is multicast-based, =E2=80=9Creturned=E2=80=9D may be = misleading. Consider =E2=80=9Csent in response=E2=80=9D or =E2=80=9Ctrigger= ed=E2=80=9D.<br> <br> 5. Section 4 =E2=80=94 GAAP Message Format<br> <br> The packet format has Type, Reserved, Record Count, Marker, and then record= s, but the record format does not include an explicit group-name length. Th= e text says the length is determined from the overall message length minus = fixed fields. That works for a single record, but it is ambiguous for multi= ple records because each variable-length group name is null-terminated and = records may not be aligned.<br> <br> Please explicitly define record parsing for multi-record messages, includin= g:<br> <br> * how a receiver finds the next record;<br> * whether a zero-length group name is valid;<br> * whether duplicate records in one message are allowed;<br> * maximum group-name length;<br> * maximum Record Count;<br> * malformed-message handling when Record Count exceeds what the packet can = contain.<br> <br> The Marker is after Record Count. If the packet is encrypted, it is not cle= ar which fields remain in cleartext and which are encrypted. Please specify= this if encryption remains part of the protocol.<br> <br> The =E2=80=9CReserved=E2=80=9D field says set to 0 and ignored on receipt. = Usually the receiver should ignore it unless future extensibility requires = validation. If the intent is future use, =E2=80=9CMUST be set to zero by th= e sender and ignored by the receiver=E2=80=9D is fine.<br> <br> 6. Section 4 =E2=80=94 Timestamp<br> <br> The timestamp is 32-bit seconds and is used for relative ordering. A 32-bit= seconds counter wraps. The text says wraparound does not materially impact= correctness if comparisons are done appropriately, but does not define the= comparison.<br> <br> Please define the comparison rule, especially for:<br> <br> * wraparound;<br> * equal timestamps;<br> * unsynchronized clocks;<br> * clocks set in the future;<br> * clocks set before boot or reset.<br> <br> There should be a deterministic tie-breaker for equal timestamps, otherwise= two colliding nodes could both believe they won or both believe they lost.= <br> <br> 7. Section 5 =E2=80=94 GAAP API<br> <br> This section documents a Python API, but the rest of the document defines a= protocol. Please clarify whether Section 5 is normative or illustrative.<b= r> <br> If illustrative, consider saying:<br> <br> "The following API is illustrative and shows one possible application = interface. Implementations are free to expose different programming interfa= ces."<br> <br> 8. Section 6.1 =E2=80=94 Allocating Group Addresses<br> <br> As noted in the above major observation, the IPv4 pseudocode must be aligne= d with the actual IANA-allocated GAAP IPv4 range.<br> <br> For IPv6, the pseudocode uses:<br> <br> group_address =3D 0xff0e...0000 | low_bits<br> <br> Please define the full IPv6 address format precisely. In particular, specif= y the flags, scope, and group ID placement. The =E2=80=9C...=E2=80=9D notat= ion is not sufficient for an implementable wire specification.<br> <br> 9. Section 6.1 =E2=80=94 Collision resolution<br> <br> The text says there are three more attempts after the initial hash, for a t= otal of four possible addresses. Please specify what the API returns and wh= at protocol behavior occurs when all four candidate addresses collide.<br> <br> Also, if the same group name always maps to the same four addresses, two in= dependent partitions using the same group name should converge to the same = address after repair. Please clarify whether a collision for the same group= name is intentionally not a collision even if timestamps differ.<br> <br> 10. Section 6.2 =E2=80=94 Claiming Group Addresses<br> <br> The timer text says =E2=80=9C1 minute plus a jitter value=E2=80=9D and then= says =E2=80=9Ca random number in a 10% range of 1 minute (60 to 66 seconds= ).=E2=80=9D This is confusing. If the timer is 1 minute plus jitter, then t= he range would be 60 to 66 seconds only if the jitter is 0 to 6 seconds. Pl= ease rewrite.<br> <br> The suppression mechanism says receivers reset their timer when they receiv= e a Claim message. Please clarify whether suppression is per group name, pe= r group address, per node, or global. A global timer could suppress unrelat= ed group claims incorrectly.<br> <br> The text says a new GAAP node may send a Claim for the first group hash and= previous nodes will trigger sending a Claim for one of the other addresses= . Please make the state machine more precise. In particular:<br> <br> * when does an existing node respond;<br> * which address does it claim;<br> * how does the new node know it must switch;<br> * what happens if multiple existing nodes respond;<br> * what happens if the triggered claim is lost.<br> <br> 11. Section 6.3 =E2=80=94 Partition Repair<br> <br> The partition-repair behavior depends on timestamps. Please add a tie-break= er for equal timestamps and guidance for badly skewed clocks.<br> <br> Also, the text says applications start using the new address, meaning sende= rs source using the new group address and receivers leave/join. Multicast s= enders do not usually =E2=80=9Csource using the group address=E2=80=9D; the= y send to the group address. Please reword to avoid confusion with source a= ddresses.<br> <br> 12. Section 6.4 =E2=80=94 Releasing Group Addresses<br> <br> Please define whether release is purely local or whether a release indicati= on is sent. The current text says the protocol stops claiming the group add= ress, but does not send a release message. That is acceptable, but should b= e explicit.<br> <br> Also clarify what happens if one local application releases a group address= while another local application still uses the same group name/address.<br= > <br> 13. Section 7 =E2=80=94 Operational Considerations<br> <br> The text says applications are required to keep group names unique. This se= ems to undercut GAAP=E2=80=99s purpose of deriving group addresses from sha= red group names. Please clarify the intended uniqueness domain:<br> <br> * unique across unrelated applications;<br> * shared by participants in the same application/session;<br> * administratively unique within a deployment;<br> * or globally unique.<br> <br> The section recommends observing active claims and clearing state, but the = protocol is described as stateless. Please clarify what state is expected o= r optional.<br> <br> 14. Section 8 =E2=80=94 Security Considerations<br> <br> Please avoid relying only on encryption as a mitigation. GAAP also needs va= lidation rules for claims, rate limiting, replay handling, and bad-actor be= havior.<br> <br> The bad-actor list idea needs more care. A malicious node could spoof anoth= er node=E2=80=99s source address and cause receivers to suppress or ignore = valid participants. If bad-actor listing remains, describe how spoofing is = prevented or make the mechanism local/heuristic.<br> <br> The text says a bad actor with an invalid timestamp should be ignored if th= e timestamp is earlier than the current time. This seems backwards or at le= ast unclear. Please define what makes a timestamp invalid and how clock ske= w is tolerated.<br> <br> 15. Section 9.1 =E2=80=94 UDP Port Number<br> <br> Please align the request with the Service Name and Transport Protocol Port = Number Registry template and guidance. The table should provide a complete = service-name request, including service name, transport protocol, descripti= on, reference, and assignment contact/controller as required by IANA practi= ce.<br> <br> 16. Section 9.2 =E2=80=94 GAAP Protocol Multicast Addresses<br> <br> The request for one IPv4 multicast address from 224.0.1.x should cite the I= Pv4 multicast address assignment guidance. Please also specify whether GAAP= control packets are intended to be routed beyond the local subnet, and if = not, whether 224.0.1.x is the correct block.<br> <br> For IPv6, =E2=80=9CFF0X::TBD=E2=80=9D needs clearer scope guidance. Which s= copes are valid for GAAP control messages? Is GAAP intended for link-local,= site-local/admin-local, organization-local, or global scope? Please specif= y how an implementation chooses the scope.<br> <br> 17. Section 9.3 =E2=80=94 GAAP Multicast Group Allocation Ranges<br> <br> The IPv4 /10 request is very large and the draft already notes that discuss= ion with IETF and IANA is needed. Please provide stronger justification for= the size, expected utilization, collision probability, and why existing al= location mechanisms or scoped ranges are insufficient.<br> <br> For IPv6, please resolve the dependency on the Dynamic Multicast Group IDs = registry draft as noted above.<br> <br> 18. Appendix B =E2=80=94 Change Log<br> <br> The change log is useful during draft development but is usually removed be= fore RFC publication. Please remove it before publication, or add a note to= remove it or confirm with the RFC Editor if the WG wants to retain it.<br> <br> Best regards,<br> Gunter Van de Velde<br> Routing Area Director</blockquote></div></div> --000000000000ac87f20655c1a6b9-- --===============5799601605528147001== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGltIG1haWxp bmcgbGlzdCAtLSBwaW1AaWV0Zi5vcmcKVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBw aW0tbGVhdmVAaWV0Zi5vcmcK --===============5799601605528147001==--