Re: [lisp] AD Review of draft-ietf-lisp-6834bis-09
Luigi Iannone <ggx@gigix.net> Thu, 14 April 2022 15:50 UTC
Return-Path: <ggx@gigix.net>
X-Original-To: lisp@ietfa.amsl.com
Delivered-To: lisp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B8AFA3A1C13 for <lisp@ietfa.amsl.com>; Thu, 14 Apr 2022 08:50:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level:
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gigix-net.20210112.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Hy6twvpaBvuO for <lisp@ietfa.amsl.com>; Thu, 14 Apr 2022 08:50:44 -0700 (PDT)
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BE6E13A1C14 for <lisp@ietf.org>; Thu, 14 Apr 2022 08:50:43 -0700 (PDT)
Received: by mail-wr1-x42a.google.com with SMTP id g18so7491468wrb.10 for <lisp@ietf.org>; Thu, 14 Apr 2022 08:50:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gigix-net.20210112.gappssmtp.com; s=20210112; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=YwM9/vFircuo8g+OnFRRA4sPVpc5717aAUXP9PDvh1s=; b=g/Cc3KUYVjmEOmB4opvj+p1N7ENEPRn2goCqCIhB/UQKFExsFAhFv8Jwm8TBCUsuPi LkRpY3+hZYAq1LxI+Ao6IjyUg3s+2wuYs2TH2VA4baRL6DTWC9ZaS2SIrAREmIHjFB9+ wcK1GUjm2QId1AWW3WvpIr1t7RuASj3NzvCukhysZp9V4no3VkSIwXIAcvLCIDJJVejL 5L/CXUD39aalS8iDv2G1DwoAeH13zkBwDDbOXZ8tIrq+YGSHfPI2YVVcb0IsF+3Oiv8Y q3wH+/beG7IqjbrqvKJZ5RtSZ41/GaPxqoRNy7ucytSmBdC+O01OvLdlvgw+yAMgEJna frCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=YwM9/vFircuo8g+OnFRRA4sPVpc5717aAUXP9PDvh1s=; b=uEKSA7r1/Q0adg6I32YVo5hRs08LE4alXysN8b5vHAINROMFlZJgoQ1/j9q+HOpUg1 PFGkWLE7iO1K7yzH2TLT35dv7uKWlAWUIdZi+DrJJ80dMY8W9NBxtfA6Od2qCMSCKHPW 7yCs8K3gu/bv4Yr6Qr5QS4EgQL2BiRJXnhezMzOp1ZIP+MID8KIJeCEpO7i5omWrChF8 ujOxouqq2jwFG+iVhgHKGDUPhWbCjD61AaniJCBvp6yKOjKXbNoQmGymJsdYSQyTD7Qa hsFIFAPCyul8F6PV0JlNmNl2JP3QFBmHmGYFaJLA2lLKqF0E3TkQBuFawMmgQG/lHvFW ymCA==
X-Gm-Message-State: AOAM533HNI9clsyQPnMJEISpEog4v+t4PaUB/8jZnOApAvjo/19yLNYA 5KdiWi4g8i0blELNJrG1zy/1ag==
X-Google-Smtp-Source: ABdhPJw2KaDLDzKdqmv0zT1IX0yEMlLWpPeOPap06nbHV+EOPKLEdA09I4G0eFp+OFUUPM3r++as4Q==
X-Received: by 2002:a05:6000:1f17:b0:207:a6f4:7c44 with SMTP id bv23-20020a0560001f1700b00207a6f47c44mr2471896wrb.81.1649951440222; Thu, 14 Apr 2022 08:50:40 -0700 (PDT)
Received: from smtpclient.apple ([2a01:e0a:1ec:470:cc47:d397:ac7e:7277]) by smtp.gmail.com with ESMTPSA id t6-20020a05600c198600b0038cafe3d47dsm2601262wmq.42.2022.04.14.08.50.39 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 14 Apr 2022 08:50:39 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.80.82.1.1\))
From: Luigi Iannone <ggx@gigix.net>
In-Reply-To: <CAMMESsxSA5u1k4Q4cZK+ciJW414k_0TQfUwWUwEEcz_dJt21Ag@mail.gmail.com>
Date: Thu, 14 Apr 2022 17:50:38 +0200
Cc: draft-ietf-lisp-6834bis@ietf.org, Padma Pillay-Esnault <padma.ietf@gmail.com>, lisp-chairs@ietf.org, lisp@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <62E81D44-FD83-4972-BE1E-7663421670C2@gigix.net>
References: <CAMMESsxSA5u1k4Q4cZK+ciJW414k_0TQfUwWUwEEcz_dJt21Ag@mail.gmail.com>
To: Alvaro Retana <aretana.ietf@gmail.com>
X-Mailer: Apple Mail (2.3696.80.82.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/lisp/_YpoXvxDFCw1rm50FUyh6vo0K9M>
Subject: Re: [lisp] AD Review of draft-ietf-lisp-6834bis-09
X-BeenThere: lisp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: List for the discussion of the Locator/ID Separation Protocol <lisp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lisp>, <mailto:lisp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lisp/>
List-Post: <mailto:lisp@ietf.org>
List-Help: <mailto:lisp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lisp>, <mailto:lisp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Apr 2022 15:50:49 -0000
Hi Alvaro, Thanks for the great review. I’ll try to propose un update by end of next week, so that we can have it ready by end of the month. Ciao L. > On 13 Apr 2022, at 20:54, Alvaro Retana <aretana.ietf@gmail.com> wrote: > > Dear authors/WG: > > While I appreciate the small number of changes from rfc6834 and the > original intent (from 2018) of processing this document quickly, but > it requires a non-trivial amount of work. It is now going for > Proposed Standard, so we need to be more rigorous. > > I put detailed comments inline (below). There are two main themes > that I want to highlight here: > > (1) Duplication and overlap > > Several parts of this document describe the same or related behaviors. > This issue has resulted in duplicate descriptions and specifications, not > all of them saying the same thing. :-( The problem extends beyond this > document into both rfc6830bis and rfc6833bis. I pointed and cross- > referenced the sections as best as I could below. > > In general, please specify the behavior only once. Doing so in multiple > places can be confusing and, as in this case, result in the specifications > not being in sync. > > Note that to address this point we may need to update rfc6830bis and > rfc6833bis. I would prefer to see as much of the specification related to > Map-Versioning as possible (all?) in this document. Removing pieces and > referencing this document shouldn't require removing them from the RFC > Editor's queue -- and they both Normatively depend on this document anyway. > > One specific action is to remove the text from §13.2/rfc6830bis. Some of > it is already covered in this document -- the remaining pieces, which I > believe are only the last couple of paragraphs, can find a better home. > > > (2) Document Structure > > As I started reading this document, I found myself going back to rfc6830bis > to look for packet formats -- and I wasn't even past the Introduction! I > then realized that some of the information was in this document but an > unexpected order. Some actionable comments: > > (1) Simplify the Introduction; there's too much detail. For example, it > mentions the location of the Map-Version in excruciating detail ("the 24 > low-order bits of the first longword of the LISP header"), but the > description is wrong (see more inline). There are explanations about the > topics later on but no forward references. Instead, paint a high-level > picture and tell the reader where to find the details. > > (2) Beyond the Introduction, the document is ordered in a cumbersome way: > The location and format of the Map-Version are presented in §6, but both > §4/§5 describe how the versions are handled. It would be much better for > the reader if §6 were moved forward. This is my suggested ordering: > > 6. LISP Header and Map-Version Numbers > 7. Map Record and Map-Version (this could be a subsection) > 4. EID-to-RLOC Map-Version Number > 5. Dealing with Map-Version Numbers > > Also, I suggest moving §8 to an Appendix. > > > As we have a constrained timeline for this document, I would like to > start the IETF Last-Call by the end of this month. I have a lot of > comments, but I don't think they will be hard to address. > > Please reply inline to this message to expedite my review of any > updates. Also, if you think talking would clear things up faster, > feel free to find time on my calendar: > https://doodle.com/mm/alvaroretana/book-a-time > > > Padma: As Shepherd, I'll need you to please update the writeup when > the final version is ready. > > > Thanks!! > > Alvaro. > > > [Line numbers from idnits.] > > ... > 13 Abstract > > 15 This document describes the LISP (Locator/ID Separation Protocol) > 16 Map-Versioning mechanism, which provides in-packet information about > 17 Endpoint ID to Routing Locator (EID-to-RLOC) mappings used to > 18 encapsulate LISP data packets. The proposed approach is based on > 19 associating a version number to EID-to-RLOC mappings and the > 20 transport of such a version number in the LISP-specific header of > 21 LISP-encapsulated packets. LISP Map-Versioning is particularly > 22 useful to inform communicating Ingress Tunnel Routers (ITRs) and > 23 Egress Tunnel Routers (ETRs) about modifications of the mappings used > 24 to encapsulate packets. The mechanism is optional and transparent to > 25 implementations not supporting this feature, since in the LISP- > 26 specific header and in the Map Records, bits used for Map-Versioning > 27 can be safely ignored by ITRs and ETRs that do not support or do not > 28 want to use the mechanism. > > [minor] s/proposed//g > This mechanism is now on the standards track, so it is not "proposed" > any more. :-) > > > ... > 93 1. Introduction > > [] As I mentioned above, please simplify this section. I left > comments below, but I think that most of the text can be changed for a > high-level description. > > > ... > 113 When Map-Versioning is used, LISP-encapsulated data packets contain > 114 the version number of the two mappings used to select the RLOCs in > 115 the outer header (i.e., both source and destination RLOCs). These > 116 version numbers are encoded in the 24 low-order bits of the first > 117 longword of the LISP header and indicated by a specific bit in the > 118 flags (first 8 high-order bits of the first longword of the LISP > 119 header). Note that not all packets need to carry version numbers. > > [major] "version numbers are encoded in the 24 low-order bits of the > first longword of the LISP header" > > Wow! That's not an easy reference to follow! > > I went to find the "LISP Header" and found this definition in rfc6830bis: > > LISP Header: LISP header is a term used in this document to refer > to the outer IPv4 or IPv6 header, a UDP header, and a LISP- > specific 8-octet header that follow the UDP header and that an ITR > prepends or an ETR strips. > > If the LISP Header includes the "outer IPv4 or IPv6 header, a UDP > header, and a LISP-specific 8-octet header" then the "24 low-order > bits of the first longword" maps to something different. :-( > > Instead, it would be easier for everyone to simple show the header > with the V-bit set (from rfc6830bis): > > 0 x 0 1 x x x x > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |N|L|E|V|I|R|K|K| Source Map-Version | Dest Map-Version | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | Instance ID/Locator-Status-Bits | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > > [major] "indicated by a specific bit in the flags (first 8 high-order > bits of the first longword of the LISP header)." > > Please replace that with a specific mention to the V-bit. > > > 121 When an ITR (Ingress Tunnel Router) encapsulates a data packet, with > 122 a LISP header containing the Map-Version numbers, it puts in the > 123 LISP-specific header two version numbers: > > 125 1. The version number assigned to the mapping used to select the > 126 source RLOC (contained in the EID-to-RLOC Database). > > 128 2. The version number assigned to the mapping used to select the > 129 destination RLOC (contained in the EID-to-RLOC Map-Cache). > > [major] Please use the names in the packet formats: indicate which is > the "Source Map-Version" and which the "Dest Map-Version". > > > ... > 154 3. Definitions of Terms > > 156 This document uses terms already defined in the main LISP > 157 specification ([I-D.ietf-lisp-rfc6830bis], > 158 [I-D.ietf-lisp-rfc6833bis]). Here, we define the terms that are > 159 specific to the Map-Versioning mechanism. Throughout the whole > 160 document, Big Endian bit ordering is used. > > [major] Please avoid redefining terms that are already defined > elsewhere. Changes in either (even if editorial) may cause the > documents to fall out of sync. If you want to call attention to > specific terms, please point at the original definition or a specific > section. > > For example: > > Map-Version Number: as defined in §7. > > > 162 Map-Version number: An unsigned 12-bit integer is assigned to an > 163 EID-to-RLOC mapping, excluding the value 0 (0x000). > > [major] Beyond being a 12-bit integer, this definition doesn't say > what the Map-Version number is. §7 contains a much better > description. > > > 165 Null Map-Version: The 12-bit null value of 0 (0x000) is not used as > 166 a Map-Version number. It is used to signal that no Map-Version > 167 number is assigned to the EID-to-RLOC mapping. > > [] Suggestion> > Null Map-Version: A Map-Version number with a value of 0x000 (zero), > used to signal that no Map-Version number is assigned to the > EID-to-RLOC mapping (Section 4.1). > > > 169 Source Map-Version number: This Map-Version number of the EID-to- > 170 RLOC mapping is used to select the source address (RLOC) of the > 171 outer IP header of LISP-encapsulated packets. > > [major] This definition describes what the Source Map-Version number > is used for, but not what it is. Also, the definition in §6 is > different from the one here -- it is close, but not the same. Please > define terminology in only one place. It seems to me that leaving > this definition up to §6 would be best. > > > 173 Destination Map-Version number: This Map-Version number of the EID- > 174 to-RLOC mapping is used to select the destination address (RLOC) of > 175 the outer IP header of LISP-encapsulated packets. > > [major] The packet format in rfc6830bis uses "Dest Map-Version" > instead of "Destination Map-Version". Please use the same terminology > in the packet format and throughout the document. > > > [major] Same comment as above: it describes what it's used for, not > what it is. There's a different definition in §6. > > > 177 4. EID-to-RLOC Map-Version Number > > 179 The EID-to-RLOC Map-Version number consists of an unsigned 12-bit > 180 integer. The version number is assigned on a per-mapping basis, > 181 meaning that different mappings have a different version number, > 182 which is also updated independently. An update in the version number > 183 (i.e., a newer version) consists of incrementing by one the older > 184 version number. > > [major] "incrementing by one" > > There's an exception in the case where V1+1 would result in 0, right? > Please mention it. > > I later found that the last paragraph in §4.1 explains this exception. > Please point to if from here, or move the paragraph to this section. > Note that the text in §4.1 normatively requires (MUST) the increment, > but the description here doesn't use normative language. Please be > consistent. > > > ... > 212 Map-version numbers are assigned to mappings by configuration. The > 213 initial Map-Version number of a new EID-to-RLOC mapping SHOULD be > 214 assigned randomly, but it MUST NOT be set to the Null Map-Version > 215 value (0x000), because the Null Map-Version number has a special > 216 meaning (see Section 4.1). > > [major] "Map-version numbers are assigned to mappings by > configuration. The initial Map-Version number of a new EID-to-RLOC > mapping SHOULD be assigned randomly..." > > This sounds like a contradiction: configure, but make it random. I > assume that you mean that manual configuration may be the exception. > > Suggestion> > The initial Map-Version number of a new EID-to-RLOC mapping SHOULD be > assigned randomly; it MUST NOT be set to the Null Map-Version value > (0x000) (see Section 4.1). Optionally, the initial Map-Version number > may be configured. > > > ... > 224 4.1. The Null Map-Version > > [] The comments below indicate that there are multiple places that > overlap with this section. The text from this section may be > relocated (and clarifying actions taken) to make the document clearer. > This section could then be eliminated. > > Paragraph 1 could be moved to §6. > > Paragraph 2 could be moved to §5/§5.1/§5.2. > > Paragraph 3 could be moved to §7. > > Paragraph 4 could be moved to §4. > > > 226 The value 0x000 (zero) is not a valid Map-Version number indicating > 227 the version of the EID-to-RLOC mapping. Such a value is used for > 228 special purposes and is named the Null Map-Version number. > > 230 The Null Map-Version MAY appear in the LISP-specific header as either > 231 a Source Map-Version number (cf. Section 5.2) or a Destination Map- > 232 Version number (cf. Section 5.1). When the Source Map-Version > 233 number is set to the Null Map-Version value, it means that no map > 234 version information is conveyed for the source site. This means that > 235 if a mapping exists for the source EID in the EID-to-RLOC Map-Cache, > 236 then the ETR MUST NOT compare the received Null Map-Version with the > 237 content of the EID-to-RLOC Map-Cache. When the Destination Map- > 238 Version number is set to the Null Map-Version value, it means that no > 239 map version information is conveyed for the destination site. This > 240 means that the ETR MUST NOT compare the value with the Map-Version > 241 number of the mapping for the destination EID present in the EID-to- > 242 RLOC Database. > > [major] "Null Map-Version MAY appear" > > s/MAY/may > > This is a statement of fact, not a Normative statement. > > > [nit] s/cf. //g > > > [minor] Please put a forward reference to §5.1/§5.2 where "MUST NOT > compare" is used above. §5.1/§5.2 don't use "compare" as part of > their specification, but pointing to them should keep us from changing > the language here. > > > 244 The other use of the Null Map-Version number is in the Map Records, > 245 which are part of the Map-Request, Map-Reply, and Map-Register > 246 messages (defined in [I-D.ietf-lisp-rfc6833bis]). Map Records that > 247 have a Null Map-Version number indicate that there is no Map-Version > 248 number associated with the mapping. This means that LISP- > 249 encapsulated packets destined to the EID-Prefix referred to by the > 250 Map Record MUST either not contain any Map-Version numbers (V bit set > 251 to 0) or, if they contain Map-Version numbers (V bit set to 1), then > 252 the destination Map-Version number MUST be set to the Null Map- > 253 Version number. Any value different from zero means that Map- > 254 Versioning is supported and MAY be used. > > [] See comments in §7 about the requirements in this paragraph. > > > [nit] s/(defined in [I-D.ietf-lisp-rfc6833bis])/[I-D.ietf-lisp-rfc6833bis]/g > > > [major] "Any value different from zero means that Map-Versioning is > supported and MAY be used." > > > 256 The fact that the 0 value has a special meaning for the Map-Version > 257 number implies that, when updating a Map-Version number because of a > 258 change in the mapping, if the next value is 0, then the Map-Version > 259 number MUST be incremented by 2 (i.e., set to 1 (0x001), which is the > 260 next valid value). > > [] See my comment in §4 about this exception. > > > 262 5. Dealing with Map-Version Numbers > ... > 272 To each mapping, a version number is associated and changes each time > 273 the mapping is changed. Note that Map-Versioning does not introduce > 274 new problems concerning the coordination of different ETRs of a > 275 domain. Indeed, ETRs belonging to the same LISP site must return for > 276 a specific EID-prefix the same mapping, including the same Map- > 277 Version number. This is orthogonal to whether or not Map-Versioning > 278 is used. The synchronization problem and its implications on the > 279 traffic are out of the scope of this document. > > [] See my comment in §7 about leaving this out of scope and the > requirement from rfc6833bis. > > > ... > 304 If one or both of the above conditions do not hold, the ETR can send > 305 a Map-Request either to make the ITR aware that a new mapping is > 306 available (see Section 5.1) or to update the mapping in the local > 307 EID-to-RLOC Map-Cache (see Section 5.2). > > [major] Should this behavior be Normative (MUST/SHOULD)? The text > currently says that "the ETR can send"; if the text doesn't require > (or at least recommend) an action then it looks like this document > just talks about carrying extra numbers around that don't serve a > specific purpose. I believe that §10 makes a good case for an action > to be specified. > > > 309 5.1. Handling Destination Map-Version Number > > 311 When an ETR receives a packet, the Destination Map-Version number > 312 relates to the mapping for the destination EID for which the ETR is > 313 an RLOC. This mapping is part of the ETR EID-to-RLOC Database. > 314 Since the ETR is authoritative for the mapping, it has the correct > 315 and up-to-date Destination Map-Version number. A check on this > 316 version number can be done, where the following cases can arise: > > [major] "A check on this version number can be done..." Same comment > as above: Should this behavior be Normative (MUST/SHOULD)? > > > ... > 323 2. The packet arrives with a Destination Map-Version number greater > 324 (i.e., newer) than the one stored in the EID-to-RLOC Database. > 325 Since the ETR is authoritative on the mapping, meaning that the > 326 Map-Version number of its mapping is the correct one, this > 327 implies that someone is not behaving correctly with respect to > 328 the specifications. In this case, the packet carries a version > 329 number that is not valid; otherwise, the ETR would have the same > 330 number, and the packet SHOULD be silently dropped
- [lisp] AD Review of draft-ietf-lisp-6834bis-09 Alvaro Retana
- Re: [lisp] AD Review of draft-ietf-lisp-6834bis-09 Luigi Iannone
- Re: [lisp] AD Review of draft-ietf-lisp-6834bis-09 Alvaro Retana
- Re: [lisp] AD Review of draft-ietf-lisp-6834bis-09 Luigi Iannone
- Re: [lisp] AD Review of draft-ietf-lisp-6834bis-09 Alvaro Retana
- Re: [lisp] Fwd: AD Review of draft-ietf-lisp-6834… Alvaro Retana