[pim] Re: draft-ietf-pim-gaap-11 early Rtgdir review

Dino Farinacci <farinacci@gmail.com> Thu, 26 March 2026 00:20 UTC

Return-Path: <farinacci@gmail.com>
X-Original-To: pim@mail2.ietf.org
Delivered-To: pim@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id F1696D17F769 for <pim@mail2.ietf.org>; Wed, 25 Mar 2026 17:20:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pwGK1IpMK1RC for <pim@mail2.ietf.org>; Wed, 25 Mar 2026 17:20:19 -0700 (PDT)
Received: from mail-dl1-x1231.google.com (mail-dl1-x1231.google.com [IPv6:2607:f8b0:4864:20::1231]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 93327D17F764 for <pim@ietf.org>; Wed, 25 Mar 2026 17:20:19 -0700 (PDT)
Received: by mail-dl1-x1231.google.com with SMTP id a92af1059eb24-1271257ae53so491031c88.1 for <pim@ietf.org>; Wed, 25 Mar 2026 17:20:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774484413; x=1775089213; darn=ietf.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bjn0gI+Ld0xsmYv+NdT1oOSgU01+tVjX9jCYUWQM/ak=; b=F2PzOSKgOhr+cJfaEqxLz/Akyc6+EO6aCNahQYpJFCkyWfNSRXUmebY0yMs5mfikk4 9S8kQ2+Pg6L4tvy56K4My1xW3UqUCeNZiCf7HJTJckyBz70sH1y7Quzitx3J51COMqYk ftsKArOwcOBbGNK6GLh73b7S8J5aomYhPj4yn3LRhJPRysJ3ntwLAU/lEPCN0Nhsd7O5 OI5soLuT1yh4R3+ecEi+22lNQRUosoju74w91z+R+lcZzyMpmOHQv/Z7gj+5uln972Kb eNE6mhGQgxtbCA1Z6oUHNfWrYl3AXUSAR5AeqLrGQcOwq3IbXI4h5GFE3v9W2SIX2hj0 R7Zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774484413; x=1775089213; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=bjn0gI+Ld0xsmYv+NdT1oOSgU01+tVjX9jCYUWQM/ak=; b=rzIdk0SycoVxRvNEGaa2magRUj9BUe7lPpZHKDSM3SPfZIktfP+PJYnORFvxso3ecY /PsR1YR2P9ZHlOWgRIKUOaW3QbA5gkandm1CrG5maNAxKcw9FSFzmkNVzH3JqapEthOg gUshpHCUW1LqykYn4c+rte7h6YQofYVkhvnRp1Ev4fnwHbb6csnA72TcMghvr5eDvlIs vuHw5m3yNrSiLHxpXWaZVgTHDP2LOH9E1a42tpuh0CRTiCV8nf2TCe599E7LYFA1v62a jQj9D+frr4HdiZPnVf9n2ft4M8MOzjDZJfLdRPNtZ4VakoLvl68Cw4VpckhvD2J7GMLB R65w==
X-Forwarded-Encrypted: i=1; AJvYcCWwZitUREAVfvo+2VTM+wDbyDwtfnLUAJCE3rP/Ftc1QZotmDj62T0J4gKmoHGFMENF5ok=@ietf.org
X-Gm-Message-State: AOJu0YxvsGsILPYAjgVMp7C5TA7OF5S/TEbJwC/ihQkRa0CmnIKmpOEO u8XR3HhbgjnCuRsmv+ks85JgIWHSCkOeUm66F8g4ZOKFkkmn2ajRAh/q
X-Gm-Gg: ATEYQzy/LSSM/X5tdSoFnZXBeb0maRUXYgHdsc5rMq2UhpdbbbQOBYzMt7OhNmyymeA 6cMtBVrzh1lEiyAlf28wa+ByxRWU0dfNaiM+I5J/GPdulbypAW4bh3XNavzga2XCp4bRCQEBFSL JVUyoca8iUyIIqIhjTJr+BD6WxczZ0ZPk3AIlG9ff3P5wDkcwpWexhKdVJU4g4PM/DNm8xLmYxd 23jEm4t7WxDgkcBCLRDdiEbTfg5C7ZewFIbtVcZpNIScwtMRuAVAnwjWBjWiG2p9+O6K/As+iEj kyALFXXfQQPURvon7vYNxtZoa3DEDu1gi8H7kINGYofqhU8j4c/AREcijVh/wErpN9n1nOqRJnD CWRIiChcTAEAMtF2vXOL7ppxenow9mdN00k0+yOIQ6ZNWjBy+aRwKToV3ruev8yxjq/9G3VFYA7 N5ARQngwngZoQ5u/4uuApXTyn0/Q6i9J8CJxGbAhuW5Mwo10SneQLsCt4HZLcj1TdMwJCr2PGiF teVPLaFeWt+jTdvCkHspCc=
X-Received: by 2002:a05:7022:402:b0:123:3500:b688 with SMTP id a92af1059eb24-12a96ecefcamr2613614c88.19.1774484412426; Wed, 25 Mar 2026 17:20:12 -0700 (PDT)
Received: from smtpclient.apple (162-204-215-107.lightspeed.sntcca.sbcglobal.net. [162.204.215.107]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12aa6513e9bsm2446408c88.0.2026.03.25.17.20.11 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Mar 2026 17:20:12 -0700 (PDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
From: Dino Farinacci <farinacci@gmail.com>
In-Reply-To: <177443046377.359435.2276678127914386437@dt-datatracker-5775bcb475-pnkww>
Date: Wed, 25 Mar 2026 17:20:00 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <96721DE0-566E-4E29-9D48-0F80554D8DA2@gmail.com>
References: <177443046377.359435.2276678127914386437@dt-datatracker-5775bcb475-pnkww>
To: Zheng Zhang <zhang.zheng@zte.com.cn>
X-Mailer: Apple Mail (2.3826.700.81)
Message-ID-Hash: WWL6TUIGFJBP7FN5DJKPGEW3WZ5GKFU3
X-Message-ID-Hash: WWL6TUIGFJBP7FN5DJKPGEW3WZ5GKFU3
X-MailFrom: farinacci@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-pim.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: rtg-dir@ietf.org, draft-ietf-pim-gaap.all@ietf.org, pim@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [pim] Re: draft-ietf-pim-gaap-11 early Rtgdir review
List-Id: Protocol Independent Multicast <pim.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/JcvyVc7_XughJIvF1S3c3Jbw_nE>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pim>
List-Help: <mailto:pim-request@ietf.org?subject=help>
List-Owner: <mailto:pim-owner@ietf.org>
List-Post: <mailto:pim@ietf.org>
List-Subscribe: <mailto:pim-join@ietf.org>
List-Unsubscribe: <mailto:pim-leave@ietf.org>

Thanks Zheng for your comments. See responses inline. And after you see them, tell me if you think they require spec updating.

> ......
> 4.  GAAP Message Format
> ......
>   Record field descriptions:
> ......
>      Group Name:  A variable length group name the multicast
>         application uses.  It is in ASCII format [RFC0020].  The string
>         is terminated with a null character.  Since the Group Name is
>         variable length, subsequent records may not occur on a long- or
>         short-word boundary.
> 
> ZZ> Because the Group Name is variable-length, the message length may be
> unpredictable based on the Record Count. Furthermore, if the Group Name length
> isn't fixed, how do we determine the starting position of the next record? Is
> it determined by the string terminator "\0"? If it's determined by the string
> terminator, then the next record could start at any position, even a non-8-bit
> aligned position. Is that acceptable?

The starting point of the next record is after th "\0" character/byte. Yes, the next record can start on any byte, short-word, or long-word boundary. This happens all the time (all over the place in OSI protocols since many fields are byte-granularity and variable length).

> ......
> 6.  Detail Protocol Operation
> 
> 6.1.  Allocating Group Addresses
> 
>   When an application needs a group address it provides the GAAP API
>   with a group name, the group name is used as input to a SHA-256 hash
>   function [RFC6234].  Initially, when no group address collision is
>   detected the group name is passed as a string to the hash function
>   and the low-order 32-bits are used for a group address.  The
>   following pseudo-code illustrates the functionality:
> 
> ZZ> Using the algorithm in RFC6234, is the result calculated based on the Group
> Name unique? Is it possible for the same Group Name to correspond to different
> Group Addresses?

Its a one-way hash, so a given group name can only have one hash value. Low-probabilistically another group name could hash to the same value.

If any collision does not resolve quickly, the encryption key is unique so groups don't get joined together from the app level.

> ......
> 6.2.  Claiming Group Addresses
> 
>   When a group address is allocated by a GAAP node it will build and
>   send a Claim message.  Included in the Claim message is the group
>   name, group address, and timestamp.  If the group address collides
>   with other GAAP nodes already using the address, one of the nodes
>   will send a Claim message to notify the colliding node that it needs
>   to allocate a new group address.
> 
>   A collision is defined to be the same group address allocated to 2
>   different group names.  So if a GAAP node is claiming a group address
>   for its group name and a Claim is received with the same group name
>   with the same group address, it is not a collision.  It is simply a
>   peer group participant claiming the group address you both agree to
>   be using.
> 
> ZZ> The conflict is identified from different Group Names using the same Group
> Address. Does this imply two points? 1) that all GAAP-using applications must
> use the same Group Address when using the same Group Name? 2) addressing the
> same issue in section 6.1: if the hash result is not unique, is it normal for
> different applications to advertise the same Group Name but different Group
> Addresses?

No, the collision occurs because there are not enough random bits to hold the hash in a group address. So there could be a many-hash to one group address conflict.

By definition, all apps that use the same group name, will probablistically use the SAME group address.

The answer to your last question is, absolutely no. Because the group address, per this specification, is always derived from the group name (and this algorithm allocation is with the GAAP IANA assigned block). And we have decdied to make that a /10 IANA request for IPv4.

> ......
> 7.  Security Considerations
> 
>   It is strongly suggested that the GAAP protocol run over an encrypted
>   multicast channel.  All GAAP implementations should support the same
>   encryption mechanism and use the same key management procedure to
>   ensure interoperability.  This could be difficult in embedded devices
>   with different configurations.  The message Marker is used to
>   indicate if the packet is sent in plaintext or ciphertext.  If the
>   Marker is not set to 0xAAAAAAAA and the receiver does not have a
>   shared-key configured, the message MUST be dropped.
> 
> ZZ> As described in section 4, messages should be dropped regardless of whether
> the Marker field in the message is not set to 0xAAAAAAAA, or encrypted tunnel
> is used but the receiver is not configured with a shared key. Therefore, please
> consider revising "If the Marker is not set to 0xAAAAAAAA and the receiver does
> not have a shared key configured, the message MUST be dropped." to "If the
> Marker is not set to 0xAAAAAAAA or the receiver does not have a shared key
> configured, the message MUST be dropped."

I would say that is the same as saying it has the wrong key. And I think your text:

> "If the
> Marker is not set to 0xAAAAAAAA or the receiver does not have a shared key
> configured, the message MUST be dropped."

is wrong. It should be an "and" and not an "or". Basically, the spec says if you don't see the marker, the packet is not plaintext, so you need to decrypt, it you cannot decrypt with a key or have not key, you won't see the marker from the output (faulty plaintext).

> ......
>   The following attack threats may exist with possible mitigation
>   techniques:
> 
>   *  Even when an encrypted channel is used, a bad actor could be
>      claiming a group address not derived from one of the group name
>      inputs used for the Acceptable Group Hash List (see Definition of
>      Terms section).  Cooperating nodes should ignore such messages and
>      not try to send Claim messages to correct the bad actor node.
> 
>   *  A bad actor could send an invalid timestamp giving it tie-breaking
>      priority when a group address collision occurs.  If the group
>      address has been prior claimed by another node with a timestamp
>      earlier than the invalid timestamp, cooperating nodes should put
>      the bad actor node on a bad-actor list and ignore future messages
>      from it.  If the group name has not been claimed yet, the
>      timestamp will be accepted only if earlier than the current time
>      for the receiving node.
> 
>   *  A bad actor could send messages too often and is not adhering to
>      the random delay or periodic timer procedures in this document.
>      When this occurs, cooperating nodes should start ignoring messages
>      from the bad actor node and not reset or cancel timers, or send
>      triggered Claim messages
> 
> ZZ> Are there other bad actors that waste receiver processing time by
> constantly sending forged claim messages that carry Group Names that other
> nodes don't have?

When the GAAP API detects this (the protocol runs in the API), it can inform the applications that the group is being jammed, and we can have the apps choose a new group name (one that the actor cannot know). How it does that 
is out of scope since the apps can decide the level of paranoia they are willing to take.

Thanks again for your comments,
Dino